Skip to content

Instantly share code, notes, and snippets.

@zz85
Last active October 22, 2021 13:05
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zz85/d2e6a0741af47d12bb13c2d6bda039e3 to your computer and use it in GitHub Desktop.
Save zz85/d2e6a0741af47d12bb13c2d6bda039e3 to your computer and use it in GitHub Desktop.
Spline / Path Bend Modifier for Three.js

Spline / Path Bend / Deformation Modifier for Three.js

The idea on how to do it was to apply some of the knowledge I already knew.

I first tried "bending" stuff writing TextGeometry in three.js. (That eventually got removed due to complexity but the process build several of the foundation, eg. get tangents, spaced points etc).

Discovering and learning about calculating frenent frames was also important (writing tubes / extrude geometry) mrdoob/three.js#905

The most useful article I read about doing so was from prideout's blog post. http://prideout.net/blog/?p=56

Next steps was the usual - looking into threejs examples and picking up what could be used. In this case, picking off the Spline Editor and Obj Loader examples.

/**
* dat-gui JavaScript Controller Library
* https://github.com/dataarts/dat.gui
*
* Copyright 2016 Data Arts Team, Google Creative Lab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dat=t():e.dat=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}var i=n(1),r=o(i);e.exports=r["default"]},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var i=n(2),r=o(i),a=n(6),l=o(a),s=n(3),u=o(s),d=n(7),c=o(d),f=n(8),_=o(f),p=n(10),h=o(p),m=n(11),b=o(m),g=n(12),v=o(g),y=n(13),w=o(y),x=n(14),E=o(x),C=n(15),A=o(C),S=n(16),k=o(S),O=n(9),T=o(O),R=n(17),L=o(R);t["default"]={color:{Color:r["default"],math:l["default"],interpret:u["default"]},controllers:{Controller:c["default"],BooleanController:_["default"],OptionController:h["default"],StringController:b["default"],NumberController:v["default"],NumberControllerBox:w["default"],NumberControllerSlider:E["default"],FunctionController:A["default"],ColorController:k["default"]},dom:{dom:T["default"]},gui:{GUI:L["default"]},GUI:L["default"]}},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t,n){Object.defineProperty(e,t,{get:function(){return"RGB"===this.__state.space?this.__state[t]:(h.recalculateRGB(this,t,n),this.__state[t])},set:function(e){"RGB"!==this.__state.space&&(h.recalculateRGB(this,t,n),this.__state.space="RGB"),this.__state[t]=e}})}function a(e,t){Object.defineProperty(e,t,{get:function(){return"HSV"===this.__state.space?this.__state[t]:(h.recalculateHSV(this),this.__state[t])},set:function(e){"HSV"!==this.__state.space&&(h.recalculateHSV(this),this.__state.space="HSV"),this.__state[t]=e}})}t.__esModule=!0;var l=n(3),s=o(l),u=n(6),d=o(u),c=n(4),f=o(c),_=n(5),p=o(_),h=function(){function e(){if(i(this,e),this.__state=s["default"].apply(this,arguments),this.__state===!1)throw new Error("Failed to interpret color arguments");this.__state.a=this.__state.a||1}return e.prototype.toString=function(){return(0,f["default"])(this)},e.prototype.toHexString=function(){return(0,f["default"])(this,!0)},e.prototype.toOriginal=function(){return this.__state.conversion.write(this)},e}();h.recalculateRGB=function(e,t,n){if("HEX"===e.__state.space)e.__state[t]=d["default"].component_from_hex(e.__state.hex,n);else{if("HSV"!==e.__state.space)throw new Error("Corrupted color state");p["default"].extend(e.__state,d["default"].hsv_to_rgb(e.__state.h,e.__state.s,e.__state.v))}},h.recalculateHSV=function(e){var t=d["default"].rgb_to_hsv(e.r,e.g,e.b);p["default"].extend(e.__state,{s:t.s,v:t.v}),p["default"].isNaN(t.h)?p["default"].isUndefined(e.__state.h)&&(e.__state.h=0):e.__state.h=t.h},h.COMPONENTS=["r","g","b","h","s","v","hex","a"],r(h.prototype,"r",2),r(h.prototype,"g",1),r(h.prototype,"b",0),a(h.prototype,"h"),a(h.prototype,"s"),a(h.prototype,"v"),Object.defineProperty(h.prototype,"a",{get:function(){return this.__state.a},set:function(e){this.__state.a=e}}),Object.defineProperty(h.prototype,"hex",{get:function(){return"HEX"!==!this.__state.space&&(this.__state.hex=d["default"].rgb_to_hex(this.r,this.g,this.b)),this.__state.hex},set:function(e){this.__state.space="HEX",this.__state.hex=e}}),t["default"]=h},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var i=n(4),r=o(i),a=n(5),l=o(a),s=[{litmus:l["default"].isString,conversions:{THREE_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);return null!==t&&{space:"HEX",hex:parseInt("0x"+t[1].toString()+t[1].toString()+t[2].toString()+t[2].toString()+t[3].toString()+t[3].toString(),0)}},write:r["default"]},SIX_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9]{6})$/i);return null!==t&&{space:"HEX",hex:parseInt("0x"+t[1].toString(),0)}},write:r["default"]},CSS_RGB:{read:function(e){var t=e.match(/^rgb\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/);return null!==t&&{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3])}},write:r["default"]},CSS_RGBA:{read:function(e){var t=e.match(/^rgba\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/);return null!==t&&{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3]),a:parseFloat(t[4])}},write:r["default"]}}},{litmus:l["default"].isNumber,conversions:{HEX:{read:function(e){return{space:"HEX",hex:e,conversionName:"HEX"}},write:function(e){return e.hex}}}},{litmus:l["default"].isArray,conversions:{RGB_ARRAY:{read:function(e){return 3===e.length&&{space:"RGB",r:e[0],g:e[1],b:e[2]}},write:function(e){return[e.r,e.g,e.b]}},RGBA_ARRAY:{read:function(e){return 4===e.length&&{space:"RGB",r:e[0],g:e[1],b:e[2],a:e[3]}},write:function(e){return[e.r,e.g,e.b,e.a]}}}},{litmus:l["default"].isObject,conversions:{RGBA_OBJ:{read:function(e){return!!(l["default"].isNumber(e.r)&&l["default"].isNumber(e.g)&&l["default"].isNumber(e.b)&&l["default"].isNumber(e.a))&&{space:"RGB",r:e.r,g:e.g,b:e.b,a:e.a}},write:function(e){return{r:e.r,g:e.g,b:e.b,a:e.a}}},RGB_OBJ:{read:function(e){return!!(l["default"].isNumber(e.r)&&l["default"].isNumber(e.g)&&l["default"].isNumber(e.b))&&{space:"RGB",r:e.r,g:e.g,b:e.b}},write:function(e){return{r:e.r,g:e.g,b:e.b}}},HSVA_OBJ:{read:function(e){return!!(l["default"].isNumber(e.h)&&l["default"].isNumber(e.s)&&l["default"].isNumber(e.v)&&l["default"].isNumber(e.a))&&{space:"HSV",h:e.h,s:e.s,v:e.v,a:e.a}},write:function(e){return{h:e.h,s:e.s,v:e.v,a:e.a}}},HSV_OBJ:{read:function(e){return!!(l["default"].isNumber(e.h)&&l["default"].isNumber(e.s)&&l["default"].isNumber(e.v))&&{space:"HSV",h:e.h,s:e.s,v:e.v}},write:function(e){return{h:e.h,s:e.s,v:e.v}}}}}],u=void 0,d=void 0,c=function(){d=!1;var e=arguments.length>1?l["default"].toArray(arguments):arguments[0];return l["default"].each(s,function(t){if(t.litmus(e))return l["default"].each(t.conversions,function(t,n){if(u=t.read(e),d===!1&&u!==!1)return d=u,u.conversionName=n,u.conversion=t,l["default"].BREAK}),l["default"].BREAK}),d};t["default"]=c},function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){var n=e.__state.conversionName.toString(),o=Math.round(e.r),i=Math.round(e.g),r=Math.round(e.b),a=e.a,l=Math.round(e.h),s=e.s.toFixed(1),u=e.v.toFixed(1);if(t||"THREE_CHAR_HEX"===n||"SIX_CHAR_HEX"===n){for(var d=e.hex.toString(16);d.length<6;)d="0"+d;return"#"+d}return"CSS_RGB"===n?"rgb("+o+","+i+","+r+")":"CSS_RGBA"===n?"rgba("+o+","+i+","+r+","+a+")":"HEX"===n?"0x"+e.hex.toString(16):"RGB_ARRAY"===n?"["+o+","+i+","+r+"]":"RGBA_ARRAY"===n?"["+o+","+i+","+r+","+a+"]":"RGB_OBJ"===n?"{r:"+o+",g:"+i+",b:"+r+"}":"RGBA_OBJ"===n?"{r:"+o+",g:"+i+",b:"+r+",a:"+a+"}":"HSV_OBJ"===n?"{h:"+l+",s:"+s+",v:"+u+"}":"HSVA_OBJ"===n?"{h:"+l+",s:"+s+",v:"+u+",a:"+a+"}":"unknown format"}},function(e,t){"use strict";t.__esModule=!0;var n=Array.prototype.forEach,o=Array.prototype.slice,i={BREAK:{},extend:function(e){return this.each(o.call(arguments,1),function(t){var n=this.isObject(t)?Object.keys(t):[];n.forEach(function(n){this.isUndefined(t[n])||(e[n]=t[n])}.bind(this))},this),e},defaults:function(e){return this.each(o.call(arguments,1),function(t){var n=this.isObject(t)?Object.keys(t):[];n.forEach(function(n){this.isUndefined(e[n])&&(e[n]=t[n])}.bind(this))},this),e},compose:function(){var e=o.call(arguments);return function(){for(var t=o.call(arguments),n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},each:function(e,t,o){if(e)if(n&&e.forEach&&e.forEach===n)e.forEach(t,o);else if(e.length===e.length+0){var i=void 0,r=void 0;for(i=0,r=e.length;i<r;i++)if(i in e&&t.call(o,e[i],i)===this.BREAK)return}else for(var a in e)if(t.call(o,e[a],a)===this.BREAK)return},defer:function(e){setTimeout(e,0)},debounce:function(e,t){var n=void 0;return function(){function o(){n=null}var i=this,r=arguments,a=!n;clearTimeout(n),n=setTimeout(o,t),a&&e.apply(i,r)}},toArray:function(e){return e.toArray?e.toArray():o.call(e)},isUndefined:function(e){return void 0===e},isNull:function(e){return null===e},isNaN:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){return isNaN(e)}),isArray:Array.isArray||function(e){return e.constructor===Array},isObject:function(e){return e===Object(e)},isNumber:function(e){return e===e+0},isString:function(e){return e===e+""},isBoolean:function(e){return e===!1||e===!0},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)}};t["default"]=i},function(e,t){"use strict";t.__esModule=!0;var n=void 0,o={hsv_to_rgb:function(e,t,n){var o=Math.floor(e/60)%6,i=e/60-Math.floor(e/60),r=n*(1-t),a=n*(1-i*t),l=n*(1-(1-i)*t),s=[[n,l,r],[a,n,r],[r,n,l],[r,a,n],[l,r,n],[n,r,a]][o];return{r:255*s[0],g:255*s[1],b:255*s[2]}},rgb_to_hsv:function(e,t,n){var o=Math.min(e,t,n),i=Math.max(e,t,n),r=i-o,a=void 0,l=void 0;return 0===i?{h:NaN,s:0,v:0}:(l=r/i,a=e===i?(t-n)/r:t===i?2+(n-e)/r:4+(e-t)/r,a/=6,a<0&&(a+=1),{h:360*a,s:l,v:i/255})},rgb_to_hex:function(e,t,n){var o=this.hex_with_component(0,2,e);return o=this.hex_with_component(o,1,t),o=this.hex_with_component(o,0,n)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,o){return o<<(n=8*t)|e&~(255<<n)}};t["default"]=o},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=function(){function e(t,o){n(this,e),this.initialValue=t[o],this.domElement=document.createElement("div"),this.object=t,this.property=o,this.__onChange=void 0,this.__onFinishChange=void 0}return e.prototype.onChange=function(e){return this.__onChange=e,this},e.prototype.onFinishChange=function(e){return this.__onFinishChange=e,this},e.prototype.setValue=function(e){return this.object[this.property]=e,this.__onChange&&this.__onChange.call(this,e),this.updateDisplay(),this},e.prototype.getValue=function(){return this.object[this.property]},e.prototype.updateDisplay=function(){return this},e.prototype.isModified=function(){return this.initialValue!==this.getValue()},e}();t["default"]=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var l=n(7),s=o(l),u=n(9),d=o(u),c=function(e){function t(n,o){function a(){s.setValue(!s.__prev)}i(this,t);var l=r(this,e.call(this,n,o)),s=l;return l.__prev=l.getValue(),l.__checkbox=document.createElement("input"),l.__checkbox.setAttribute("type","checkbox"),d["default"].bind(l.__checkbox,"change",a,!1),l.domElement.appendChild(l.__checkbox),l.updateDisplay(),l}return a(t,e),t.prototype.setValue=function(t){var n=e.prototype.setValue.call(this,t);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),this.__prev=this.getValue(),n},t.prototype.updateDisplay=function(){return this.getValue()===!0?(this.__checkbox.setAttribute("checked","checked"),this.__checkbox.checked=!0):this.__checkbox.checked=!1,e.prototype.updateDisplay.call(this)},t}(s["default"]);t["default"]=c},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e){if("0"===e||a["default"].isUndefined(e))return 0;var t=e.match(u);return a["default"].isNull(t)?0:parseFloat(t[1])}t.__esModule=!0;var r=n(5),a=o(r),l={HTMLEvents:["change"],MouseEvents:["click","mousemove","mousedown","mouseup","mouseover"],KeyboardEvents:["keydown"]},s={};a["default"].each(l,function(e,t){a["default"].each(e,function(e){s[e]=t})});var u=/(\d+(\.\d+)?)px/,d={makeSelectable:function(e,t){void 0!==e&&void 0!==e.style&&(e.onselectstart=t?function(){return!1}:function(){},e.style.MozUserSelect=t?"auto":"none",e.style.KhtmlUserSelect=t?"auto":"none",e.unselectable=t?"on":"off")},makeFullscreen:function(e,t,n){var o=n,i=t;a["default"].isUndefined(i)&&(i=!0),a["default"].isUndefined(o)&&(o=!0),e.style.position="absolute",i&&(e.style.left=0,e.style.right=0),o&&(e.style.top=0,e.style.bottom=0)},fakeEvent:function(e,t,n,o){var i=n||{},r=s[t];if(!r)throw new Error("Event type "+t+" not supported.");var l=document.createEvent(r);switch(r){case"MouseEvents":var u=i.x||i.clientX||0,d=i.y||i.clientY||0;l.initMouseEvent(t,i.bubbles||!1,i.cancelable||!0,window,i.clickCount||1,0,0,u,d,!1,!1,!1,!1,0,null);break;case"KeyboardEvents":var c=l.initKeyboardEvent||l.initKeyEvent;a["default"].defaults(i,{cancelable:!0,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,keyCode:void 0,charCode:void 0}),c(t,i.bubbles||!1,i.cancelable,window,i.ctrlKey,i.altKey,i.shiftKey,i.metaKey,i.keyCode,i.charCode);break;default:l.initEvent(t,i.bubbles||!1,i.cancelable||!0)}a["default"].defaults(l,o),e.dispatchEvent(l)},bind:function(e,t,n,o){var i=o||!1;return e.addEventListener?e.addEventListener(t,n,i):e.attachEvent&&e.attachEvent("on"+t,n),d},unbind:function(e,t,n,o){var i=o||!1;return e.removeEventListener?e.removeEventListener(t,n,i):e.detachEvent&&e.detachEvent("on"+t,n),d},addClass:function(e,t){if(void 0===e.className)e.className=t;else if(e.className!==t){var n=e.className.split(/ +/);n.indexOf(t)===-1&&(n.push(t),e.className=n.join(" ").replace(/^\s+/,"").replace(/\s+$/,""))}return d},removeClass:function(e,t){if(t)if(e.className===t)e.removeAttribute("class");else{var n=e.className.split(/ +/),o=n.indexOf(t);o!==-1&&(n.splice(o,1),e.className=n.join(" "))}else e.className=void 0;return d},hasClass:function(e,t){return new RegExp("(?:^|\\s+)"+t+"(?:\\s+|$)").test(e.className)||!1},getWidth:function(e){var t=getComputedStyle(e);return i(t["border-left-width"])+i(t["border-right-width"])+i(t["padding-left"])+i(t["padding-right"])+i(t.width)},getHeight:function(e){var t=getComputedStyle(e);return i(t["border-top-width"])+i(t["border-bottom-width"])+i(t["padding-top"])+i(t["padding-bottom"])+i(t.height)},getOffset:function(e){var t=e,n={left:0,top:0};if(t.offsetParent)do n.left+=t.offsetLeft,n.top+=t.offsetTop,t=t.offsetParent;while(t);return n},isActive:function(e){return e===document.activeElement&&(e.type||e.href)}};t["default"]=d},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var l=n(7),s=o(l),u=n(9),d=o(u),c=n(5),f=o(c),_=function(e){function t(n,o,a){i(this,t);var l=r(this,e.call(this,n,o)),s=a,u=l;return l.__select=document.createElement("select"),f["default"].isArray(s)&&!function(){var e={};f["default"].each(s,function(t){e[t]=t}),s=e}(),f["default"].each(s,function(e,t){var n=document.createElement("option");n.innerHTML=t,n.setAttribute("value",e),u.__select.appendChild(n)}),l.updateDisplay(),d["default"].bind(l.__select,"change",function(){var e=this.options[this.selectedIndex].value;u.setValue(e)}),l.domElement.appendChild(l.__select),l}return a(t,e),t.prototype.setValue=function(t){var n=e.prototype.setValue.call(this,t);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),n},t.prototype.updateDisplay=function(){return d["default"].isActive(this.__select)?this:(this.__select.value=this.getValue(),e.prototype.updateDisplay.call(this))},t}(s["default"]);t["default"]=_},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var l=n(7),s=o(l),u=n(9),d=o(u),c=function(e){function t(n,o){function a(){u.setValue(u.__input.value)}function l(){u.__onFinishChange&&u.__onFinishChange.call(u,u.getValue())}i(this,t);var s=r(this,e.call(this,n,o)),u=s;return s.__input=document.createElement("input"),s.__input.setAttribute("type","text"),d["default"].bind(s.__input,"keyup",a),d["default"].bind(s.__input,"change",a),d["default"].bind(s.__input,"blur",l),d["default"].bind(s.__input,"keydown",function(e){13===e.keyCode&&this.blur()}),s.updateDisplay(),s.domElement.appendChild(s.__input),s}return a(t,e),t.prototype.updateDisplay=function(){return d["default"].isActive(this.__input)||(this.__input.value=this.getValue()),e.prototype.updateDisplay.call(this)},t}(s["default"]);t["default"]=c},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e){var t=e.toString();return t.indexOf(".")>-1?t.length-t.indexOf(".")-1:0}t.__esModule=!0;var s=n(7),u=o(s),d=n(5),c=o(d),f=function(e){function t(n,o,a){i(this,t);var s=r(this,e.call(this,n,o)),u=a||{};return s.__min=u.min,s.__max=u.max,s.__step=u.step,c["default"].isUndefined(s.__step)?0===s.initialValue?s.__impliedStep=1:s.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(s.initialValue))/Math.LN10))/10:s.__impliedStep=s.__step,s.__precision=l(s.__impliedStep),s}return a(t,e),t.prototype.setValue=function(t){var n=t;return void 0!==this.__min&&n<this.__min?n=this.__min:void 0!==this.__max&&n>this.__max&&(n=this.__max),void 0!==this.__step&&n%this.__step!==0&&(n=Math.round(n/this.__step)*this.__step),e.prototype.setValue.call(this,n)},t.prototype.min=function(e){return this.__min=e,this},t.prototype.max=function(e){return this.__max=e,this},t.prototype.step=function(e){return this.__step=e,this.__impliedStep=e,this.__precision=l(e),this},t}(u["default"]);t["default"]=f},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}t.__esModule=!0;var s=n(12),u=o(s),d=n(9),c=o(d),f=n(5),_=o(f),p=function(e){function t(n,o,a){function l(){var e=parseFloat(m.__input.value);_["default"].isNaN(e)||m.setValue(e)}function s(){m.__onFinishChange&&m.__onFinishChange.call(m,m.getValue())}function u(){s()}function d(e){var t=b-e.clientY;m.setValue(m.getValue()+t*m.__impliedStep),b=e.clientY}function f(){c["default"].unbind(window,"mousemove",d),c["default"].unbind(window,"mouseup",f),s()}function p(e){c["default"].bind(window,"mousemove",d),c["default"].bind(window,"mouseup",f),b=e.clientY}i(this,t);var h=r(this,e.call(this,n,o,a));h.__truncationSuspended=!1;var m=h,b=void 0;return h.__input=document.createElement("input"),h.__input.setAttribute("type","text"),c["default"].bind(h.__input,"change",l),c["default"].bind(h.__input,"blur",u),c["default"].bind(h.__input,"mousedown",p),c["default"].bind(h.__input,"keydown",function(e){13===e.keyCode&&(m.__truncationSuspended=!0,this.blur(),m.__truncationSuspended=!1,s())}),h.updateDisplay(),h.domElement.appendChild(h.__input),h}return a(t,e),t.prototype.updateDisplay=function(){return this.__input.value=this.__truncationSuspended?this.getValue():l(this.getValue(),this.__precision),e.prototype.updateDisplay.call(this)},t}(u["default"]);t["default"]=p},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t,n,o,i){return o+(i-o)*((e-t)/(n-t))}t.__esModule=!0;var s=n(12),u=o(s),d=n(9),c=o(d),f=function(e){function t(n,o,a,s,u){function d(e){document.activeElement.blur(),c["default"].bind(window,"mousemove",f),c["default"].bind(window,"mouseup",_),f(e)}function f(e){e.preventDefault();var t=h.__background.getBoundingClientRect();return h.setValue(l(e.clientX,t.left,t.right,h.__min,h.__max)),!1}function _(){c["default"].unbind(window,"mousemove",f),c["default"].unbind(window,"mouseup",_),h.__onFinishChange&&h.__onFinishChange.call(h,h.getValue())}i(this,t);var p=r(this,e.call(this,n,o,{min:a,max:s,step:u})),h=p;return p.__background=document.createElement("div"),p.__foreground=document.createElement("div"),c["default"].bind(p.__background,"mousedown",d),c["default"].addClass(p.__background,"slider"),c["default"].addClass(p.__foreground,"slider-fg"),p.updateDisplay(),p.__background.appendChild(p.__foreground),p.domElement.appendChild(p.__background),p}return a(t,e),t.prototype.updateDisplay=function(){var t=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*t+"%",e.prototype.updateDisplay.call(this)},t}(u["default"]);t["default"]=f},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var l=n(7),s=o(l),u=n(9),d=o(u),c=function(e){function t(n,o,a){i(this,t);var l=r(this,e.call(this,n,o)),s=l;return l.__button=document.createElement("div"),l.__button.innerHTML=void 0===a?"Fire":a,d["default"].bind(l.__button,"click",function(e){return e.preventDefault(),s.fire(),!1}),d["default"].addClass(l.__button,"button"),l.domElement.appendChild(l.__button),l}return a(t,e),t.prototype.fire=function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())},t}(s["default"]);t["default"]=c},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t,n,o){e.style.background="",g["default"].each(y,function(i){e.style.cssText+="background: "+i+"linear-gradient("+t+", "+n+" 0%, "+o+" 100%); "})}function s(e){e.style.background="",e.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",e.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",e.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}t.__esModule=!0;var u=n(7),d=o(u),c=n(9),f=o(c),_=n(2),p=o(_),h=n(3),m=o(h),b=n(5),g=o(b),v=function(e){function t(n,o){function a(e){h(e),f["default"].bind(window,"mousemove",h),f["default"].bind(window,"mouseup",u)}function u(){f["default"].unbind(window,"mousemove",h),f["default"].unbind(window,"mouseup",u),_()}function d(){var e=(0,m["default"])(this.value);e!==!1?(y.__color.__state=e,y.setValue(y.__color.toOriginal())):this.value=y.__color.toString()}function c(){f["default"].unbind(window,"mousemove",b),f["default"].unbind(window,"mouseup",c),_()}function _(){y.__onFinishChange&&y.__onFinishChange.call(y,y.__color.toOriginal())}function h(e){e.preventDefault();var t=y.__saturation_field.getBoundingClientRect(),n=(e.clientX-t.left)/(t.right-t.left),o=1-(e.clientY-t.top)/(t.bottom-t.top);return o>1?o=1:o<0&&(o=0),n>1?n=1:n<0&&(n=0),y.__color.v=o,y.__color.s=n,y.setValue(y.__color.toOriginal()),!1}function b(e){e.preventDefault();var t=y.__hue_field.getBoundingClientRect(),n=1-(e.clientY-t.top)/(t.bottom-t.top);return n>1?n=1:n<0&&(n=0),y.__color.h=360*n,y.setValue(y.__color.toOriginal()),!1}i(this,t);var v=r(this,e.call(this,n,o));v.__color=new p["default"](v.getValue()),v.__temp=new p["default"](0);var y=v;v.domElement=document.createElement("div"),f["default"].makeSelectable(v.domElement,!1),v.__selector=document.createElement("div"),v.__selector.className="selector",v.__saturation_field=document.createElement("div"),v.__saturation_field.className="saturation-field",v.__field_knob=document.createElement("div"),v.__field_knob.className="field-knob",v.__field_knob_border="2px solid ",v.__hue_knob=document.createElement("div"),v.__hue_knob.className="hue-knob",v.__hue_field=document.createElement("div"),v.__hue_field.className="hue-field",v.__input=document.createElement("input"),v.__input.type="text",v.__input_textShadow="0 1px 1px ",f["default"].bind(v.__input,"keydown",function(e){13===e.keyCode&&d.call(this)}),f["default"].bind(v.__input,"blur",d),f["default"].bind(v.__selector,"mousedown",function(){f["default"].addClass(this,"drag").bind(window,"mouseup",function(){f["default"].removeClass(y.__selector,"drag")})});var w=document.createElement("div");return g["default"].extend(v.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),g["default"].extend(v.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:v.__field_knob_border+(v.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),g["default"].extend(v.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),g["default"].extend(v.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),g["default"].extend(w.style,{width:"100%",height:"100%",background:"none"}),l(w,"top","rgba(0,0,0,0)","#000"),g["default"].extend(v.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),s(v.__hue_field),g["default"].extend(v.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:v.__input_textShadow+"rgba(0,0,0,0.7)"}),f["default"].bind(v.__saturation_field,"mousedown",a),f["default"].bind(v.__field_knob,"mousedown",a),f["default"].bind(v.__hue_field,"mousedown",function(e){b(e),f["default"].bind(window,"mousemove",b),f["default"].bind(window,"mouseup",c)}),v.__saturation_field.appendChild(w),v.__selector.appendChild(v.__field_knob),v.__selector.appendChild(v.__saturation_field),v.__selector.appendChild(v.__hue_field),v.__hue_field.appendChild(v.__hue_knob),v.domElement.appendChild(v.__input),v.domElement.appendChild(v.__selector),v.updateDisplay(),v}return a(t,e),t.prototype.updateDisplay=function(){var e=(0,m["default"])(this.getValue());if(e!==!1){var t=!1;g["default"].each(p["default"].COMPONENTS,function(n){if(!g["default"].isUndefined(e[n])&&!g["default"].isUndefined(this.__color.__state[n])&&e[n]!==this.__color.__state[n])return t=!0,{}},this),t&&g["default"].extend(this.__color.__state,e)}g["default"].extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var n=this.__color.v<.5||this.__color.s>.5?255:0,o=255-n;g["default"].extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+n+","+n+","+n+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,l(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),g["default"].extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+n+","+n+","+n+")",textShadow:this.__input_textShadow+"rgba("+o+","+o+","+o+",.7)"})},t}(d["default"]),y=["-moz-","-o-","-webkit-","-ms-",""];t["default"]=v},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t,n){var o=document.createElement("li");return t&&o.appendChild(t),n?e.__ul.insertBefore(o,n):e.__ul.appendChild(o),e.onResize(),o}function r(e,t){var n=e.__preset_select[e.__preset_select.selectedIndex];t?n.innerHTML=n.value+"*":n.innerHTML=n.value}function a(e,t,n){if(n.__li=t,n.__gui=e,U["default"].extend(n,{options:function(t){if(arguments.length>1){var o=n.__li.nextElementSibling;return n.remove(),s(e,n.object,n.property,{before:o,factoryArgs:[U["default"].toArray(arguments)]})}if(U["default"].isArray(t)||U["default"].isObject(t)){var i=n.__li.nextElementSibling;return n.remove(),s(e,n.object,n.property,{before:i,factoryArgs:[t]})}},name:function(e){return n.__li.firstElementChild.firstElementChild.innerHTML=e,n},listen:function(){return n.__gui.listen(n),n},remove:function(){
return n.__gui.remove(n),n}}),n instanceof B["default"])!function(){var e=new N["default"](n.object,n.property,{min:n.__min,max:n.__max,step:n.__step});U["default"].each(["updateDisplay","onChange","onFinishChange","step"],function(t){var o=n[t],i=e[t];n[t]=e[t]=function(){var t=Array.prototype.slice.call(arguments);return i.apply(e,t),o.apply(n,t)}}),z["default"].addClass(t,"has-slider"),n.domElement.insertBefore(e.domElement,n.domElement.firstElementChild)}();else if(n instanceof N["default"]){var o=function(t){if(U["default"].isNumber(n.__min)&&U["default"].isNumber(n.__max)){var o=n.__li.firstElementChild.firstElementChild.innerHTML,i=n.__gui.__listening.indexOf(n)>-1;n.remove();var r=s(e,n.object,n.property,{before:n.__li.nextElementSibling,factoryArgs:[n.__min,n.__max,n.__step]});return r.name(o),i&&r.listen(),r}return t};n.min=U["default"].compose(o,n.min),n.max=U["default"].compose(o,n.max)}else n instanceof O["default"]?(z["default"].bind(t,"click",function(){z["default"].fakeEvent(n.__checkbox,"click")}),z["default"].bind(n.__checkbox,"click",function(e){e.stopPropagation()})):n instanceof R["default"]?(z["default"].bind(t,"click",function(){z["default"].fakeEvent(n.__button,"click")}),z["default"].bind(t,"mouseover",function(){z["default"].addClass(n.__button,"hover")}),z["default"].bind(t,"mouseout",function(){z["default"].removeClass(n.__button,"hover")})):n instanceof j["default"]&&(z["default"].addClass(t,"color"),n.updateDisplay=U["default"].compose(function(e){return t.style.borderLeftColor=n.__color.toString(),e},n.updateDisplay),n.updateDisplay());n.setValue=U["default"].compose(function(t){return e.getRoot().__preset_select&&n.isModified()&&r(e.getRoot(),!0),t},n.setValue)}function l(e,t){var n=e.getRoot(),o=n.__rememberedObjects.indexOf(t.object);if(o!==-1){var i=n.__rememberedObjectIndecesToControllers[o];if(void 0===i&&(i={},n.__rememberedObjectIndecesToControllers[o]=i),i[t.property]=t,n.load&&n.load.remembered){var r=n.load.remembered,a=void 0;if(r[e.preset])a=r[e.preset];else{if(!r[Q])return;a=r[Q]}if(a[o]&&void 0!==a[o][t.property]){var l=a[o][t.property];t.initialValue=l,t.setValue(l)}}}}function s(e,t,n,o){if(void 0===t[n])throw new Error('Object "'+t+'" has no property "'+n+'"');var r=void 0;if(o.color)r=new j["default"](t,n);else{var s=[t,n].concat(o.factoryArgs);r=C["default"].apply(e,s)}o.before instanceof S["default"]&&(o.before=o.before.__li),l(e,r),z["default"].addClass(r.domElement,"c");var u=document.createElement("span");z["default"].addClass(u,"property-name"),u.innerHTML=r.property;var d=document.createElement("div");d.appendChild(u),d.appendChild(r.domElement);var c=i(e,d,o.before);return z["default"].addClass(c,oe.CLASS_CONTROLLER_ROW),r instanceof j["default"]?z["default"].addClass(c,"color"):z["default"].addClass(c,g(r.getValue())),a(e,c,r),e.__controllers.push(r),r}function u(e,t){return document.location.href+"."+t}function d(e,t,n){var o=document.createElement("option");o.innerHTML=t,o.value=t,e.__preset_select.appendChild(o),n&&(e.__preset_select.selectedIndex=e.__preset_select.length-1)}function c(e,t){t.style.display=e.useLocalStorage?"block":"none"}function f(e){var t=e.__save_row=document.createElement("li");z["default"].addClass(e.domElement,"has-save"),e.__ul.insertBefore(t,e.__ul.firstChild),z["default"].addClass(t,"save-row");var n=document.createElement("span");n.innerHTML="&nbsp;",z["default"].addClass(n,"button gears");var o=document.createElement("span");o.innerHTML="Save",z["default"].addClass(o,"button"),z["default"].addClass(o,"save");var i=document.createElement("span");i.innerHTML="New",z["default"].addClass(i,"button"),z["default"].addClass(i,"save-as");var r=document.createElement("span");r.innerHTML="Revert",z["default"].addClass(r,"button"),z["default"].addClass(r,"revert");var a=e.__preset_select=document.createElement("select");e.load&&e.load.remembered?U["default"].each(e.load.remembered,function(t,n){d(e,n,n===e.preset)}):d(e,Q,!1),z["default"].bind(a,"change",function(){for(var t=0;t<e.__preset_select.length;t++)e.__preset_select[t].innerHTML=e.__preset_select[t].value;e.preset=this.value}),t.appendChild(a),t.appendChild(n),t.appendChild(o),t.appendChild(i),t.appendChild(r),q&&!function(){var t=document.getElementById("dg-local-explain"),n=document.getElementById("dg-local-storage"),o=document.getElementById("dg-save-locally");o.style.display="block","true"===localStorage.getItem(u(e,"isLocal"))&&n.setAttribute("checked","checked"),c(e,t),z["default"].bind(n,"change",function(){e.useLocalStorage=!e.useLocalStorage,c(e,t)})}();var l=document.getElementById("dg-new-constructor");z["default"].bind(l,"keydown",function(e){!e.metaKey||67!==e.which&&67!==e.keyCode||Z.hide()}),z["default"].bind(n,"click",function(){l.innerHTML=JSON.stringify(e.getSaveObject(),void 0,2),Z.show(),l.focus(),l.select()}),z["default"].bind(o,"click",function(){e.save()}),z["default"].bind(i,"click",function(){var t=prompt("Enter a new preset name.");t&&e.saveAs(t)}),z["default"].bind(r,"click",function(){e.revert()})}function _(e){function t(t){return t.preventDefault(),e.width+=i-t.clientX,e.onResize(),i=t.clientX,!1}function n(){z["default"].removeClass(e.__closeButton,oe.CLASS_DRAG),z["default"].unbind(window,"mousemove",t),z["default"].unbind(window,"mouseup",n)}function o(o){return o.preventDefault(),i=o.clientX,z["default"].addClass(e.__closeButton,oe.CLASS_DRAG),z["default"].bind(window,"mousemove",t),z["default"].bind(window,"mouseup",n),!1}var i=void 0;e.__resize_handle=document.createElement("div"),U["default"].extend(e.__resize_handle.style,{width:"6px",marginLeft:"-3px",height:"200px",cursor:"ew-resize",position:"absolute"}),z["default"].bind(e.__resize_handle,"mousedown",o),z["default"].bind(e.__closeButton,"mousedown",o),e.domElement.insertBefore(e.__resize_handle,e.domElement.firstElementChild)}function p(e,t){e.domElement.style.width=t+"px",e.__save_row&&e.autoPlace&&(e.__save_row.style.width=t+"px"),e.__closeButton&&(e.__closeButton.style.width=t+"px")}function h(e,t){var n={};return U["default"].each(e.__rememberedObjects,function(o,i){var r={},a=e.__rememberedObjectIndecesToControllers[i];U["default"].each(a,function(e,n){r[n]=t?e.initialValue:e.getValue()}),n[i]=r}),n}function m(e){for(var t=0;t<e.__preset_select.length;t++)e.__preset_select[t].value===e.preset&&(e.__preset_select.selectedIndex=t)}function b(e){0!==e.length&&D["default"].call(window,function(){b(e)}),U["default"].each(e,function(e){e.updateDisplay()})}var g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},v=n(18),y=o(v),w=n(19),x=o(w),E=n(20),C=o(E),A=n(7),S=o(A),k=n(8),O=o(k),T=n(15),R=o(T),L=n(13),N=o(L),M=n(14),B=o(M),H=n(16),j=o(H),P=n(21),D=o(P),V=n(22),F=o(V),I=n(9),z=o(I),G=n(5),U=o(G),X=n(23),K=o(X);y["default"].inject(K["default"]);var Y="dg",J=72,W=20,Q="Default",q=function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}}(),Z=void 0,$=!0,ee=void 0,te=!1,ne=[],oe=function ie(e){function t(){var e=n.getRoot();e.width+=1,U["default"].defer(function(){e.width-=1})}var n=this,o=e||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),z["default"].addClass(this.domElement,Y),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],o=U["default"].defaults(o,{autoPlace:!0,width:ie.DEFAULT_WIDTH}),o=U["default"].defaults(o,{resizable:o.autoPlace,hideable:o.autoPlace}),U["default"].isUndefined(o.load)?o.load={preset:Q}:o.preset&&(o.load.preset=o.preset),U["default"].isUndefined(o.parent)&&o.hideable&&ne.push(this),o.resizable=U["default"].isUndefined(o.parent)&&o.resizable,o.autoPlace&&U["default"].isUndefined(o.scrollable)&&(o.scrollable=!0);var r=q&&"true"===localStorage.getItem(u(this,"isLocal")),a=void 0;if(Object.defineProperties(this,{parent:{get:function(){return o.parent}},scrollable:{get:function(){return o.scrollable}},autoPlace:{get:function(){return o.autoPlace}},preset:{get:function(){return n.parent?n.getRoot().preset:o.load.preset},set:function(e){n.parent?n.getRoot().preset=e:o.load.preset=e,m(this),n.revert()}},width:{get:function(){return o.width},set:function(e){o.width=e,p(n,e)}},name:{get:function(){return o.name},set:function(e){o.name=e,titleRowName&&(titleRowName.innerHTML=o.name)}},closed:{get:function(){return o.closed},set:function(e){o.closed=e,o.closed?z["default"].addClass(n.__ul,ie.CLASS_CLOSED):z["default"].removeClass(n.__ul,ie.CLASS_CLOSED),this.onResize(),n.__closeButton&&(n.__closeButton.innerHTML=e?ie.TEXT_OPEN:ie.TEXT_CLOSED)}},load:{get:function(){return o.load}},useLocalStorage:{get:function(){return r},set:function(e){q&&(r=e,e?z["default"].bind(window,"unload",a):z["default"].unbind(window,"unload",a),localStorage.setItem(u(n,"isLocal"),e))}}}),U["default"].isUndefined(o.parent)){if(o.closed=!1,z["default"].addClass(this.domElement,ie.CLASS_MAIN),z["default"].makeSelectable(this.domElement,!1),q&&r){n.useLocalStorage=!0;var l=localStorage.getItem(u(this,"gui"));l&&(o.load=JSON.parse(l))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=ie.TEXT_CLOSED,z["default"].addClass(this.__closeButton,ie.CLASS_CLOSE_BUTTON),this.domElement.appendChild(this.__closeButton),z["default"].bind(this.__closeButton,"click",function(){n.closed=!n.closed})}else{void 0===o.closed&&(o.closed=!0);var s=document.createTextNode(o.name);z["default"].addClass(s,"controller-name");var d=i(n,s),c=function(e){return e.preventDefault(),n.closed=!n.closed,!1};z["default"].addClass(this.__ul,ie.CLASS_CLOSED),z["default"].addClass(d,"title"),z["default"].bind(d,"click",c),o.closed||(this.closed=!1)}o.autoPlace&&(U["default"].isUndefined(o.parent)&&($&&(ee=document.createElement("div"),z["default"].addClass(ee,Y),z["default"].addClass(ee,ie.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(ee),$=!1),ee.appendChild(this.domElement),z["default"].addClass(this.domElement,ie.CLASS_AUTO_PLACE)),this.parent||p(n,o.width)),this.__resizeHandler=function(){n.onResizeDebounced()},z["default"].bind(window,"resize",this.__resizeHandler),z["default"].bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),z["default"].bind(this.__ul,"transitionend",this.__resizeHandler),z["default"].bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),o.resizable&&_(this),a=function(){q&&"true"===localStorage.getItem(u(n,"isLocal"))&&localStorage.setItem(u(n,"gui"),JSON.stringify(n.getSaveObject()))},this.saveToLocalStorageIfPossible=a,o.parent||t()};oe.toggleHide=function(){te=!te,U["default"].each(ne,function(e){e.domElement.style.display=te?"none":""})},oe.CLASS_AUTO_PLACE="a",oe.CLASS_AUTO_PLACE_CONTAINER="ac",oe.CLASS_MAIN="main",oe.CLASS_CONTROLLER_ROW="cr",oe.CLASS_TOO_TALL="taller-than-window",oe.CLASS_CLOSED="closed",oe.CLASS_CLOSE_BUTTON="close-button",oe.CLASS_DRAG="drag",oe.DEFAULT_WIDTH=245,oe.TEXT_CLOSED="Close Controls",oe.TEXT_OPEN="Open Controls",oe._keydownHandler=function(e){"text"===document.activeElement.type||e.which!==J&&e.keyCode!==J||oe.toggleHide()},z["default"].bind(window,"keydown",oe._keydownHandler,!1),U["default"].extend(oe.prototype,{add:function(e,t){return s(this,e,t,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(e,t){return s(this,e,t,{color:!0})},remove:function(e){this.__ul.removeChild(e.__li),this.__controllers.splice(this.__controllers.indexOf(e),1);var t=this;U["default"].defer(function(){t.onResize()})},destroy:function(){this.autoPlace&&ee.removeChild(this.domElement),z["default"].unbind(window,"keydown",oe._keydownHandler,!1),z["default"].unbind(window,"resize",this.__resizeHandler),this.saveToLocalStorageIfPossible&&z["default"].unbind(window,"unload",this.saveToLocalStorageIfPossible)},addFolder:function(e){if(void 0!==this.__folders[e])throw new Error('You already have a folder in this GUI by the name "'+e+'"');var t={name:e,parent:this};t.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[e]&&(t.closed=this.load.folders[e].closed,t.load=this.load.folders[e]);var n=new oe(t);this.__folders[e]=n;var o=i(this,n.domElement);return z["default"].addClass(o,"folder"),n},open:function(){this.closed=!1},close:function(){this.closed=!0},onResize:function(){var e=this.getRoot();if(e.scrollable){var t=z["default"].getOffset(e.__ul).top,n=0;U["default"].each(e.__ul.childNodes,function(t){e.autoPlace&&t===e.__save_row||(n+=z["default"].getHeight(t))}),window.innerHeight-t-W<n?(z["default"].addClass(e.domElement,oe.CLASS_TOO_TALL),e.__ul.style.height=window.innerHeight-t-W+"px"):(z["default"].removeClass(e.domElement,oe.CLASS_TOO_TALL),e.__ul.style.height="auto")}e.__resize_handle&&U["default"].defer(function(){e.__resize_handle.style.height=e.__ul.offsetHeight+"px"}),e.__closeButton&&(e.__closeButton.style.width=e.width+"px")},onResizeDebounced:U["default"].debounce(function(){this.onResize()},200),remember:function(){if(U["default"].isUndefined(Z)&&(Z=new F["default"],Z.domElement.innerHTML=x["default"]),this.parent)throw new Error("You can only call remember on a top level GUI.");var e=this;U["default"].each(Array.prototype.slice.call(arguments),function(t){0===e.__rememberedObjects.length&&f(e),e.__rememberedObjects.indexOf(t)===-1&&e.__rememberedObjects.push(t)}),this.autoPlace&&p(this,this.width)},getRoot:function(){for(var e=this;e.parent;)e=e.parent;return e},getSaveObject:function(){var e=this.load;return e.closed=this.closed,this.__rememberedObjects.length>0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=h(this)),e.folders={},U["default"].each(this.__folders,function(t,n){e.folders[n]=t.getSaveObject()}),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=h(this),r(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[Q]=h(this,!0)),this.load.remembered[e]=h(this),this.preset=e,d(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){U["default"].each(this.__controllers,function(t){this.getRoot().load.remembered?l(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())},this),U["default"].each(this.__folders,function(e){e.revert(e)}),e||r(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&b(this.__listening)},updateDisplay:function(){U["default"].each(this.__controllers,function(e){e.updateDisplay()}),U["default"].each(this.__folders,function(e){e.updateDisplay()})}}),e.exports=oe},function(e,t){"use strict";e.exports={load:function(e,t){var n=t||document,o=n.createElement("link");o.type="text/css",o.rel="stylesheet",o.href=e,n.getElementsByTagName("head")[0].appendChild(o)},inject:function(e,t){var n=t||document,o=document.createElement("style");o.type="text/css",o.innerHTML=e;var i=n.getElementsByTagName("head")[0];try{i.appendChild(o)}catch(r){}}}},function(e,t){e.exports="<div id=dg-save class=\"dg dialogue\"> Here's the new load parameter for your <code>GUI</code>'s constructor: <textarea id=dg-new-constructor></textarea> <div id=dg-save-locally> <input id=dg-local-storage type=checkbox /> Automatically save values to <code>localStorage</code> on exit. <div id=dg-local-explain>The values saved to <code>localStorage</code> will override those passed to <code>dat.GUI</code>'s constructor. This makes it easier to work incrementally, but <code>localStorage</code> is fragile, and your friends may not see the same values you do. </div> </div> </div>"},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var i=n(10),r=o(i),a=n(13),l=o(a),s=n(14),u=o(s),d=n(11),c=o(d),f=n(15),_=o(f),p=n(8),h=o(p),m=n(5),b=o(m),g=function(e,t){var n=e[t];return b["default"].isArray(arguments[2])||b["default"].isObject(arguments[2])?new r["default"](e,t,arguments[2]):b["default"].isNumber(n)?b["default"].isNumber(arguments[2])&&b["default"].isNumber(arguments[3])?b["default"].isNumber(arguments[4])?new u["default"](e,t,arguments[2],arguments[3],arguments[4]):new u["default"](e,t,arguments[2],arguments[3]):b["default"].isNumber(arguments[4])?new l["default"](e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new l["default"](e,t,{min:arguments[2],max:arguments[3]}):b["default"].isString(n)?new c["default"](e,t):b["default"].isFunction(n)?new _["default"](e,t,""):b["default"].isBoolean(n)?new h["default"](e,t):null};t["default"]=g},function(e,t){"use strict";function n(e){setTimeout(e,1e3/60)}t.__esModule=!0,t["default"]=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||n},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var r=n(9),a=o(r),l=n(5),s=o(l),u=function(){function e(){i(this,e),this.backgroundElement=document.createElement("div"),s["default"].extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),a["default"].makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),s["default"].extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var t=this;a["default"].bind(this.backgroundElement,"click",function(){t.hide()})}return e.prototype.show=function(){var e=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),s["default"].defer(function(){e.backgroundElement.style.opacity=1,e.domElement.style.opacity=1,e.domElement.style.webkitTransform="scale(1)"})},e.prototype.hide=function t(){var e=this,t=function n(){e.domElement.style.display="none",e.backgroundElement.style.display="none",a["default"].unbind(e.domElement,"webkitTransitionEnd",n),a["default"].unbind(e.domElement,"transitionend",n),a["default"].unbind(e.domElement,"oTransitionEnd",n)};a["default"].bind(this.domElement,"webkitTransitionEnd",t),a["default"].bind(this.domElement,"transitionend",t),a["default"].bind(this.domElement,"oTransitionEnd",t),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"},e.prototype.layout=function(){this.domElement.style.left=window.innerWidth/2-a["default"].getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-a["default"].getHeight(this.domElement)/2+"px"},e}();t["default"]=u},function(e,t,n){t=e.exports=n(24)(),t.push([e.id,".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1!important}.dg.main .close-button.drag,.dg.main:hover .close-button{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;transition:opacity .1s linear;border:0;position:absolute;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-x:hidden}.dg.a.has-save>ul{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{position:fixed;top:0;z-index:1002}.dg li{-webkit-transition:height .1s ease-out;transition:height .1s ease-out}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;overflow:hidden;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid transparent}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .c{float:left;width:60%}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:9px}.dg .c select{margin-top:5px}.dg .cr.boolean,.dg .cr.boolean *,.dg .cr.function,.dg .cr.function *,.dg .cr.function .property-name{cursor:pointer}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco,monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px Lucida Grande,sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid hsla(0,0%,100%,.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2fa1d6}.dg .cr.number input[type=text]{color:#2fa1d6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.boolean:hover,.dg .cr.function:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2fa1d6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}",""])},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},i=0;i<this.length;i++){var r=this[i][0];"number"==typeof r&&(o[r]=!0)}for(i=0;i<t.length;i++){var a=t[i];"number"==typeof a[0]&&o[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}}])});
/*
* @author zz85 / https://github.com/zz85
* @author mrdoob / http://mrdoob.com
* Running this will allow you to drag three.js objects around the screen.
*/
THREE.DragControls = function ( _objects, _camera, _domElement ) {
if ( _objects instanceof THREE.Camera ) {
console.warn( 'THREE.DragControls: Constructor now expects ( objects, camera, domElement )' );
var temp = _objects; _objects = _camera; _camera = temp;
}
var _plane = new THREE.Plane();
var _raycaster = new THREE.Raycaster();
var _mouse = new THREE.Vector2();
var _offset = new THREE.Vector3();
var _intersection = new THREE.Vector3();
var _selected = null, _hovered = null;
//
var scope = this;
function activate() {
_domElement.addEventListener( 'mousemove', onDocumentMouseMove, false );
_domElement.addEventListener( 'mousedown', onDocumentMouseDown, false );
_domElement.addEventListener( 'mouseup', onDocumentMouseCancel, false );
_domElement.addEventListener( 'mouseleave', onDocumentMouseCancel, false );
_domElement.addEventListener( 'touchmove', onDocumentTouchMove, false );
_domElement.addEventListener( 'touchstart', onDocumentTouchStart, false );
_domElement.addEventListener( 'touchend', onDocumentTouchEnd, false );
}
function deactivate() {
_domElement.removeEventListener( 'mousemove', onDocumentMouseMove, false );
_domElement.removeEventListener( 'mousedown', onDocumentMouseDown, false );
_domElement.removeEventListener( 'mouseup', onDocumentMouseCancel, false );
_domElement.removeEventListener( 'mouseleave', onDocumentMouseCancel, false );
_domElement.removeEventListener( 'touchmove', onDocumentTouchMove, false );
_domElement.removeEventListener( 'touchstart', onDocumentTouchStart, false );
_domElement.removeEventListener( 'touchend', onDocumentTouchEnd, false );
}
function dispose() {
deactivate();
}
function onDocumentMouseMove( event ) {
event.preventDefault();
var rect = _domElement.getBoundingClientRect();
_mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1;
_mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1;
_raycaster.setFromCamera( _mouse, _camera );
if ( _selected && scope.enabled ) {
if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
_selected.position.copy( _intersection.sub( _offset ) );
}
scope.dispatchEvent( { type: 'drag', object: _selected } );
return;
}
_raycaster.setFromCamera( _mouse, _camera );
var intersects = _raycaster.intersectObjects( _objects );
if ( intersects.length > 0 ) {
var object = intersects[ 0 ].object;
_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), object.position );
if ( _hovered !== object ) {
scope.dispatchEvent( { type: 'hoveron', object: object } );
_domElement.style.cursor = 'pointer';
_hovered = object;
}
} else {
if ( _hovered !== null ) {
scope.dispatchEvent( { type: 'hoveroff', object: _hovered } );
_domElement.style.cursor = 'auto';
_hovered = null;
}
}
}
function onDocumentMouseDown( event ) {
event.preventDefault();
_raycaster.setFromCamera( _mouse, _camera );
var intersects = _raycaster.intersectObjects( _objects );
if ( intersects.length > 0 ) {
_selected = intersects[ 0 ].object;
if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
_offset.copy( _intersection ).sub( _selected.position );
}
_domElement.style.cursor = 'move';
scope.dispatchEvent( { type: 'dragstart', object: _selected } );
}
}
function onDocumentMouseCancel( event ) {
event.preventDefault();
if ( _selected ) {
scope.dispatchEvent( { type: 'dragend', object: _selected } );
_selected = null;
}
_domElement.style.cursor = 'auto';
}
function onDocumentTouchMove( event ) {
event.preventDefault();
event = event.changedTouches[ 0 ];
var rect = _domElement.getBoundingClientRect();
_mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1;
_mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1;
_raycaster.setFromCamera( _mouse, _camera );
if ( _selected && scope.enabled ) {
if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
_selected.position.copy( _intersection.sub( _offset ) );
}
scope.dispatchEvent( { type: 'drag', object: _selected } );
return;
}
}
function onDocumentTouchStart( event ) {
event.preventDefault();
event = event.changedTouches[ 0 ];
var rect = _domElement.getBoundingClientRect();
_mouse.x = ( ( event.clientX - rect.left ) / rect.width ) * 2 - 1;
_mouse.y = - ( ( event.clientY - rect.top ) / rect.height ) * 2 + 1;
_raycaster.setFromCamera( _mouse, _camera );
var intersects = _raycaster.intersectObjects( _objects );
if ( intersects.length > 0 ) {
_selected = intersects[ 0 ].object;
_plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _selected.position );
if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
_offset.copy( _intersection ).sub( _selected.position );
}
_domElement.style.cursor = 'move';
scope.dispatchEvent( { type: 'dragstart', object: _selected } );
}
}
function onDocumentTouchEnd( event ) {
event.preventDefault();
if ( _selected ) {
scope.dispatchEvent( { type: 'dragend', object: _selected } );
_selected = null;
}
_domElement.style.cursor = 'auto';
}
activate();
// API
this.enabled = true;
this.activate = activate;
this.deactivate = deactivate;
this.dispose = dispose;
// Backward compatibility
this.setObjects = function () {
console.error( 'THREE.DragControls: setObjects() has been removed.' );
};
this.on = function ( type, listener ) {
console.warn( 'THREE.DragControls: on() has been deprecated. Use addEventListener() instead.' );
scope.addEventListener( type, listener );
};
this.off = function ( type, listener ) {
console.warn( 'THREE.DragControls: off() has been deprecated. Use removeEventListener() instead.' );
scope.removeEventListener( type, listener );
};
this.notify = function ( type ) {
console.error( 'THREE.DragControls: notify() has been deprecated. Use dispatchEvent() instead.' );
scope.dispatchEvent( { type: type } );
};
};
THREE.DragControls.prototype = Object.create( THREE.EventDispatcher.prototype );
THREE.DragControls.prototype.constructor = THREE.DragControls;
<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js webgl - geometry - bend editor</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
font-family: Monospace;
background-color: #f0f0f0;
margin: 0px;
overflow: hidden;
}
#info {
position: absolute;
top: 0px;
width: 100%;
padding: 5px;
font-family:Monospace;
font-size:13px;
text-align:center;
}
</style>
</head>
<body>
<div id="container"></div>
<div id="info"><a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> - geometry - bend editor</div>
<script src="three.js"></script>
<script src="DragControls.js"></script>
<script src="OrbitControls.js"></script>
<script src="TransformControls.js"></script>
<script src="OBJLoader.js"></script>
<script src="stats.min.js"></script>
<script src="dat.gui.min.js"></script>
<script>
String.prototype.format = function () {
var str = this;
for ( var i = 0; i < arguments.length; i ++ ) {
str = str.replace( '{' + i + '}', arguments[ i ] );
}
return str;
};
var container, stats;
var camera, scene, renderer;
var splineHelperObjects = [], splineOutline;
var splinePointsLength = 4;
var positions = [];
var options;
var geometry = new THREE.BoxGeometry( 20, 20, 20 );
var transformControl;
var ARC_SEGMENTS = 200;
var splineMesh;
var splines = {};
var params = {
uniform: false,
tension: 0.5,
centripetal: true,
chordal: false,
addPoint: addPoint,
removePoint: removePoint,
exportSpline: exportSpline
};
init();
animate();
function init() {
container = document.getElementById( 'container' );
scene = new THREE.Scene();
scene.background = new THREE.Color( 0xf0f0f0 );
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set( 0, 250, 1000 );
scene.add( camera );
scene.add( new THREE.AmbientLight( 0xf0f0f0 ) );
var light = new THREE.SpotLight( 0xffffff, 1.5 );
light.position.set( 0, 1500, 200 );
light.castShadow = true;
light.shadow = new THREE.LightShadow( new THREE.PerspectiveCamera( 70, 1, 200, 2000 ) );
light.shadow.bias = -0.000222;
light.shadow.mapSize.width = 1024;
light.shadow.mapSize.height = 1024;
scene.add( light );
spotlight = light;
var planeGeometry = new THREE.PlaneGeometry( 2000, 2000 );
planeGeometry.rotateX( - Math.PI / 2 );
var planeMaterial = new THREE.ShadowMaterial( { opacity: 0.2 } );
var plane = new THREE.Mesh( planeGeometry, planeMaterial );
plane.position.y = -200;
plane.receiveShadow = true;
scene.add( plane );
var helper = new THREE.GridHelper( 2000, 100 );
helper.position.y = - 199;
helper.material.opacity = 0.25;
helper.material.transparent = true;
scene.add( helper );
//var axes = new THREE.AxesHelper( 1000 );
//axes.position.set( - 500, - 500, - 500 );
//scene.add( axes );
renderer = new THREE.WebGLRenderer( { antialias: false } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.shadowMap.enabled = true;
container.appendChild( renderer.domElement );
stats = new Stats();
container.appendChild( stats.dom );
var gui = new dat.GUI();
// gui.add( params, 'uniform' );
// gui.add( params, 'tension', 0, 1 ).step( 0.01 ).onChange( function( value ) {
// splines.uniform.tension = value;
// splines.centripetal.tension = value;
// updateSplineOutline();
// });
// gui.add( params, 'centripetal' );
// gui.add( params, 'chordal' );
gui.add( params, 'addPoint' );
gui.add( params, 'removePoint' );
gui.add( params, 'exportSpline' );
gui.open();
// Controls
var controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.damping = 0.2;
controls.addEventListener( 'change', render );
controls.addEventListener( 'start', function() {
cancelHideTransorm();
} );
controls.addEventListener( 'end', function() {
delayHideTransform();
} );
transformControl = new THREE.TransformControls( camera, renderer.domElement );
transformControl.addEventListener( 'change', render );
scene.add( transformControl );
// Hiding transform situation is a little in a mess :()
transformControl.addEventListener( 'change', function( e ) {
cancelHideTransorm();
} );
transformControl.addEventListener( 'mouseDown', function( e ) {
cancelHideTransorm();
} );
transformControl.addEventListener( 'mouseUp', function( e ) {
delayHideTransform();
} );
transformControl.addEventListener( 'objectChange', function( e ) {
updateSplineOutline();
} );
var dragcontrols = new THREE.DragControls( splineHelperObjects, camera, renderer.domElement ); //
dragcontrols.enabled = false;
dragcontrols.addEventListener( 'hoveron', function ( event ) {
transformControl.attach( event.object );
cancelHideTransorm();
} );
dragcontrols.addEventListener( 'hoveroff', function ( event ) {
delayHideTransform();
} );
var hiding;
function delayHideTransform() {
cancelHideTransorm();
hideTransform();
}
function hideTransform() {
hiding = setTimeout( function() {
transformControl.detach( transformControl.object );
}, 2500 )
}
function cancelHideTransorm() {
if ( hiding ) clearTimeout( hiding );
}
/*******
* Curves
*********/
for ( var i = 0; i < splinePointsLength; i ++ ) {
addSplineObject( positions[ i ] );
}
positions = [];
for ( var i = 0; i < splinePointsLength; i ++ ) {
positions.push( splineHelperObjects[ i ].position );
}
var geometry = new THREE.Geometry();
for ( var i = 0; i < ARC_SEGMENTS; i ++ ) {
geometry.vertices.push( new THREE.Vector3() );
}
THREE.CatmullRomCurve3.prototype.computeFrenetFrames = function ( segments, closed ) {
// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf
var normal = new THREE.Vector3();
var tangents = [];
var normals = [];
var binormals = [];
var vec = new THREE.Vector3();
var mat = new THREE.Matrix4();
var i, u, theta;
// compute the tangent vectors for each segment on the curve
for ( i = 0; i <= segments; i ++ ) {
u = i / segments;
tangents[ i ] = this.getTangentAt( u );
tangents[ i ].normalize();
}
// select an initial normal vector perpendicular to the first tangent vector,
// and in the direction of the minimum tangent xyz component
normals[ 0 ] = new THREE.Vector3();
binormals[ 0 ] = new THREE.Vector3();
var min = Number.MAX_VALUE;
var tx = Math.abs( tangents[ 0 ].x );
var ty = Math.abs( tangents[ 0 ].y );
var tz = Math.abs( tangents[ 0 ].z );
/**/
if ( tx <= min ) {
min = tx;
normal.set( 1, 0, 0 );
}
if ( ty <= min ) {
min = ty;
normal.set( 0, 1, 0 );
}
if ( tz <= min ) {
normal.set( 0, 0, 1 );
}
// console.log(normal);
vec.crossVectors( tangents[ 0 ], normal ).normalize();
normals[ 0 ].crossVectors( tangents[ 0 ], vec );
binormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );
// binormals[ 0 ].set(0, 0, 1);
// normals[ 0 ].crossVectors(tangents[ 0 ], binormals[ 0 ]).normalize();
// compute the slowly-varying normal and binormal vectors for each segment on the curve
for ( i = 1; i <= segments; i ++ ) {
normals[ i ] = normals[ i - 1 ].clone();
binormals[ i ] = binormals[ i - 1 ].clone();
vec.crossVectors( tangents[ i - 1 ], tangents[ i ] );
if ( vec.length() > Number.EPSILON ) {
vec.normalize();
theta = Math.acos( THREE.Math.clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors
normals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );
}
binormals[ i ].crossVectors( tangents[ i ], normals[ i ] );
}
// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same
if ( closed === true ) {
theta = Math.acos( THREE.Math.clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );
theta /= segments;
if ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {
theta = - theta;
}
for ( i = 1; i <= segments; i ++ ) {
// twist a little...
normals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );
binormals[ i ].crossVectors( tangents[ i ], normals[ i ] );
}
}
return {
tangents: tangents,
normals: normals,
binormals: binormals
};
}
var curve = new THREE.CatmullRomCurve3( positions );
curve.curveType = 'catmullrom';
curve.mesh = new THREE.Line( geometry.clone(), new THREE.LineBasicMaterial( {
color: 0xff0000,
opacity: 0.35,
linewidth: 2
} ) );
curve.mesh.castShadow = true;
splines.uniform = curve;
curve = new THREE.CatmullRomCurve3( positions );
curve.curveType = 'centripetal';
curve.mesh = new THREE.Line( geometry.clone(), new THREE.LineBasicMaterial( {
color: 0x00ff00,
opacity: 0.35,
linewidth: 2
} ) );
curve.mesh.castShadow = true;
splines.centripetal = curve;
curve = new THREE.CatmullRomCurve3( positions );
curve.curveType = 'chordal';
curve.mesh = new THREE.Line( geometry.clone(), new THREE.LineBasicMaterial( {
color: 0x0000ff,
opacity: 0.35,
linewidth: 2
} ) );
curve.mesh.castShadow = true;
splines.chordal = curve;
for ( var k in splines ) {
var spline = splines[ k ];
scene.add( spline.mesh );
}
load( [ new THREE.Vector3( -150, 0, 0 ),
new THREE.Vector3( -50, 0, 0 ),
new THREE.Vector3( 50, 0, 0 ),
new THREE.Vector3( 150, 0, 0 ) ] );
initFish()
}
function initTexture() {
const width = 256;
const height = 4;
const dataArray = new Float32Array( width * height * 3 );
const dataTexture = new THREE.DataTexture(
dataArray, width, height, THREE.RGBFormat, THREE.FloatType
);
dataTexture.needsUpdate = true;
return dataTexture;
}
function setTextureValue(index, x, y, z, o) {
const image = texture.image;
const { width, height, data } = image;
const i = 3 * width * (o || 0);
data[index * 3 + i + 0] = x;
data[index * 3 + i + 1] = y;
data[index * 3 + i + 2] = z;
}
function initFish() {
// TODO Texture Loading + Load Manager
// customMaterial = new THREE.MeshBasicMaterial({
// wireframe: true,
// color: 0x000000
// });
if ( ! renderer.extensions.get( "OES_texture_float" ) ) {
console.log("No OES_texture_float support for float textures.");
}
if ( renderer.capabilities.maxVertexTextures === 0 ) {
console.log("No support for vertex shader textures.");
}
texture = initTexture();
/*
for (var i = 0; i < 256; i++) {
setTextureValue(i, i / 256 * 1, 0, 0)
}
texture.needsUpdate = true;
//
orca.children[0].geometry.computeBoundingBox()
bb = orca.children[0].geometry.boundingBox
bb.max.z - bb.min.z
*/
customMaterial = new THREE.ShaderMaterial({
wireframe: true,
uniforms: {
texture: { value: texture }
},
vertexShader: `
uniform sampler2D texture;
void main() {
float tz = 1. - (position.z + 6.) / 10.;
float textureLayers = 4.;
// (i + 0.5) / textureLayers
vec3 spline_pos = texture2D(texture, vec2(tz, (0.5) / textureLayers)).xyz;
vec3 a = texture2D(texture, vec2(tz, (1. + 0.5) / textureLayers)).xyz;
vec3 b = texture2D(texture, vec2(tz, (2. + 0.5) / textureLayers)).xyz;
vec3 c = texture2D(texture, vec2(tz, (3. + 0.5) / textureLayers)).xyz;
mat3 basis = mat3(a, b, c);
vec4 worldPos = modelMatrix * vec4(position, 1.);
worldPos = vec4(
basis *
vec3(worldPos.x * 0., worldPos.y * 1., worldPos.z * 1.)
// vec3(worldPos.x, worldPos.y, worldPos.z)
+ spline_pos
, 1.);
vec4 mvPosition = viewMatrix * worldPos;
gl_Position = projectionMatrix * mvPosition;
}
`,
fragmentShader: `
void main() {
gl_FragColor.rgb = vec3(0.);
}
`
})
var loader = new THREE.OBJLoader();
// load a resource
loader.load(
// resource URL
'ORCA.OBJ',
// called when resource is loaded
function onLoad( object ) {
window.orca = object;
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.scale.multiplyScalar(50);
child.position.y = 100;
child.rotation.y = -Math.PI / 2;
child.material = customMaterial
// child.material.map = texture;
// child.material.color = 0x000000;
// child.material.wireframe = true;
// TODO add shader material?
}
} );
// -3, 6
// orca.children[0].geometry.attributes.position.array
// -0.59 2.42
// orca.children.splice(0, 1)
// orca.children.splice(2, 1)
// orca.children.splice(1, 1)
orca.children[0].geometry.computeBoundingBox()
console.log(orca.children[0].geometry.boundingBox);
scene.add( object );
},
// called when loading is in progresses
function onProgress( xhr ) {
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
},
// called when loading has errors
function onError( error ) {
console.log( 'An error happened' );
}
);
}
/****************************/
function updateSplineTexture() {
if (!window.texture) return;
var POINTS = 256;
// uniform chordal centripetal
var points = splines.centripetal.getSpacedPoints(POINTS - 1);
// getPoints() - unequal arc lengths
var frenetFrames = splines.centripetal.computeFrenetFrames(POINTS - 1);
// console.log(frenetFrames);
// console.log('points', points);
for (var i = 0; i < POINTS; i++) {
var pt = points[i];
setTextureValue(i, pt.x, pt.y, pt.z, 0);
pt = frenetFrames.tangents[i];
setTextureValue(i, pt.x, pt.y, pt.z, 1);
pt = frenetFrames.normals[i];
setTextureValue(i, pt.x, pt.y, pt.z, 2);
pt = frenetFrames.binormals[i];
setTextureValue(i, pt.x, pt.y, pt.z, 3);
}
texture.needsUpdate = true;
}
function addSplineObject( position ) {
var material = new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } );
var object = new THREE.Mesh( geometry, material );
if ( position ) {
object.position.copy( position );
} else {
object.position.x = Math.random() * 1000 - 500;
object.position.y = Math.random() * 600;
object.position.z = Math.random() * 800 - 400;
}
object.castShadow = true;
object.receiveShadow = true;
scene.add( object );
splineHelperObjects.push( object );
return object;
}
function addPoint() {
splinePointsLength ++;
positions.push( addSplineObject().position );
updateSplineOutline();
}
function removePoint() {
if ( splinePointsLength <= 4 ) {
return;
}
splinePointsLength --;
positions.pop();
scene.remove( splineHelperObjects.pop() );
updateSplineOutline();
}
function updateSplineOutline() {
for ( var k in splines ) {
var spline = splines[ k ];
splineMesh = spline.mesh;
for ( var i = 0; i < ARC_SEGMENTS; i ++ ) {
var p = splineMesh.geometry.vertices[ i ];
var t = i / ( ARC_SEGMENTS - 1 );
spline.getPoint( t, p );
}
splineMesh.geometry.verticesNeedUpdate = true;
updateSplineTexture();
}
}
function exportSpline() {
var strplace = [];
for ( var i = 0; i < splinePointsLength; i ++ ) {
var p = splineHelperObjects[ i ].position;
strplace.push( 'new THREE.Vector3({0}, {1}, {2})'.format( p.x, p.y, p.z ) )
}
console.log( strplace.join( ',\n' ) );
var code = '[' + ( strplace.join( ',\n\t' ) ) + ']';
prompt( 'copy and paste code', code );
}
function load( new_positions ) {
while ( new_positions.length > positions.length ) {
addPoint();
}
while ( new_positions.length < positions.length ) {
removePoint();
}
for ( var i = 0; i < positions.length; i ++ ) {
positions[ i ].copy( new_positions[ i ] );
}
updateSplineOutline();
}
function animate() {
requestAnimationFrame( animate );
render();
stats.update();
transformControl.update();
}
function render() {
splines.uniform.mesh.visible = params.uniform;
splines.centripetal.mesh.visible = params.centripetal;
splines.chordal.mesh.visible = params.chordal;
renderer.render( scene, camera );
}
</script>
</body>
</html>
/**
* @author mrdoob / http://mrdoob.com/
*/
THREE.OBJLoader = ( function () {
// o object_name | g group_name
var object_pattern = /^[og]\s*(.+)?/;
// mtllib file_reference
var material_library_pattern = /^mtllib /;
// usemtl material_name
var material_use_pattern = /^usemtl /;
function ParserState() {
var state = {
objects: [],
object: {},
vertices: [],
normals: [],
colors: [],
uvs: [],
materialLibraries: [],
startObject: function ( name, fromDeclaration ) {
// If the current object (initial from reset) is not from a g/o declaration in the parsed
// file. We need to use it for the first parsed g/o to keep things in sync.
if ( this.object && this.object.fromDeclaration === false ) {
this.object.name = name;
this.object.fromDeclaration = ( fromDeclaration !== false );
return;
}
var previousMaterial = ( this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined );
if ( this.object && typeof this.object._finalize === 'function' ) {
this.object._finalize( true );
}
this.object = {
name: name || '',
fromDeclaration: ( fromDeclaration !== false ),
geometry: {
vertices: [],
normals: [],
colors: [],
uvs: []
},
materials: [],
smooth: true,
startMaterial: function ( name, libraries ) {
var previous = this._finalize( false );
// New usemtl declaration overwrites an inherited material, except if faces were declared
// after the material, then it must be preserved for proper MultiMaterial continuation.
if ( previous && ( previous.inherited || previous.groupCount <= 0 ) ) {
this.materials.splice( previous.index, 1 );
}
var material = {
index: this.materials.length,
name: name || '',
mtllib: ( Array.isArray( libraries ) && libraries.length > 0 ? libraries[ libraries.length - 1 ] : '' ),
smooth: ( previous !== undefined ? previous.smooth : this.smooth ),
groupStart: ( previous !== undefined ? previous.groupEnd : 0 ),
groupEnd: - 1,
groupCount: - 1,
inherited: false,
clone: function ( index ) {
var cloned = {
index: ( typeof index === 'number' ? index : this.index ),
name: this.name,
mtllib: this.mtllib,
smooth: this.smooth,
groupStart: 0,
groupEnd: - 1,
groupCount: - 1,
inherited: false
};
cloned.clone = this.clone.bind( cloned );
return cloned;
}
};
this.materials.push( material );
return material;
},
currentMaterial: function () {
if ( this.materials.length > 0 ) {
return this.materials[ this.materials.length - 1 ];
}
return undefined;
},
_finalize: function ( end ) {
var lastMultiMaterial = this.currentMaterial();
if ( lastMultiMaterial && lastMultiMaterial.groupEnd === - 1 ) {
lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;
lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;
lastMultiMaterial.inherited = false;
}
// Ignore objects tail materials if no face declarations followed them before a new o/g started.
if ( end && this.materials.length > 1 ) {
for ( var mi = this.materials.length - 1; mi >= 0; mi -- ) {
if ( this.materials[ mi ].groupCount <= 0 ) {
this.materials.splice( mi, 1 );
}
}
}
// Guarantee at least one empty material, this makes the creation later more straight forward.
if ( end && this.materials.length === 0 ) {
this.materials.push( {
name: '',
smooth: this.smooth
} );
}
return lastMultiMaterial;
}
};
// Inherit previous objects material.
// Spec tells us that a declared material must be set to all objects until a new material is declared.
// If a usemtl declaration is encountered while this new object is being parsed, it will
// overwrite the inherited material. Exception being that there was already face declarations
// to the inherited material, then it will be preserved for proper MultiMaterial continuation.
if ( previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function' ) {
var declared = previousMaterial.clone( 0 );
declared.inherited = true;
this.object.materials.push( declared );
}
this.objects.push( this.object );
},
finalize: function () {
if ( this.object && typeof this.object._finalize === 'function' ) {
this.object._finalize( true );
}
},
parseVertexIndex: function ( value, len ) {
var index = parseInt( value, 10 );
return ( index >= 0 ? index - 1 : index + len / 3 ) * 3;
},
parseNormalIndex: function ( value, len ) {
var index = parseInt( value, 10 );
return ( index >= 0 ? index - 1 : index + len / 3 ) * 3;
},
parseUVIndex: function ( value, len ) {
var index = parseInt( value, 10 );
return ( index >= 0 ? index - 1 : index + len / 2 ) * 2;
},
addVertex: function ( a, b, c ) {
var src = this.vertices;
var dst = this.object.geometry.vertices;
dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );
dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );
dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );
},
addVertexPoint: function ( a ) {
var src = this.vertices;
var dst = this.object.geometry.vertices;
dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );
},
addVertexLine: function ( a ) {
var src = this.vertices;
var dst = this.object.geometry.vertices;
dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );
},
addNormal: function ( a, b, c ) {
var src = this.normals;
var dst = this.object.geometry.normals;
dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );
dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );
dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );
},
addColor: function ( a, b, c ) {
var src = this.colors;
var dst = this.object.geometry.colors;
dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );
dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );
dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );
},
addUV: function ( a, b, c ) {
var src = this.uvs;
var dst = this.object.geometry.uvs;
dst.push( src[ a + 0 ], src[ a + 1 ] );
dst.push( src[ b + 0 ], src[ b + 1 ] );
dst.push( src[ c + 0 ], src[ c + 1 ] );
},
addUVLine: function ( a ) {
var src = this.uvs;
var dst = this.object.geometry.uvs;
dst.push( src[ a + 0 ], src[ a + 1 ] );
},
addFace: function ( a, b, c, ua, ub, uc, na, nb, nc ) {
var vLen = this.vertices.length;
var ia = this.parseVertexIndex( a, vLen );
var ib = this.parseVertexIndex( b, vLen );
var ic = this.parseVertexIndex( c, vLen );
this.addVertex( ia, ib, ic );
if ( ua !== undefined && ua !== '' ) {
var uvLen = this.uvs.length;
ia = this.parseUVIndex( ua, uvLen );
ib = this.parseUVIndex( ub, uvLen );
ic = this.parseUVIndex( uc, uvLen );
this.addUV( ia, ib, ic );
}
if ( na !== undefined && na !== '' ) {
// Normals are many times the same. If so, skip function call and parseInt.
var nLen = this.normals.length;
ia = this.parseNormalIndex( na, nLen );
ib = na === nb ? ia : this.parseNormalIndex( nb, nLen );
ic = na === nc ? ia : this.parseNormalIndex( nc, nLen );
this.addNormal( ia, ib, ic );
}
if ( this.colors.length > 0 ) {
this.addColor( ia, ib, ic );
}
},
addPointGeometry: function ( vertices ) {
this.object.geometry.type = 'Points';
var vLen = this.vertices.length;
for ( var vi = 0, l = vertices.length; vi < l; vi ++ ) {
this.addVertexPoint( this.parseVertexIndex( vertices[ vi ], vLen ) );
}
},
addLineGeometry: function ( vertices, uvs ) {
this.object.geometry.type = 'Line';
var vLen = this.vertices.length;
var uvLen = this.uvs.length;
for ( var vi = 0, l = vertices.length; vi < l; vi ++ ) {
this.addVertexLine( this.parseVertexIndex( vertices[ vi ], vLen ) );
}
for ( var uvi = 0, l = uvs.length; uvi < l; uvi ++ ) {
this.addUVLine( this.parseUVIndex( uvs[ uvi ], uvLen ) );
}
}
};
state.startObject( '', false );
return state;
}
//
function OBJLoader( manager ) {
this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
this.materials = null;
}
OBJLoader.prototype = {
constructor: OBJLoader,
load: function ( url, onLoad, onProgress, onError ) {
var scope = this;
var loader = new THREE.FileLoader( scope.manager );
loader.setPath( this.path );
loader.load( url, function ( text ) {
onLoad( scope.parse( text ) );
}, onProgress, onError );
},
setPath: function ( value ) {
this.path = value;
},
setMaterials: function ( materials ) {
this.materials = materials;
return this;
},
parse: function ( text ) {
console.time( 'OBJLoader' );
var state = new ParserState();
if ( text.indexOf( '\r\n' ) !== - 1 ) {
// This is faster than String.split with regex that splits on both
text = text.replace( /\r\n/g, '\n' );
}
if ( text.indexOf( '\\\n' ) !== - 1 ) {
// join lines separated by a line continuation character (\)
text = text.replace( /\\\n/g, '' );
}
var lines = text.split( '\n' );
var line = '', lineFirstChar = '';
var lineLength = 0;
var result = [];
// Faster to just trim left side of the line. Use if available.
var trimLeft = ( typeof ''.trimLeft === 'function' );
for ( var i = 0, l = lines.length; i < l; i ++ ) {
line = lines[ i ];
line = trimLeft ? line.trimLeft() : line.trim();
lineLength = line.length;
if ( lineLength === 0 ) continue;
lineFirstChar = line.charAt( 0 );
// @todo invoke passed in handler if any
if ( lineFirstChar === '#' ) continue;
if ( lineFirstChar === 'v' ) {
var data = line.split( /\s+/ );
switch ( data[ 0 ] ) {
case 'v':
state.vertices.push(
parseFloat( data[ 1 ] ),
parseFloat( data[ 2 ] ),
parseFloat( data[ 3 ] )
);
if ( data.length === 8 ) {
state.colors.push(
parseFloat( data[ 4 ] ),
parseFloat( data[ 5 ] ),
parseFloat( data[ 6 ] )
);
}
break;
case 'vn':
state.normals.push(
parseFloat( data[ 1 ] ),
parseFloat( data[ 2 ] ),
parseFloat( data[ 3 ] )
);
break;
case 'vt':
state.uvs.push(
parseFloat( data[ 1 ] ),
parseFloat( data[ 2 ] )
);
break;
}
} else if ( lineFirstChar === 'f' ) {
var lineData = line.substr( 1 ).trim();
var vertexData = lineData.split( /\s+/ );
var faceVertices = [];
// Parse the face vertex data into an easy to work with format
for ( var j = 0, jl = vertexData.length; j < jl; j ++ ) {
var vertex = vertexData[ j ];
if ( vertex.length > 0 ) {
var vertexParts = vertex.split( '/' );
faceVertices.push( vertexParts );
}
}
// Draw an edge between the first vertex and all subsequent vertices to form an n-gon
var v1 = faceVertices[ 0 ];
for ( var j = 1, jl = faceVertices.length - 1; j < jl; j ++ ) {
var v2 = faceVertices[ j ];
var v3 = faceVertices[ j + 1 ];
state.addFace(
v1[ 0 ], v2[ 0 ], v3[ 0 ],
v1[ 1 ], v2[ 1 ], v3[ 1 ],
v1[ 2 ], v2[ 2 ], v3[ 2 ]
);
}
} else if ( lineFirstChar === 'l' ) {
var lineParts = line.substring( 1 ).trim().split( " " );
var lineVertices = [], lineUVs = [];
if ( line.indexOf( "/" ) === - 1 ) {
lineVertices = lineParts;
} else {
for ( var li = 0, llen = lineParts.length; li < llen; li ++ ) {
var parts = lineParts[ li ].split( "/" );
if ( parts[ 0 ] !== "" ) lineVertices.push( parts[ 0 ] );
if ( parts[ 1 ] !== "" ) lineUVs.push( parts[ 1 ] );
}
}
state.addLineGeometry( lineVertices, lineUVs );
} else if ( lineFirstChar === 'p' ) {
var lineData = line.substr( 1 ).trim();
var pointData = lineData.split( " " );
state.addPointGeometry( pointData );
} else if ( ( result = object_pattern.exec( line ) ) !== null ) {
// o object_name
// or
// g group_name
// WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869
// var name = result[ 0 ].substr( 1 ).trim();
var name = ( " " + result[ 0 ].substr( 1 ).trim() ).substr( 1 );
state.startObject( name );
} else if ( material_use_pattern.test( line ) ) {
// material
state.object.startMaterial( line.substring( 7 ).trim(), state.materialLibraries );
} else if ( material_library_pattern.test( line ) ) {
// mtl file
state.materialLibraries.push( line.substring( 7 ).trim() );
} else if ( lineFirstChar === 's' ) {
result = line.split( ' ' );
// smooth shading
// @todo Handle files that have varying smooth values for a set of faces inside one geometry,
// but does not define a usemtl for each face set.
// This should be detected and a dummy material created (later MultiMaterial and geometry groups).
// This requires some care to not create extra material on each smooth value for "normal" obj files.
// where explicit usemtl defines geometry groups.
// Example asset: examples/models/obj/cerberus/Cerberus.obj
/*
* http://paulbourke.net/dataformats/obj/
* or
* http://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf
*
* From chapter "Grouping" Syntax explanation "s group_number":
* "group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.
* Polygonal elements use group numbers to put elements in different smoothing groups. For free-form
* surfaces, smoothing groups are either turned on or off; there is no difference between values greater
* than 0."
*/
if ( result.length > 1 ) {
var value = result[ 1 ].trim().toLowerCase();
state.object.smooth = ( value !== '0' && value !== 'off' );
} else {
// ZBrush can produce "s" lines #11707
state.object.smooth = true;
}
var material = state.object.currentMaterial();
if ( material ) material.smooth = state.object.smooth;
} else {
// Handle null terminated files without exception
if ( line === '\0' ) continue;
throw new Error( 'THREE.OBJLoader: Unexpected line: "' + line + '"' );
}
}
state.finalize();
var container = new THREE.Group();
container.materialLibraries = [].concat( state.materialLibraries );
for ( var i = 0, l = state.objects.length; i < l; i ++ ) {
var object = state.objects[ i ];
var geometry = object.geometry;
var materials = object.materials;
var isLine = ( geometry.type === 'Line' );
var isPoints = ( geometry.type === 'Points' );
var hasVertexColors = false;
// Skip o/g line declarations that did not follow with any faces
if ( geometry.vertices.length === 0 ) continue;
var buffergeometry = new THREE.BufferGeometry();
buffergeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( geometry.vertices, 3 ) );
if ( geometry.normals.length > 0 ) {
buffergeometry.addAttribute( 'normal', new THREE.Float32BufferAttribute( geometry.normals, 3 ) );
} else {
buffergeometry.computeVertexNormals();
}
if ( geometry.colors.length > 0 ) {
hasVertexColors = true;
buffergeometry.addAttribute( 'color', new THREE.Float32BufferAttribute( geometry.colors, 3 ) );
}
if ( geometry.uvs.length > 0 ) {
buffergeometry.addAttribute( 'uv', new THREE.Float32BufferAttribute( geometry.uvs, 2 ) );
}
// Create materials
var createdMaterials = [];
for ( var mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {
var sourceMaterial = materials[ mi ];
var material = undefined;
if ( this.materials !== null ) {
material = this.materials.create( sourceMaterial.name );
// mtl etc. loaders probably can't create line materials correctly, copy properties to a line material.
if ( isLine && material && ! ( material instanceof THREE.LineBasicMaterial ) ) {
var materialLine = new THREE.LineBasicMaterial();
materialLine.copy( material );
materialLine.lights = false; // TOFIX
material = materialLine;
} else if ( isPoints && material && ! ( material instanceof THREE.PointsMaterial ) ) {
var materialPoints = new THREE.PointsMaterial( { size: 10, sizeAttenuation: false } );
materialLine.copy( material );
material = materialPoints;
}
}
if ( ! material ) {
if ( isLine ) {
material = new THREE.LineBasicMaterial();
} else if ( isPoints ) {
material = new THREE.PointsMaterial( { size: 1, sizeAttenuation: false } );
} else {
material = new THREE.MeshPhongMaterial();
}
material.name = sourceMaterial.name;
}
material.flatShading = sourceMaterial.smooth ? false : true;
material.vertexColors = hasVertexColors ? THREE.VertexColors : THREE.NoColors;
createdMaterials.push( material );
}
// Create mesh
var mesh;
if ( createdMaterials.length > 1 ) {
for ( var mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {
var sourceMaterial = materials[ mi ];
buffergeometry.addGroup( sourceMaterial.groupStart, sourceMaterial.groupCount, mi );
}
if ( isLine ) {
mesh = new THREE.LineSegments( buffergeometry, createdMaterials );
} else if ( isPoints ) {
mesh = new THREE.Points( buffergeometry, createdMaterials );
} else {
mesh = new THREE.Mesh( buffergeometry, createdMaterials );
}
} else {
if ( isLine ) {
mesh = new THREE.LineSegments( buffergeometry, createdMaterials[ 0 ] );
} else if ( isPoints ) {
mesh = new THREE.Points( buffergeometry, createdMaterials[ 0 ] );
} else {
mesh = new THREE.Mesh( buffergeometry, createdMaterials[ 0 ] );
}
}
mesh.name = object.name;
container.add( mesh );
}
console.timeEnd( 'OBJLoader' );
return container;
}
};
return OBJLoader;
} )();
/**
* @author qiao / https://github.com/qiao
* @author mrdoob / http://mrdoob.com
* @author alteredq / http://alteredqualia.com/
* @author WestLangley / http://github.com/WestLangley
* @author erich666 / http://erichaines.com
*/
// This set of controls performs orbiting, dollying (zooming), and panning.
// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
//
// Orbit - left mouse / touch: one finger move
// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish
// Pan - right mouse, or arrow keys / touch: three finger swipe
THREE.OrbitControls = function ( object, domElement ) {
this.object = object;
this.domElement = ( domElement !== undefined ) ? domElement : document;
// Set to false to disable this control
this.enabled = true;
// "target" sets the location of focus, where the object orbits around
this.target = new THREE.Vector3();
// How far you can dolly in and out ( PerspectiveCamera only )
this.minDistance = 0;
this.maxDistance = Infinity;
// How far you can zoom in and out ( OrthographicCamera only )
this.minZoom = 0;
this.maxZoom = Infinity;
// How far you can orbit vertically, upper and lower limits.
// Range is 0 to Math.PI radians.
this.minPolarAngle = 0; // radians
this.maxPolarAngle = Math.PI; // radians
// How far you can orbit horizontally, upper and lower limits.
// If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ].
this.minAzimuthAngle = - Infinity; // radians
this.maxAzimuthAngle = Infinity; // radians
// Set to true to enable damping (inertia)
// If damping is enabled, you must call controls.update() in your animation loop
this.enableDamping = false;
this.dampingFactor = 0.25;
// This option actually enables dollying in and out; left as "zoom" for backwards compatibility.
// Set to false to disable zooming
this.enableZoom = true;
this.zoomSpeed = 1.0;
// Set to false to disable rotating
this.enableRotate = true;
this.rotateSpeed = 1.0;
// Set to false to disable panning
this.enablePan = true;
this.panningMode = THREE.ScreenSpacePanning; // alternate THREE.HorizontalPanning
this.keyPanSpeed = 7.0; // pixels moved per arrow key push
// Set to true to automatically rotate around the target
// If auto-rotate is enabled, you must call controls.update() in your animation loop
this.autoRotate = false;
this.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60
// Set to false to disable use of the keys
this.enableKeys = true;
// The four arrow keys
this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 };
// Mouse buttons
this.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT };
// for reset
this.target0 = this.target.clone();
this.position0 = this.object.position.clone();
this.zoom0 = this.object.zoom;
//
// public methods
//
this.getPolarAngle = function () {
return spherical.phi;
};
this.getAzimuthalAngle = function () {
return spherical.theta;
};
this.saveState = function () {
scope.target0.copy( scope.target );
scope.position0.copy( scope.object.position );
scope.zoom0 = scope.object.zoom;
};
this.reset = function () {
scope.target.copy( scope.target0 );
scope.object.position.copy( scope.position0 );
scope.object.zoom = scope.zoom0;
scope.object.updateProjectionMatrix();
scope.dispatchEvent( changeEvent );
scope.update();
state = STATE.NONE;
};
// this method is exposed, but perhaps it would be better if we can make it private...
this.update = function () {
var offset = new THREE.Vector3();
// so camera.up is the orbit axis
var quat = new THREE.Quaternion().setFromUnitVectors( object.up, new THREE.Vector3( 0, 1, 0 ) );
var quatInverse = quat.clone().inverse();
var lastPosition = new THREE.Vector3();
var lastQuaternion = new THREE.Quaternion();
return function update() {
var position = scope.object.position;
offset.copy( position ).sub( scope.target );
// rotate offset to "y-axis-is-up" space
offset.applyQuaternion( quat );
// angle from z-axis around y-axis
spherical.setFromVector3( offset );
if ( scope.autoRotate && state === STATE.NONE ) {
rotateLeft( getAutoRotationAngle() );
}
spherical.theta += sphericalDelta.theta;
spherical.phi += sphericalDelta.phi;
// restrict theta to be between desired limits
spherical.theta = Math.max( scope.minAzimuthAngle, Math.min( scope.maxAzimuthAngle, spherical.theta ) );
// restrict phi to be between desired limits
spherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) );
spherical.makeSafe();
spherical.radius *= scale;
// restrict radius to be between desired limits
spherical.radius = Math.max( scope.minDistance, Math.min( scope.maxDistance, spherical.radius ) );
// move target to panned location
scope.target.add( panOffset );
offset.setFromSpherical( spherical );
// rotate offset back to "camera-up-vector-is-up" space
offset.applyQuaternion( quatInverse );
position.copy( scope.target ).add( offset );
scope.object.lookAt( scope.target );
if ( scope.enableDamping === true ) {
sphericalDelta.theta *= ( 1 - scope.dampingFactor );
sphericalDelta.phi *= ( 1 - scope.dampingFactor );
} else {
sphericalDelta.set( 0, 0, 0 );
}
scale = 1;
panOffset.set( 0, 0, 0 );
// update condition is:
// min(camera displacement, camera rotation in radians)^2 > EPS
// using small-angle approximation cos(x/2) = 1 - x^2 / 8
if ( zoomChanged ||
lastPosition.distanceToSquared( scope.object.position ) > EPS ||
8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) {
scope.dispatchEvent( changeEvent );
lastPosition.copy( scope.object.position );
lastQuaternion.copy( scope.object.quaternion );
zoomChanged = false;
return true;
}
return false;
};
}();
this.dispose = function () {
scope.domElement.removeEventListener( 'contextmenu', onContextMenu, false );
scope.domElement.removeEventListener( 'mousedown', onMouseDown, false );
scope.domElement.removeEventListener( 'wheel', onMouseWheel, false );
scope.domElement.removeEventListener( 'touchstart', onTouchStart, false );
scope.domElement.removeEventListener( 'touchend', onTouchEnd, false );
scope.domElement.removeEventListener( 'touchmove', onTouchMove, false );
document.removeEventListener( 'mousemove', onMouseMove, false );
document.removeEventListener( 'mouseup', onMouseUp, false );
window.removeEventListener( 'keydown', onKeyDown, false );
//scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?
};
//
// internals
//
var scope = this;
var changeEvent = { type: 'change' };
var startEvent = { type: 'start' };
var endEvent = { type: 'end' };
var STATE = { NONE: - 1, ROTATE: 0, DOLLY: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_DOLLY: 4, TOUCH_PAN: 5 };
var state = STATE.NONE;
var EPS = 0.000001;
// current position in spherical coordinates
var spherical = new THREE.Spherical();
var sphericalDelta = new THREE.Spherical();
var scale = 1;
var panOffset = new THREE.Vector3();
var zoomChanged = false;
var rotateStart = new THREE.Vector2();
var rotateEnd = new THREE.Vector2();
var rotateDelta = new THREE.Vector2();
var panStart = new THREE.Vector2();
var panEnd = new THREE.Vector2();
var panDelta = new THREE.Vector2();
var dollyStart = new THREE.Vector2();
var dollyEnd = new THREE.Vector2();
var dollyDelta = new THREE.Vector2();
function getAutoRotationAngle() {
return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;
}
function getZoomScale() {
return Math.pow( 0.95, scope.zoomSpeed );
}
function rotateLeft( angle ) {
sphericalDelta.theta -= angle;
}
function rotateUp( angle ) {
sphericalDelta.phi -= angle;
}
var panLeft = function () {
var v = new THREE.Vector3();
return function panLeft( distance, objectMatrix ) {
v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix
v.multiplyScalar( - distance );
panOffset.add( v );
};
}();
var panUp = function () {
var v = new THREE.Vector3();
return function panUp( distance, objectMatrix ) {
switch ( scope.panningMode ) {
case THREE.ScreenSpacePanning:
v.setFromMatrixColumn( objectMatrix, 1 );
break;
case THREE.HorizontalPanning:
v.setFromMatrixColumn( objectMatrix, 0 );
v.crossVectors( scope.object.up, v );
break;
}
v.multiplyScalar( distance );
panOffset.add( v );
};
}();
// deltaX and deltaY are in pixels; right and down are positive
var pan = function () {
var offset = new THREE.Vector3();
return function pan( deltaX, deltaY ) {
var element = scope.domElement === document ? scope.domElement.body : scope.domElement;
if ( scope.object.isPerspectiveCamera ) {
// perspective
var position = scope.object.position;
offset.copy( position ).sub( scope.target );
var targetDistance = offset.length();
// half of the fov is center to top of screen
targetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 );
// we actually don't use screenWidth, since perspective camera is fixed to screen height
panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix );
panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix );
} else if ( scope.object.isOrthographicCamera ) {
// orthographic
panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix );
panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix );
} else {
// camera neither orthographic nor perspective
console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );
scope.enablePan = false;
}
};
}();
function dollyIn( dollyScale ) {
if ( scope.object.isPerspectiveCamera ) {
scale /= dollyScale;
} else if ( scope.object.isOrthographicCamera ) {
scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom * dollyScale ) );
scope.object.updateProjectionMatrix();
zoomChanged = true;
} else {
console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );
scope.enableZoom = false;
}
}
function dollyOut( dollyScale ) {
if ( scope.object.isPerspectiveCamera ) {
scale *= dollyScale;
} else if ( scope.object.isOrthographicCamera ) {
scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / dollyScale ) );
scope.object.updateProjectionMatrix();
zoomChanged = true;
} else {
console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );
scope.enableZoom = false;
}
}
//
// event callbacks - update the object state
//
function handleMouseDownRotate( event ) {
//console.log( 'handleMouseDownRotate' );
rotateStart.set( event.clientX, event.clientY );
}
function handleMouseDownDolly( event ) {
//console.log( 'handleMouseDownDolly' );
dollyStart.set( event.clientX, event.clientY );
}
function handleMouseDownPan( event ) {
//console.log( 'handleMouseDownPan' );
panStart.set( event.clientX, event.clientY );
}
function handleMouseMoveRotate( event ) {
//console.log( 'handleMouseMoveRotate' );
rotateEnd.set( event.clientX, event.clientY );
rotateDelta.subVectors( rotateEnd, rotateStart );
var element = scope.domElement === document ? scope.domElement.body : scope.domElement;
// rotating across whole screen goes 360 degrees around
rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );
// rotating up and down along whole screen attempts to go 360, but limited to 180
rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed );
rotateStart.copy( rotateEnd );
scope.update();
}
function handleMouseMoveDolly( event ) {
//console.log( 'handleMouseMoveDolly' );
dollyEnd.set( event.clientX, event.clientY );
dollyDelta.subVectors( dollyEnd, dollyStart );
if ( dollyDelta.y > 0 ) {
dollyIn( getZoomScale() );
} else if ( dollyDelta.y < 0 ) {
dollyOut( getZoomScale() );
}
dollyStart.copy( dollyEnd );
scope.update();
}
function handleMouseMovePan( event ) {
//console.log( 'handleMouseMovePan' );
panEnd.set( event.clientX, event.clientY );
panDelta.subVectors( panEnd, panStart );
pan( panDelta.x, panDelta.y );
panStart.copy( panEnd );
scope.update();
}
function handleMouseUp( event ) {
// console.log( 'handleMouseUp' );
}
function handleMouseWheel( event ) {
// console.log( 'handleMouseWheel' );
if ( event.deltaY < 0 ) {
dollyOut( getZoomScale() );
} else if ( event.deltaY > 0 ) {
dollyIn( getZoomScale() );
}
scope.update();
}
function handleKeyDown( event ) {
//console.log( 'handleKeyDown' );
switch ( event.keyCode ) {
case scope.keys.UP:
pan( 0, scope.keyPanSpeed );
scope.update();
break;
case scope.keys.BOTTOM:
pan( 0, - scope.keyPanSpeed );
scope.update();
break;
case scope.keys.LEFT:
pan( scope.keyPanSpeed, 0 );
scope.update();
break;
case scope.keys.RIGHT:
pan( - scope.keyPanSpeed, 0 );
scope.update();
break;
}
}
function handleTouchStartRotate( event ) {
//console.log( 'handleTouchStartRotate' );
rotateStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
}
function handleTouchStartDolly( event ) {
//console.log( 'handleTouchStartDolly' );
var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
var distance = Math.sqrt( dx * dx + dy * dy );
dollyStart.set( 0, distance );
}
function handleTouchStartPan( event ) {
//console.log( 'handleTouchStartPan' );
panStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
}
function handleTouchMoveRotate( event ) {
//console.log( 'handleTouchMoveRotate' );
rotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
rotateDelta.subVectors( rotateEnd, rotateStart );
var element = scope.domElement === document ? scope.domElement.body : scope.domElement;
// rotating across whole screen goes 360 degrees around
rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );
// rotating up and down along whole screen attempts to go 360, but limited to 180
rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed );
rotateStart.copy( rotateEnd );
scope.update();
}
function handleTouchMoveDolly( event ) {
//console.log( 'handleTouchMoveDolly' );
var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
var distance = Math.sqrt( dx * dx + dy * dy );
dollyEnd.set( 0, distance );
dollyDelta.subVectors( dollyEnd, dollyStart );
if ( dollyDelta.y > 0 ) {
dollyOut( getZoomScale() );
} else if ( dollyDelta.y < 0 ) {
dollyIn( getZoomScale() );
}
dollyStart.copy( dollyEnd );
scope.update();
}
function handleTouchMovePan( event ) {
//console.log( 'handleTouchMovePan' );
panEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
panDelta.subVectors( panEnd, panStart );
pan( panDelta.x, panDelta.y );
panStart.copy( panEnd );
scope.update();
}
function handleTouchEnd( event ) {
//console.log( 'handleTouchEnd' );
}
//
// event handlers - FSM: listen for events and reset state
//
function onMouseDown( event ) {
if ( scope.enabled === false ) return;
event.preventDefault();
switch ( event.button ) {
case scope.mouseButtons.ORBIT:
if ( scope.enableRotate === false ) return;
handleMouseDownRotate( event );
state = STATE.ROTATE;
break;
case scope.mouseButtons.ZOOM:
if ( scope.enableZoom === false ) return;
handleMouseDownDolly( event );
state = STATE.DOLLY;
break;
case scope.mouseButtons.PAN:
if ( scope.enablePan === false ) return;
handleMouseDownPan( event );
state = STATE.PAN;
break;
}
if ( state !== STATE.NONE ) {
document.addEventListener( 'mousemove', onMouseMove, false );
document.addEventListener( 'mouseup', onMouseUp, false );
scope.dispatchEvent( startEvent );
}
}
function onMouseMove( event ) {
if ( scope.enabled === false ) return;
event.preventDefault();
switch ( state ) {
case STATE.ROTATE:
if ( scope.enableRotate === false ) return;
handleMouseMoveRotate( event );
break;
case STATE.DOLLY:
if ( scope.enableZoom === false ) return;
handleMouseMoveDolly( event );
break;
case STATE.PAN:
if ( scope.enablePan === false ) return;
handleMouseMovePan( event );
break;
}
}
function onMouseUp( event ) {
if ( scope.enabled === false ) return;
handleMouseUp( event );
document.removeEventListener( 'mousemove', onMouseMove, false );
document.removeEventListener( 'mouseup', onMouseUp, false );
scope.dispatchEvent( endEvent );
state = STATE.NONE;
}
function onMouseWheel( event ) {
if ( scope.enabled === false || scope.enableZoom === false || ( state !== STATE.NONE && state !== STATE.ROTATE ) ) return;
event.preventDefault();
event.stopPropagation();
scope.dispatchEvent( startEvent );
handleMouseWheel( event );
scope.dispatchEvent( endEvent );
}
function onKeyDown( event ) {
if ( scope.enabled === false || scope.enableKeys === false || scope.enablePan === false ) return;
handleKeyDown( event );
}
function onTouchStart( event ) {
if ( scope.enabled === false ) return;
switch ( event.touches.length ) {
case 1: // one-fingered touch: rotate
if ( scope.enableRotate === false ) return;
handleTouchStartRotate( event );
state = STATE.TOUCH_ROTATE;
break;
case 2: // two-fingered touch: dolly
if ( scope.enableZoom === false ) return;
handleTouchStartDolly( event );
state = STATE.TOUCH_DOLLY;
break;
case 3: // three-fingered touch: pan
if ( scope.enablePan === false ) return;
handleTouchStartPan( event );
state = STATE.TOUCH_PAN;
break;
default:
state = STATE.NONE;
}
if ( state !== STATE.NONE ) {
scope.dispatchEvent( startEvent );
}
}
function onTouchMove( event ) {
if ( scope.enabled === false ) return;
event.preventDefault();
event.stopPropagation();
switch ( event.touches.length ) {
case 1: // one-fingered touch: rotate
if ( scope.enableRotate === false ) return;
if ( state !== STATE.TOUCH_ROTATE ) return; // is this needed?...
handleTouchMoveRotate( event );
break;
case 2: // two-fingered touch: dolly
if ( scope.enableZoom === false ) return;
if ( state !== STATE.TOUCH_DOLLY ) return; // is this needed?...
handleTouchMoveDolly( event );
break;
case 3: // three-fingered touch: pan
if ( scope.enablePan === false ) return;
if ( state !== STATE.TOUCH_PAN ) return; // is this needed?...
handleTouchMovePan( event );
break;
default:
state = STATE.NONE;
}
}
function onTouchEnd( event ) {
if ( scope.enabled === false ) return;
handleTouchEnd( event );
scope.dispatchEvent( endEvent );
state = STATE.NONE;
}
function onContextMenu( event ) {
if ( scope.enabled === false ) return;
event.preventDefault();
}
//
scope.domElement.addEventListener( 'contextmenu', onContextMenu, false );
scope.domElement.addEventListener( 'mousedown', onMouseDown, false );
scope.domElement.addEventListener( 'wheel', onMouseWheel, false );
scope.domElement.addEventListener( 'touchstart', onTouchStart, false );
scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
window.addEventListener( 'keydown', onKeyDown, false );
// force an update at start
this.update();
};
THREE.OrbitControls.prototype = Object.create( THREE.EventDispatcher.prototype );
THREE.OrbitControls.prototype.constructor = THREE.OrbitControls;
Object.defineProperties( THREE.OrbitControls.prototype, {
center: {
get: function () {
console.warn( 'THREE.OrbitControls: .center has been renamed to .target' );
return this.target;
}
},
// backward compatibility
noZoom: {
get: function () {
console.warn( 'THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.' );
return ! this.enableZoom;
},
set: function ( value ) {
console.warn( 'THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.' );
this.enableZoom = ! value;
}
},
noRotate: {
get: function () {
console.warn( 'THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.' );
return ! this.enableRotate;
},
set: function ( value ) {
console.warn( 'THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.' );
this.enableRotate = ! value;
}
},
noPan: {
get: function () {
console.warn( 'THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.' );
return ! this.enablePan;
},
set: function ( value ) {
console.warn( 'THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.' );
this.enablePan = ! value;
}
},
noKeys: {
get: function () {
console.warn( 'THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.' );
return ! this.enableKeys;
},
set: function ( value ) {
console.warn( 'THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.' );
this.enableKeys = ! value;
}
},
staticMoving: {
get: function () {
console.warn( 'THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.' );
return ! this.enableDamping;
},
set: function ( value ) {
console.warn( 'THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.' );
this.enableDamping = ! value;
}
},
dynamicDampingFactor: {
get: function () {
console.warn( 'THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.' );
return this.dampingFactor;
},
set: function ( value ) {
console.warn( 'THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.' );
this.dampingFactor = value;
}
}
} );
THREE.ScreenSpacePanning = 0;
THREE.HorizontalPanning = 1;
# H:\OBJECTS\obj\AQUATIC\orca
# Tue Aug 03 07:48:12 1999
#
# Translated by Viewpoint Interchange www.viewpoint.com
mtllib orca.mtl
# orca_lwo
g
v 0.584435 0.0510806 2.3874
v 0.590853 0.0491531 2.37211
v 0.590464 0.0542964 2.3722
v 0.589337 0.0591146 2.37369
v 0.587582 0.0631363 2.37644
v 0.585369 0.0659679 2.38019
v 0.582917 0.067332 2.38455
v 0.580464 0.0670949 2.38912
v 0.578251 0.0652796 2.39343
v 0.576495 0.0620637 2.39707
v 0.575367 0.0577621 2.39968
v 0.574979 0.0527958 2.40101
v 0.575367 0.0476512 2.40092
v 0.576495 0.0428321 2.39943
v 0.578251 0.0388104 2.39668
v 0.580464 0.0359797 2.39294
v 0.582917 0.034617 2.38857
v 0.585369 0.0348554 2.38401
v 0.587582 0.0366715 2.37969
v 0.589337 0.0398874 2.37605
v 0.590464 0.0441882 2.37344
v 0.593953 0.0470977 2.35581
v 0.593193 0.0571579 2.35598
v 0.590989 0.0665828 2.3589
v 0.587555 0.0744503 2.36428
v 0.583227 0.0799903 2.3716
v 0.578429 0.0826601 2.38014
v 0.57363 0.0821976 2.38907
v 0.5693 0.0786472 2.39751
v 0.565864 0.0723562 2.40463
v 0.563657 0.0639403 2.40974
v 0.562897 0.0542238 2.41234
v 0.563657 0.0441585 2.41217
v 0.565864 0.0347304 2.40925
v 0.5693 0.0268629 2.40387
v 0.57363 0.021326 2.39654
v 0.578429 0.0186614 2.388
v 0.583227 0.0191291 2.37907
v 0.587555 0.0226827 2.37064
v 0.590989 0.0289737 2.36352
v 0.593193 0.0373864 2.35841
v 0.593601 0.0450042 2.3392
v 0.592504 0.0595401 2.33945
v 0.589318 0.0731588 2.34367
v 0.584356 0.0845279 2.35145
v 0.578102 0.0925347 2.36202
v 0.571168 0.0963945 2.37437
v 0.564232 0.0957277 2.38727
v 0.557974 0.0905984 2.39946
v 0.553006 0.0815075 2.40975
v 0.549817 0.0693449 2.41714
v 0.548717 0.0553022 2.42089
v 0.549817 0.0407555 2.42065
v 0.553006 0.0271302 2.41643
v 0.557974 0.015761 2.40865
v 0.564232 0.00776091 2.39807
v 0.571168 0.00391202 2.38572
v 0.578102 0.0045894 2.37282
v 0.584356 0.00972547 2.36063
v 0.589318 0.0188164 2.35034
v 0.592504 0.0309723 2.34295
v 0.587914 0.042831 2.32196
v 0.586527 0.0612061 2.32227
v 0.582499 0.0784222 2.32761
v 0.576226 0.0927955 2.33744
v 0.568319 0.102919 2.35082
v 0.559551 0.107801 2.36643
v 0.55078 0.10696 2.38273
v 0.542866 0.100476 2.39815
v 0.536583 0.0889834 2.41116
v 0.532549 0.073606 2.4205
v 0.531159 0.055851 2.42525
v 0.532549 0.0374587 2.42494
v 0.536583 0.0202319 2.4196
v 0.542866 0.00585858 2.40977
v 0.55078 -0.00425448 2.39639
v 0.559551 -0.00911872 2.38078
v 0.568319 -0.00826057 2.36447
v 0.576226 -0.00176642 2.34905
v 0.582499 0.00972651 2.33604
v 0.586527 0.0250932 2.32671
v 0.580861 0.0409334 2.30691
v 0.579244 0.0623437 2.30727
v 0.574551 0.0824043 2.31349
v 0.567239 0.0991534 2.32495
v 0.558024 0.110951 2.34054
v 0.547805 0.116642 2.35872
v 0.537583 0.115664 2.37773
v 0.528358 0.10811 2.39569
v 0.521034 0.0947173 2.41086
v 0.516331 0.0767973 2.42174
v 0.514711 0.0561062 2.42727
v 0.516331 0.0346723 2.42691
v 0.521034 0.0145973 2.42069
v 0.528358 -0.00215179 2.40923
v 0.537583 -0.0139354 2.39364
v 0.547805 -0.0196021 2.37545
v 0.558024 -0.0186006 2.35645
v 0.567239 -0.0110322 2.33848
v 0.574551 0.00236015 2.32332
v 0.579244 0.0202655 2.31244
v 0.569875 -0.00695501 2.40125
v 0.559564 -0.00577714 2.43883
v 0.592371 -0.0581752 2.36347
v 0.564734 -0.060953 2.42397
v 0.571259 -0.0382292 2.40938
v 0.522207 -0.0165891 2.53264
v 0.559964 0.124802 2.46627
v 0.55531 0.021354 2.44969
v 0.559169 0.0483994 2.46413
v 0.541513 0.0128521 2.48813
v 0.545768 0.0852473 2.49233
v 0.569454 0.0737222 2.4496
v 0.559143 0.045049 2.44455
v 0.567589 0.0674537 2.43771
v 0.573576 0.0806181 2.42686
v 0.570922 0.0993746 2.45525
v 0.595641 0.110758 2.40146
v 0.589983 0.0982688 2.4029
v 0.577985 0.0958016 2.4398
v 0.637431 0.121772 2.26766
v 0.639615 0.148519 2.22392
v 0.614446 0.110574 2.34515
v 0.583094 0.118529 2.4306
v 0.621577 0.130475 2.31805
v 0.585062 0.165342 2.39916
v 0.57913 0.145019 2.42161
v 0.602183 0.143327 2.36734
v 0.607769 0.159604 2.33369
v 0.601534 0.097052 2.36436
v 0.623772 0.100329 2.32033
v 0.619842 0.0702514 2.32604
v 0.628901 0.0812537 2.31388
v 0.617742 0.0639944 2.32299
v 0.633654 0.103253 2.29213
v 0.634898 0.0531607 2.29088
v 0.625733 0.0268506 2.31106
v 0.618806 0.0440439 2.31738
v 0.630019 0.0738647 2.30148
v 0.610519 0.0887128 2.3374
v 0.626326 0.0901564 2.31858
v 0.616463 0.0786916 2.32962
v 0.55352 0.0183144 2.46414
v 0.557114 0.0103548 2.43587
v 0.580256 -0.153272 2.34755
v 0.58616 -0.0107067 2.37443
v 0.595764 -0.0203665 2.36848
v 0.592255 -0.0419411 2.36639
v 0.581303 -0.0252376 2.38913
v 0.606525 0.0129022 2.33703
v 0.595987 -0.00399764 2.35705
v 0.604008 -0.0154979 2.35106
v 0.664885 0.0614906 2.21883
v 0.643657 0.0948439 2.25725
v 0.653052 0.112206 2.2203
v 0.627624 0.00387138 2.31152
v 0.574319 0.0812393 2.39545
v 0.582591 0.0756475 2.3556
v 0.547723 0.0610607 2.37774
v 0.558031 0.0594205 2.35861
v 0.600477 0.0671599 2.33944
v 0.591956 0.0469904 2.33681
v 0.601511 0.0294956 2.33205
v 0.561422 0.0397121 2.34945
v 0.580764 0.0113038 2.35755
v 0.55569 0.0316542 2.3552
v 0.564721 0.00950537 2.37952
v 0.556477 0.0121819 2.40276
v 0.536049 0.0374456 2.3951
v 0.545603 0.0296195 2.37136
v 0.550865 0.0271736 2.4282
v 0.54939 0.0460794 2.41978
v 0.536242 0.0475622 2.39624
v 0.563222 0.0705013 2.40904
v 0.968847 0.131804 0.131883
v 1.01652 -0.17038 0.151924
v 0.888668 -0.193895 1.10316
v 0.903349 -0.0193066 0.811051
v 0.786445 0.322453 1.37347
v 0.71686 0.291279 1.77241
v 0.689209 0.422134 1.81539
v 0.292106 -0.110629 2.9831
v 0.385799 -0.208692 2.83488
v 0.403017 -0.11434 2.82264
v 0.234057 -0.107115 3.06579
v 0.234057 -0.109916 3.06593
v 0.310635 -0.178523 2.98538
v 0.211784 -0.0325983 3.10909
v 0.184307 -0.107584 3.12009
v 0.184307 -0.103837 3.11991
v 0.150102 -0.0359102 3.16859
v 0.308169 -0.0227553 2.99678
v 0.30356 -0.232084 2.95373
v 0.298173 -0.311421 2.87017
v 0.2252 -0.163147 3.09899
v 0.131104 -0.108196 3.16719
v 0.131104 -0.103627 3.16701
v 0.150093 -0.206039 3.12674
v 0.163949 -0.290955 3.01728
v 0 0.000160269 3.20863
v 0.0575064 -0.108535 3.19037
v 0.0575064 -0.103562 3.19019
v 0.142603 -0.159104 3.17298
v 0.0326464 -0.180349 3.20469
v 0.0736787 -0.229159 3.14409
v 0 -0.321243 3.06775
v 0 -0.241439 3.15674
v 0 -0.179112 3.2091
v 0.0633778 -0.295904 3.07503
v 0.204225 0.0378925 3.10031
v 0.158111 0.0455417 3.13538
v 0.126881 0.175891 3.0844
v 0.194796 0.103081 3.07684
v 0.0626144 -0.00241707 3.19343
v 0.0590355 0.125146 3.141
v 0 0.118899 3.15115
v 0.308495 0.0249088 2.95651
v 0.39743 -0.0269166 2.81047
v 0.257599 -0.445873 2.6687
v 0.240353 -0.373703 2.83377
v 0.127122 -0.467699 2.71388
v 0.08524 -0.379251 2.92899
v 0 -0.486929 2.71797
v 0 -0.40341 2.92291
v 0.379763 -0.315469 2.73518
v 0.263983 0.152444 2.99116
v 0.306138 0.0975592 2.94832
v 0.161681 0.266525 2.99872
v 0 0.263042 3.04271
v 0.866464 0.333896 0.592512
v 0.870827 0.378876 0.338024
v 0.908197 0.356679 0.097236
v 0.849524 0.517499 -0.00684248
v 0.882102 0.433286 -0.581813
v 0.956171 0.24509 -0.307485
v 0.944202 0.212851 -0.701552
v 0.988296 0.00618558 -0.563582
v 0.859123 0.408604 -1.03927
v 0.836077 0.366082 -1.44543
v 1.49448 -0.625643 -6.21214
v 1.30329 -0.621945 -5.82556
v 1.51372 -0.59245 -5.94209
v 1.593 -0.585248 -6.20749
v 1.52199 -0.605001 -6.35111
v 1.57438 -0.550501 -6.00421
v 1.36424 -0.548683 -5.54429
v 1.48005 -0.503179 -5.73479
v 1.30615 -0.446519 -5.38705
v 1.12765 -0.595409 -5.50381
v 0.92044 -0.552377 -5.30593
v 1.14262 -0.50069 -5.27801
v 0.965445 -0.461093 -5.16697
v 1.07987 -0.400414 -5.22026
v 0.93643 -0.364793 -5.13538
v 0.825884 -0.515521 -5.16997
v 0.679596 -0.471576 -5.02807
v 0.789629 -0.413574 -5.03623
v 0.716395 -0.304327 -4.98311
v 0.558217 -0.420018 -4.86773
v 0.651106 -0.367798 -4.91824
v 0.629877 -0.271979 -4.8938
v 0.577079 -0.237534 -4.80513
v 0.502653 -0.380215 -4.70143
v 0.567531 -0.327912 -4.7924
v 1.29368 -0.574369 -6.2298
v 1.00627 -0.539434 -6.16744
v 1.12014 -0.614704 -6.09043
v 0.773133 -0.575959 -6.06614
v 0.533812 -0.613118 -5.93181
v 0.918763 -0.631026 -5.859
v 0.776581 -0.616755 -5.61431
v 0.690839 -0.580821 -5.36241
v 0.690484 -0.547021 -5.20078
v 0.542195 -0.556874 -5.20003
v 0.582745 -0.510202 -5.05546
v 0.469442 -0.525509 -5.03835
v 0.421038 -0.497559 -4.87928
v 0.509554 -0.475783 -4.9162
v 0.431187 -0.441746 -4.68148
v 0.459996 -0.443309 -4.76268
v 0.403365 -0.638939 -5.80288
v 0.543936 -0.623619 -5.63149
v 0.364128 -0.619251 -5.51378
v 0.377591 -0.576697 -5.22274
v 0.296726 -0.559379 -5.01539
v 0.37559 -0.538956 -5.00171
v 0.278405 -0.536856 -4.77697
v 0.341446 -0.514424 -4.81107
v 0.348938 -0.586955 -5.96502
v 0.214152 -0.54804 -5.93507
v 0.289288 -0.619074 -5.84795
v 0.268488 -0.62311 -5.67723
v 0.16165 -0.607157 -5.49383
v 0.151448 -0.597113 -5.32571
v 0.260985 -0.617048 -5.50863
v 0.225705 -0.579901 -5.10008
v 0.107899 -0.510921 -5.85999
v 0 -0.464901 -5.7542
v 0.136978 -0.5745 -5.77311
v 0 -0.522428 -5.65172
v 0 -0.556408 -5.52785
v 0.13191 -0.597699 -5.61268
v 0 -0.576436 -5.38127
v 0.0643402 -0.58775 -5.42521
v 0 -0.59454 -5.14141
v 0.117787 -0.592609 -5.15687
v 0 -0.617408 -4.73268
v 0.114775 -0.592938 -4.99985
v 0.119135 -0.594014 -4.74365
v 0.326405 -0.486748 -4.26147
v 0.232064 -0.53835 -4.28555
v 0.44376 -0.373429 -4.19316
v 0.428758 -0.394909 -4.40957
v 0.382095 -0.443924 -4.29655
v 0.481728 -0.309128 -4.30466
v 0.50202 -0.254926 -4.37144
v 0.512924 -0.19867 -4.42639
v 0.513441 -0.100062 -4.39281
v 0.517404 -0.149659 -4.48532
v 0.519256 -0.159642 -4.30607
v 0.468273 -0.345438 -4.46852
v 0.501774 -0.277438 -4.46638
v 0.305157 -0.512534 -4.51918
v 0.37338 -0.469601 -4.59796
v 0.41158 -0.43603 -4.55586
v 0.455433 -0.396838 -4.55499
v 0.487986 -0.35876 -4.56474
v 0.527056 -0.246797 -4.52838
v 0.506111 -0.315024 -4.52798
v 0.224338 -0.56159 -4.82329
v 0.545531 -0.232927 -4.67551
v 0.530466 -0.306514 -4.65985
v 1.59162 -0.528468 -6.35225
v 1.53392 -0.495274 -5.99911
v 1.34371 -0.423944 -5.91908
v 1.17347 -0.349476 -5.60604
v 1.38808 -0.414267 -5.62901
v 1.16098 -0.358206 -5.36903
v 0.94511 -0.298047 -5.4471
v 0.96721 -0.317138 -5.26054
v 0.791094 -0.24927 -5.31313
v 0.794331 -0.269251 -5.14384
v 0.607168 -0.18552 -5.13069
v 0.616574 -0.213283 -4.97661
v 0.514644 -0.133319 -4.9694
v 0.859133 -0.468346 -6.05975
v 1.17965 -0.475042 -6.12098
v 1.05434 -0.382724 -5.87188
v 0.740606 -0.381801 -5.89406
v 0.644851 -0.308744 -5.7387
v 0.87936 -0.31874 -5.67273
v 0.746563 -0.269293 -5.53699
v 0.539341 -0.258362 -5.64065
v 0.652498 -0.215212 -5.38217
v 0.538468 -0.203735 -5.45291
v 0.481806 -0.159692 -5.32246
v 0.530734 -0.157416 -5.20654
v 0.472762 -0.114427 -5.07853
v 0.376774 -0.0359679 -5.04915
v 0.433945 -0.501525 -5.98141
v 0.603763 -0.495337 -6.00783
v 0.530764 -0.390013 -5.90461
v 0.315718 -0.373733 -5.91746
v 0.306706 -0.298546 -5.81533
v 0.500929 -0.307174 -5.78615
v 0.315318 -0.249669 -5.71331
v 0.437355 -0.198596 -5.51736
v 0.345143 -0.194562 -5.57012
v 0.382424 -0.134197 -5.36241
v 0.316546 -0.136221 -5.44932
v 0.423125 -0.115144 -5.22693
v 0.181523 -0.444069 -5.92974
v 0.297559 -0.476395 -5.97549
v 0.175987 -0.350643 -5.87445
v 0.134837 -0.277592 -5.79308
v 0.171743 -0.224459 -5.70877
v 0.258393 -0.190805 -5.6125
v 0.200932 -0.134223 -5.5479
v 0.157509 0.0784855 -5.18387
v 0.147308 -0.0663603 -5.47626
v 0 -0.385195 -5.79622
v 0.083995 -0.414135 -5.8599
v 0.0855675 -0.328408 -5.82961
v 0 -0.30636 -5.7908
v 0 -0.230064 -5.74739
v 0.0896736 -0.213445 -5.7111
v 0 -0.0220951 -5.47966
v 0 0.0508766 -5.35448
v 0.185947 0.196414 -4.85084
v 0 0.341867 -4.54813
v 0.0967809 0.107117 -5.17511
v 0.254085 0.26829 -4.55541
v 0.320661 0.221884 -4.53856
v 0.249837 0.165219 -4.84349
v 0.33614 0.0977531 -4.83854
v 0.31938 -0.0201731 -5.14477
v 0.42427 0.102917 -4.52412
v 0.375755 0.161795 -4.54206
v 0.444837 -0.0582941 -4.90023
v 0.448828 -0.0853381 -4.9985
v 0.494225 -0.0175767 -4.46262
v 0.461079 0.0453937 -4.50355
v 0.508351 -0.109844 -4.71856
v 0.473327 -0.0688423 -4.80355
v 0.53869 -0.156849 -4.86865
v 0.509475 -0.093207 -4.53
v 0.53276 -0.168842 -4.65241
v 0.546709 -0.174113 -4.78231
v 0.357327 0.982316 -1.78956
v 0.216914 1.03753 -1.88806
v 0.593631 0.750986 -1.71139
v 0.875955 0.173821 -1.47748
v 0.243257 0.00604625 -5.22266
v 0.149237 0.289583 -4.62924
v 0 0.155558 -5.11141
v 0.553123 0.171015 2.47419
v 0.475603 0.409556 2.45664
v 0.575812 0.345323 2.25697
v 0.537211 0.267135 2.42037
v 0.52518 0.383931 2.36377
v 0.439248 0.509479 2.42748
v 0.410462 0.44883 2.5428
v 0.401921 0.22547 2.72112
v 0.422338 0.316377 2.6422
v 0.292965 0.566301 2.55586
v 0.364532 0.534201 2.50571
v 0.215218 0.277232 2.93555
v 0.282339 0.28048 2.86469
v 0.29087 0.497788 2.64739
v 0.32523 0.186388 2.88064
v 0.34859 0.45155 2.64287
v 0.518982 0.653053 1.97717
v 0.51756 0.492811 2.25472
v 0.612809 0.545481 1.89683
v 0.601129 0.430639 2.09728
v 0.325231 0.620179 2.40256
v 0.380883 0.74323 2.0013
v 0.416112 0.613907 2.28899
v 0.200901 0.528578 2.66042
v 0 0.569755 2.62248
v 0.196825 0.587093 2.5661
v 0 0.498382 2.74793
v 0.169665 0.441316 2.8024
v 0.237883 0.669527 2.40083
v 0 0.745222 2.23083
v 0.267468 0.71348 2.19399
v 0 0.65443 2.45647
v 0.711081 0.183081 2.00763
v 0.649834 0.306862 2.04879
v 0.527706 0.0875074 2.52354
v 0.485659 0.132478 2.60541
v 0.491292 -0.065207 2.60311
v 0.683608 0.0575978 2.16793
v 0.690789 -0.0234808 2.14608
v 0.65269 -0.00322573 2.26414
v 0.455207 0.078758 2.70068
v 0.741547 -0.0735172 1.87909
v 0.124931 1.29379 -0.478566
v 0.191733 1.26937 -0.555055
v 0 1.41422 -0.503818
v 0.129523 1.22769 -0.305684
v 0 1.25226 -0.265366
v 0.304307 1.14452 -0.61533
v 0.218991 1.23375 -0.647273
v 0.304772 1.1236 -0.817436
v 0.196397 1.18877 -0.871869
v 0.359132 1.06085 -1.16739
v 0.315153 1.09899 -0.958604
v 0.123917 1.41778 -0.707911
v 0.0707885 1.44009 -0.611498
v 0 1.60085 -0.629891
v 0.185511 1.27031 -0.802121
v 0.123705 1.3117 -0.981686
v 0.25312 1.16649 -1.0925
v 0.056908 1.58682 -0.690081
v 0.0592814 2.05504 -0.950295
v 0.122881 1.50625 -0.854069
v 0.0486015 2.27672 -1.05294
v 0 2.17372 -0.963824
v 0.0893408 1.9781 -1.00678
v 0.10978 1.57581 -0.980766
v 0.085272 1.5547 -1.16873
v 0.0383895 2.48149 -1.15385
v 0.0305726 2.66132 -1.25006
v 0 2.56541 -1.16613
v 0.0546848 2.41952 -1.15601
v 0.0160262 2.83058 -1.42763
v 0 2.81859 -1.36463
v 0.0292962 2.70858 -1.3545
v 0.0260125 2.76413 -1.33987
v 0 1.28325 -1.56085
v 0 1.18839 -1.60379
v 0.0717108 1.26059 -1.5432
v 0 1.40764 -1.54251
v 0.0675397 1.36369 -1.51703
v 0.115654 1.23242 -1.53344
v 0.104011 1.16784 -1.58984
v 0.174764 1.12917 -1.59299
v 0.165993 1.20208 -1.50734
v 0.113426 1.32195 -1.48875
v 0.312489 1.07258 -1.422
v 0.138232 1.28173 -1.43838
v 0.270844 1.13267 -1.35365
v 0.298675 1.13915 -1.23586
v 0.0560451 1.49257 -1.51984
v 0.0569921 1.66291 -1.48074
v 0 1.62627 -1.54021
v 0.105002 1.42637 -1.46597
v 0.0938441 1.60719 -1.4083
v 0.121809 1.48025 -1.38593
v 0.173691 1.26294 -1.25233
v 0.16182 1.37166 -1.24208
v 0 1.96978 -1.50848
v 0.0856401 1.75359 -1.39851
v 0.0584934 1.92792 -1.44702
v 0.0714139 1.98876 -1.34149
v 0.109635 1.69177 -1.34328
v 0.114073 1.66309 -1.24351
v 0.115597 1.48311 -1.25196
v 0.159915 1.34068 -1.15531
v 0.0244641 2.53947 -1.49703
v 0.0777302 2.0128 -1.25496
v 0.112577 1.45835 -1.14789
v 0 2.60833 -1.53517
v 0 2.73688 -1.55807
v 0.016646 2.6214 -1.40219
v 0 2.83587 -1.52698
v 0 2.80412 -1.54979
v 0.0555631 1.98136 -1.12329
v 0 2.85242 -1.47577
v 0.842661 -0.333906 -1.39652
v 0.916094 -0.184582 -1.3247
v 0.912125 -0.0182498 -1.43382
v 0.681311 0.64295 -1.57534
v 0.716258 0.626009 -1.3344
v 0.760402 0.519116 -1.5303
v 0 -0.754715 -0.836209
v 0.142546 1.10031 -1.75163
v 0.384709 0.991295 -1.53449
v 0.491473 0.883839 -1.68293
v 0.56256 0.887541 -0.973669
v 0.664517 0.741725 -1.11164
v 0.747374 0.670122 -0.883753
v 0.563471 0.821539 -1.42252
v 0.469861 0.985272 -0.850153
v 0.527099 0.97608 -0.511358
v 0.707004 0.777972 -0.412505
v 0.662735 0.805746 -0.814862
v 0.617904 0.884164 -0.505631
v 0.531078 0.968963 -0.145629
v 0.716406 0.766339 -0.0987674
v 0.634869 0.870645 -0.156203
v 0.412158 1.05359 -0.0948713
v 0.307519 1.14872 -0.48055
v 0.370898 1.00876 0.322783
v 0.53062 0.91463 0.152709
v 0.253637 1.17016 -0.340574
v 0.8931 -0.59354 1.12235
v 0.889288 -0.61263 1.03853
v 0.765325 -0.648618 0.256263
v 0.706135 -0.70142 0.439002
v 0.809352 -0.645858 0.390004
v 0.857799 -0.656729 0.59566
v 0.877214 -0.543779 1.22693
v 0.806175 -0.524652 1.333
v 1.01255 -0.509147 1.18206
v 2.20652 -0.914461 0.287239
v 2.18797 -0.935901 0.370124
v 2.13628 -0.876587 0.332694
v 2.20716 -0.905268 0.238542
v 2.02616 -0.821431 0.371796
v 1.97189 -0.87749 0.5688
v 1.49565 -0.733389 0.913352
v 1.74474 -0.81951 0.747829
v 1.54219 -0.691553 0.793404
v 1.13385 -0.553641 1.1109
v 1.31087 -0.599407 0.969952
v 1.00881 -0.416098 1.10084
v 1.08319 -0.469457 1.07075
v 2.09995 -0.765745 0.101695
v 1.59493 -0.63893 0.533282
v 1.38802 -0.577771 0.789833
v 0.998652 -0.340452 0.985983
v 1.06515 -0.382503 0.949012
v 1.31143 -0.508231 0.732233
v 1.09555 -0.369038 0.85367
v 1.22204 -0.41302 0.516919
v 1.42869 -0.547021 0.0853371
v 1.35143 -0.494928 0.128401
v 1.21228 -0.480014 0.106317
v 1.27576 -0.530429 0.0913908
v 1.5026 -0.594172 0.0625506
v 1.0836 -0.460375 0.0683214
v 1.15334 -0.425111 0.130654
v 1.0679 -0.389122 0.108719
v 1.21947 -0.398597 0.23794
v 1.07486 -0.2948 0.149629
v 1.18876 -0.402209 0.163115
v 1.07589 -0.354068 0.125725
v 1.13349 -0.343417 0.287946
v 1.03907 -0.24446 0.383719
v 1.09392 -0.305248 0.434141
v 1.15958 -0.364445 0.503999
v 1.05838 -0.282373 0.587182
v 1.88246 -0.678752 -0.00783716
v 1.82528 -0.6411 0.0142583
v 1.73007 -0.647101 0.012271
v 1.90652 -0.711602 -0.00926253
v 1.77389 -0.612465 0.0567026
v 1.35878 -0.470397 0.183734
v 1.24289 -0.411434 0.352926
v 1.58475 -0.548476 0.191439
v 1.38875 -0.49585 0.416128
v 2.13784 -0.799797 0.0337213
v 2.11279 -0.767479 0.0283204
v 2.02629 -0.73052 -0.00518703
v 2.06668 -0.781218 0.0183367
v 2.03885 -0.720253 0.0498839
v 1.94938 -0.677153 0.026676
v 1.88295 -0.65554 0.103218
v 2.23186 -0.870066 0.116387
v 2.19956 -0.842544 0.0758319
v 2.23325 -0.891299 0.14371
v 2.17749 -0.810638 0.0809575
v 2.0529 -0.821285 0.111654
v 1.93516 -0.745145 0.0177736
v 1.40876 -0.598996 0.0907602
v 1.27408 -0.615705 0.15261
v 1.48166 -0.652907 0.109593
v 1.16816 -0.535765 0.103782
v 1.03726 -0.505165 0.073175
v 0.995285 -0.544613 0.0844142
v 1.09925 -0.559236 0.127148
v 1.50669 -0.72997 0.261528
v 1.84098 -0.767559 0.120178
v 1.54979 -0.699228 0.148731
v 1.35876 -0.694581 0.25947
v 1.09333 -0.626148 0.223687
v 1.18268 -0.626638 0.200684
v 1.0417 -0.589481 0.15534
v 0.950473 -0.587051 0.107344
v 0.924031 -0.594659 0.204842
v 1.51313 -0.801 0.62707
v 1.20364 -0.717312 0.527398
v 1.21322 -0.688901 0.346452
v 1.12966 -0.674564 0.345923
v 0.976716 -0.617049 0.305567
v 1.08166 -0.709293 0.629156
v 0.94353 -0.562101 1.17053
v 0.998185 -0.59348 1.11215
v 0.986128 -0.614394 1.04856
v 1.06013 -0.716183 0.935703
v 0.938269 -0.652877 0.603175
v 1.25482 -0.64988 1.06031
v 1.23015 -0.67032 1.06863
v 1.19642 -0.684821 1.06979
v 1.18042 -0.702939 1.04936
v 1.21863 -0.73817 0.933636
v 1.1699 -0.717238 1.0116
v 1.28522 -0.757143 0.77972
v 1.16937 -0.731514 0.853996
v 1.91211 -0.903935 0.651518
v 1.64705 -0.816256 0.833534
v 1.60327 -0.820121 0.853439
v 1.81524 -0.895183 0.68672
v 1.51445 -0.806283 0.884729
v 1.44679 -0.794708 0.895553
v 1.70768 -0.868237 0.68685
v 1.47202 -0.809873 0.829007
v 2.16666 -0.952671 0.406103
v 2.09848 -0.930414 0.487309
v 2.05978 -0.941583 0.520232
v 1.76994 -0.862823 0.562902
v 2.13113 -0.90009 0.283511
v 2.21188 -0.942909 0.322755
v 1.0945 -0.577584 1.14082
v 2.16102 -0.852542 0.215025
v 2.24026 -0.893549 0.166797
v 1.00442 -0.220994 0.632478
v 1.0133 -0.303993 0.862602
v 0.933406 -0.377576 1.2266
v 0.893369 -0.27475 1.20355
v 0.953683 -0.31145 1.05131
v 1.02499 -0.375341 0.0298807
v 0.980775 -0.36171 -0.042693
v 1.00243 -0.412214 0.0014629
v 1.01111 -0.29977 -0.0394687
v 0.9509 -0.332114 -0.175946
v 0.92638 -0.421914 -0.128449
v 0.991818 -0.48504 0.0182302
v 1.00002 -0.165784 0.401411
v 0.758963 -0.649993 1.05006
v 0.704036 -0.693576 0.865532
v 0.784328 -0.677337 0.579338
v 0.874807 -0.641496 0.867071
v 0.898217 -0.361395 -0.440656
v 0.98315 -0.209497 -0.39459
v 0.651374 -0.716108 0.22529
v 0.756942 -0.646579 0.0316741
v 0.630382 -0.740544 0.602199
v 0.690761 -0.486134 1.70662
v 0.77272 -0.417003 1.65757
v 0.698576 -0.531463 1.47607
v 0.612562 -0.56339 1.68849
v 0.849673 -0.454314 1.36861
v 0.847943 -0.339401 1.42736
v 0.832343 -0.230268 1.47058
v 0.773108 -0.337487 1.70917
v 0.76938 -0.246888 1.77163
v 0.736726 -0.572649 -0.250491
v 0.820783 -0.465517 -0.367364
v 0.902118 -0.587995 -0.00235945
v 0.83311 -0.602747 0.136182
v 0.942599 -0.186695 0.830512
v 0.966497 -0.127385 0.603788
v 0.997738 0.0642515 -0.18131
v 1.0262 -0.144353 -0.123832
v 0 -0.808609 0.845206
v 0 -0.769403 1.3147
v 0.18147 -0.737498 1.42573
v 0.244512 -0.765072 1.12661
v 0.201428 -0.808092 0.869087
v 0.525116 -0.74696 0.860978
v 0.376601 -0.727585 -0.347339
v 0.578766 -0.666281 -0.207326
v 0.486363 -0.721704 1.13874
v 0.3996 -0.689573 1.46436
v 0.635266 -0.669327 1.15437
v 0.586066 -0.60367 1.51995
v 0.74774 -0.589213 1.28736
v 0.79093 -0.612635 1.15204
v 0.836255 -0.051521 1.32359
v 0.814574 0.123494 1.34409
v 0.86704 0.201693 0.91549
v 0.92393 0.127667 0.519871
v 0.672352 0.740234 0.34215
v 0.188386 1.11566 0.263825
v 0.126722 1.19168 -0.0885539
v 0.45286 0.968583 -1.14189
v 0 1.14103 -1.69511
v 0.483445 -0.590289 1.91282
v 0.439995 -0.527916 2.201
v 0.532583 -0.479643 2.10204
v 0.326836 -0.390474 2.70112
v 0.328659 -0.523605 2.41367
v 0.31557 -0.580644 2.22654
v 0.700366 -0.558181 -0.83157
v 0.391872 0.0957369 2.83146
v 0.685266 0.540506 1.53962
v 0.533725 0.73844 1.65183
v 0.467642 0.766888 1.76805
v 0.368409 0.835916 1.66401
v 0.549463 0.767622 1.37508
v 0.614222 0.651847 1.58114
v 0.608843 0.73162 1.12914
v 0.502363 0.837493 1.10396
v 0.422726 0.889729 1.1454
v 0.448946 0.844615 1.40536
v 0.321501 0.931972 1.15041
v 0.34492 0.894292 1.39204
v 0.309945 -0.645206 1.91251
v 0.140102 -0.598083 2.2474
v 0 -0.598872 2.24132
v 0.138487 -0.533229 2.50725
v 0 -0.551954 2.50097
v 0.104729 0.310181 2.97877
v 0 0.365472 2.93644
v 0.240035 0.843027 1.76373
v 0 0.920313 1.51493
v 0.233883 0.912435 1.43027
v 0 0.989448 1.15229
v 0.753104 0.624843 -1.02926
v 0.821896 0.570937 -0.569547
v 0.797927 0.542241 0.333873
v 0.776612 0.675497 -0.127119
v 0.812892 0.397182 0.857702
v 0.75279 0.559044 0.804365
v 0.75886 0.469705 1.1929
v 0.702338 0.599653 1.17408
v 0.68193 -0.224339 2.04255
v 0.659651 -0.0957204 2.18706
v 0.660296 -0.390861 1.94483
v 0.578086 -0.258542 2.26326
v 0.473608 -0.148715 2.66658
v 0.501879 -0.350965 2.37912
v 0.401423 0.934345 0.836044
v 0.540404 0.842131 0.667129
v 0.262786 1.02598 0.724858
v 0.136437 0.980298 1.14227
v 0 1.19369 -0.0278845
v 0.671679 0.685031 0.841719
v 0.511028 0.0175575 2.55998
v 0.62209 -0.0670029 2.2984
v 0.137005 -0.733838 -1.7462
v 0 -0.738228 -1.73419
v 0.542728 -0.630293 -1.76438
v 0.625926 -0.550978 -1.75988
v 0.505574 0.826279 -1.932
v 0.59507 0.701945 -1.9221
v 0.368138 0.940713 -1.98474
v 0.20471 1.01818 -2.00615
v 0.750143 0.453473 -1.82591
v 0.805031 0.30688 -1.7906
v 0.681495 0.583454 -1.84265
v 0.864068 -0.171439 -1.78605
v 0.859645 0.0069613 -1.80192
v 0.837859 0.164653 -1.80124
v 0.79973 -0.317917 -1.82291
v 0.696739 -0.450616 -1.7841
v 0.370461 -0.697184 -1.72741
v 0 1.04737 -2.01113
v 0.286085 0.350808 -4.273
v 0.09809 0.421124 -4.29973
v 0.386098 0.265379 -4.24338
v 0 -0.615028 -4.07651
v 0.130374 -0.588482 -4.10872
v 0.310246 -0.505685 -4.08577
v 0.212925 -0.553484 -4.06996
v 0.403543 -0.435847 -4.0942
v 0.502054 -0.298203 -4.09961
v 0.197591 0.404907 -4.27424
v 0 0.427749 -4.30552
v 0.47136 0.140508 -4.2139
v 0.50834 0.0734229 -4.16764
v 0.528402 -0.0239899 -4.17378
v 0.540962 -0.122754 -4.12249
v 0.532286 -0.212942 -4.13614
v 0.460778 -0.367543 -4.08806
v 0.0410627 -0.60516 -4.48917
v 0 -0.614726 -4.48874
v 0.115175 -0.589835 -4.48943
v 0.235016 -0.546716 -4.49275
v 0.157879 -0.570484 -4.49083
v 0.19474 -0.75808 -0.356939
v 0 -0.7792 -0.316755
v 0.12902 -0.75774 -0.827299
v 0.356285 -0.729712 -0.853446
v 0.962806 -0.0634056 -0.974485
v 0.920104 0.24043 -1.02846
v 0.944694 0.100724 -0.99163
v 0.556553 -0.665828 -0.848214
v 0.827993 -0.397911 -0.945221
v 0.933741 -0.232746 -0.899585
v 0.436725 0.208713 -4.20607
v 0.791765 -0.081998 1.59315
v 0.779685 0.0258674 1.62043
v 0.761122 0.133701 1.68804
v 0.736367 0.0612087 1.90883
v 0.269894 0.786705 1.97823
v 0.127204 0.846773 1.84202
v 0 0.852823 1.85664
v 0 -0.10236 3.19371
v 0 -0.107395 3.19391
v 0 -0.679587 1.84086
v 0 -0.782239 0.0943622
v 0.103684 1.07921 -1.86413
v 0 1.10173 -1.81894
v 0.0208479 2.79201 -1.3775
v 0.0205758 2.80127 -1.42043
v 0.0140893 2.70251 -1.52892
v 0.0155254 2.75866 -1.52636
v 0.0196155 2.78652 -1.4976
v 0 2.67025 -1.5462
v 0.0208639 2.8018 -1.45708
v 0 -0.645374 -3.59697
v 0.118599 -0.62327 -3.634
v 0.231937 -0.583414 -3.62175
v 0.346687 -0.526304 -3.62333
v 0.446344 -0.46252 -3.62974
v 0.518218 -0.382678 -3.6383
v 0.570596 -0.282157 -3.64921
v 0.598318 -0.184152 -3.66272
v 0.600894 -0.0811545 -3.67939
v 0.584311 0.0452324 -3.6998
v 0.55781 0.147459 -3.72198
v 0.517167 0.238654 -3.74264
v 0.475775 0.306003 -3.76163
v 0.423791 0.380781 -3.78293
v 0.349202 0.456445 -3.80724
v 0.248009 0.521771 -3.82883
v 0.130432 0.561398 -3.83351
v 0 0.561106 -3.87419
v 0 -0.680953 -3.13608
v 0.136431 -0.6575 -3.18212
v 0.278021 -0.608869 -3.16951
v 0.389918 -0.548024 -3.17218
v 0.481234 -0.482702 -3.18518
v 0.571129 -0.394893 -3.19364
v 0.63085 -0.286932 -3.20625
v 0.661453 -0.169989 -3.22383
v 0.665998 -0.0418111 -3.2435
v 0.645429 0.0950991 -3.26594
v 0.612007 0.214919 -3.29032
v 0.569817 0.311646 -3.30967
v 0.519803 0.391679 -3.32921
v 0.462945 0.47224 -3.34697
v 0.388145 0.556895 -3.36805
v 0.279998 0.633003 -3.38519
v 0.149867 0.685294 -3.38341
v 0 0.69039 -3.42685
v 0 -0.707364 -2.66881
v 0.159932 -0.688119 -2.72016
v 0.328868 -0.635713 -2.70548
v 0.449907 -0.565966 -2.70863
v 0.522534 -0.499145 -2.71889
v 0.616018 -0.403308 -2.73083
v 0.694848 -0.283229 -2.74591
v 0.726628 -0.158779 -2.76511
v 0.731622 -0.00905737 -2.78697
v 0.706524 0.148127 -2.81257
v 0.665564 0.28157 -2.83807
v 0.620155 0.384937 -2.8573
v 0.566016 0.472791 -2.87616
v 0.505593 0.56224 -2.89169
v 0.428756 0.651433 -2.90976
v 0.307938 0.740507 -2.92552
v 0.162016 0.806504 -2.91987
v 0 0.81597 -2.96631
v 0 -0.726243 -2.18931
v 0.178927 -0.712629 -2.24367
v 0.370119 -0.665608 -2.22091
v 0.508048 -0.591586 -2.2274
v 0.573738 -0.521069 -2.2387
v 0.652472 -0.424723 -2.25956
v 0.758453 -0.28327 -2.27402
v 0.795433 -0.154762 -2.28899
v 0.795932 0.00197986 -2.29692
v 0.771205 0.179077 -2.31197
v 0.725569 0.328323 -2.334
v 0.677809 0.442452 -2.35658
v 0.620099 0.538199 -2.38098
v 0.547284 0.648045 -2.40683
v 0.474381 0.743468 -2.42844
v 0.346251 0.843208 -2.44715
v 0.168527 0.924051 -2.44383
v 0 0.935937 -2.4936
v 0 -0.135274 3.2191
v 0.0289429 -0.107984 3.19233
v 0.0289429 -0.102977 3.19214
v 0.353956 -0.159681 2.91365
v 0.359001 -0.117288 2.90498
v 0.399425 -0.167414 2.83301
v 0.281898 -0.142759 3.04167
v 0.263374 -0.109657 3.03379
v 0.263374 -0.107416 3.03366
v 0.313666 -0.144874 2.98824
v 0.350187 -0.194183 2.91127
v 0.302004 -0.272816 2.91288
v 0.227261 -0.262612 3.00179
v 0.230219 -0.222297 3.04357
v 0.266954 -0.199156 3.02854
v 0.189367 -0.185982 3.11479
v 0.211847 -0.134902 3.12562
v 0.210572 -0.108219 3.09342
v 0.210572 -0.104937 3.09325
v 0.238635 -0.136927 3.09928
v 0.141394 -0.133264 3.18201
v 0.158905 -0.104154 3.14618
v 0.158905 -0.108359 3.14635
v 0.17087 -0.133556 3.16338
v 0.18559 -0.162426 3.13803
v 0.147393 -0.183729 3.15137
v 0.232753 -0.303507 2.94551
v 0.157866 -0.249858 3.07315
v 0.103608 -0.13178 3.19872
v 0.0952891 -0.103532 3.18165
v 0.0952891 -0.108357 3.18183
v 0.0889844 -0.171597 3.19197
v 0.0475434 -0.135887 3.21361
v 0.0689524 -0.263538 3.11046
v 0.0322524 -0.270313 3.11736
v 0.0370994 -0.236021 3.15115
v 0.0537676 -0.206114 3.17609
v 0.0167171 -0.212155 3.18229
v 0.109651 -0.196305 3.16148
v 0 -0.212271 3.1858
v 0.0318813 -0.30914 3.07182
v 0 -0.283383 3.11395
v 0.114281 -0.294736 3.04715
v 0.107962 -0.253185 3.10279
v 0.112583 -0.2188 3.13659
v 0.347468 -0.221899 2.89604
v 0.308648 -0.20603 2.97059
v 0.270155 -0.171615 3.04391
v 0.314072 -0.352778 2.78684
v 0.285024 -0.384282 2.76866
v 0.270549 -0.344515 2.85323
v 0.355457 -0.354826 2.71929
v 0.341594 -0.315751 2.80439
v 0.203189 -0.334394 2.92683
v 0.163692 -0.378712 2.88262
v 0.125804 -0.338 2.97495
v 0.0431836 -0.352138 2.99952
v 0.0427449 -0.391785 2.92619
v 0 -0.36487 2.99681
v 0.0753122 -0.34037 3.00384
v 0.344999 -0.276089 2.84653
v 0.385912 -0.2635 2.78654
v 0.443225 -0.137172 2.74859
v 0.432866 -0.179481 2.75214
v 0.4346 -0.235125 2.7043
v 0 -0.0821777 3.23807
v 0.0311193 -0.0863225 3.23553
v 0.234943 -0.0875007 3.11279
v 0.207186 -0.0911854 3.14002
v 0.268667 -0.0833924 3.06318
v 0.175175 -0.0926256 3.17035
v 0.182265 -0.03364 3.1383
v 0.311393 -0.0760121 3.00019
v 0.253429 -0.0209551 3.06572
v 0.361465 -0.0799836 2.92484
v 0.145137 -0.0926424 3.19644
v 0.106709 -0.0909737 3.21414
v 0.108258 -0.0155402 3.1843
v 0.0630994 -0.0860361 3.23002
v 0.403782 -0.0760559 2.82002
v 0.355061 -0.0301215 2.90105
v 0.440607 -0.110186 2.74093
v 0.259006 0.00261447 3.04689
v 0.207518 -0.00414731 3.10802
v 0.178324 -0.00306028 3.13855
v 0.154253 0.000584462 3.15526
v 0.111552 0.0253177 3.1638
v 0.259173 0.0321625 3.03058
v 0.307933 0.000507153 2.97256
v 0.355482 -0.000666772 2.88492
v 0 -0.0524473 3.2379
v 0.207959 -0.0676361 3.12879
v 0.239917 -0.0668274 3.08678
v 0.252372 -0.0837021 3.08848
v 0.177626 -0.0679712 3.1609
v 0.161553 -0.0663896 3.17514
v 0.311108 -0.0548903 2.992
v 0.287892 -0.0610763 3.02089
v 0.285713 -0.0224879 3.02752
v 0.26414 -0.0631243 3.05388
v 0.290375 -0.081118 3.02983
v 0.336502 -0.0590042 2.95178
v 0.336656 -0.0786546 2.96105
v 0.129314 -0.0664066 3.19927
v 0.0629756 -0.0523713 3.22252
v 0.108156 -0.0619451 3.20877
v 0.0853916 -0.0877191 3.22374
v 0.0314541 -0.0518053 3.23345
v 0 -0.782376 0.0982697
v 0.224394 -0.794792 0.100868
v 0.422916 -0.751552 0.0979247
v 0.497032 -0.728271 0.0962115
v 0.511719 -0.673247 -1.3328
v 0.625846 -0.601234 -1.34438
v 0.742917 -0.460918 -1.36045
v 0.402939 -0.708281 -1.33149
v 0.232573 -0.735687 -1.31992
v 0 -0.743686 -1.32244
v 0.690802 -0.533033 -1.32472
v 0 -0.791189 0.349205
v 0.0761003 -0.798187 0.35196
v 0.214348 -0.79935 0.353096
v 0.344966 -0.789409 0.353034
v 0.49682 -0.742771 0.34861
v 0.0750443 -0.675567 1.86716
v 0.448143 -0.406942 2.44442
v 0.327784 -0.459728 2.55159
v 0.383669 -0.441938 2.51547
v -0.685266 0.540506 1.53962
v -0.75886 0.469705 1.1929
v -0.786445 0.322453 1.37347
v -0.689209 0.422134 1.81539
v -0.380883 0.74323 2.0013
v -0.467642 0.766888 1.76805
v -0.518982 0.653053 1.97717
v -0.614222 0.651847 1.58114
v -0.612809 0.545481 1.89683
v -0.51756 0.492811 2.25472
v -0.416112 0.613907 2.28899
v -0.326836 -0.390474 2.70112
v -0.327784 -0.459728 2.55159
v -0.257599 -0.445873 2.6687
v -0.328659 -0.523605 2.41367
v -0.383669 -0.441938 2.51547
v -0.439995 -0.527916 2.201
v -0.448143 -0.406942 2.44442
v -0.532583 -0.479643 2.10204
v -0.784328 -0.677337 0.579338
v -0.630382 -0.740544 0.602199
v -0.874807 -0.641496 0.867071
v -0.706135 -0.70142 0.439002
v -0.902118 -0.587995 -0.00235945
v -0.736726 -0.572649 -0.250491
v -0.756942 -0.646579 0.0316741
v -0.83311 -0.602747 0.136182
v -0.586066 -0.60367 1.51995
v -0.635266 -0.669327 1.15437
v -0.3996 -0.689573 1.46436
v -0.483445 -0.590289 1.91282
v -0.309945 -0.645206 1.91251
v -0.578766 -0.666281 -0.207326
v -0.497032 -0.728271 0.0962115
v -0.651374 -0.716108 0.22529
v -0.0750443 -0.675567 1.86716
v -0.18147 -0.737498 1.42573
v -0.140102 -0.598083 2.2474
v -0.0761003 -0.798187 0.35196
v -0.224394 -0.794792 0.100868
v -0.214348 -0.79935 0.353096
v -0.201428 -0.808092 0.869087
v -0.344966 -0.789409 0.353034
v -0.525116 -0.74696 0.860978
v -0.422916 -0.751552 0.0979247
v -0.49682 -0.742771 0.34861
v -0.542728 -0.630293 -1.76438
v -0.370461 -0.697184 -1.72741
v -0.511719 -0.673247 -1.3328
v -0.625846 -0.601234 -1.34438
v -0.625926 -0.550978 -1.75988
v -0.556553 -0.665828 -0.848214
v -0.742917 -0.460918 -1.36045
v -0.696739 -0.450616 -1.7841
v -0.842661 -0.333906 -1.39652
v -0.827993 -0.397911 -0.945221
v -0.137005 -0.733838 -1.7462
v -0.232573 -0.735687 -1.31992
v -0.402939 -0.708281 -1.33149
v -0.356285 -0.729712 -0.853446
v -0.12902 -0.75774 -0.827299
v -0.700366 -0.558181 -0.83157
v -0.690802 -0.533033 -1.32472
v -0.376601 -0.727585 -0.347339
v -0.0575064 -0.103562 3.19019
v -0.0475434 -0.135887 3.21361
v -0.0289429 -0.102977 3.19214
v -0.385799 -0.208692 2.83488
v -0.353956 -0.159681 2.91365
v -0.399425 -0.167414 2.83301
v -0.292106 -0.110629 2.9831
v -0.359001 -0.117288 2.90498
v -0.310635 -0.178523 2.98538
v -0.281898 -0.142759 3.04167
v -0.313666 -0.144874 2.98824
v -0.234057 -0.107115 3.06579
v -0.263374 -0.107416 3.03366
v -0.350187 -0.194183 2.91127
v -0.30356 -0.232084 2.95373
v -0.302004 -0.272816 2.91288
v -0.230219 -0.222297 3.04357
v -0.298173 -0.311421 2.87017
v -0.227261 -0.262612 3.00179
v -0.150093 -0.206039 3.12674
v -0.2252 -0.163147 3.09899
v -0.266954 -0.199156 3.02854
v -0.189367 -0.185982 3.11479
v -0.211847 -0.134902 3.12562
v -0.238635 -0.136927 3.09928
v -0.184307 -0.103837 3.11991
v -0.210572 -0.104937 3.09325
v -0.142603 -0.159104 3.17298
v -0.141394 -0.133264 3.18201
v -0.17087 -0.133556 3.16338
v -0.131104 -0.103627 3.16701
v -0.158905 -0.104154 3.14618
v -0.18559 -0.162426 3.13803
v -0.147393 -0.183729 3.15137
v -0.232753 -0.303507 2.94551
v -0.163949 -0.290955 3.01728
v -0.157866 -0.249858 3.07315
v -0.103608 -0.13178 3.19872
v -0.0952891 -0.103532 3.18165
v -0.0889844 -0.171597 3.19197
v -0.0326464 -0.180349 3.20469
v -0.0736787 -0.229159 3.14409
v -0.0689524 -0.263538 3.11046
v -0.0370994 -0.236021 3.15115
v -0.0633778 -0.295904 3.07503
v -0.0322524 -0.270313 3.11736
v -0.0537676 -0.206114 3.17609
v -0.0167171 -0.212155 3.18229
v -0.109651 -0.196305 3.16148
v -0.0318813 -0.30914 3.07182
v -0.107962 -0.253185 3.10279
v -0.114281 -0.294736 3.04715
v -0.112583 -0.2188 3.13659
v -0.347468 -0.221899 2.89604
v -0.308648 -0.20603 2.97059
v -0.270155 -0.171615 3.04391
v -0.203189 -0.334394 2.92683
v -0.125804 -0.338 2.97495
v -0.0431836 -0.352138 2.99952
v -0.0753122 -0.34037 3.00384
v -0.344999 -0.276089 2.84653
v -0.0314541 -0.0518053 3.23345
v -0.0311193 -0.0863225 3.23553
v -0.234943 -0.0875007 3.11279
v -0.207186 -0.0911854 3.14002
v -0.207959 -0.0676361 3.12879
v -0.211784 -0.0325983 3.10909
v -0.239917 -0.0668274 3.08678
v -0.268667 -0.0833924 3.06318
v -0.252372 -0.0837021 3.08848
v -0.182265 -0.03364 3.1383
v -0.150102 -0.0359102 3.16859
v -0.161553 -0.0663896 3.17514
v -0.175175 -0.0926256 3.17035
v -0.177626 -0.0679712 3.1609
v -0.308169 -0.0227553 2.99678
v -0.311108 -0.0548903 2.992
v -0.285713 -0.0224879 3.02752
v -0.311393 -0.0760121 3.00019
v -0.287892 -0.0610763 3.02089
v -0.253429 -0.0209551 3.06572
v -0.26414 -0.0631243 3.05388
v -0.290375 -0.081118 3.02983
v -0.336502 -0.0590042 2.95178
v -0.361465 -0.0799836 2.92484
v -0.336656 -0.0786546 2.96105
v -0.145137 -0.0926424 3.19644
v -0.129314 -0.0664066 3.19927
v -0.106709 -0.0909737 3.21414
v -0.0626144 -0.00241707 3.19343
v -0.108258 -0.0155402 3.1843
v -0.0629756 -0.0523713 3.22252
v -0.108156 -0.0619451 3.20877
v -0.0853916 -0.0877191 3.22374
v -0.0630994 -0.0860361 3.23002
v -0.440607 -0.110186 2.74093
v -0.443225 -0.137172 2.74859
v -0.403017 -0.11434 2.82264
v -0.403782 -0.0760559 2.82002
v -0.314072 -0.352778 2.78684
v -0.270549 -0.344515 2.85323
v -0.285024 -0.384282 2.76866
v -0.240353 -0.373703 2.83377
v -0.379763 -0.315469 2.73518
v -0.355457 -0.354826 2.71929
v -0.341594 -0.315751 2.80439
v -0.163692 -0.378712 2.88262
v -0.08524 -0.379251 2.92899
v -0.0427449 -0.391785 2.92619
v -0.385912 -0.2635 2.78654
v -0.473608 -0.148715 2.66658
v -0.432866 -0.179481 2.75214
v -0.4346 -0.235125 2.7043
v -0.0289429 -0.107984 3.19233
v -0.0575064 -0.108535 3.19037
v -0.234057 -0.109916 3.06593
v -0.210572 -0.108219 3.09342
v -0.184307 -0.107584 3.12009
v -0.263374 -0.109657 3.03379
v -0.131104 -0.108196 3.16719
v -0.158905 -0.108359 3.14635
v -0.0952891 -0.108357 3.18183
v -0.39743 -0.0269166 2.81047
v -0.355061 -0.0301215 2.90105
v -0.204225 0.0378925 3.10031
v -0.259006 0.00261447 3.04689
v -0.207518 -0.00414731 3.10802
v -0.178324 -0.00306028 3.13855
v -0.154253 0.000584462 3.15526
v -0.158111 0.0455417 3.13538
v -0.111552 0.0253177 3.1638
v -0.307933 0.000507153 2.97256
v -0.259173 0.0321625 3.03058
v -0.308495 0.0249088 2.95651
v -0.355482 -0.000666772 2.88492
v -0.933741 -0.232746 -0.899585
v -0.916094 -0.184582 -1.3247
v -0.118599 -0.62327 -3.634
v -0.130374 -0.588482 -4.10872
v -0.231937 -0.583414 -3.62175
v -0.212925 -0.553484 -4.06996
v -0.346687 -0.526304 -3.62333
v -0.310246 -0.505685 -4.08577
v -0.446344 -0.46252 -3.62974
v -0.403543 -0.435847 -4.0942
v -0.518218 -0.382678 -3.6383
v -0.460778 -0.367543 -4.08806
v -0.570596 -0.282157 -3.64921
v -0.502054 -0.298203 -4.09961
v -0.598318 -0.184152 -3.66272
v -0.532286 -0.212942 -4.13614
v -0.600894 -0.0811545 -3.67939
v -0.540962 -0.122754 -4.12249
v -0.584311 0.0452324 -3.6998
v -0.528402 -0.0239899 -4.17378
v -0.55781 0.147459 -3.72198
v -0.50834 0.0734229 -4.16764
v -0.517167 0.238654 -3.74264
v -0.47136 0.140508 -4.2139
v -0.475775 0.306003 -3.76163
v -0.436725 0.208713 -4.20607
v -0.423791 0.380781 -3.78293
v -0.386098 0.265379 -4.24338
v -0.349202 0.456445 -3.80724
v -0.286085 0.350808 -4.273
v -0.248009 0.521771 -3.82883
v -0.197591 0.404907 -4.27424
v -0.130432 0.561398 -3.83351
v -0.09809 0.421124 -4.29973
v -0.136431 -0.6575 -3.18212
v -0.278021 -0.608869 -3.16951
v -0.389918 -0.548024 -3.17218
v -0.481234 -0.482702 -3.18518
v -0.571129 -0.394893 -3.19364
v -0.63085 -0.286932 -3.20625
v -0.661453 -0.169989 -3.22383
v -0.665998 -0.0418111 -3.2435
v -0.645429 0.0950991 -3.26594
v -0.612007 0.214919 -3.29032
v -0.569817 0.311646 -3.30967
v -0.519803 0.391679 -3.32921
v -0.462945 0.47224 -3.34697
v -0.388145 0.556895 -3.36805
v -0.279998 0.633003 -3.38519
v -0.149867 0.685294 -3.38341
v -0.159932 -0.688119 -2.72016
v -0.328868 -0.635713 -2.70548
v -0.449907 -0.565966 -2.70863
v -0.522534 -0.499145 -2.71889
v -0.616018 -0.403308 -2.73083
v -0.694848 -0.283229 -2.74591
v -0.726628 -0.158779 -2.76511
v -0.731622 -0.00905737 -2.78697
v -0.706524 0.148127 -2.81257
v -0.665564 0.28157 -2.83807
v -0.620155 0.384937 -2.8573
v -0.566016 0.472791 -2.87616
v -0.505593 0.56224 -2.89169
v -0.428756 0.651433 -2.90976
v -0.307938 0.740507 -2.92552
v -0.162016 0.806504 -2.91987
v -0.178927 -0.712629 -2.24367
v -0.370119 -0.665608 -2.22091
v -0.508048 -0.591586 -2.2274
v -0.573738 -0.521069 -2.2387
v -0.652472 -0.424723 -2.25956
v -0.758453 -0.28327 -2.27402
v -0.795433 -0.154762 -2.28899
v -0.795932 0.00197986 -2.29692
v -0.771205 0.179077 -2.31197
v -0.725569 0.328323 -2.334
v -0.677809 0.442452 -2.35658
v -0.620099 0.538199 -2.38098
v -0.547284 0.648045 -2.40683
v -0.474381 0.743468 -2.42844
v -0.346251 0.843208 -2.44715
v -0.168527 0.924051 -2.44383
v -0.79973 -0.317917 -1.82291
v -0.864068 -0.171439 -1.78605
v -0.859645 0.0069613 -1.80192
v -0.837859 0.164653 -1.80124
v -0.805031 0.30688 -1.7906
v -0.750143 0.453473 -1.82591
v -0.681495 0.583454 -1.84265
v -0.59507 0.701945 -1.9221
v -0.505574 0.826279 -1.932
v -0.368138 0.940713 -1.98474
v -0.20471 1.01818 -2.00615
v -0.0140893 2.70251 -1.52892
v -0.0244641 2.53947 -1.49703
v -0.016646 2.6214 -1.40219
v -0.0260125 2.76413 -1.33987
v -0.0208479 2.79201 -1.3775
v -0.0160262 2.83058 -1.42763
v -0.0292962 2.70858 -1.3545
v -0.0205758 2.80127 -1.42043
v -0.0155254 2.75866 -1.52636
v -0.0196155 2.78652 -1.4976
v -0.0208639 2.8018 -1.45708
v -0.142546 1.10031 -1.75163
v -0.103684 1.07921 -1.86413
v -0.216914 1.03753 -1.88806
v -0.968847 0.131804 0.131883
v -1.01652 -0.17038 0.151924
v -1.00002 -0.165784 0.401411
v -0.966497 -0.127385 0.603788
v -0.882102 0.433286 -0.581813
v -0.859123 0.408604 -1.03927
v -0.944202 0.212851 -0.701552
v -0.956171 0.24509 -0.307485
v -1.0262 -0.144353 -0.123832
v -0.988296 0.00618558 -0.563582
v -0.98315 -0.209497 -0.39459
v -1.01111 -0.29977 -0.0394687
v -0.267468 0.71348 2.19399
v -0.439248 0.509479 2.42748
v -0.325231 0.620179 2.40256
v -0.196825 0.587093 2.5661
v -0.237883 0.669527 2.40083
v -0.292965 0.566301 2.55586
v -0.240035 0.843027 1.76373
v -0.368409 0.835916 1.66401
v -0.269894 0.786705 1.97823
v -0.127204 0.846773 1.84202
v -0.832343 -0.230268 1.47058
v -0.741547 -0.0735172 1.87909
v -0.791765 -0.081998 1.59315
v -0.736367 0.0612087 1.90883
v -0.779685 0.0258674 1.62043
v -0.683608 0.0575978 2.16793
v -0.761122 0.133701 1.68804
v -0.711081 0.183081 2.00763
v -0.71686 0.291279 1.77241
v -0.836255 -0.051521 1.32359
v -0.814574 0.123494 1.34409
v -0.42427 0.102917 -4.52412
v -0.19474 -0.75808 -0.356939
v -0.920104 0.24043 -1.02846
v -0.836077 0.366082 -1.44543
v -0.962806 -0.0634056 -0.974485
v -0.912125 -0.0182498 -1.43382
v -0.875955 0.173821 -1.47748
v -0.944694 0.100724 -0.99163
v -0.820783 -0.465517 -0.367364
v -0.898217 -0.361395 -0.440656
v -0.0410627 -0.60516 -4.48917
v -0.115175 -0.589835 -4.48943
v -0.119135 -0.594014 -4.74365
v -0.224338 -0.56159 -4.82329
v -0.235016 -0.546716 -4.49275
v -0.305157 -0.512534 -4.51918
v -0.232064 -0.53835 -4.28555
v -0.157879 -0.570484 -4.49083
v -0.357327 0.982316 -1.78956
v -0.174764 1.12917 -1.59299
v -0.326405 -0.486748 -4.26147
v -0.382095 -0.443924 -4.29655
v -0.481728 -0.309128 -4.30466
v -0.44376 -0.373429 -4.19316
v -0.149237 0.289583 -4.62924
v -0.461079 0.0453937 -4.50355
v -0.494225 -0.0175767 -4.46262
v -0.513441 -0.100062 -4.39281
v -0.519256 -0.159642 -4.30607
v -0.50202 -0.254926 -4.37144
v -0.593631 0.750986 -1.71139
v -0.0777302 2.0128 -1.25496
v -0.0714139 1.98876 -1.34149
v -0.511028 0.0175575 2.55998
v -0.522207 -0.0165891 2.53264
v -0.491292 -0.065207 2.60311
v -0.653052 0.112206 2.2203
v -0.639615 0.148519 2.22392
v -0.455207 0.078758 2.70068
v -0.527706 0.0875074 2.52354
v -0.62209 -0.0670029 2.2984
v -0.65269 -0.00322573 2.26414
v -0.659651 -0.0957204 2.18706
v -0.580256 -0.153272 2.34755
v -0.571259 -0.0382292 2.40938
v -0.592371 -0.0581752 2.36347
v -0.564734 -0.060953 2.42397
v -0.541513 0.0128521 2.48813
v -0.559564 -0.00577714 2.43883
v -0.553123 0.171015 2.47419
v -0.559964 0.124802 2.46627
v -0.559169 0.0483994 2.46413
v -0.55531 0.021354 2.44969
v -0.55352 0.0183144 2.46414
v -0.545768 0.0852473 2.49233
v -0.570922 0.0993746 2.45525
v -0.559143 0.045049 2.44455
v -0.569454 0.0737222 2.4496
v -0.567589 0.0674537 2.43771
v -0.573576 0.0806181 2.42686
v -0.577985 0.0958016 2.4398
v -0.583094 0.118529 2.4306
v -0.595641 0.110758 2.40146
v -0.589983 0.0982688 2.4029
v -0.614446 0.110574 2.34515
v -0.621577 0.130475 2.31805
v -0.57913 0.145019 2.42161
v -0.602183 0.143327 2.36734
v -0.537211 0.267135 2.42037
v -0.607769 0.159604 2.33369
v -0.585062 0.165342 2.39916
v -0.637431 0.121772 2.26766
v -0.601534 0.097052 2.36436
v -0.610519 0.0887128 2.3374
v -0.633654 0.103253 2.29213
v -0.623772 0.100329 2.32033
v -0.617742 0.0639944 2.32299
v -0.619842 0.0702514 2.32604
v -0.628901 0.0812537 2.31388
v -0.630019 0.0738647 2.30148
v -0.643657 0.0948439 2.25725
v -0.634898 0.0531607 2.29088
v -0.625733 0.0268506 2.31106
v -0.618806 0.0440439 2.31738
v -0.626326 0.0901564 2.31858
v -0.616463 0.0786916 2.32962
v -0.557114 0.0103548 2.43587
v -0.569875 -0.00695501 2.40125
v -0.581303 -0.0252376 2.38913
v -0.58616 -0.0107067 2.37443
v -0.595764 -0.0203665 2.36848
v -0.592255 -0.0419411 2.36639
v -0.606525 0.0129022 2.33703
v -0.627624 0.00387138 2.31152
v -0.604008 -0.0154979 2.35106
v -0.595987 -0.00399764 2.35705
v -0.664885 0.0614906 2.21883
v -0.574319 0.0812393 2.39545
v -0.582591 0.0756475 2.3556
v -0.547723 0.0610607 2.37774
v -0.558031 0.0594205 2.35861
v -0.600477 0.0671599 2.33944
v -0.591956 0.0469904 2.33681
v -0.601511 0.0294956 2.33205
v -0.561422 0.0397121 2.34945
v -0.580764 0.0113038 2.35755
v -0.55569 0.0316542 2.3552
v -0.545603 0.0296195 2.37136
v -0.564721 0.00950537 2.37952
v -0.556477 0.0121819 2.40276
v -0.536049 0.0374456 2.3951
v -0.550865 0.0271736 2.4282
v -0.54939 0.0460794 2.41978
v -0.563222 0.0705013 2.40904
v -0.536242 0.0475622 2.39624
v -0.903349 -0.0193066 0.811051
v -0.888668 -0.193895 1.10316
v -0.92393 0.127667 0.519871
v -0.649834 0.306862 2.04879
v -0.194796 0.103081 3.07684
v -0.306138 0.0975592 2.94832
v -0.126881 0.175891 3.0844
v -0.0590355 0.125146 3.141
v -0.127122 -0.467699 2.71388
v -0.263983 0.152444 2.99116
v -0.32523 0.186388 2.88064
v -0.391872 0.0957369 2.83146
v -0.161681 0.266525 2.99872
v -0.215218 0.277232 2.93555
v -0.870827 0.378876 0.338024
v -0.908197 0.356679 0.097236
v -0.866464 0.333896 0.592512
v -0.849524 0.517499 -0.00684248
v -0.997738 0.0642515 -0.18131
v -1.49448 -0.625643 -6.21214
v -1.30329 -0.621945 -5.82556
v -1.51372 -0.59245 -5.94209
v -1.593 -0.585248 -6.20749
v -1.52199 -0.605001 -6.35111
v -1.57438 -0.550501 -6.00421
v -1.36424 -0.548683 -5.54429
v -1.48005 -0.503179 -5.73479
v -1.30615 -0.446519 -5.38705
v -1.12765 -0.595409 -5.50381
v -0.92044 -0.552377 -5.30593
v -1.14262 -0.50069 -5.27801
v -0.965445 -0.461093 -5.16697
v -1.07987 -0.400414 -5.22026
v -0.93643 -0.364793 -5.13538
v -0.825884 -0.515521 -5.16997
v -0.679596 -0.471576 -5.02807
v -0.789629 -0.413574 -5.03623
v -0.716395 -0.304327 -4.98311
v -0.558217 -0.420018 -4.86773
v -0.651106 -0.367798 -4.91824
v -0.567531 -0.327912 -4.7924
v -0.629877 -0.271979 -4.8938
v -0.577079 -0.237534 -4.80513
v -0.502653 -0.380215 -4.70143
v -1.29368 -0.574369 -6.2298
v -1.00627 -0.539434 -6.16744
v -1.12014 -0.614704 -6.09043
v -0.773133 -0.575959 -6.06614
v -0.533812 -0.613118 -5.93181
v -0.918763 -0.631026 -5.859
v -0.776581 -0.616755 -5.61431
v -0.543936 -0.623619 -5.63149
v -0.690839 -0.580821 -5.36241
v -0.690484 -0.547021 -5.20078
v -0.542195 -0.556874 -5.20003
v -0.582745 -0.510202 -5.05546
v -0.469442 -0.525509 -5.03835
v -0.421038 -0.497559 -4.87928
v -0.509554 -0.475783 -4.9162
v -0.459996 -0.443309 -4.76268
v -0.431187 -0.441746 -4.68148
v -0.403365 -0.638939 -5.80288
v -0.364128 -0.619251 -5.51378
v -0.377591 -0.576697 -5.22274
v -0.37559 -0.538956 -5.00171
v -0.296726 -0.559379 -5.01539
v -0.341446 -0.514424 -4.81107
v -0.278405 -0.536856 -4.77697
v -0.348938 -0.586955 -5.96502
v -0.214152 -0.54804 -5.93507
v -0.289288 -0.619074 -5.84795
v -0.136978 -0.5745 -5.77311
v -0.13191 -0.597699 -5.61268
v -0.268488 -0.62311 -5.67723
v -0.260985 -0.617048 -5.50863
v -0.16165 -0.607157 -5.49383
v -0.151448 -0.597113 -5.32571
v -0.225705 -0.579901 -5.10008
v -0.117787 -0.592609 -5.15687
v -0.114775 -0.592938 -4.99985
v -0.107899 -0.510921 -5.85999
v -0.0643402 -0.58775 -5.42521
v -0.428758 -0.394909 -4.40957
v -0.512924 -0.19867 -4.42639
v -0.517404 -0.149659 -4.48532
v -0.468273 -0.345438 -4.46852
v -0.501774 -0.277438 -4.46638
v -0.37338 -0.469601 -4.59796
v -0.41158 -0.43603 -4.55586
v -0.455433 -0.396838 -4.55499
v -0.506111 -0.315024 -4.52798
v -0.487986 -0.35876 -4.56474
v -0.527056 -0.246797 -4.52838
v -0.545531 -0.232927 -4.67551
v -0.530466 -0.306514 -4.65985
v -1.59162 -0.528468 -6.35225
v -1.53392 -0.495274 -5.99911
v -1.34371 -0.423944 -5.91908
v -1.17347 -0.349476 -5.60604
v -1.38808 -0.414267 -5.62901
v -1.16098 -0.358206 -5.36903
v -0.94511 -0.298047 -5.4471
v -0.791094 -0.24927 -5.31313
v -0.96721 -0.317138 -5.26054
v -0.794331 -0.269251 -5.14384
v -0.607168 -0.18552 -5.13069
v -0.616574 -0.213283 -4.97661
v -0.514644 -0.133319 -4.9694
v -0.53869 -0.156849 -4.86865
v -0.859133 -0.468346 -6.05975
v -1.17965 -0.475042 -6.12098
v -1.05434 -0.382724 -5.87188
v -0.740606 -0.381801 -5.89406
v -0.644851 -0.308744 -5.7387
v -0.87936 -0.31874 -5.67273
v -0.746563 -0.269293 -5.53699
v -0.539341 -0.258362 -5.64065
v -0.538468 -0.203735 -5.45291
v -0.652498 -0.215212 -5.38217
v -0.481806 -0.159692 -5.32246
v -0.530734 -0.157416 -5.20654
v -0.423125 -0.115144 -5.22693
v -0.376774 -0.0359679 -5.04915
v -0.472762 -0.114427 -5.07853
v -0.448828 -0.0853381 -4.9985
v -0.433945 -0.501525 -5.98141
v -0.603763 -0.495337 -6.00783
v -0.530764 -0.390013 -5.90461
v -0.315718 -0.373733 -5.91746
v -0.306706 -0.298546 -5.81533
v -0.500929 -0.307174 -5.78615
v -0.315318 -0.249669 -5.71331
v -0.345143 -0.194562 -5.57012
v -0.437355 -0.198596 -5.51736
v -0.316546 -0.136221 -5.44932
v -0.382424 -0.134197 -5.36241
v -0.31938 -0.0201731 -5.14477
v -0.243257 0.00604625 -5.22266
v -0.181523 -0.444069 -5.92974
v -0.297559 -0.476395 -5.97549
v -0.175987 -0.350643 -5.87445
v -0.134837 -0.277592 -5.79308
v -0.171743 -0.224459 -5.70877
v -0.200932 -0.134223 -5.5479
v -0.258393 -0.190805 -5.6125
v -0.157509 0.0784855 -5.18387
v -0.147308 -0.0663603 -5.47626
v -0.083995 -0.414135 -5.8599
v -0.0855675 -0.328408 -5.82961
v -0.0896736 -0.213445 -5.7111
v -0.185947 0.196414 -4.85084
v -0.0967809 0.107117 -5.17511
v -0.254085 0.26829 -4.55541
v -0.320661 0.221884 -4.53856
v -0.249837 0.165219 -4.84349
v -0.33614 0.0977531 -4.83854
v -0.375755 0.161795 -4.54206
v -0.444837 -0.0582941 -4.90023
v -0.508351 -0.109844 -4.71856
v -0.473327 -0.0688423 -4.80355
v -0.509475 -0.093207 -4.53
v -0.53276 -0.168842 -4.65241
v -0.546709 -0.174113 -4.78231
v -0.52518 0.383931 2.36377
v -0.575812 0.345323 2.25697
v -0.475603 0.409556 2.45664
v -0.410462 0.44883 2.5428
v -0.422338 0.316377 2.6422
v -0.401921 0.22547 2.72112
v -0.34859 0.45155 2.64287
v -0.29087 0.497788 2.64739
v -0.364532 0.534201 2.50571
v -0.169665 0.441316 2.8024
v -0.282339 0.28048 2.86469
v -0.601129 0.430639 2.09728
v -0.200901 0.528578 2.66042
v -0.104729 0.310181 2.97877
v -0.485659 0.132478 2.60541
v -0.690789 -0.0234808 2.14608
v -0.191733 1.26937 -0.555055
v -0.253637 1.17016 -0.340574
v -0.124931 1.29379 -0.478566
v -0.129523 1.22769 -0.305684
v -0.307519 1.14872 -0.48055
v -0.218991 1.23375 -0.647273
v -0.304307 1.14452 -0.61533
v -0.304772 1.1236 -0.817436
v -0.196397 1.18877 -0.871869
v -0.185511 1.27031 -0.802121
v -0.315153 1.09899 -0.958604
v -0.359132 1.06085 -1.16739
v -0.25312 1.16649 -1.0925
v -0.123917 1.41778 -0.707911
v -0.0707885 1.44009 -0.611498
v -0.056908 1.58682 -0.690081
v -0.122881 1.50625 -0.854069
v -0.123705 1.3117 -0.981686
v -0.0592814 2.05504 -0.950295
v -0.0893408 1.9781 -1.00678
v -0.10978 1.57581 -0.980766
v -0.112577 1.45835 -1.14789
v -0.0486015 2.27672 -1.05294
v -0.085272 1.5547 -1.16873
v -0.0305726 2.66132 -1.25006
v -0.0383895 2.48149 -1.15385
v -0.0546848 2.41952 -1.15601
v -0.0555631 1.98136 -1.12329
v -0.0717108 1.26059 -1.5432
v -0.0675397 1.36369 -1.51703
v -0.115654 1.23242 -1.53344
v -0.104011 1.16784 -1.58984
v -0.165993 1.20208 -1.50734
v -0.113426 1.32195 -1.48875
v -0.138232 1.28173 -1.43838
v -0.312489 1.07258 -1.422
v -0.270844 1.13267 -1.35365
v -0.298675 1.13915 -1.23586
v -0.0560451 1.49257 -1.51984
v -0.0569921 1.66291 -1.48074
v -0.105002 1.42637 -1.46597
v -0.0938441 1.60719 -1.4083
v -0.121809 1.48025 -1.38593
v -0.16182 1.37166 -1.24208
v -0.173691 1.26294 -1.25233
v -0.0584934 1.92792 -1.44702
v -0.0856401 1.75359 -1.39851
v -0.109635 1.69177 -1.34328
v -0.114073 1.66309 -1.24351
v -0.115597 1.48311 -1.25196
v -0.159915 1.34068 -1.15531
v -0.760402 0.519116 -1.5303
v -0.681311 0.64295 -1.57534
v -0.716258 0.626009 -1.3344
v -0.384709 0.991295 -1.53449
v -0.491473 0.883839 -1.68293
v -0.563471 0.821539 -1.42252
v -0.747374 0.670122 -0.883753
v -0.664517 0.741725 -1.11164
v -0.753104 0.624843 -1.02926
v -0.56256 0.887541 -0.973669
v -0.527099 0.97608 -0.511358
v -0.469861 0.985272 -0.850153
v -0.45286 0.968583 -1.14189
v -0.707004 0.777972 -0.412505
v -0.662735 0.805746 -0.814862
v -0.617904 0.884164 -0.505631
v -0.531078 0.968963 -0.145629
v -0.716406 0.766339 -0.0987674
v -0.634869 0.870645 -0.156203
v -0.412158 1.05359 -0.0948713
v -0.126722 1.19168 -0.0885539
v -0.188386 1.11566 0.263825
v -0.53062 0.91463 0.152709
v -0.370898 1.00876 0.322783
v -0.765325 -0.648618 0.256263
v -0.809352 -0.645858 0.390004
v -0.857799 -0.656729 0.59566
v -0.877214 -0.543779 1.22693
v -0.806175 -0.524652 1.333
v -0.849673 -0.454314 1.36861
v -1.01255 -0.509147 1.18206
v -2.20652 -0.914461 0.287239
v -2.18797 -0.935901 0.370124
v -2.13628 -0.876587 0.332694
v -2.16102 -0.852542 0.215025
v -2.20716 -0.905268 0.238542
v -2.02616 -0.821431 0.371796
v -2.09848 -0.930414 0.487309
v -1.97189 -0.87749 0.5688
v -1.54219 -0.691553 0.793404
v -1.74474 -0.81951 0.747829
v -1.31087 -0.599407 0.969952
v -1.49565 -0.733389 0.913352
v -1.13385 -0.553641 1.1109
v -1.08319 -0.469457 1.07075
v -1.00881 -0.416098 1.10084
v -1.59493 -0.63893 0.533282
v -2.09995 -0.765745 0.101695
v -1.38802 -0.577771 0.789833
v -1.06515 -0.382503 0.949012
v -0.998652 -0.340452 0.985983
v -1.0133 -0.303993 0.862602
v -1.31143 -0.508231 0.732233
v -1.09555 -0.369038 0.85367
v -1.15958 -0.364445 0.503999
v -1.22204 -0.41302 0.516919
v -1.42869 -0.547021 0.0853371
v -1.35143 -0.494928 0.128401
v -1.21228 -0.480014 0.106317
v -1.27576 -0.530429 0.0913908
v -1.5026 -0.594172 0.0625506
v -1.0836 -0.460375 0.0683214
v -1.0679 -0.389122 0.108719
v -1.15334 -0.425111 0.130654
v -1.21947 -0.398597 0.23794
v -1.07486 -0.2948 0.149629
v -1.18876 -0.402209 0.163115
v -1.35878 -0.470397 0.183734
v -1.07589 -0.354068 0.125725
v -1.13349 -0.343417 0.287946
v -1.24289 -0.411434 0.352926
v -1.09392 -0.305248 0.434141
v -1.03907 -0.24446 0.383719
v -1.00442 -0.220994 0.632478
v -1.05838 -0.282373 0.587182
v -1.88246 -0.678752 -0.00783716
v -1.82528 -0.6411 0.0142583
v -1.73007 -0.647101 0.012271
v -1.90652 -0.711602 -0.00926253
v -1.77389 -0.612465 0.0567026
v -1.58475 -0.548476 0.191439
v -1.38875 -0.49585 0.416128
v -2.13784 -0.799797 0.0337213
v -2.11279 -0.767479 0.0283204
v -2.02629 -0.73052 -0.00518703
v -2.06668 -0.781218 0.0183367
v -2.03885 -0.720253 0.0498839
v -1.94938 -0.677153 0.026676
v -1.88295 -0.65554 0.103218
v -2.23325 -0.891299 0.14371
v -2.23186 -0.870066 0.116387
v -2.19956 -0.842544 0.0758319
v -2.17749 -0.810638 0.0809575
v -2.13113 -0.90009 0.283511
v -2.0529 -0.821285 0.111654
v -1.84098 -0.767559 0.120178
v -1.93516 -0.745145 0.0177736
v -1.48166 -0.652907 0.109593
v -1.40876 -0.598996 0.0907602
v -1.27408 -0.615705 0.15261
v -1.16816 -0.535765 0.103782
v -1.03726 -0.505165 0.073175
v -0.995285 -0.544613 0.0844142
v -1.09925 -0.559236 0.127148
v -1.76994 -0.862823 0.562902
v -1.51313 -0.801 0.62707
v -1.54979 -0.699228 0.148731
v -1.50669 -0.72997 0.261528
v -1.35876 -0.694581 0.25947
v -1.18268 -0.626638 0.200684
v -1.0417 -0.589481 0.15534
v -1.09333 -0.626148 0.223687
v -0.950473 -0.587051 0.107344
v -0.924031 -0.594659 0.204842
v -1.28522 -0.757143 0.77972
v -1.20364 -0.717312 0.527398
v -1.21322 -0.688901 0.346452
v -1.12966 -0.674564 0.345923
v -0.976716 -0.617049 0.305567
v -1.08166 -0.709293 0.629156
v -0.938269 -0.652877 0.603175
v -1.19642 -0.684821 1.06979
v -1.18042 -0.702939 1.04936
v -0.94353 -0.562101 1.17053
v -1.23015 -0.67032 1.06863
v -0.8931 -0.59354 1.12235
v -0.998185 -0.59348 1.11215
v -1.1699 -0.717238 1.0116
v -1.06013 -0.716183 0.935703
v -0.986128 -0.614394 1.04856
v -0.889288 -0.61263 1.03853
v -1.64705 -0.816256 0.833534
v -1.60327 -0.820121 0.853439
v -1.25482 -0.64988 1.06031
v -1.51445 -0.806283 0.884729
v -1.44679 -0.794708 0.895553
v -1.47202 -0.809873 0.829007
v -1.21863 -0.73817 0.933636
v -1.16937 -0.731514 0.853996
v -1.91211 -0.903935 0.651518
v -1.81524 -0.895183 0.68672
v -1.70768 -0.868237 0.68685
v -2.16666 -0.952671 0.406103
v -2.05978 -0.941583 0.520232
v -2.21188 -0.942909 0.322755
v -1.0945 -0.577584 1.14082
v -2.24026 -0.893549 0.166797
v -0.933406 -0.377576 1.2266
v -0.953683 -0.31145 1.05131
v -0.893369 -0.27475 1.20355
v -1.02499 -0.375341 0.0298807
v -0.980775 -0.36171 -0.042693
v -1.00243 -0.412214 0.0014629
v -0.9509 -0.332114 -0.175946
v -0.991818 -0.48504 0.0182302
v -0.92638 -0.421914 -0.128449
v -0.758963 -0.649993 1.05006
v -0.704036 -0.693576 0.865532
v -0.690761 -0.486134 1.70662
v -0.77272 -0.417003 1.65757
v -0.698576 -0.531463 1.47607
v -0.612562 -0.56339 1.68849
v -0.847943 -0.339401 1.42736
v -0.773108 -0.337487 1.70917
v -0.76938 -0.246888 1.77163
v -0.942599 -0.186695 0.830512
v -0.244512 -0.765072 1.12661
v -0.486363 -0.721704 1.13874
v -0.74774 -0.589213 1.28736
v -0.79093 -0.612635 1.15204
v -0.86704 0.201693 0.91549
v -0.672352 0.740234 0.34215
v -0.138487 -0.533229 2.50725
v -0.31557 -0.580644 2.22654
v -0.533725 0.73844 1.65183
v -0.549463 0.767622 1.37508
v -0.608843 0.73162 1.12914
v -0.448946 0.844615 1.40536
v -0.502363 0.837493 1.10396
v -0.422726 0.889729 1.1454
v -0.233883 0.912435 1.43027
v -0.321501 0.931972 1.15041
v -0.34492 0.894292 1.39204
v -0.136437 0.980298 1.14227
v -0.821896 0.570937 -0.569547
v -0.776612 0.675497 -0.127119
v -0.797927 0.542241 0.333873
v -0.812892 0.397182 0.857702
v -0.75279 0.559044 0.804365
v -0.702338 0.599653 1.17408
v -0.68193 -0.224339 2.04255
v -0.660296 -0.390861 1.94483
v -0.578086 -0.258542 2.26326
v -0.501879 -0.350965 2.37912
v -0.401423 0.934345 0.836044
v -0.540404 0.842131 0.667129
v -0.262786 1.02598 0.724858
v -0.671679 0.685031 0.841719
v -0.584435 0.0510806 2.3874
v -0.590464 0.0542964 2.3722
v -0.590853 0.0491531 2.37211
v -0.589337 0.0591146 2.37369
v -0.587582 0.0631363 2.37644
v -0.585369 0.0659679 2.38019
v -0.582917 0.067332 2.38455
v -0.580464 0.0670949 2.38912
v -0.578251 0.0652796 2.39343
v -0.576495 0.0620637 2.39707
v -0.575367 0.0577621 2.39968
v -0.574979 0.0527958 2.40101
v -0.575367 0.0476512 2.40092
v -0.576495 0.0428321 2.39943
v -0.578251 0.0388104 2.39668
v -0.580464 0.0359797 2.39294
v -0.582917 0.034617 2.38857
v -0.585369 0.0348554 2.38401
v -0.587582 0.0366715 2.37969
v -0.589337 0.0398874 2.37605
v -0.590464 0.0441882 2.37344
v -0.593953 0.0470977 2.35581
v -0.593193 0.0571579 2.35598
v -0.590989 0.0665828 2.3589
v -0.587555 0.0744503 2.36428
v -0.583227 0.0799903 2.3716
v -0.578429 0.0826601 2.38014
v -0.57363 0.0821976 2.38907
v -0.5693 0.0786472 2.39751
v -0.565864 0.0723562 2.40463
v -0.563657 0.0639403 2.40974
v -0.562897 0.0542238 2.41234
v -0.563657 0.0441585 2.41217
v -0.565864 0.0347304 2.40925
v -0.5693 0.0268629 2.40387
v -0.57363 0.021326 2.39654
v -0.578429 0.0186614 2.388
v -0.583227 0.0191291 2.37907
v -0.587555 0.0226827 2.37064
v -0.590989 0.0289737 2.36352
v -0.593193 0.0373864 2.35841
v -0.592504 0.0595401 2.33945
v -0.593601 0.0450042 2.3392
v -0.589318 0.0731588 2.34367
v -0.584356 0.0845279 2.35145
v -0.578102 0.0925347 2.36202
v -0.571168 0.0963945 2.37437
v -0.564232 0.0957277 2.38727
v -0.557974 0.0905984 2.39946
v -0.553006 0.0815075 2.40975
v -0.549817 0.0693449 2.41714
v -0.548717 0.0553022 2.42089
v -0.549817 0.0407555 2.42065
v -0.553006 0.0271302 2.41643
v -0.557974 0.015761 2.40865
v -0.564232 0.00776091 2.39807
v -0.571168 0.00391202 2.38572
v -0.578102 0.0045894 2.37282
v -0.584356 0.00972547 2.36063
v -0.589318 0.0188164 2.35034
v -0.592504 0.0309723 2.34295
v -0.587914 0.042831 2.32196
v -0.586527 0.0612061 2.32227
v -0.582499 0.0784222 2.32761
v -0.576226 0.0927955 2.33744
v -0.568319 0.102919 2.35082
v -0.559551 0.107801 2.36643
v -0.55078 0.10696 2.38273
v -0.542866 0.100476 2.39815
v -0.536583 0.0889834 2.41116
v -0.532549 0.073606 2.4205
v -0.531159 0.055851 2.42525
v -0.532549 0.0374587 2.42494
v -0.536583 0.0202319 2.4196
v -0.542866 0.00585858 2.40977
v -0.55078 -0.00425448 2.39639
v -0.559551 -0.00911872 2.38078
v -0.568319 -0.00826057 2.36447
v -0.576226 -0.00176642 2.34905
v -0.582499 0.00972651 2.33604
v -0.586527 0.0250932 2.32671
v -0.580861 0.0409334 2.30691
v -0.579244 0.0623437 2.30727
v -0.574551 0.0824043 2.31349
v -0.567239 0.0991534 2.32495
v -0.558024 0.110951 2.34054
v -0.547805 0.116642 2.35872
v -0.537583 0.115664 2.37773
v -0.528358 0.10811 2.39569
v -0.521034 0.0947173 2.41086
v -0.516331 0.0767973 2.42174
v -0.514711 0.0561062 2.42727
v -0.516331 0.0346723 2.42691
v -0.521034 0.0145973 2.42069
v -0.528358 -0.00215179 2.40923
v -0.537583 -0.0139354 2.39364
v -0.547805 -0.0196021 2.37545
v -0.558024 -0.0186006 2.35645
v -0.567239 -0.0110322 2.33848
v -0.574551 0.00236015 2.32332
v -0.579244 0.0202655 2.31244
# 2047 vertices
vt 0.393999 0.845746 0
vt 0.371262 0.88941 0
vt 0.386617 0.936867 0
vt 0.393999 0.845746 0
vt 0.381656 0.773273 0
vt 0.371262 0.88941 0
vt 0.415138 0.724414 0
vt 0.405735 0.730755 0
vt 0.417604 0.785714 0
vt 0.405735 0.730755 0
vt 0.394518 0.75187 0
vt 0.405609 0.834834 0
vt 0.405735 0.730755 0
vt 0.389026 0.657813 0
vt 0.394518 0.75187 0
vt 0.415138 0.724414 0
vt 0.401653 0.648806 0
vt 0.405735 0.730755 0
vt 0.296924 0.540498 0
vt 0.291148 0.549016 0
vt 0.289703 0.579795 0
vt 0.283042 0.616041 0
vt 0.289703 0.579795 0
vt 0.291148 0.549016 0
vt 0.291558 0.589287 0
vt 0.283042 0.616041 0
vt 0.282593 0.671933 0
vt 0.283042 0.616041 0
vt 0.291558 0.589287 0
vt 0.289703 0.579795 0
vt 0.296924 0.540498 0
vt 0.289703 0.579795 0
vt 0.291558 0.589287 0
vt 0.296924 0.540498 0
vt 0.291558 0.589287 0
vt 0.295207 0.60796 0
vt 0.295207 0.60796 0
vt 0.282593 0.671933 0
vt 0.287626 0.697938 0
vt 0.282593 0.671933 0
vt 0.295207 0.60796 0
vt 0.291558 0.589287 0
vt 0.267012 0.0981141 0
vt 0.27075 0.0224964 0
vt 0.260422 0.0921062 0
vt 0.267012 0.0981141 0
vt 0.260422 0.0921062 0
vt 0.264501 0.134995 0
vt 0.276328 0.250988 0
vt 0.27022 0.242044 0
vt 0.277928 0.316198 0
vt 0.276328 0.250988 0
vt 0.27479 0.214578 0
vt 0.27022 0.242044 0
vt 0.274694 0.850915 0
vt 0.265737 0.865526 0
vt 0.267848 0.946992 0
vt 0.276089 0.747667 0
vt 0.270363 0.747749 0
vt 0.265737 0.865526 0
vt 0.276089 0.747667 0
vt 0.265737 0.865526 0
vt 0.274694 0.850915 0
vt 0.276089 0.747667 0
vt 0.282593 0.671933 0
vt 0.270363 0.747749 0
vt 0.27022 0.242044 0
vt 0.261701 0.225083 0
vt 0.268165 0.304854 0
vt 0.27022 0.242044 0
vt 0.26297 0.19116 0
vt 0.261701 0.225083 0
vt 0.267197 0.759666 0
vt 0.266778 0.766578 0
vt 0.257412 0.904856 0
vt 0.260739 0.875677 0
vt 0.267197 0.759666 0
vt 0.257412 0.904856 0
vt 0.267197 0.759666 0
vt 0.275194 0.661334 0
vt 0.266778 0.766578 0
vt 0.267197 0.759666 0
vt 0.275276 0.659737 0
vt 0.275194 0.661334 0
vt 0.270363 0.747749 0
vt 0.267197 0.759666 0
vt 0.260739 0.875677 0
vt 0.270363 0.747749 0
vt 0.275276 0.659737 0
vt 0.267197 0.759666 0
vt 0.254411 0.157871 0
vt 0.25606 0.224542 0
vt 0.254765 0.223859 0
vt 0.25606 0.224542 0
vt 0.254411 0.157871 0
vt 0.255141 0.158594 0
vt 0.253324 0.0282426 0
vt 0.255141 0.158594 0
vt 0.254411 0.157871 0
vt 0.25429 0.157572 0
vt 0.254411 0.157871 0
vt 0.254765 0.223859 0
vt 0.253378 0.0219665 0
vt 0.254411 0.157871 0
vt 0.25429 0.157572 0
vt 0.253378 0.0219665 0
vt 0.253324 0.0282426 0
vt 0.254411 0.157871 0
vt 0.25429 0.157572 0
vt 0.254765 0.223859 0
vt 0.255327 0.157588 0
vt 0.253378 0.0219665 0
vt 0.255327 0.157588 0
vt 0.259753 0.0240977 0
vt 0.253378 0.0219665 0
vt 0.25429 0.157572 0
vt 0.255327 0.157588 0
vt 0.259274 0.224633 0
vt 0.260189 0.158751 0
vt 0.255327 0.157588 0
vt 0.259274 0.224633 0
vt 0.261701 0.225083 0
vt 0.260189 0.158751 0
vt 0.259753 0.0240977 0
vt 0.255327 0.157588 0
vt 0.260189 0.158751 0
vt 0.254765 0.223859 0
vt 0.259274 0.224633 0
vt 0.255327 0.157588 0
vt 0.26297 0.19116 0
vt 0.260189 0.158751 0
vt 0.261701 0.225083 0
vt 0.260189 0.158751 0
vt 0.260422 0.0921062 0
vt 0.259753 0.0240977 0
vt 0.260422 0.0921062 0
vt 0.260189 0.158751 0
vt 0.26297 0.19116 0
vt 0.271918 0.714058 0
vt 0.267439 0.600635 0
vt 0.264943 0.704342 0
vt 0.274948 0.60368 0
vt 0.271918 0.714058 0
vt 0.280188 0.712876 0
vt 0.271918 0.714058 0
vt 0.274948 0.60368 0
vt 0.267439 0.600635 0
vt 0.268213 0.473283 0
vt 0.267439 0.600635 0
vt 0.274948 0.60368 0
vt 0.289579 0.607903 0
vt 0.280188 0.712876 0
vt 0.290653 0.719239 0
vt 0.302823 0.617382 0
vt 0.289579 0.607903 0
vt 0.290653 0.719239 0
vt 0.296149 0.498778 0
vt 0.289579 0.607903 0
vt 0.302823 0.617382 0
vt 0.264943 0.704342 0
vt 0.260928 0.59725 0
vt 0.261121 0.70928 0
vt 0.264943 0.704342 0
vt 0.263786 0.60029 0
vt 0.260928 0.59725 0
vt 0.261551 0.474658 0
vt 0.260928 0.59725 0
vt 0.263786 0.60029 0
vt 0.258629 0.467787 0
vt 0.260928 0.59725 0
vt 0.261551 0.474658 0
vt 0.261551 0.474658 0
vt 0.267439 0.600635 0
vt 0.268213 0.473283 0
vt 0.261551 0.474658 0
vt 0.263786 0.60029 0
vt 0.267439 0.600635 0
vt 0.264943 0.704342 0
vt 0.267439 0.600635 0
vt 0.263786 0.60029 0
vt 0.260094 0.597913 0
vt 0.258629 0.467787 0
vt 0.258944 0.470128 0
vt 0.258629 0.467787 0
vt 0.260094 0.597913 0
vt 0.260928 0.59725 0
vt 0.261121 0.70928 0
vt 0.260928 0.59725 0
vt 0.260094 0.597913 0
vt 0.260094 0.597913 0
vt 0.260663 0.706124 0
vt 0.261121 0.70928 0
vt 0.274948 0.60368 0
vt 0.279437 0.46891 0
vt 0.268213 0.473283 0
vt 0.279437 0.46891 0
vt 0.274948 0.60368 0
vt 0.282059 0.598512 0
vt 0.280188 0.712876 0
vt 0.282059 0.598512 0
vt 0.274948 0.60368 0
vt 0.282059 0.598512 0
vt 0.296149 0.498778 0
vt 0.279437 0.46891 0
vt 0.296149 0.498778 0
vt 0.282059 0.598512 0
vt 0.289579 0.607903 0
vt 0.280188 0.712876 0
vt 0.289579 0.607903 0
vt 0.282059 0.598512 0
vt 0.256074 0.225569 0
vt 0.254765 0.223859 0
vt 0.25606 0.224542 0
vt 0.268165 0.304854 0
vt 0.259274 0.224633 0
vt 0.261773 0.341651 0
vt 0.268165 0.304854 0
vt 0.261701 0.225083 0
vt 0.259274 0.224633 0
vt 0.261773 0.341651 0
vt 0.259274 0.224633 0
vt 0.254765 0.223859 0
vt 0.326841 0.411966 0
vt 0.326902 0.411453 0
vt 0.32347 0.405813 0
vt 0.318963 0.406996 0
vt 0.32347 0.405813 0
vt 0.323534 0.404369 0
vt 0.326966 0.411042 0
vt 0.323534 0.404369 0
vt 0.326902 0.411453 0
vt 0.32347 0.405813 0
vt 0.326902 0.411453 0
vt 0.323534 0.404369 0
vt 0.315879 0.505343 0
vt 0.320183 0.505835 0
vt 0.320989 0.484644 0
vt 0.326104 0.46639 0
vt 0.320989 0.484644 0
vt 0.32541 0.486921 0
vt 0.320989 0.484644 0
vt 0.320183 0.505835 0
vt 0.32541 0.486921 0
vt 0.319025 0.465793 0
vt 0.322533 0.465041 0
vt 0.322754 0.450999 0
vt 0.326471 0.444659 0
vt 0.322754 0.450999 0
vt 0.326439 0.453103 0
vt 0.326104 0.46639 0
vt 0.326439 0.453103 0
vt 0.322533 0.465041 0
vt 0.322754 0.450999 0
vt 0.322533 0.465041 0
vt 0.326439 0.453103 0
vt 0.319025 0.465793 0
vt 0.317392 0.485269 0
vt 0.322533 0.465041 0
vt 0.326104 0.46639 0
vt 0.322533 0.465041 0
vt 0.320989 0.484644 0
vt 0.315879 0.505343 0
vt 0.320989 0.484644 0
vt 0.317392 0.485269 0
vt 0.322533 0.465041 0
vt 0.317392 0.485269 0
vt 0.320989 0.484644 0
vt 0.31344 0.474109 0
vt 0.31446 0.4505 0
vt 0.309193 0.484845 0
vt 0.305167 0.49607 0
vt 0.309193 0.484845 0
vt 0.310257 0.461479 0
vt 0.316156 0.428641 0
vt 0.310257 0.461479 0
vt 0.31446 0.4505 0
vt 0.309193 0.484845 0
vt 0.31446 0.4505 0
vt 0.310257 0.461479 0
vt 0.320628 0.435934 0
vt 0.318247 0.431781 0
vt 0.316873 0.45445 0
vt 0.31344 0.474109 0
vt 0.316873 0.45445 0
vt 0.31446 0.4505 0
vt 0.316156 0.428641 0
vt 0.31446 0.4505 0
vt 0.318247 0.431781 0
vt 0.316873 0.45445 0
vt 0.318247 0.431781 0
vt 0.31446 0.4505 0
vt 0.320628 0.435934 0
vt 0.323362 0.435857 0
vt 0.323573 0.428935 0
vt 0.326812 0.430436 0
vt 0.323573 0.428935 0
vt 0.326698 0.437442 0
vt 0.326471 0.444659 0
vt 0.326698 0.437442 0
vt 0.323362 0.435857 0
vt 0.323573 0.428935 0
vt 0.323362 0.435857 0
vt 0.326698 0.437442 0
vt 0.32105 0.41649 0
vt 0.323713 0.419013 0
vt 0.323744 0.414116 0
vt 0.326834 0.418059 0
vt 0.323744 0.414116 0
vt 0.326779 0.423534 0
vt 0.326812 0.430436 0
vt 0.326779 0.423534 0
vt 0.323713 0.419013 0
vt 0.323744 0.414116 0
vt 0.323713 0.419013 0
vt 0.326779 0.423534 0
vt 0.32105 0.41649 0
vt 0.320703 0.425675 0
vt 0.323713 0.419013 0
vt 0.326812 0.430436 0
vt 0.323713 0.419013 0
vt 0.323573 0.428935 0
vt 0.320628 0.435934 0
vt 0.323573 0.428935 0
vt 0.320703 0.425675 0
vt 0.323713 0.419013 0
vt 0.320703 0.425675 0
vt 0.323573 0.428935 0
vt 0.320628 0.435934 0
vt 0.320703 0.425675 0
vt 0.318247 0.431781 0
vt 0.316156 0.428641 0
vt 0.318247 0.431781 0
vt 0.318482 0.422168 0
vt 0.32105 0.41649 0
vt 0.318482 0.422168 0
vt 0.320703 0.425675 0
vt 0.318247 0.431781 0
vt 0.320703 0.425675 0
vt 0.318482 0.422168 0
vt 0.305167 0.49607 0
vt 0.310257 0.461479 0
vt 0.305992 0.476271 0
vt 0.307301 0.457407 0
vt 0.305992 0.476271 0
vt 0.311586 0.442725 0
vt 0.316156 0.428641 0
vt 0.311586 0.442725 0
vt 0.310257 0.461479 0
vt 0.305992 0.476271 0
vt 0.310257 0.461479 0
vt 0.311586 0.442725 0
vt 0.32105 0.41649 0
vt 0.323744 0.414116 0
vt 0.323899 0.409724 0
vt 0.326841 0.411966 0
vt 0.323899 0.409724 0
vt 0.326844 0.414211 0
vt 0.326834 0.418059 0
vt 0.326844 0.414211 0
vt 0.323744 0.414116 0
vt 0.323899 0.409724 0
vt 0.323744 0.414116 0
vt 0.326844 0.414211 0
vt 0.326841 0.411966 0
vt 0.32347 0.405813 0
vt 0.323899 0.409724 0
vt 0.32105 0.41649 0
vt 0.323899 0.409724 0
vt 0.319747 0.411498 0
vt 0.318834 0.408157 0
vt 0.319747 0.411498 0
vt 0.32347 0.405813 0
vt 0.323899 0.409724 0
vt 0.32347 0.405813 0
vt 0.319747 0.411498 0
vt 0.318834 0.408157 0
vt 0.32347 0.405813 0
vt 0.318963 0.406996 0
vt 0.313745 0.424082 0
vt 0.313029 0.422227 0
vt 0.31016 0.432919 0
vt 0.306785 0.442232 0
vt 0.31016 0.432919 0
vt 0.309454 0.431107 0
vt 0.312464 0.420756 0
vt 0.309454 0.431107 0
vt 0.313029 0.422227 0
vt 0.31016 0.432919 0
vt 0.313029 0.422227 0
vt 0.309454 0.431107 0
vt 0.318834 0.408157 0
vt 0.315518 0.414042 0
vt 0.316148 0.415671 0
vt 0.313745 0.424082 0
vt 0.316148 0.415671 0
vt 0.313029 0.422227 0
vt 0.312464 0.420756 0
vt 0.313029 0.422227 0
vt 0.315518 0.414042 0
vt 0.316148 0.415671 0
vt 0.315518 0.414042 0
vt 0.313029 0.422227 0
vt 0.32105 0.41649 0
vt 0.319747 0.411498 0
vt 0.31717 0.419513 0
vt 0.313745 0.424082 0
vt 0.31717 0.419513 0
vt 0.316148 0.415671 0
vt 0.318834 0.408157 0
vt 0.316148 0.415671 0
vt 0.319747 0.411498 0
vt 0.31717 0.419513 0
vt 0.319747 0.411498 0
vt 0.316148 0.415671 0
vt 0.318834 0.408157 0
vt 0.318963 0.406996 0
vt 0.315518 0.414042 0
vt 0.312464 0.420756 0
vt 0.315518 0.414042 0
vt 0.315506 0.413119 0
vt 0.315518 0.414042 0
vt 0.318963 0.406996 0
vt 0.315506 0.413119 0
vt 0.306785 0.442232 0
vt 0.309454 0.431107 0
vt 0.305405 0.443076 0
vt 0.304143 0.444144 0
vt 0.305405 0.443076 0
vt 0.308091 0.432003 0
vt 0.312464 0.420756 0
vt 0.308091 0.432003 0
vt 0.309454 0.431107 0
vt 0.305405 0.443076 0
vt 0.309454 0.431107 0
vt 0.308091 0.432003 0
vt 0.316156 0.428641 0
vt 0.311239 0.434934 0
vt 0.311586 0.442725 0
vt 0.307301 0.457407 0
vt 0.311586 0.442725 0
vt 0.306907 0.449558 0
vt 0.306785 0.442232 0
vt 0.306907 0.449558 0
vt 0.311239 0.434934 0
vt 0.311586 0.442725 0
vt 0.311239 0.434934 0
vt 0.306907 0.449558 0
vt 0.313745 0.424082 0
vt 0.31016 0.432919 0
vt 0.314825 0.426054 0
vt 0.316156 0.428641 0
vt 0.314825 0.426054 0
vt 0.311239 0.434934 0
vt 0.306785 0.442232 0
vt 0.311239 0.434934 0
vt 0.31016 0.432919 0
vt 0.314825 0.426054 0
vt 0.31016 0.432919 0
vt 0.311239 0.434934 0
vt 0.32105 0.41649 0
vt 0.31717 0.419513 0
vt 0.318482 0.422168 0
vt 0.316156 0.428641 0
vt 0.318482 0.422168 0
vt 0.314825 0.426054 0
vt 0.313745 0.424082 0
vt 0.314825 0.426054 0
vt 0.31717 0.419513 0
vt 0.318482 0.422168 0
vt 0.31717 0.419513 0
vt 0.314825 0.426054 0
vt 0.315879 0.505343 0
vt 0.317392 0.485269 0
vt 0.314502 0.489272 0
vt 0.31344 0.474109 0
vt 0.314502 0.489272 0
vt 0.316157 0.46968 0
vt 0.319025 0.465793 0
vt 0.316157 0.46968 0
vt 0.317392 0.485269 0
vt 0.314502 0.489272 0
vt 0.317392 0.485269 0
vt 0.316157 0.46968 0
vt 0.320628 0.435934 0
vt 0.319745 0.450409 0
vt 0.323362 0.435857 0
vt 0.326471 0.444659 0
vt 0.323362 0.435857 0
vt 0.322754 0.450999 0
vt 0.319025 0.465793 0
vt 0.322754 0.450999 0
vt 0.319745 0.450409 0
vt 0.323362 0.435857 0
vt 0.319745 0.450409 0
vt 0.322754 0.450999 0
vt 0.31344 0.474109 0
vt 0.316157 0.46968 0
vt 0.316873 0.45445 0
vt 0.320628 0.435934 0
vt 0.316873 0.45445 0
vt 0.319745 0.450409 0
vt 0.319025 0.465793 0
vt 0.319745 0.450409 0
vt 0.316157 0.46968 0
vt 0.316873 0.45445 0
vt 0.316157 0.46968 0
vt 0.319745 0.450409 0
vt 0.307301 0.457407 0
vt 0.302396 0.468533 0
vt 0.302772 0.481178 0
vt 0.307301 0.457407 0
vt 0.302772 0.481178 0
vt 0.305992 0.476271 0
vt 0.304143 0.444144 0
vt 0.299594 0.462789 0
vt 0.300921 0.462075 0
vt 0.306785 0.442232 0
vt 0.305405 0.443076 0
vt 0.302149 0.46094 0
vt 0.304143 0.444144 0
vt 0.300921 0.462075 0
vt 0.305405 0.443076 0
vt 0.302149 0.46094 0
vt 0.305405 0.443076 0
vt 0.300921 0.462075 0
vt 0.307301 0.457407 0
vt 0.306907 0.449558 0
vt 0.302396 0.468533 0
vt 0.306785 0.442232 0
vt 0.302149 0.46094 0
vt 0.306907 0.449558 0
vt 0.302396 0.468533 0
vt 0.306907 0.449558 0
vt 0.302149 0.46094 0
vt 0.31344 0.474109 0
vt 0.309193 0.484845 0
vt 0.308851 0.502283 0
vt 0.31344 0.474109 0
vt 0.308851 0.502283 0
vt 0.314502 0.489272 0
vt 0.337656 0.407122 0
vt 0.332171 0.399429 0
vt 0.332238 0.400599 0
vt 0.329071 0.399383 0
vt 0.328639 0.400051 0
vt 0.332171 0.399429 0
vt 0.332238 0.400599 0
vt 0.332171 0.399429 0
vt 0.328639 0.400051 0
vt 0.328516 0.432308 0
vt 0.330587 0.428102 0
vt 0.328132 0.425153 0
vt 0.334241 0.433281 0
vt 0.330587 0.428102 0
vt 0.330671 0.439143 0
vt 0.328944 0.445344 0
vt 0.330671 0.439143 0
vt 0.328912 0.438696 0
vt 0.328516 0.432308 0
vt 0.328912 0.438696 0
vt 0.330587 0.428102 0
vt 0.330671 0.439143 0
vt 0.330587 0.428102 0
vt 0.328912 0.438696 0
vt 0.334241 0.433281 0
vt 0.334132 0.425604 0
vt 0.330587 0.428102 0
vt 0.333895 0.417643 0
vt 0.330717 0.415922 0
vt 0.334132 0.425604 0
vt 0.327981 0.41718 0
vt 0.330552 0.419663 0
vt 0.330717 0.415922 0
vt 0.334132 0.425604 0
vt 0.330717 0.415922 0
vt 0.330552 0.419663 0
vt 0.327981 0.41718 0
vt 0.328132 0.425153 0
vt 0.330552 0.419663 0
vt 0.334132 0.425604 0
vt 0.330552 0.419663 0
vt 0.330587 0.428102 0
vt 0.328132 0.425153 0
vt 0.330587 0.428102 0
vt 0.330552 0.419663 0
vt 0.335267 0.462795 0
vt 0.335295 0.454716 0
vt 0.331916 0.464052 0
vt 0.329714 0.461898 0
vt 0.331916 0.464052 0
vt 0.331271 0.45646 0
vt 0.335455 0.444677 0
vt 0.331271 0.45646 0
vt 0.335295 0.454716 0
vt 0.331916 0.464052 0
vt 0.335295 0.454716 0
vt 0.331271 0.45646 0
vt 0.334241 0.433281 0
vt 0.330671 0.439143 0
vt 0.335455 0.444677 0
vt 0.328944 0.445344 0
vt 0.331058 0.44779 0
vt 0.330671 0.439143 0
vt 0.335455 0.444677 0
vt 0.330671 0.439143 0
vt 0.331058 0.44779 0
vt 0.329714 0.461898 0
vt 0.331271 0.45646 0
vt 0.329181 0.454109 0
vt 0.328944 0.445344 0
vt 0.329181 0.454109 0
vt 0.331058 0.44779 0
vt 0.335455 0.444677 0
vt 0.331058 0.44779 0
vt 0.331271 0.45646 0
vt 0.329181 0.454109 0
vt 0.331271 0.45646 0
vt 0.331058 0.44779 0
vt 0.335267 0.462795 0
vt 0.331916 0.464052 0
vt 0.331487 0.474622 0
vt 0.3293 0.481701 0
vt 0.331487 0.474622 0
vt 0.329438 0.472187 0
vt 0.329714 0.461898 0
vt 0.329438 0.472187 0
vt 0.331916 0.464052 0
vt 0.331487 0.474622 0
vt 0.331916 0.464052 0
vt 0.329438 0.472187 0
vt 0.327981 0.41718 0
vt 0.330717 0.415922 0
vt 0.32798 0.410323 0
vt 0.333895 0.417643 0
vt 0.330715 0.409579 0
vt 0.330717 0.415922 0
vt 0.328154 0.405673 0
vt 0.32798 0.410323 0
vt 0.330715 0.409579 0
vt 0.330717 0.415922 0
vt 0.330715 0.409579 0
vt 0.32798 0.410323 0
vt 0.337388 0.411115 0
vt 0.332179 0.403469 0
vt 0.336019 0.413513 0
vt 0.333895 0.417643 0
vt 0.336019 0.413513 0
vt 0.330715 0.409579 0
vt 0.328154 0.405673 0
vt 0.330715 0.409579 0
vt 0.33118 0.407085 0
vt 0.330715 0.409579 0
vt 0.336019 0.413513 0
vt 0.33118 0.407085 0
vt 0.336019 0.413513 0
vt 0.332179 0.403469 0
vt 0.33118 0.407085 0
vt 0.328154 0.405673 0
vt 0.33118 0.407085 0
vt 0.328493 0.40315 0
vt 0.328668 0.401499 0
vt 0.328493 0.40315 0
vt 0.332179 0.403469 0
vt 0.33118 0.407085 0
vt 0.332179 0.403469 0
vt 0.328493 0.40315 0
vt 0.328668 0.401499 0
vt 0.332179 0.403469 0
vt 0.332238 0.400599 0
vt 0.337656 0.407122 0
vt 0.332238 0.400599 0
vt 0.337388 0.411115 0
vt 0.332179 0.403469 0
vt 0.337388 0.411115 0
vt 0.332238 0.400599 0
vt 0.328668 0.401499 0
vt 0.332238 0.400599 0
vt 0.328639 0.400051 0
vt 0.32615 0.530036 0
vt 0.325717 0.50856 0
vt 0.323336 0.52802 0
vt 0.32615 0.530036 0
vt 0.329709 0.509249 0
vt 0.325717 0.50856 0
vt 0.325717 0.50856 0
vt 0.32541 0.486921 0
vt 0.320183 0.505835 0
vt 0.305167 0.49607 0
vt 0.301716 0.500521 0
vt 0.300855 0.51797 0
vt 0.296924 0.540498 0
vt 0.300855 0.51797 0
vt 0.29757 0.522747 0
vt 0.298673 0.505636 0
vt 0.29757 0.522747 0
vt 0.301716 0.500521 0
vt 0.300855 0.51797 0
vt 0.301716 0.500521 0
vt 0.29757 0.522747 0
vt 0.304745 0.531546 0
vt 0.304716 0.513358 0
vt 0.300641 0.535721 0
vt 0.296924 0.540498 0
vt 0.300641 0.535721 0
vt 0.300855 0.51797 0
vt 0.305167 0.49607 0
vt 0.300855 0.51797 0
vt 0.304716 0.513358 0
vt 0.300641 0.535721 0
vt 0.304716 0.513358 0
vt 0.300855 0.51797 0
vt 0.298673 0.505636 0
vt 0.302772 0.481178 0
vt 0.298151 0.492797 0
vt 0.298094 0.480612 0
vt 0.298151 0.492797 0
vt 0.302396 0.468533 0
vt 0.302772 0.481178 0
vt 0.302396 0.468533 0
vt 0.298151 0.492797 0
vt 0.305167 0.49607 0
vt 0.305992 0.476271 0
vt 0.301716 0.500521 0
vt 0.298673 0.505636 0
vt 0.301716 0.500521 0
vt 0.302772 0.481178 0
vt 0.301716 0.500521 0
vt 0.305992 0.476271 0
vt 0.302772 0.481178 0
vt 0.298094 0.480612 0
vt 0.300921 0.462075 0
vt 0.296787 0.481347 0
vt 0.295575 0.482209 0
vt 0.296787 0.481347 0
vt 0.299594 0.462789 0
vt 0.300921 0.462075 0
vt 0.299594 0.462789 0
vt 0.296787 0.481347 0
vt 0.298094 0.480612 0
vt 0.302149 0.46094 0
vt 0.300921 0.462075 0
vt 0.298094 0.480612 0
vt 0.302396 0.468533 0
vt 0.302149 0.46094 0
vt 0.304745 0.531546 0
vt 0.308851 0.502283 0
vt 0.304716 0.513358 0
vt 0.305167 0.49607 0
vt 0.304716 0.513358 0
vt 0.309193 0.484845 0
vt 0.308851 0.502283 0
vt 0.309193 0.484845 0
vt 0.304716 0.513358 0
vt 0.315879 0.505343 0
vt 0.314502 0.489272 0
vt 0.310164 0.518048 0
vt 0.304745 0.531546 0
vt 0.310164 0.518048 0
vt 0.308851 0.502283 0
vt 0.310164 0.518048 0
vt 0.314502 0.489272 0
vt 0.308851 0.502283 0
vt 0.325717 0.50856 0
vt 0.320183 0.505835 0
vt 0.323336 0.52802 0
vt 0.322133 0.549575 0
vt 0.323336 0.52802 0
vt 0.318925 0.52709 0
vt 0.315879 0.505343 0
vt 0.318925 0.52709 0
vt 0.320183 0.505835 0
vt 0.323336 0.52802 0
vt 0.320183 0.505835 0
vt 0.318925 0.52709 0
vt 0.315879 0.505343 0
vt 0.310164 0.518048 0
vt 0.318925 0.52709 0
vt 0.322133 0.549575 0
vt 0.318925 0.52709 0
vt 0.313123 0.539662 0
vt 0.304745 0.531546 0
vt 0.313123 0.539662 0
vt 0.310164 0.518048 0
vt 0.318925 0.52709 0
vt 0.310164 0.518048 0
vt 0.313123 0.539662 0
vt 0.326441 0.41099 0
vt 0.32638 0.411404 0
vt 0.329071 0.399383 0
vt 0.326322 0.41192 0
vt 0.328639 0.400051 0
vt 0.32638 0.411404 0
vt 0.32638 0.411404 0
vt 0.328639 0.400051 0
vt 0.329071 0.399383 0
vt 0.326178 0.444624 0
vt 0.328516 0.432308 0
vt 0.326355 0.437398 0
vt 0.326422 0.430388 0
vt 0.326355 0.437398 0
vt 0.328132 0.425153 0
vt 0.328132 0.425153 0
vt 0.326355 0.437398 0
vt 0.328516 0.432308 0
vt 0.326104 0.46639 0
vt 0.328944 0.445344 0
vt 0.326205 0.453068 0
vt 0.326178 0.444624 0
vt 0.326205 0.453068 0
vt 0.328516 0.432308 0
vt 0.326205 0.453068 0
vt 0.328912 0.438696 0
vt 0.328516 0.432308 0
vt 0.326205 0.453068 0
vt 0.328944 0.445344 0
vt 0.328912 0.438696 0
vt 0.326422 0.430388 0
vt 0.328132 0.425153 0
vt 0.327981 0.41718 0
vt 0.326104 0.46639 0
vt 0.329181 0.454109 0
vt 0.328944 0.445344 0
vt 0.326104 0.46639 0
vt 0.329714 0.461898 0
vt 0.329181 0.454109 0
vt 0.326104 0.46639 0
vt 0.32541 0.486921 0
vt 0.329714 0.461898 0
vt 0.325717 0.50856 0
vt 0.3293 0.481701 0
vt 0.32541 0.486921 0
vt 0.32541 0.486921 0
vt 0.329438 0.472187 0
vt 0.329714 0.461898 0
vt 0.329438 0.472187 0
vt 0.32541 0.486921 0
vt 0.3293 0.481701 0
vt 0.326358 0.418012 0
vt 0.326341 0.423488 0
vt 0.32798 0.410323 0
vt 0.326422 0.430388 0
vt 0.327981 0.41718 0
vt 0.326341 0.423488 0
vt 0.32798 0.410323 0
vt 0.326341 0.423488 0
vt 0.327981 0.41718 0
vt 0.326358 0.418012 0
vt 0.32798 0.410323 0
vt 0.326341 0.414164 0
vt 0.326322 0.41192 0
vt 0.326341 0.414164 0
vt 0.328154 0.405673 0
vt 0.326341 0.414164 0
vt 0.32798 0.410323 0
vt 0.328154 0.405673 0
vt 0.326322 0.41192 0
vt 0.328493 0.40315 0
vt 0.328668 0.401499 0
vt 0.326322 0.41192 0
vt 0.328154 0.405673 0
vt 0.328493 0.40315 0
vt 0.326322 0.41192 0
vt 0.328668 0.401499 0
vt 0.328639 0.400051 0
vt 0.334833 0.511758 0
vt 0.334499 0.487955 0
vt 0.329709 0.509249 0
vt 0.325717 0.50856 0
vt 0.329709 0.509249 0
vt 0.3293 0.481701 0
vt 0.331487 0.474622 0
vt 0.334499 0.487955 0
vt 0.335267 0.462795 0
vt 0.334499 0.487955 0
vt 0.331487 0.474622 0
vt 0.3293 0.481701 0
vt 0.329709 0.509249 0
vt 0.334499 0.487955 0
vt 0.3293 0.481701 0
vt 0.334833 0.511758 0
vt 0.329709 0.509249 0
vt 0.32615 0.530036 0
vt 0.322133 0.549575 0
vt 0.32615 0.530036 0
vt 0.323336 0.52802 0
vt 0.341591 0.435587 0
vt 0.337207 0.43356 0
vt 0.337912 0.449627 0
vt 0.337912 0.449627 0
vt 0.335295 0.454716 0
vt 0.335267 0.462795 0
vt 0.335295 0.454716 0
vt 0.337912 0.449627 0
vt 0.335455 0.444677 0
vt 0.335455 0.444677 0
vt 0.337207 0.43356 0
vt 0.334241 0.433281 0
vt 0.337912 0.449627 0
vt 0.337207 0.43356 0
vt 0.335455 0.444677 0
vt 0.341591 0.435587 0
vt 0.33732 0.425537 0
vt 0.337207 0.43356 0
vt 0.337207 0.43356 0
vt 0.334132 0.425604 0
vt 0.334241 0.433281 0
vt 0.334132 0.425604 0
vt 0.33732 0.425537 0
vt 0.333895 0.417643 0
vt 0.337207 0.43356 0
vt 0.33732 0.425537 0
vt 0.334132 0.425604 0
vt 0.333895 0.417643 0
vt 0.33732 0.425537 0
vt 0.337701 0.421147 0
vt 0.342388 0.426372 0
vt 0.337701 0.421147 0
vt 0.341591 0.435587 0
vt 0.33732 0.425537 0
vt 0.341591 0.435587 0
vt 0.337701 0.421147 0
vt 0.342388 0.426372 0
vt 0.34028 0.418903 0
vt 0.337701 0.421147 0
vt 0.337701 0.421147 0
vt 0.336019 0.413513 0
vt 0.333895 0.417643 0
vt 0.336019 0.413513 0
vt 0.34028 0.418903 0
vt 0.337388 0.411115 0
vt 0.337701 0.421147 0
vt 0.34028 0.418903 0
vt 0.336019 0.413513 0
vt 0.335267 0.462795 0
vt 0.337692 0.469162 0
vt 0.337912 0.449627 0
vt 0.341591 0.435587 0
vt 0.337912 0.449627 0
vt 0.340993 0.453912 0
vt 0.340237 0.473378 0
vt 0.340993 0.453912 0
vt 0.337692 0.469162 0
vt 0.337912 0.449627 0
vt 0.337692 0.469162 0
vt 0.340993 0.453912 0
vt 0.340237 0.473378 0
vt 0.337692 0.469162 0
vt 0.33757 0.492193 0
vt 0.334833 0.511758 0
vt 0.33757 0.492193 0
vt 0.334499 0.487955 0
vt 0.335267 0.462795 0
vt 0.334499 0.487955 0
vt 0.337692 0.469162 0
vt 0.33757 0.492193 0
vt 0.337692 0.469162 0
vt 0.334499 0.487955 0
vt 0.313371 0.486784 0
vt 0.296149 0.498778 0
vt 0.318393 0.598506 0
vt 0.296149 0.498778 0
vt 0.302823 0.617382 0
vt 0.318393 0.598506 0
vt 0.273509 0.321699 0
vt 0.27265 0.205405 0
vt 0.270345 0.195674 0
vt 0.273509 0.321699 0
vt 0.276277 0.330164 0
vt 0.27265 0.205405 0
vt 0.276277 0.330164 0
vt 0.276806 0.202187 0
vt 0.27265 0.205405 0
vt 0.276277 0.330164 0
vt 0.279927 0.319977 0
vt 0.276806 0.202187 0
vt 0.279927 0.319977 0
vt 0.282761 0.202601 0
vt 0.276806 0.202187 0
vt 0.279927 0.319977 0
vt 0.284911 0.324134 0
vt 0.282761 0.202601 0
vt 0.284911 0.324134 0
vt 0.289412 0.204286 0
vt 0.282761 0.202601 0
vt 0.284911 0.324134 0
vt 0.292193 0.326348 0
vt 0.289412 0.204286 0
vt 0.292193 0.326348 0
vt 0.297737 0.206536 0
vt 0.289412 0.204286 0
vt 0.292193 0.326348 0
vt 0.299315 0.324735 0
vt 0.297737 0.206536 0
vt 0.299315 0.324735 0
vt 0.308219 0.209404 0
vt 0.297737 0.206536 0
vt 0.299315 0.324735 0
vt 0.306545 0.327771 0
vt 0.308219 0.209404 0
vt 0.306545 0.327771 0
vt 0.318438 0.212952 0
vt 0.308219 0.209404 0
vt 0.306545 0.327771 0
vt 0.315436 0.33737 0
vt 0.318438 0.212952 0
vt 0.315436 0.33737 0
vt 0.329177 0.217334 0
vt 0.318438 0.212952 0
vt 0.315436 0.33737 0
vt 0.32484 0.333782 0
vt 0.329177 0.217334 0
vt 0.32484 0.333782 0
vt 0.342356 0.222696 0
vt 0.329177 0.217334 0
vt 0.32484 0.333782 0
vt 0.335138 0.347261 0
vt 0.342356 0.222696 0
vt 0.335138 0.347261 0
vt 0.353015 0.228528 0
vt 0.342356 0.222696 0
vt 0.335138 0.347261 0
vt 0.345296 0.345649 0
vt 0.353015 0.228528 0
vt 0.345296 0.345649 0
vt 0.362524 0.233957 0
vt 0.353015 0.228528 0
vt 0.345296 0.345649 0
vt 0.352291 0.357805 0
vt 0.362524 0.233957 0
vt 0.352291 0.357805 0
vt 0.369547 0.238946 0
vt 0.362524 0.233957 0
vt 0.352291 0.357805 0
vt 0.359403 0.35575 0
vt 0.369547 0.238946 0
vt 0.359403 0.35575 0
vt 0.377344 0.244545 0
vt 0.369547 0.238946 0
vt 0.359403 0.35575 0
vt 0.365311 0.365555 0
vt 0.377344 0.244545 0
vt 0.365311 0.365555 0
vt 0.385234 0.250933 0
vt 0.377344 0.244545 0
vt 0.365311 0.365555 0
vt 0.374219 0.373338 0
vt 0.385234 0.250933 0
vt 0.374219 0.373338 0
vt 0.392046 0.256607 0
vt 0.385234 0.250933 0
vt 0.374219 0.373338 0
vt 0.37986 0.373664 0
vt 0.392046 0.256607 0
vt 0.37986 0.373664 0
vt 0.396178 0.257838 0
vt 0.392046 0.256607 0
vt 0.37986 0.373664 0
vt 0.381551 0.380362 0
vt 0.396178 0.257838 0
vt 0.381551 0.380362 0
vt 0.396147 0.268529 0
vt 0.396178 0.257838 0
vt 0.381551 0.380362 0
vt 0.382242 0.381885 0
vt 0.396147 0.268529 0
vt 0.270345 0.195674 0
vt 0.269081 0.0866495 0
vt 0.266635 0.0745493 0
vt 0.270345 0.195674 0
vt 0.27265 0.205405 0
vt 0.269081 0.0866495 0
vt 0.27265 0.205405 0
vt 0.274152 0.0833345 0
vt 0.269081 0.0866495 0
vt 0.27265 0.205405 0
vt 0.276806 0.202187 0
vt 0.274152 0.0833345 0
vt 0.276806 0.202187 0
vt 0.280496 0.084035 0
vt 0.274152 0.0833345 0
vt 0.276806 0.202187 0
vt 0.282761 0.202601 0
vt 0.280496 0.084035 0
vt 0.282761 0.202601 0
vt 0.287307 0.0874529 0
vt 0.280496 0.084035 0
vt 0.282761 0.202601 0
vt 0.289412 0.204286 0
vt 0.287307 0.0874529 0
vt 0.289412 0.204286 0
vt 0.296463 0.0896759 0
vt 0.287307 0.0874529 0
vt 0.289412 0.204286 0
vt 0.297737 0.206536 0
vt 0.296463 0.0896759 0
vt 0.297737 0.206536 0
vt 0.307721 0.0929892 0
vt 0.296463 0.0896759 0
vt 0.297737 0.206536 0
vt 0.308219 0.209404 0
vt 0.307721 0.0929892 0
vt 0.308219 0.209404 0
vt 0.319915 0.0976107 0
vt 0.307721 0.0929892 0
vt 0.308219 0.209404 0
vt 0.318438 0.212952 0
vt 0.319915 0.0976107 0
vt 0.318438 0.212952 0
vt 0.33328 0.10278 0
vt 0.319915 0.0976107 0
vt 0.318438 0.212952 0
vt 0.329177 0.217334 0
vt 0.33328 0.10278 0
vt 0.329177 0.217334 0
vt 0.347556 0.108676 0
vt 0.33328 0.10278 0
vt 0.329177 0.217334 0
vt 0.342356 0.222696 0
vt 0.347556 0.108676 0
vt 0.342356 0.222696 0
vt 0.36005 0.115083 0
vt 0.347556 0.108676 0
vt 0.342356 0.222696 0
vt 0.353015 0.228528 0
vt 0.36005 0.115083 0
vt 0.353015 0.228528 0
vt 0.370136 0.120168 0
vt 0.36005 0.115083 0
vt 0.353015 0.228528 0
vt 0.362524 0.233957 0
vt 0.370136 0.120168 0
vt 0.362524 0.233957 0
vt 0.378481 0.125304 0
vt 0.370136 0.120168 0
vt 0.362524 0.233957 0
vt 0.369547 0.238946 0
vt 0.378481 0.125304 0
vt 0.369547 0.238946 0
vt 0.386881 0.129973 0
vt 0.378481 0.125304 0
vt 0.369547 0.238946 0
vt 0.377344 0.244545 0
vt 0.386881 0.129973 0
vt 0.377344 0.244545 0
vt 0.395708 0.135513 0
vt 0.386881 0.129973 0
vt 0.377344 0.244545 0
vt 0.385234 0.250933 0
vt 0.395708 0.135513 0
vt 0.385234 0.250933 0
vt 0.403644 0.140017 0
vt 0.395708 0.135513 0
vt 0.385234 0.250933 0
vt 0.392046 0.256607 0
vt 0.403644 0.140017 0
vt 0.392046 0.256607 0
vt 0.409097 0.139547 0
vt 0.403644 0.140017 0
vt 0.392046 0.256607 0
vt 0.396178 0.257838 0
vt 0.409097 0.139547 0
vt 0.396178 0.257838 0
vt 0.409628 0.150964 0
vt 0.409097 0.139547 0
vt 0.396178 0.257838 0
vt 0.396147 0.268529 0
vt 0.409628 0.150964 0
vt 0.266635 0.0745493 0
vt 0.265888 0.965242 0
vt 0.263882 0.951747 0
vt 0.266635 0.0745493 0
vt 0.269081 0.0866495 0
vt 0.265888 0.965242 0
vt 0.269081 0.0866495 0
vt 0.271353 0.961384 0
vt 0.265888 0.965242 0
vt 0.269081 0.0866495 0
vt 0.274152 0.0833345 0
vt 0.271353 0.961384 0
vt 0.274152 0.0833345 0
vt 0.278625 0.962211 0
vt 0.271353 0.961384 0
vt 0.274152 0.0833345 0
vt 0.280496 0.084035 0
vt 0.278625 0.962211 0
vt 0.280496 0.084035 0
vt 0.285593 0.964908 0
vt 0.278625 0.962211 0
vt 0.280496 0.084035 0
vt 0.287307 0.0874529 0
vt 0.285593 0.964908 0
vt 0.287307 0.0874529 0
vt 0.295586 0.968047 0
vt 0.285593 0.964908 0
vt 0.287307 0.0874529 0
vt 0.296463 0.0896759 0
vt 0.295586 0.968047 0
vt 0.296463 0.0896759 0
vt 0.308107 0.97201 0
vt 0.295586 0.968047 0
vt 0.296463 0.0896759 0
vt 0.307721 0.0929892 0
vt 0.308107 0.97201 0
vt 0.307721 0.0929892 0
vt 0.321083 0.977056 0
vt 0.308107 0.97201 0
vt 0.307721 0.0929892 0
vt 0.319915 0.0976107 0
vt 0.321083 0.977056 0
vt 0.319915 0.0976107 0
vt 0.336695 0.982799 0
vt 0.321083 0.977056 0
vt 0.319915 0.0976107 0
vt 0.33328 0.10278 0
vt 0.336695 0.982799 0
vt 0.33328 0.10278 0
vt 0.353085 0.989528 0
vt 0.336695 0.982799 0
vt 0.33328 0.10278 0
vt 0.347556 0.108676 0
vt 0.353085 0.989528 0
vt 0.347556 0.108676 0
vt 0.366999 0.99623 0
vt 0.353085 0.989528 0
vt 0.347556 0.108676 0
vt 0.36005 0.115083 0
vt 0.366999 0.99623 0
vt 0.36005 0.115083 0
vt 0.377778 0.00128355 0
vt 0.366999 0.99623 0
vt 0.36005 0.115083 0
vt 0.370136 0.120168 0
vt 0.377778 0.00128355 0
vt 0.370136 0.120168 0
vt 0.386938 0.00623978 0
vt 0.377778 0.00128355 0
vt 0.370136 0.120168 0
vt 0.378481 0.125304 0
vt 0.386938 0.00623978 0
vt 0.378481 0.125304 0
vt 0.396265 0.0103204 0
vt 0.386938 0.00623978 0
vt 0.378481 0.125304 0
vt 0.386881 0.129973 0
vt 0.396265 0.0103204 0
vt 0.386881 0.129973 0
vt 0.405566 0.0150714 0
vt 0.396265 0.0103204 0
vt 0.386881 0.129973 0
vt 0.395708 0.135513 0
vt 0.405566 0.0150714 0
vt 0.395708 0.135513 0
vt 0.414854 0.019213 0
vt 0.405566 0.0150714 0
vt 0.395708 0.135513 0
vt 0.403644 0.140017 0
vt 0.414854 0.019213 0
vt 0.403644 0.140017 0
vt 0.421735 0.0177277 0
vt 0.414854 0.019213 0
vt 0.403644 0.140017 0
vt 0.409097 0.139547 0
vt 0.421735 0.0177277 0
vt 0.409097 0.139547 0
vt 0.422722 0.029932 0
vt 0.421735 0.0177277 0
vt 0.409097 0.139547 0
vt 0.409628 0.150964 0
vt 0.422722 0.029932 0
vt 0.263882 0.951747 0
vt 0.263332 0.840019 0
vt 0.261913 0.825732 0
vt 0.263882 0.951747 0
vt 0.265888 0.965242 0
vt 0.263332 0.840019 0
vt 0.265888 0.965242 0
vt 0.268235 0.834037 0
vt 0.263332 0.840019 0
vt 0.265888 0.965242 0
vt 0.271353 0.961384 0
vt 0.268235 0.834037 0
vt 0.271353 0.961384 0
vt 0.275954 0.835743 0
vt 0.268235 0.834037 0
vt 0.271353 0.961384 0
vt 0.278625 0.962211 0
vt 0.275954 0.835743 0
vt 0.278625 0.962211 0
vt 0.283307 0.838713 0
vt 0.275954 0.835743 0
vt 0.278625 0.962211 0
vt 0.285593 0.964908 0
vt 0.283307 0.838713 0
vt 0.285593 0.964908 0
vt 0.293353 0.844193 0
vt 0.283307 0.838713 0
vt 0.285593 0.964908 0
vt 0.295586 0.968047 0
vt 0.293353 0.844193 0
vt 0.295586 0.968047 0
vt 0.308102 0.847994 0
vt 0.293353 0.844193 0
vt 0.295586 0.968047 0
vt 0.308107 0.97201 0
vt 0.308102 0.847994 0
vt 0.308107 0.97201 0
vt 0.321502 0.851928 0
vt 0.308102 0.847994 0
vt 0.308107 0.97201 0
vt 0.321083 0.977056 0
vt 0.321502 0.851928 0
vt 0.321083 0.977056 0
vt 0.337846 0.854014 0
vt 0.321502 0.851928 0
vt 0.321083 0.977056 0
vt 0.336695 0.982799 0
vt 0.337846 0.854014 0
vt 0.336695 0.982799 0
vt 0.356312 0.857969 0
vt 0.337846 0.854014 0
vt 0.336695 0.982799 0
vt 0.353085 0.989528 0
vt 0.356312 0.857969 0
vt 0.353085 0.989528 0
vt 0.371874 0.863757 0
vt 0.356312 0.857969 0
vt 0.353085 0.989528 0
vt 0.366999 0.99623 0
vt 0.371874 0.863757 0
vt 0.366999 0.99623 0
vt 0.383775 0.869691 0
vt 0.371874 0.863757 0
vt 0.366999 0.99623 0
vt 0.377778 0.00128355 0
vt 0.383775 0.869691 0
vt 0.377778 0.00128355 0
vt 0.393759 0.876104 0
vt 0.383775 0.869691 0
vt 0.377778 0.00128355 0
vt 0.386938 0.00623978 0
vt 0.393759 0.876104 0
vt 0.386938 0.00623978 0
vt 0.405212 0.882898 0
vt 0.393759 0.876104 0
vt 0.386938 0.00623978 0
vt 0.396265 0.0103204 0
vt 0.405212 0.882898 0
vt 0.396265 0.0103204 0
vt 0.415162 0.888577 0
vt 0.405212 0.882898 0
vt 0.396265 0.0103204 0
vt 0.405566 0.0150714 0
vt 0.415162 0.888577 0
vt 0.405566 0.0150714 0
vt 0.425562 0.893494 0
vt 0.415162 0.888577 0
vt 0.405566 0.0150714 0
vt 0.414854 0.019213 0
vt 0.425562 0.893494 0
vt 0.414854 0.019213 0
vt 0.433992 0.892621 0
vt 0.425562 0.893494 0
vt 0.414854 0.019213 0
vt 0.421735 0.0177277 0
vt 0.433992 0.892621 0
vt 0.421735 0.0177277 0
vt 0.435231 0.905702 0
vt 0.433992 0.892621 0
vt 0.421735 0.0177277 0
vt 0.422722 0.029932 0
vt 0.435231 0.905702 0
vt 0.261913 0.825732 0
vt 0.261121 0.70928 0
vt 0.260663 0.706124 0
vt 0.261913 0.825732 0
vt 0.263332 0.840019 0
vt 0.261121 0.70928 0
vt 0.263332 0.840019 0
vt 0.264943 0.704342 0
vt 0.261121 0.70928 0
vt 0.263332 0.840019 0
vt 0.268235 0.834037 0
vt 0.264943 0.704342 0
vt 0.268235 0.834037 0
vt 0.271918 0.714058 0
vt 0.264943 0.704342 0
vt 0.268235 0.834037 0
vt 0.275954 0.835743 0
vt 0.271918 0.714058 0
vt 0.275954 0.835743 0
vt 0.280188 0.712876 0
vt 0.271918 0.714058 0
vt 0.275954 0.835743 0
vt 0.283307 0.838713 0
vt 0.280188 0.712876 0
vt 0.283307 0.838713 0
vt 0.290653 0.719239 0
vt 0.280188 0.712876 0
vt 0.283307 0.838713 0
vt 0.293353 0.844193 0
vt 0.290653 0.719239 0
vt 0.293353 0.844193 0
vt 0.30449 0.72944 0
vt 0.290653 0.719239 0
vt 0.293353 0.844193 0
vt 0.308102 0.847994 0
vt 0.30449 0.72944 0
vt 0.308102 0.847994 0
vt 0.319763 0.719753 0
vt 0.30449 0.72944 0
vt 0.308102 0.847994 0
vt 0.321502 0.851928 0
vt 0.319763 0.719753 0
vt 0.321502 0.851928 0
vt 0.338365 0.723924 0
vt 0.319763 0.719753 0
vt 0.321502 0.851928 0
vt 0.337846 0.854014 0
vt 0.338365 0.723924 0
vt 0.337846 0.854014 0
vt 0.354808 0.723744 0
vt 0.338365 0.723924 0
vt 0.337846 0.854014 0
vt 0.356312 0.857969 0
vt 0.354808 0.723744 0
vt 0.356312 0.857969 0
vt 0.369639 0.720948 0
vt 0.354808 0.723744 0
vt 0.356312 0.857969 0
vt 0.371874 0.863757 0
vt 0.369639 0.720948 0
vt 0.371874 0.863757 0
vt 0.384924 0.730227 0
vt 0.369639 0.720948 0
vt 0.371874 0.863757 0
vt 0.383775 0.869691 0
vt 0.384924 0.730227 0
vt 0.383775 0.869691 0
vt 0.398477 0.734628 0
vt 0.384924 0.730227 0
vt 0.383775 0.869691 0
vt 0.393759 0.876104 0
vt 0.398477 0.734628 0
vt 0.393759 0.876104 0
vt 0.410833 0.755508 0
vt 0.398477 0.734628 0
vt 0.393759 0.876104 0
vt 0.405212 0.882898 0
vt 0.410833 0.755508 0
vt 0.405212 0.882898 0
vt 0.423797 0.75811 0
vt 0.410833 0.755508 0
vt 0.405212 0.882898 0
vt 0.415162 0.888577 0
vt 0.423797 0.75811 0
vt 0.415162 0.888577 0
vt 0.435729 0.771968 0
vt 0.423797 0.75811 0
vt 0.415162 0.888577 0
vt 0.425562 0.893494 0
vt 0.435729 0.771968 0
vt 0.425562 0.893494 0
vt 0.443807 0.777597 0
vt 0.435729 0.771968 0
vt 0.425562 0.893494 0
vt 0.433992 0.892621 0
vt 0.443807 0.777597 0
vt 0.433992 0.892621 0
vt 0.446851 0.778904 0
vt 0.443807 0.777597 0
vt 0.433992 0.892621 0
vt 0.435231 0.905702 0
vt 0.446851 0.778904 0
vt 0.619435 0.652178 0
vt 0.610978 0.618871 0
vt 0.602435 0.643797 0
vt 0.619435 0.652178 0
vt 0.609614 0.65382 0
vt 0.616071 0.656718 0
vt 0.619435 0.652178 0
vt 0.602435 0.643797 0
vt 0.609614 0.65382 0
vt 0.625861 0.602493 0
vt 0.628767 0.612383 0
vt 0.631539 0.609001 0
vt 0.632789 0.625557 0
vt 0.631539 0.609001 0
vt 0.628767 0.612383 0
vt 0.620068 0.606339 0
vt 0.628767 0.612383 0
vt 0.625861 0.602493 0
vt 0.620068 0.606339 0
vt 0.629733 0.623666 0
vt 0.628767 0.612383 0
vt 0.632789 0.625557 0
vt 0.628767 0.612383 0
vt 0.629733 0.623666 0
vt 0.610978 0.618871 0
vt 0.619435 0.652178 0
vt 0.62529 0.651505 0
vt 0.62529 0.651505 0
vt 0.623019 0.659838 0
vt 0.630031 0.657663 0
vt 0.623019 0.659838 0
vt 0.62529 0.651505 0
vt 0.619435 0.652178 0
vt 0.610978 0.618871 0
vt 0.62529 0.651505 0
vt 0.628195 0.643945 0
vt 0.628195 0.643945 0
vt 0.630031 0.657663 0
vt 0.633341 0.651668 0
vt 0.630031 0.657663 0
vt 0.628195 0.643945 0
vt 0.62529 0.651505 0
vt 0.623019 0.659838 0
vt 0.619435 0.652178 0
vt 0.616071 0.656718 0
vt 0.628195 0.643945 0
vt 0.620068 0.606339 0
vt 0.610978 0.618871 0
vt 0.620068 0.606339 0
vt 0.628195 0.643945 0
vt 0.629789 0.633297 0
vt 0.633341 0.651668 0
vt 0.629789 0.633297 0
vt 0.628195 0.643945 0
vt 0.632789 0.625557 0
vt 0.629789 0.633297 0
vt 0.633341 0.651668 0
vt 0.629789 0.633297 0
vt 0.632789 0.625557 0
vt 0.629733 0.623666 0
vt 0.620068 0.606339 0
vt 0.629789 0.633297 0
vt 0.629733 0.623666 0
vt 0.452371 0.710707 0
vt 0.445825 0.746561 0
vt 0.450171 0.740273 0
vt 0.446851 0.778904 0
vt 0.450171 0.740273 0
vt 0.445825 0.746561 0
vt 0.446851 0.778904 0
vt 0.452519 0.728397 0
vt 0.450171 0.740273 0
vt 0.452371 0.710707 0
vt 0.452519 0.728397 0
vt 0.456617 0.695853 0
vt 0.452519 0.728397 0
vt 0.452371 0.710707 0
vt 0.450171 0.740273 0
vt 0.254765 0.223859 0
vt 0.256074 0.225569 0
vt 0.256391 0.333613 0
vt 0.351383 0.215708 0
vt 0.320353 0.144875 0
vt 0.319874 0.210441 0
vt 0.324357 0.0916888 0
vt 0.320353 0.144875 0
vt 0.351383 0.215708 0
vt 0.382819 0.403272 0
vt 0.359834 0.43474 0
vt 0.380245 0.523495 0
vt 0.382819 0.403272 0
vt 0.363196 0.331177 0
vt 0.359834 0.43474 0
vt 0.322588 0.282912 0
vt 0.315795 0.354069 0
vt 0.338285 0.398481 0
vt 0.322588 0.282912 0
vt 0.306382 0.26074 0
vt 0.315795 0.354069 0
vt 0.401653 0.648806 0
vt 0.415138 0.724414 0
vt 0.412035 0.673773 0
vt 0.401653 0.648806 0
vt 0.390764 0.612411 0
vt 0.389026 0.657813 0
vt 0.401653 0.648806 0
vt 0.389026 0.657813 0
vt 0.405735 0.730755 0
vt 0.412035 0.673773 0
vt 0.402307 0.61896 0
vt 0.401653 0.648806 0
vt 0.398857 0.575981 0
vt 0.407452 0.619415 0
vt 0.405878 0.604792 0
vt 0.398857 0.575981 0
vt 0.396689 0.578671 0
vt 0.407452 0.619415 0
vt 0.425544 0.786849 0
vt 0.415138 0.724414 0
vt 0.424802 0.813056 0
vt 0.425544 0.786849 0
vt 0.419671 0.730476 0
vt 0.415138 0.724414 0
vt 0.419671 0.730476 0
vt 0.412035 0.673773 0
vt 0.415138 0.724414 0
vt 0.425544 0.786849 0
vt 0.425934 0.766273 0
vt 0.419671 0.730476 0
vt 0.433602 0.852235 0
vt 0.425934 0.766273 0
vt 0.425544 0.786849 0
vt 0.412035 0.673773 0
vt 0.419671 0.730476 0
vt 0.425934 0.766273 0
vt 0.433602 0.852235 0
vt 0.426565 0.762431 0
vt 0.425934 0.766273 0
vt 0.425934 0.766273 0
vt 0.415345 0.664092 0
vt 0.412035 0.673773 0
vt 0.415345 0.664092 0
vt 0.425934 0.766273 0
vt 0.426565 0.762431 0
vt 0.313629 0.86389 0
vt 0.32909 0.831679 0
vt 0.329974 0.75653 0
vt 0.329974 0.75653 0
vt 0.340337 0.824509 0
vt 0.344022 0.748717 0
vt 0.329974 0.75653 0
vt 0.32909 0.831679 0
vt 0.340337 0.824509 0
vt 0.343645 0.680624 0
vt 0.329974 0.75653 0
vt 0.344022 0.748717 0
vt 0.351581 0.806741 0
vt 0.344022 0.748717 0
vt 0.340337 0.824509 0
vt 0.344022 0.748717 0
vt 0.351581 0.806741 0
vt 0.35673 0.722751 0
vt 0.343645 0.680624 0
vt 0.344022 0.748717 0
vt 0.35673 0.722751 0
vt 0.351581 0.806741 0
vt 0.368012 0.784568 0
vt 0.35673 0.722751 0
vt 0.32909 0.831679 0
vt 0.313629 0.86389 0
vt 0.332267 0.902521 0
vt 0.332267 0.902521 0
vt 0.340337 0.824509 0
vt 0.32909 0.831679 0
vt 0.350516 0.897133 0
vt 0.340337 0.824509 0
vt 0.332267 0.902521 0
vt 0.350516 0.897133 0
vt 0.351581 0.806741 0
vt 0.340337 0.824509 0
vt 0.371262 0.88941 0
vt 0.368012 0.784568 0
vt 0.351581 0.806741 0
vt 0.351581 0.806741 0
vt 0.350516 0.897133 0
vt 0.371262 0.88941 0
vt 0.348371 0.439333 0
vt 0.359403 0.35575 0
vt 0.352291 0.357805 0
vt 0.348371 0.439333 0
vt 0.365311 0.365555 0
vt 0.359403 0.35575 0
vt 0.261551 0.474658 0
vt 0.258593 0.344174 0
vt 0.258629 0.467787 0
vt 0.258629 0.467787 0
vt 0.256391 0.333613 0
vt 0.258944 0.470128 0
vt 0.256391 0.333613 0
vt 0.258629 0.467787 0
vt 0.258593 0.344174 0
vt 0.258593 0.344174 0
vt 0.261551 0.474658 0
vt 0.261773 0.341651 0
vt 0.359834 0.43474 0
vt 0.36271 0.520654 0
vt 0.380245 0.523495 0
vt 0.375812 0.630234 0
vt 0.380245 0.523495 0
vt 0.36271 0.520654 0
vt 0.331028 0.506468 0
vt 0.318393 0.598506 0
vt 0.335737 0.627185 0
vt 0.318393 0.598506 0
vt 0.331028 0.506468 0
vt 0.313371 0.486784 0
vt 0.355764 0.638658 0
vt 0.375812 0.630234 0
vt 0.36271 0.520654 0
vt 0.355764 0.638658 0
vt 0.36271 0.520654 0
vt 0.348142 0.510974 0
vt 0.348142 0.510974 0
vt 0.359834 0.43474 0
vt 0.338285 0.398481 0
vt 0.359834 0.43474 0
vt 0.348142 0.510974 0
vt 0.36271 0.520654 0
vt 0.338285 0.398481 0
vt 0.331028 0.506468 0
vt 0.348142 0.510974 0
vt 0.348142 0.510974 0
vt 0.335737 0.627185 0
vt 0.355764 0.638658 0
vt 0.335737 0.627185 0
vt 0.348142 0.510974 0
vt 0.331028 0.506468 0
vt 0.268165 0.304854 0
vt 0.268213 0.473283 0
vt 0.279437 0.46891 0
vt 0.296149 0.498778 0
vt 0.299956 0.366175 0
vt 0.289099 0.346913 0
vt 0.261773 0.341651 0
vt 0.261551 0.474658 0
vt 0.268213 0.473283 0
vt 0.261773 0.341651 0
vt 0.268213 0.473283 0
vt 0.268165 0.304854 0
vt 0.315795 0.354069 0
vt 0.313371 0.486784 0
vt 0.331028 0.506468 0
vt 0.299956 0.366175 0
vt 0.313371 0.486784 0
vt 0.315795 0.354069 0
vt 0.299956 0.366175 0
vt 0.296149 0.498778 0
vt 0.313371 0.486784 0
vt 0.289099 0.346913 0
vt 0.279437 0.46891 0
vt 0.296149 0.498778 0
vt 0.254765 0.223859 0
vt 0.256391 0.333613 0
vt 0.258593 0.344174 0
vt 0.254765 0.223859 0
vt 0.258593 0.344174 0
vt 0.261773 0.341651 0
vt 0.273509 0.321699 0
vt 0.274538 0.430148 0
vt 0.276277 0.330164 0
vt 0.274538 0.430148 0
vt 0.273509 0.321699 0
vt 0.273541 0.430035 0
vt 0.273261 0.494144 0
vt 0.274538 0.430148 0
vt 0.273541 0.430035 0
vt 0.274538 0.430148 0
vt 0.275701 0.497028 0
vt 0.276136 0.430218 0
vt 0.275701 0.497028 0
vt 0.274538 0.430148 0
vt 0.273261 0.494144 0
vt 0.276277 0.330164 0
vt 0.274538 0.430148 0
vt 0.276136 0.430218 0
vt 0.279082 0.517957 0
vt 0.284197 0.438035 0
vt 0.280633 0.43109 0
vt 0.281505 0.376636 0
vt 0.280633 0.43109 0
vt 0.284197 0.438035 0
vt 0.279082 0.517957 0
vt 0.280633 0.43109 0
vt 0.278154 0.430584 0
vt 0.278154 0.430584 0
vt 0.281505 0.376636 0
vt 0.276277 0.330164 0
vt 0.281505 0.376636 0
vt 0.278154 0.430584 0
vt 0.280633 0.43109 0
vt 0.276277 0.330164 0
vt 0.276136 0.430218 0
vt 0.278154 0.430584 0
vt 0.278154 0.430584 0
vt 0.275701 0.497028 0
vt 0.279082 0.517957 0
vt 0.275701 0.497028 0
vt 0.278154 0.430584 0
vt 0.276136 0.430218 0
vt 0.452371 0.710707 0
vt 0.440068 0.720675 0
vt 0.445825 0.746561 0
vt 0.452371 0.710707 0
vt 0.45538 0.669014 0
vt 0.440068 0.720675 0
vt 0.281505 0.376636 0
vt 0.284911 0.324134 0
vt 0.279927 0.319977 0
vt 0.281505 0.376636 0
vt 0.286885 0.370309 0
vt 0.284911 0.324134 0
vt 0.292193 0.326348 0
vt 0.286885 0.370309 0
vt 0.291351 0.379527 0
vt 0.286885 0.370309 0
vt 0.292193 0.326348 0
vt 0.284911 0.324134 0
vt 0.306545 0.327771 0
vt 0.298701 0.352355 0
vt 0.305406 0.381658 0
vt 0.298701 0.352355 0
vt 0.306545 0.327771 0
vt 0.299315 0.324735 0
vt 0.281505 0.376636 0
vt 0.279927 0.319977 0
vt 0.276277 0.330164 0
vt 0.367835 0.46696 0
vt 0.37986 0.373664 0
vt 0.374219 0.373338 0
vt 0.373287 0.445643 0
vt 0.382242 0.381885 0
vt 0.381551 0.380362 0
vt 0.367835 0.46696 0
vt 0.381551 0.380362 0
vt 0.37986 0.373664 0
vt 0.348371 0.439333 0
vt 0.352291 0.357805 0
vt 0.342373 0.433929 0
vt 0.342373 0.433929 0
vt 0.352291 0.357805 0
vt 0.335807 0.423171 0
vt 0.335807 0.423171 0
vt 0.352291 0.357805 0
vt 0.345296 0.345649 0
vt 0.335807 0.423171 0
vt 0.345296 0.345649 0
vt 0.335138 0.347261 0
vt 0.335807 0.423171 0
vt 0.335138 0.347261 0
vt 0.327206 0.404824 0
vt 0.335138 0.347261 0
vt 0.320993 0.38203 0
vt 0.327206 0.404824 0
vt 0.320993 0.38203 0
vt 0.335138 0.347261 0
vt 0.32484 0.333782 0
vt 0.311058 0.399208 0
vt 0.320993 0.38203 0
vt 0.315436 0.33737 0
vt 0.315436 0.33737 0
vt 0.305406 0.381658 0
vt 0.311058 0.399208 0
vt 0.305406 0.381658 0
vt 0.315436 0.33737 0
vt 0.306545 0.327771 0
vt 0.320993 0.38203 0
vt 0.32484 0.333782 0
vt 0.315436 0.33737 0
vt 0.298701 0.352355 0
vt 0.292193 0.326348 0
vt 0.291351 0.379527 0
vt 0.292193 0.326348 0
vt 0.298701 0.352355 0
vt 0.299315 0.324735 0
vt 0.415946 0.700131 0
vt 0.410833 0.755508 0
vt 0.423797 0.75811 0
vt 0.440068 0.720675 0
vt 0.423797 0.75811 0
vt 0.435729 0.771968 0
vt 0.435729 0.771968 0
vt 0.445825 0.746561 0
vt 0.440068 0.720675 0
vt 0.445825 0.746561 0
vt 0.435729 0.771968 0
vt 0.443807 0.777597 0
vt 0.375812 0.630234 0
vt 0.369639 0.720948 0
vt 0.384924 0.730227 0
vt 0.415946 0.700131 0
vt 0.398477 0.734628 0
vt 0.410833 0.755508 0
vt 0.335737 0.627185 0
vt 0.319763 0.719753 0
vt 0.338365 0.723924 0
vt 0.318393 0.598506 0
vt 0.319763 0.719753 0
vt 0.335737 0.627185 0
vt 0.355764 0.638658 0
vt 0.338365 0.723924 0
vt 0.354808 0.723744 0
vt 0.355764 0.638658 0
vt 0.354808 0.723744 0
vt 0.369639 0.720948 0
vt 0.375812 0.630234 0
vt 0.355764 0.638658 0
vt 0.369639 0.720948 0
vt 0.302823 0.617382 0
vt 0.290653 0.719239 0
vt 0.30449 0.72944 0
vt 0.302823 0.617382 0
vt 0.30449 0.72944 0
vt 0.319763 0.719753 0
vt 0.318393 0.598506 0
vt 0.302823 0.617382 0
vt 0.319763 0.719753 0
vt 0.446851 0.778904 0
vt 0.445825 0.746561 0
vt 0.443807 0.777597 0
vt 0.547518 0.58018 0
vt 0.545011 0.60292 0
vt 0.610978 0.618871 0
vt 0.33947 0.577589 0
vt 0.33084 0.566254 0
vt 0.33591 0.584775 0
vt 0.34934 0.666861 0
vt 0.343645 0.680624 0
vt 0.35673 0.722751 0
vt 0.353126 0.665909 0
vt 0.34934 0.666861 0
vt 0.35673 0.722751 0
vt 0.345852 0.540613 0
vt 0.33947 0.577589 0
vt 0.346764 0.587167 0
vt 0.33947 0.577589 0
vt 0.345852 0.540613 0
vt 0.33084 0.566254 0
vt 0.330653 0.646334 0
vt 0.327659 0.675594 0
vt 0.337303 0.655339 0
vt 0.327659 0.675594 0
vt 0.330653 0.646334 0
vt 0.321658 0.633418 0
vt 0.333653 0.617169 0
vt 0.331284 0.613335 0
vt 0.331574 0.629234 0
vt 0.331284 0.613335 0
vt 0.333653 0.617169 0
vt 0.33591 0.584775 0
vt 0.333653 0.617169 0
vt 0.33898 0.596473 0
vt 0.33591 0.584775 0
vt 0.33898 0.596473 0
vt 0.333653 0.617169 0
vt 0.337037 0.609427 0
vt 0.355472 0.600136 0
vt 0.346764 0.587167 0
vt 0.350653 0.602217 0
vt 0.342686 0.602779 0
vt 0.339549 0.602778 0
vt 0.339866 0.606575 0
vt 0.342686 0.602779 0
vt 0.33898 0.596473 0
vt 0.339549 0.602778 0
vt 0.33898 0.596473 0
vt 0.33947 0.577589 0
vt 0.33591 0.584775 0
vt 0.33898 0.596473 0
vt 0.346764 0.587167 0
vt 0.33947 0.577589 0
vt 0.346528 0.595367 0
vt 0.348002 0.605114 0
vt 0.350653 0.602217 0
vt 0.346528 0.595367 0
vt 0.33898 0.596473 0
vt 0.342686 0.602779 0
vt 0.348002 0.605114 0
vt 0.346528 0.595367 0
vt 0.342686 0.602779 0
vt 0.346528 0.595367 0
vt 0.346764 0.587167 0
vt 0.33898 0.596473 0
vt 0.346764 0.587167 0
vt 0.346528 0.595367 0
vt 0.350653 0.602217 0
vt 0.342337 0.607924 0
vt 0.342686 0.602779 0
vt 0.339866 0.606575 0
vt 0.345327 0.606599 0
vt 0.342686 0.602779 0
vt 0.342337 0.607924 0
vt 0.345327 0.606599 0
vt 0.348002 0.605114 0
vt 0.342686 0.602779 0
vt 0.345327 0.606599 0
vt 0.342337 0.607924 0
vt 0.344673 0.609724 0
vt 0.346046 0.612575 0
vt 0.345327 0.606599 0
vt 0.344673 0.609724 0
vt 0.347629 0.609173 0
vt 0.345327 0.606599 0
vt 0.346046 0.612575 0
vt 0.347629 0.609173 0
vt 0.348002 0.605114 0
vt 0.345327 0.606599 0
vt 0.348002 0.605114 0
vt 0.349999 0.61159 0
vt 0.350653 0.602217 0
vt 0.347629 0.609173 0
vt 0.347886 0.618871 0
vt 0.349189 0.61925 0
vt 0.349999 0.61159 0
vt 0.347629 0.609173 0
vt 0.349189 0.61925 0
vt 0.347629 0.609173 0
vt 0.346046 0.612575 0
vt 0.347886 0.618871 0
vt 0.347629 0.609173 0
vt 0.349999 0.61159 0
vt 0.348002 0.605114 0
vt 0.349169 0.634049 0
vt 0.349189 0.61925 0
vt 0.347886 0.618871 0
vt 0.351244 0.641171 0
vt 0.349189 0.61925 0
vt 0.349169 0.634049 0
vt 0.349999 0.61159 0
vt 0.352761 0.613955 0
vt 0.350653 0.602217 0
vt 0.349999 0.61159 0
vt 0.352585 0.628216 0
vt 0.352761 0.613955 0
vt 0.351244 0.641171 0
vt 0.349999 0.61159 0
vt 0.349189 0.61925 0
vt 0.351244 0.641171 0
vt 0.352585 0.628216 0
vt 0.349999 0.61159 0
vt 0.365494 0.61428 0
vt 0.354282 0.637061 0
vt 0.353126 0.665909 0
vt 0.35488 0.619854 0
vt 0.354282 0.637061 0
vt 0.365494 0.61428 0
vt 0.352761 0.613955 0
vt 0.355472 0.600136 0
vt 0.350653 0.602217 0
vt 0.355472 0.600136 0
vt 0.35488 0.619854 0
vt 0.365494 0.61428 0
vt 0.352761 0.613955 0
vt 0.35488 0.619854 0
vt 0.355472 0.600136 0
vt 0.353126 0.665909 0
vt 0.351244 0.641171 0
vt 0.350337 0.654412 0
vt 0.354282 0.637061 0
vt 0.351244 0.641171 0
vt 0.353126 0.665909 0
vt 0.354282 0.637061 0
vt 0.352585 0.628216 0
vt 0.351244 0.641171 0
vt 0.352585 0.628216 0
vt 0.35488 0.619854 0
vt 0.352761 0.613955 0
vt 0.354282 0.637061 0
vt 0.35488 0.619854 0
vt 0.352585 0.628216 0
vt 0.347759 0.628999 0
vt 0.349169 0.634049 0
vt 0.347886 0.618871 0
vt 0.34689 0.636084 0
vt 0.349169 0.634049 0
vt 0.347759 0.628999 0
vt 0.348406 0.647983 0
vt 0.350337 0.654412 0
vt 0.351244 0.641171 0
vt 0.349169 0.634049 0
vt 0.348406 0.647983 0
vt 0.351244 0.641171 0
vt 0.348101 0.64057 0
vt 0.348406 0.647983 0
vt 0.349169 0.634049 0
vt 0.34689 0.636084 0
vt 0.348101 0.64057 0
vt 0.349169 0.634049 0
vt 0.344312 0.639873 0
vt 0.346112 0.642265 0
vt 0.344965 0.63907 0
vt 0.345342 0.645524 0
vt 0.346112 0.642265 0
vt 0.344312 0.639873 0
vt 0.345342 0.645524 0
vt 0.348406 0.647983 0
vt 0.346112 0.642265 0
vt 0.348406 0.647983 0
vt 0.347529 0.657148 0
vt 0.350337 0.654412 0
vt 0.343183 0.648309 0
vt 0.342232 0.641347 0
vt 0.340439 0.643008 0
vt 0.345342 0.645524 0
vt 0.342232 0.641347 0
vt 0.343183 0.648309 0
vt 0.347529 0.657148 0
vt 0.345342 0.645524 0
vt 0.343183 0.648309 0
vt 0.345342 0.645524 0
vt 0.344312 0.639873 0
vt 0.342232 0.641347 0
vt 0.345342 0.645524 0
vt 0.347529 0.657148 0
vt 0.348406 0.647983 0
vt 0.34704 0.641031 0
vt 0.348101 0.64057 0
vt 0.34689 0.636084 0
vt 0.345845 0.638131 0
vt 0.34704 0.641031 0
vt 0.34689 0.636084 0
vt 0.34704 0.641031 0
vt 0.348406 0.647983 0
vt 0.348101 0.64057 0
vt 0.346112 0.642265 0
vt 0.345845 0.638131 0
vt 0.344965 0.63907 0
vt 0.34704 0.641031 0
vt 0.345845 0.638131 0
vt 0.346112 0.642265 0
vt 0.348406 0.647983 0
vt 0.34704 0.641031 0
vt 0.346112 0.642265 0
vt 0.338719 0.610205 0
vt 0.337037 0.609427 0
vt 0.336914 0.619304 0
vt 0.339549 0.602778 0
vt 0.337037 0.609427 0
vt 0.338719 0.610205 0
vt 0.339549 0.602778 0
vt 0.33898 0.596473 0
vt 0.337037 0.609427 0
vt 0.339549 0.602778 0
vt 0.338719 0.610205 0
vt 0.339866 0.606575 0
vt 0.321658 0.633418 0
vt 0.331284 0.613335 0
vt 0.33084 0.566254 0
vt 0.321658 0.633418 0
vt 0.331574 0.629234 0
vt 0.331284 0.613335 0
vt 0.335008 0.622489 0
vt 0.335516 0.627918 0
vt 0.336523 0.626353 0
vt 0.336914 0.619304 0
vt 0.335008 0.622489 0
vt 0.336523 0.626353 0
vt 0.333266 0.628467 0
vt 0.333653 0.617169 0
vt 0.331574 0.629234 0
vt 0.335008 0.622489 0
vt 0.336914 0.619304 0
vt 0.337037 0.609427 0
vt 0.333653 0.617169 0
vt 0.335008 0.622489 0
vt 0.337037 0.609427 0
vt 0.335008 0.622489 0
vt 0.333266 0.628467 0
vt 0.335516 0.627918 0
vt 0.335008 0.622489 0
vt 0.333653 0.617169 0
vt 0.333266 0.628467 0
vt 0.338985 0.636183 0
vt 0.338043 0.642887 0
vt 0.340439 0.643008 0
vt 0.336024 0.632496 0
vt 0.338043 0.642887 0
vt 0.338985 0.636183 0
vt 0.337223 0.63092 0
vt 0.336024 0.632496 0
vt 0.338985 0.636183 0
vt 0.336024 0.632496 0
vt 0.333266 0.628467 0
vt 0.338043 0.642887 0
vt 0.335516 0.627918 0
vt 0.337223 0.63092 0
vt 0.336523 0.626353 0
vt 0.336024 0.632496 0
vt 0.337223 0.63092 0
vt 0.335516 0.627918 0
vt 0.336024 0.632496 0
vt 0.335516 0.627918 0
vt 0.333266 0.628467 0
vt 0.344051 0.667247 0
vt 0.347529 0.657148 0
vt 0.343183 0.648309 0
vt 0.347529 0.657148 0
vt 0.34934 0.666861 0
vt 0.350337 0.654412 0
vt 0.34934 0.666861 0
vt 0.344051 0.667247 0
vt 0.343645 0.680624 0
vt 0.344051 0.667247 0
vt 0.34934 0.666861 0
vt 0.347529 0.657148 0
vt 0.34934 0.666861 0
vt 0.353126 0.665909 0
vt 0.350337 0.654412 0
vt 0.338043 0.642887 0
vt 0.343183 0.648309 0
vt 0.340439 0.643008 0
vt 0.337303 0.655339 0
vt 0.343183 0.648309 0
vt 0.338043 0.642887 0
vt 0.337303 0.655339 0
vt 0.344051 0.667247 0
vt 0.343183 0.648309 0
vt 0.337303 0.655339 0
vt 0.343645 0.680624 0
vt 0.344051 0.667247 0
vt 0.330653 0.646334 0
vt 0.333266 0.628467 0
vt 0.331574 0.629234 0
vt 0.330653 0.646334 0
vt 0.337303 0.655339 0
vt 0.338043 0.642887 0
vt 0.333266 0.628467 0
vt 0.330653 0.646334 0
vt 0.338043 0.642887 0
vt 0.321658 0.633418 0
vt 0.330653 0.646334 0
vt 0.331574 0.629234 0
vt 0.346111 0.620829 0
vt 0.347759 0.628999 0
vt 0.347886 0.618871 0
vt 0.345527 0.631301 0
vt 0.347759 0.628999 0
vt 0.346111 0.620829 0
vt 0.344007 0.625483 0
vt 0.345527 0.631301 0
vt 0.346111 0.620829 0
vt 0.345527 0.631301 0
vt 0.34689 0.636084 0
vt 0.347759 0.628999 0
vt 0.343835 0.630512 0
vt 0.345527 0.631301 0
vt 0.344007 0.625483 0
vt 0.344642 0.635549 0
vt 0.34689 0.636084 0
vt 0.345527 0.631301 0
vt 0.343835 0.630512 0
vt 0.344642 0.635549 0
vt 0.345527 0.631301 0
vt 0.344642 0.635549 0
vt 0.345845 0.638131 0
vt 0.34689 0.636084 0
vt 0.345845 0.638131 0
vt 0.344642 0.635549 0
vt 0.344965 0.63907 0
vt 0.344642 0.635549 0
vt 0.344312 0.639873 0
vt 0.344965 0.63907 0
vt 0.342539 0.636239 0
vt 0.344312 0.639873 0
vt 0.344642 0.635549 0
vt 0.343835 0.630512 0
vt 0.342539 0.636239 0
vt 0.344642 0.635549 0
vt 0.342232 0.641347 0
vt 0.340715 0.63749 0
vt 0.340439 0.643008 0
vt 0.342539 0.636239 0
vt 0.340715 0.63749 0
vt 0.342232 0.641347 0
vt 0.344312 0.639873 0
vt 0.342539 0.636239 0
vt 0.342232 0.641347 0
vt 0.342539 0.636239 0
vt 0.34178 0.632918 0
vt 0.340715 0.63749 0
vt 0.34178 0.632918 0
vt 0.342539 0.636239 0
vt 0.343835 0.630512 0
vt 0.340715 0.63749 0
vt 0.338985 0.636183 0
vt 0.340439 0.643008 0
vt 0.34178 0.632918 0
vt 0.338985 0.636183 0
vt 0.340715 0.63749 0
vt 0.337223 0.63092 0
vt 0.338818 0.630788 0
vt 0.336523 0.626353 0
vt 0.34094 0.631407 0
vt 0.338985 0.636183 0
vt 0.34178 0.632918 0
vt 0.338818 0.630788 0
vt 0.338985 0.636183 0
vt 0.34094 0.631407 0
vt 0.340728 0.627159 0
vt 0.338818 0.630788 0
vt 0.34094 0.631407 0
vt 0.338818 0.630788 0
vt 0.337223 0.63092 0
vt 0.338985 0.636183 0
vt 0.338631 0.625016 0
vt 0.336523 0.626353 0
vt 0.338818 0.630788 0
vt 0.340728 0.627159 0
vt 0.338631 0.625016 0
vt 0.338818 0.630788 0
vt 0.338631 0.625016 0
vt 0.336914 0.619304 0
vt 0.336523 0.626353 0
vt 0.33891 0.618908 0
vt 0.338631 0.625016 0
vt 0.340728 0.627159 0
vt 0.341544 0.62092 0
vt 0.33891 0.618908 0
vt 0.340728 0.627159 0
vt 0.33891 0.618908 0
vt 0.336914 0.619304 0
vt 0.338631 0.625016 0
vt 0.33891 0.618908 0
vt 0.338719 0.610205 0
vt 0.336914 0.619304 0
vt 0.340473 0.612221 0
vt 0.338719 0.610205 0
vt 0.33891 0.618908 0
vt 0.341544 0.62092 0
vt 0.340473 0.612221 0
vt 0.33891 0.618908 0
vt 0.338719 0.610205 0
vt 0.340473 0.612221 0
vt 0.339866 0.606575 0
vt 0.340473 0.612221 0
vt 0.342337 0.607924 0
vt 0.339866 0.606575 0
vt 0.342444 0.614434 0
vt 0.342337 0.607924 0
vt 0.340473 0.612221 0
vt 0.341544 0.62092 0
vt 0.342444 0.614434 0
vt 0.340473 0.612221 0
vt 0.342444 0.614434 0
vt 0.344991 0.617259 0
vt 0.344673 0.609724 0
vt 0.342337 0.607924 0
vt 0.342444 0.614434 0
vt 0.344673 0.609724 0
vt 0.342444 0.614434 0
vt 0.342599 0.620621 0
vt 0.344991 0.617259 0
vt 0.342599 0.620621 0
vt 0.342444 0.614434 0
vt 0.341544 0.62092 0
vt 0.346046 0.612575 0
vt 0.346111 0.620829 0
vt 0.347886 0.618871 0
vt 0.344991 0.617259 0
vt 0.346046 0.612575 0
vt 0.344673 0.609724 0
vt 0.344991 0.617259 0
vt 0.344007 0.625483 0
vt 0.346111 0.620829 0
vt 0.346046 0.612575 0
vt 0.344991 0.617259 0
vt 0.346111 0.620829 0
vt 0.344991 0.617259 0
vt 0.342599 0.620621 0
vt 0.344007 0.625483 0
vt 0.331284 0.613335 0
vt 0.33591 0.584775 0
vt 0.33084 0.566254 0
vt 0.332267 0.902521 0
vt 0.317422 0.96045 0
vt 0.335626 0.0372187 0
vt 0.350952 0.113743 0
vt 0.324357 0.0916888 0
vt 0.351383 0.215708 0
vt 0.371262 0.88941 0
vt 0.381656 0.773273 0
vt 0.368012 0.784568 0
vt 0.381656 0.773273 0
vt 0.369637 0.711934 0
vt 0.368012 0.784568 0
vt 0.341591 0.435587 0
vt 0.347812 0.475531 0
vt 0.348388 0.441756 0
vt 0.348388 0.441756 0
vt 0.342388 0.426372 0
vt 0.341591 0.435587 0
vt 0.342388 0.426372 0
vt 0.348388 0.441756 0
vt 0.35598 0.439769 0
vt 0.350689 0.424895 0
vt 0.342388 0.426372 0
vt 0.35598 0.439769 0
vt 0.350689 0.424895 0
vt 0.34028 0.418903 0
vt 0.342388 0.426372 0
vt 0.350689 0.424895 0
vt 0.337388 0.411115 0
vt 0.34028 0.418903 0
vt 0.337388 0.411115 0
vt 0.350689 0.424895 0
vt 0.350037 0.422226 0
vt 0.350037 0.422226 0
vt 0.337656 0.407122 0
vt 0.337388 0.411115 0
vt 0.340993 0.453912 0
vt 0.347812 0.475531 0
vt 0.341591 0.435587 0
vt 0.347812 0.475531 0
vt 0.340993 0.453912 0
vt 0.340237 0.473378 0
vt 0.29757 0.522747 0
vt 0.291148 0.549016 0
vt 0.296924 0.540498 0
vt 0.291148 0.549016 0
vt 0.29757 0.522747 0
vt 0.298673 0.505636 0
vt 0.288872 0.537143 0
vt 0.291148 0.549016 0
vt 0.298673 0.505636 0
vt 0.298151 0.492797 0
vt 0.288872 0.537143 0
vt 0.298673 0.505636 0
vt 0.288872 0.537143 0
vt 0.298151 0.492797 0
vt 0.298094 0.480612 0
vt 0.296787 0.481347 0
vt 0.286867 0.536068 0
vt 0.298094 0.480612 0
vt 0.286867 0.536068 0
vt 0.296787 0.481347 0
vt 0.295575 0.482209 0
vt 0.286867 0.536068 0
vt 0.288872 0.537143 0
vt 0.298094 0.480612 0
vt 0.347812 0.475531 0
vt 0.357075 0.493317 0
vt 0.353535 0.464272 0
vt 0.347812 0.475531 0
vt 0.347622 0.506243 0
vt 0.357075 0.493317 0
vt 0.353535 0.464272 0
vt 0.348388 0.441756 0
vt 0.347812 0.475531 0
vt 0.348388 0.441756 0
vt 0.366547 0.478886 0
vt 0.365431 0.462285 0
vt 0.348388 0.441756 0
vt 0.353535 0.464272 0
vt 0.366547 0.478886 0
vt 0.365431 0.462285 0
vt 0.35598 0.439769 0
vt 0.348388 0.441756 0
vt 0.35598 0.439769 0
vt 0.365068 0.450725 0
vt 0.350689 0.424895 0
vt 0.35598 0.439769 0
vt 0.365431 0.462285 0
vt 0.365068 0.450725 0
vt 0.350037 0.422226 0
vt 0.350689 0.424895 0
vt 0.365068 0.450725 0
vt 0.340237 0.473378 0
vt 0.347622 0.506243 0
vt 0.347812 0.475531 0
vt 0.33757 0.492193 0
vt 0.347622 0.506243 0
vt 0.340237 0.473378 0
vt 0.347622 0.506243 0
vt 0.33757 0.492193 0
vt 0.334833 0.511758 0
vt 0.350952 0.113743 0
vt 0.374831 0.224814 0
vt 0.377146 0.161533 0
vt 0.372456 0.0946521 0
vt 0.350952 0.113743 0
vt 0.377146 0.161533 0
vt 0.350952 0.113743 0
vt 0.351383 0.215708 0
vt 0.374831 0.224814 0
vt 0.374831 0.224814 0
vt 0.3916 0.252166 0
vt 0.377146 0.161533 0
vt 0.382819 0.403272 0
vt 0.3916 0.252166 0
vt 0.374831 0.224814 0
vt 0.374831 0.224814 0
vt 0.363196 0.331177 0
vt 0.382819 0.403272 0
vt 0.374831 0.224814 0
vt 0.351383 0.215708 0
vt 0.363196 0.331177 0
vt 0.344339 0.298017 0
vt 0.338285 0.398481 0
vt 0.359834 0.43474 0
vt 0.344339 0.298017 0
vt 0.363196 0.331177 0
vt 0.351383 0.215708 0
vt 0.359834 0.43474 0
vt 0.363196 0.331177 0
vt 0.344339 0.298017 0
vt 0.272403 0.882956 0
vt 0.275864 0.811986 0
vt 0.272788 0.781361 0
vt 0.276615 0.881734 0
vt 0.275864 0.811986 0
vt 0.272403 0.882956 0
vt 0.274555 0.919478 0
vt 0.276615 0.881734 0
vt 0.272403 0.882956 0
vt 0.276615 0.881734 0
vt 0.280238 0.828311 0
vt 0.275864 0.811986 0
vt 0.275864 0.811986 0
vt 0.280427 0.707441 0
vt 0.272788 0.781361 0
vt 0.285172 0.757506 0
vt 0.280427 0.707441 0
vt 0.275864 0.811986 0
vt 0.280238 0.828311 0
vt 0.285172 0.757506 0
vt 0.275864 0.811986 0
vt 0.285172 0.757506 0
vt 0.29108 0.666116 0
vt 0.280427 0.707441 0
vt 0.275555 0.696803 0
vt 0.285432 0.637459 0
vt 0.280042 0.644798 0
vt 0.280427 0.707441 0
vt 0.285432 0.637459 0
vt 0.275555 0.696803 0
vt 0.272788 0.781361 0
vt 0.280427 0.707441 0
vt 0.275555 0.696803 0
vt 0.280427 0.707441 0
vt 0.29108 0.666116 0
vt 0.285432 0.637459 0
vt 0.285432 0.637459 0
vt 0.289561 0.608279 0
vt 0.280042 0.644798 0
vt 0.295888 0.622283 0
vt 0.289561 0.608279 0
vt 0.285432 0.637459 0
vt 0.29108 0.666116 0
vt 0.295888 0.622283 0
vt 0.285432 0.637459 0
vt 0.295888 0.622283 0
vt 0.299602 0.599976 0
vt 0.289561 0.608279 0
vt 0.283885 0.609066 0
vt 0.294515 0.573921 0
vt 0.288468 0.571774 0
vt 0.289561 0.608279 0
vt 0.294515 0.573921 0
vt 0.283885 0.609066 0
vt 0.280042 0.644798 0
vt 0.289561 0.608279 0
vt 0.283885 0.609066 0
vt 0.289561 0.608279 0
vt 0.299602 0.599976 0
vt 0.294515 0.573921 0
vt 0.299602 0.599976 0
vt 0.305907 0.559959 0
vt 0.294515 0.573921 0
vt 0.288468 0.571774 0
vt 0.299289 0.542911 0
vt 0.293844 0.529638 0
vt 0.294515 0.573921 0
vt 0.299289 0.542911 0
vt 0.288468 0.571774 0
vt 0.294515 0.573921 0
vt 0.305907 0.559959 0
vt 0.299289 0.542911 0
vt 0.299289 0.542911 0
vt 0.303448 0.50984 0
vt 0.293844 0.529638 0
vt 0.30928 0.536488 0
vt 0.303448 0.50984 0
vt 0.299289 0.542911 0
vt 0.305907 0.559959 0
vt 0.30928 0.536488 0
vt 0.299289 0.542911 0
vt 0.30928 0.536488 0
vt 0.312871 0.513184 0
vt 0.303448 0.50984 0
vt 0.293844 0.529638 0
vt 0.303448 0.50984 0
vt 0.297994 0.485931 0
vt 0.277749 0.887596 0
vt 0.273543 0.850969 0
vt 0.281392 0.871209 0
vt 0.272403 0.882956 0
vt 0.273543 0.850969 0
vt 0.277749 0.887596 0
vt 0.274555 0.919478 0
vt 0.272403 0.882956 0
vt 0.277749 0.887596 0
vt 0.272403 0.882956 0
vt 0.272788 0.781361 0
vt 0.273543 0.850969 0
vt 0.277583 0.844587 0
vt 0.271841 0.790148 0
vt 0.273709 0.809283 0
vt 0.273543 0.850969 0
vt 0.271841 0.790148 0
vt 0.277583 0.844587 0
vt 0.281392 0.871209 0
vt 0.273543 0.850969 0
vt 0.277583 0.844587 0
vt 0.273543 0.850969 0
vt 0.272788 0.781361 0
vt 0.271841 0.790148 0
vt 0.271841 0.790148 0
vt 0.273329 0.725844 0
vt 0.273709 0.809283 0
vt 0.275555 0.696803 0
vt 0.273329 0.725844 0
vt 0.271841 0.790148 0
vt 0.272788 0.781361 0
vt 0.275555 0.696803 0
vt 0.271841 0.790148 0
vt 0.275555 0.696803 0
vt 0.280042 0.644798 0
vt 0.273329 0.725844 0
vt 0.273329 0.725844 0
vt 0.277076 0.659642 0
vt 0.272614 0.730356 0
vt 0.273709 0.809283 0
vt 0.273329 0.725844 0
vt 0.272614 0.730356 0
vt 0.273329 0.725844 0
vt 0.280042 0.644798 0
vt 0.277076 0.659642 0
vt 0.283885 0.609066 0
vt 0.280601 0.617164 0
vt 0.277076 0.659642 0
vt 0.280042 0.644798 0
vt 0.283885 0.609066 0
vt 0.277076 0.659642 0
vt 0.283885 0.609066 0
vt 0.288468 0.571774 0
vt 0.280601 0.617164 0
vt 0.280601 0.617164 0
vt 0.28444 0.578972 0
vt 0.279573 0.616966 0
vt 0.277076 0.659642 0
vt 0.280601 0.617164 0
vt 0.279573 0.616966 0
vt 0.280601 0.617164 0
vt 0.288468 0.571774 0
vt 0.28444 0.578972 0
vt 0.288468 0.571774 0
vt 0.293844 0.529638 0
vt 0.28444 0.578972 0
vt 0.282844 0.574478 0
vt 0.288029 0.542376 0
vt 0.285758 0.532672 0
vt 0.28444 0.578972 0
vt 0.288029 0.542376 0
vt 0.282844 0.574478 0
vt 0.279573 0.616966 0
vt 0.28444 0.578972 0
vt 0.282844 0.574478 0
vt 0.28444 0.578972 0
vt 0.293844 0.529638 0
vt 0.288029 0.542376 0
vt 0.288029 0.542376 0
vt 0.291415 0.502028 0
vt 0.285758 0.532672 0
vt 0.293844 0.529638 0
vt 0.291415 0.502028 0
vt 0.288029 0.542376 0
vt 0.293844 0.529638 0
vt 0.297994 0.485931 0
vt 0.291415 0.502028 0
vt 0.285758 0.532672 0
vt 0.291415 0.502028 0
vt 0.291578 0.48069 0
vt 0.273709 0.809283 0
vt 0.272614 0.730356 0
vt 0.271016 0.775399 0
vt 0.272614 0.730356 0
vt 0.277076 0.659642 0
vt 0.273069 0.699423 0
vt 0.271016 0.775399 0
vt 0.272614 0.730356 0
vt 0.273069 0.699423 0
vt 0.277076 0.659642 0
vt 0.277506 0.622934 0
vt 0.273069 0.699423 0
vt 0.279573 0.616966 0
vt 0.277506 0.622934 0
vt 0.277076 0.659642 0
vt 0.282844 0.574478 0
vt 0.281442 0.564847 0
vt 0.277506 0.622934 0
vt 0.279573 0.616966 0
vt 0.282844 0.574478 0
vt 0.277506 0.622934 0
vt 0.282844 0.574478 0
vt 0.285758 0.532672 0
vt 0.281442 0.564847 0
vt 0.277506 0.622934 0
vt 0.281442 0.564847 0
vt 0.279312 0.568443 0
vt 0.281442 0.564847 0
vt 0.284 0.514747 0
vt 0.279312 0.568443 0
vt 0.285758 0.532672 0
vt 0.284 0.514747 0
vt 0.281442 0.564847 0
vt 0.285758 0.532672 0
vt 0.291578 0.48069 0
vt 0.284 0.514747 0
vt 0.279312 0.568443 0
vt 0.284 0.514747 0
vt 0.281661 0.505784 0
vt 0.276437 0.818011 0
vt 0.273088 0.787244 0
vt 0.280494 0.810141 0
vt 0.271016 0.775399 0
vt 0.273088 0.787244 0
vt 0.276437 0.818011 0
vt 0.273709 0.809283 0
vt 0.271016 0.775399 0
vt 0.276437 0.818011 0
vt 0.277735 0.767576 0
vt 0.272667 0.742378 0
vt 0.275316 0.725414 0
vt 0.273088 0.787244 0
vt 0.272667 0.742378 0
vt 0.277735 0.767576 0
vt 0.280494 0.810141 0
vt 0.273088 0.787244 0
vt 0.277735 0.767576 0
vt 0.273088 0.787244 0
vt 0.271016 0.775399 0
vt 0.272667 0.742378 0
vt 0.272667 0.742378 0
vt 0.273299 0.698068 0
vt 0.275316 0.725414 0
vt 0.273069 0.699423 0
vt 0.273299 0.698068 0
vt 0.272667 0.742378 0
vt 0.271016 0.775399 0
vt 0.273069 0.699423 0
vt 0.272667 0.742378 0
vt 0.27433 0.69418 0
vt 0.273299 0.698068 0
vt 0.275378 0.649996 0
vt 0.275316 0.725414 0
vt 0.273299 0.698068 0
vt 0.27433 0.69418 0
vt 0.273299 0.698068 0
vt 0.277172 0.5907 0
vt 0.275378 0.649996 0
vt 0.277506 0.622934 0
vt 0.277172 0.5907 0
vt 0.273299 0.698068 0
vt 0.273069 0.699423 0
vt 0.277506 0.622934 0
vt 0.273299 0.698068 0
vt 0.275378 0.649996 0
vt 0.277172 0.5907 0
vt 0.275847 0.605624 0
vt 0.277506 0.622934 0
vt 0.279312 0.568443 0
vt 0.277172 0.5907 0
vt 0.275847 0.605624 0
vt 0.277172 0.5907 0
vt 0.275813 0.564358 0
vt 0.277172 0.5907 0
vt 0.279082 0.517957 0
vt 0.275813 0.564358 0
vt 0.281661 0.505784 0
vt 0.279082 0.517957 0
vt 0.277172 0.5907 0
vt 0.279312 0.568443 0
vt 0.281661 0.505784 0
vt 0.277172 0.5907 0
vt 0.284365 0.790408 0
vt 0.277735 0.767576 0
vt 0.289164 0.762607 0
vt 0.280494 0.810141 0
vt 0.277735 0.767576 0
vt 0.284365 0.790408 0
vt 0.283165 0.735675 0
vt 0.275316 0.725414 0
vt 0.279622 0.703121 0
vt 0.277735 0.767576 0
vt 0.275316 0.725414 0
vt 0.283165 0.735675 0
vt 0.289164 0.762607 0
vt 0.277735 0.767576 0
vt 0.283165 0.735675 0
vt 0.275316 0.725414 0
vt 0.276354 0.676146 0
vt 0.279622 0.703121 0
vt 0.27433 0.69418 0
vt 0.276354 0.676146 0
vt 0.275316 0.725414 0
vt 0.27433 0.69418 0
vt 0.275378 0.649996 0
vt 0.276354 0.676146 0
vt 0.279622 0.703121 0
vt 0.276354 0.676146 0
vt 0.277534 0.664599 0
vt 0.276354 0.676146 0
vt 0.275847 0.605624 0
vt 0.277534 0.664599 0
vt 0.275378 0.649996 0
vt 0.275847 0.605624 0
vt 0.276354 0.676146 0
vt 0.277534 0.664599 0
vt 0.275847 0.605624 0
vt 0.275646 0.601562 0
vt 0.275847 0.605624 0
vt 0.275813 0.564358 0
vt 0.275646 0.601562 0
vt 0.275646 0.601562 0
vt 0.275813 0.564358 0
vt 0.273261 0.494144 0
vt 0.275813 0.564358 0
vt 0.275701 0.497028 0
vt 0.273261 0.494144 0
vt 0.296462 0.409231 0
vt 0.298701 0.352355 0
vt 0.291351 0.379527 0
vt 0.298701 0.352355 0
vt 0.296462 0.409231 0
vt 0.305406 0.381658 0
vt 0.316924 0.413651 0
vt 0.320993 0.38203 0
vt 0.311058 0.399208 0
vt 0.327206 0.404824 0
vt 0.320993 0.38203 0
vt 0.316924 0.413651 0
vt 0.322034 0.429137 0
vt 0.327206 0.404824 0
vt 0.316924 0.413651 0
vt 0.30162 0.424722 0
vt 0.305406 0.381658 0
vt 0.296462 0.409231 0
vt 0.311058 0.399208 0
vt 0.305406 0.381658 0
vt 0.30162 0.424722 0
vt 0.308711 0.42416 0
vt 0.311058 0.399208 0
vt 0.30162 0.424722 0
vt 0.308711 0.42416 0
vt 0.316924 0.413651 0
vt 0.311058 0.399208 0
vt 0.286885 0.370309 0
vt 0.281505 0.376636 0
vt 0.284197 0.438035 0
vt 0.288673 0.458738 0
vt 0.291351 0.379527 0
vt 0.284197 0.438035 0
vt 0.296462 0.409231 0
vt 0.291351 0.379527 0
vt 0.288673 0.458738 0
vt 0.292174 0.447675 0
vt 0.296462 0.409231 0
vt 0.288673 0.458738 0
vt 0.284197 0.438035 0
vt 0.291351 0.379527 0
vt 0.286885 0.370309 0
vt 0.296261 0.447447 0
vt 0.30162 0.424722 0
vt 0.292174 0.447675 0
vt 0.304791 0.44035 0
vt 0.30162 0.424722 0
vt 0.296261 0.447447 0
vt 0.300231 0.450008 0
vt 0.304791 0.44035 0
vt 0.296261 0.447447 0
vt 0.304791 0.44035 0
vt 0.308711 0.42416 0
vt 0.30162 0.424722 0
vt 0.292174 0.447675 0
vt 0.30162 0.424722 0
vt 0.296462 0.409231 0
vt 0.316924 0.413651 0
vt 0.311906 0.440454 0
vt 0.322034 0.429137 0
vt 0.316924 0.413651 0
vt 0.308711 0.42416 0
vt 0.311906 0.440454 0
vt 0.304791 0.44035 0
vt 0.311906 0.440454 0
vt 0.308711 0.42416 0
vt 0.284197 0.438035 0
vt 0.279082 0.517957 0
vt 0.281661 0.505784 0
vt 0.281661 0.505784 0
vt 0.288673 0.458738 0
vt 0.284197 0.438035 0
vt 0.291578 0.48069 0
vt 0.296261 0.447447 0
vt 0.292174 0.447675 0
vt 0.300231 0.450008 0
vt 0.296261 0.447447 0
vt 0.291578 0.48069 0
vt 0.313352 0.479121 0
vt 0.311906 0.440454 0
vt 0.305679 0.475006 0
vt 0.305679 0.475006 0
vt 0.304791 0.44035 0
vt 0.300231 0.450008 0
vt 0.305679 0.475006 0
vt 0.311906 0.440454 0
vt 0.304791 0.44035 0
vt 0.275813 0.564358 0
vt 0.279082 0.517957 0
vt 0.275701 0.497028 0
vt 0.284 0.514747 0
vt 0.288673 0.458738 0
vt 0.281661 0.505784 0
vt 0.291578 0.48069 0
vt 0.288673 0.458738 0
vt 0.284 0.514747 0
vt 0.291578 0.48069 0
vt 0.292174 0.447675 0
vt 0.288673 0.458738 0
vt 0.297994 0.485931 0
vt 0.291578 0.48069 0
vt 0.291415 0.502028 0
vt 0.297994 0.485931 0
vt 0.300231 0.450008 0
vt 0.291578 0.48069 0
vt 0.303448 0.50984 0
vt 0.305679 0.475006 0
vt 0.297994 0.485931 0
vt 0.313352 0.479121 0
vt 0.305679 0.475006 0
vt 0.303448 0.50984 0
vt 0.312871 0.513184 0
vt 0.313352 0.479121 0
vt 0.303448 0.50984 0
vt 0.297994 0.485931 0
vt 0.305679 0.475006 0
vt 0.300231 0.450008 0
vt 0.282535 0.919777 0
vt 0.276615 0.881734 0
vt 0.274555 0.919478 0
vt 0.285996 0.826969 0
vt 0.276615 0.881734 0
vt 0.282535 0.919777 0
vt 0.293434 0.805939 0
vt 0.285996 0.826969 0
vt 0.282535 0.919777 0
vt 0.285996 0.826969 0
vt 0.280238 0.828311 0
vt 0.276615 0.881734 0
vt 0.301199 0.723668 0
vt 0.294443 0.729705 0
vt 0.293434 0.805939 0
vt 0.300289 0.66138 0
vt 0.294443 0.729705 0
vt 0.301199 0.723668 0
vt 0.306562 0.6819 0
vt 0.300289 0.66138 0
vt 0.301199 0.723668 0
vt 0.300289 0.66138 0
vt 0.29108 0.666116 0
vt 0.294443 0.729705 0
vt 0.285996 0.826969 0
vt 0.285172 0.757506 0
vt 0.280238 0.828311 0
vt 0.294443 0.729705 0
vt 0.285172 0.757506 0
vt 0.285996 0.826969 0
vt 0.293434 0.805939 0
vt 0.294443 0.729705 0
vt 0.285996 0.826969 0
vt 0.294443 0.729705 0
vt 0.29108 0.666116 0
vt 0.285172 0.757506 0
vt 0.311648 0.64669 0
vt 0.304571 0.63287 0
vt 0.306562 0.6819 0
vt 0.309564 0.6022 0
vt 0.304571 0.63287 0
vt 0.311648 0.64669 0
vt 0.309564 0.6022 0
vt 0.299602 0.599976 0
vt 0.304571 0.63287 0
vt 0.300289 0.66138 0
vt 0.295888 0.622283 0
vt 0.29108 0.666116 0
vt 0.304571 0.63287 0
vt 0.295888 0.622283 0
vt 0.300289 0.66138 0
vt 0.306562 0.6819 0
vt 0.304571 0.63287 0
vt 0.300289 0.66138 0
vt 0.304571 0.63287 0
vt 0.299602 0.599976 0
vt 0.295888 0.622283 0
vt 0.318295 0.598744 0
vt 0.309564 0.6022 0
vt 0.311648 0.64669 0
vt 0.3154 0.55825 0
vt 0.309564 0.6022 0
vt 0.318295 0.598744 0
vt 0.3154 0.55825 0
vt 0.305907 0.559959 0
vt 0.309564 0.6022 0
vt 0.309564 0.6022 0
vt 0.305907 0.559959 0
vt 0.299602 0.599976 0
vt 0.323738 0.556356 0
vt 0.3154 0.55825 0
vt 0.318295 0.598744 0
vt 0.321285 0.529879 0
vt 0.3154 0.55825 0
vt 0.323738 0.556356 0
vt 0.321285 0.529879 0
vt 0.312871 0.513184 0
vt 0.3154 0.55825 0
vt 0.3154 0.55825 0
vt 0.30928 0.536488 0
vt 0.305907 0.559959 0
vt 0.3154 0.55825 0
vt 0.312871 0.513184 0
vt 0.30928 0.536488 0
vt 0.288804 0.842906 0
vt 0.288106 0.858999 0
vt 0.281392 0.871209 0
vt 0.297732 0.793532 0
vt 0.288106 0.858999 0
vt 0.288804 0.842906 0
vt 0.297828 0.799362 0
vt 0.297732 0.793532 0
vt 0.288804 0.842906 0
vt 0.297732 0.793532 0
vt 0.293434 0.805939 0
vt 0.288106 0.858999 0
vt 0.277749 0.887596 0
vt 0.282535 0.919777 0
vt 0.274555 0.919478 0
vt 0.288106 0.858999 0
vt 0.282535 0.919777 0
vt 0.277749 0.887596 0
vt 0.281392 0.871209 0
vt 0.288106 0.858999 0
vt 0.277749 0.887596 0
vt 0.288106 0.858999 0
vt 0.293434 0.805939 0
vt 0.282535 0.919777 0
vt 0.305446 0.758532 0
vt 0.304404 0.741196 0
vt 0.297828 0.799362 0
vt 0.30956 0.705521 0
vt 0.304404 0.741196 0
vt 0.305446 0.758532 0
vt 0.3107 0.732764 0
vt 0.30956 0.705521 0
vt 0.305446 0.758532 0
vt 0.30956 0.705521 0
vt 0.306562 0.6819 0
vt 0.304404 0.741196 0
vt 0.297732 0.793532 0
vt 0.301199 0.723668 0
vt 0.293434 0.805939 0
vt 0.304404 0.741196 0
vt 0.301199 0.723668 0
vt 0.297732 0.793532 0
vt 0.297828 0.799362 0
vt 0.304404 0.741196 0
vt 0.297732 0.793532 0
vt 0.304404 0.741196 0
vt 0.306562 0.6819 0
vt 0.301199 0.723668 0
vt 0.316396 0.683425 0
vt 0.315199 0.664835 0
vt 0.3107 0.732764 0
vt 0.30956 0.705521 0
vt 0.311648 0.64669 0
vt 0.306562 0.6819 0
vt 0.315199 0.664835 0
vt 0.311648 0.64669 0
vt 0.30956 0.705521 0
vt 0.3107 0.732764 0
vt 0.315199 0.664835 0
vt 0.30956 0.705521 0
vt 0.320988 0.649143 0
vt 0.321226 0.618679 0
vt 0.316396 0.683425 0
vt 0.325633 0.624037 0
vt 0.321226 0.618679 0
vt 0.320988 0.649143 0
vt 0.315199 0.664835 0
vt 0.318295 0.598744 0
vt 0.311648 0.64669 0
vt 0.321226 0.618679 0
vt 0.318295 0.598744 0
vt 0.315199 0.664835 0
vt 0.316396 0.683425 0
vt 0.321226 0.618679 0
vt 0.315199 0.664835 0
vt 0.333889 0.577315 0
vt 0.328741 0.564004 0
vt 0.325708 0.585037 0
vt 0.328741 0.564004 0
vt 0.323738 0.556356 0
vt 0.325708 0.585037 0
vt 0.321226 0.618679 0
vt 0.323738 0.556356 0
vt 0.318295 0.598744 0
vt 0.325708 0.585037 0
vt 0.323738 0.556356 0
vt 0.321226 0.618679 0
vt 0.325633 0.624037 0
vt 0.325708 0.585037 0
vt 0.321226 0.618679 0
vt 0.285345 0.822318 0
vt 0.28599 0.829263 0
vt 0.273709 0.809283 0
vt 0.296972 0.802136 0
vt 0.28599 0.829263 0
vt 0.285345 0.822318 0
vt 0.29867 0.805513 0
vt 0.296972 0.802136 0
vt 0.285345 0.822318 0
vt 0.296972 0.802136 0
vt 0.297828 0.799362 0
vt 0.28599 0.829263 0
vt 0.277583 0.844587 0
vt 0.288804 0.842906 0
vt 0.281392 0.871209 0
vt 0.28599 0.829263 0
vt 0.288804 0.842906 0
vt 0.277583 0.844587 0
vt 0.273709 0.809283 0
vt 0.28599 0.829263 0
vt 0.277583 0.844587 0
vt 0.28599 0.829263 0
vt 0.297828 0.799362 0
vt 0.288804 0.842906 0
vt 0.30651 0.77867 0
vt 0.30561 0.771002 0
vt 0.29867 0.805513 0
vt 0.3107 0.732764 0
vt 0.30561 0.771002 0
vt 0.30651 0.77867 0
vt 0.311606 0.75186 0
vt 0.3107 0.732764 0
vt 0.30651 0.77867 0
vt 0.296972 0.802136 0
vt 0.305446 0.758532 0
vt 0.297828 0.799362 0
vt 0.30561 0.771002 0
vt 0.305446 0.758532 0
vt 0.296972 0.802136 0
vt 0.29867 0.805513 0
vt 0.30561 0.771002 0
vt 0.296972 0.802136 0
vt 0.30561 0.771002 0
vt 0.3107 0.732764 0
vt 0.305446 0.758532 0
vt 0.317352 0.714228 0
vt 0.316932 0.700364 0
vt 0.311606 0.75186 0
vt 0.316932 0.700364 0
vt 0.316396 0.683425 0
vt 0.3107 0.732764 0
vt 0.311606 0.75186 0
vt 0.316932 0.700364 0
vt 0.3107 0.732764 0
vt 0.323436 0.682481 0
vt 0.323647 0.659641 0
vt 0.317352 0.714228 0
vt 0.316932 0.700364 0
vt 0.320988 0.649143 0
vt 0.316396 0.683425 0
vt 0.323647 0.659641 0
vt 0.320988 0.649143 0
vt 0.316932 0.700364 0
vt 0.317352 0.714228 0
vt 0.323647 0.659641 0
vt 0.316932 0.700364 0
vt 0.323647 0.659641 0
vt 0.325633 0.624037 0
vt 0.320988 0.649143 0
vt 0.333889 0.577315 0
vt 0.325633 0.624037 0
vt 0.335536 0.602445 0
vt 0.325708 0.585037 0
vt 0.325633 0.624037 0
vt 0.333889 0.577315 0
vt 0.33827 0.622915 0
vt 0.325633 0.624037 0
vt 0.323647 0.659641 0
vt 0.323436 0.682481 0
vt 0.33827 0.622915 0
vt 0.323647 0.659641 0
vt 0.33827 0.622915 0
vt 0.335536 0.602445 0
vt 0.325633 0.624037 0
vt 0.291336 0.80874 0
vt 0.287965 0.820763 0
vt 0.280494 0.810141 0
vt 0.29867 0.805513 0
vt 0.287965 0.820763 0
vt 0.291336 0.80874 0
vt 0.301077 0.794209 0
vt 0.29867 0.805513 0
vt 0.291336 0.80874 0
vt 0.276437 0.818011 0
vt 0.285345 0.822318 0
vt 0.273709 0.809283 0
vt 0.287965 0.820763 0
vt 0.285345 0.822318 0
vt 0.276437 0.818011 0
vt 0.280494 0.810141 0
vt 0.287965 0.820763 0
vt 0.276437 0.818011 0
vt 0.287965 0.820763 0
vt 0.29867 0.805513 0
vt 0.285345 0.822318 0
vt 0.308695 0.772825 0
vt 0.30651 0.77867 0
vt 0.301077 0.794209 0
vt 0.311606 0.75186 0
vt 0.30651 0.77867 0
vt 0.308695 0.772825 0
vt 0.314235 0.750666 0
vt 0.311606 0.75186 0
vt 0.308695 0.772825 0
vt 0.301077 0.794209 0
vt 0.30651 0.77867 0
vt 0.29867 0.805513 0
vt 0.323644 0.708389 0
vt 0.317744 0.725366 0
vt 0.314235 0.750666 0
vt 0.317744 0.725366 0
vt 0.317352 0.714228 0
vt 0.311606 0.75186 0
vt 0.314235 0.750666 0
vt 0.317744 0.725366 0
vt 0.311606 0.75186 0
vt 0.317744 0.725366 0
vt 0.323436 0.682481 0
vt 0.317352 0.714228 0
vt 0.323644 0.708389 0
vt 0.323436 0.682481 0
vt 0.317744 0.725366 0
vt 0.33827 0.622915 0
vt 0.323436 0.682481 0
vt 0.345823 0.612721 0
vt 0.33072 0.689562 0
vt 0.323436 0.682481 0
vt 0.323644 0.708389 0
vt 0.33072 0.689562 0
vt 0.345823 0.612721 0
vt 0.323436 0.682481 0
vt 0.297475 0.773649 0
vt 0.294457 0.790384 0
vt 0.289164 0.762607 0
vt 0.303396 0.782424 0
vt 0.294457 0.790384 0
vt 0.297475 0.773649 0
vt 0.305695 0.772224 0
vt 0.303396 0.782424 0
vt 0.297475 0.773649 0
vt 0.303396 0.782424 0
vt 0.301077 0.794209 0
vt 0.294457 0.790384 0
vt 0.284365 0.790408 0
vt 0.291336 0.80874 0
vt 0.280494 0.810141 0
vt 0.294457 0.790384 0
vt 0.291336 0.80874 0
vt 0.284365 0.790408 0
vt 0.289164 0.762607 0
vt 0.294457 0.790384 0
vt 0.284365 0.790408 0
vt 0.294457 0.790384 0
vt 0.301077 0.794209 0
vt 0.291336 0.80874 0
vt 0.31365 0.760816 0
vt 0.308695 0.772825 0
vt 0.305695 0.772224 0
vt 0.315383 0.75128 0
vt 0.308695 0.772825 0
vt 0.31365 0.760816 0
vt 0.315383 0.75128 0
vt 0.314235 0.750666 0
vt 0.308695 0.772825 0
vt 0.303396 0.782424 0
vt 0.308695 0.772825 0
vt 0.301077 0.794209 0
vt 0.305695 0.772224 0
vt 0.308695 0.772825 0
vt 0.303396 0.782424 0
vt 0.315383 0.75128 0
vt 0.323644 0.708389 0
vt 0.314235 0.750666 0
vt 0.335336 0.690456 0
vt 0.315383 0.75128 0
vt 0.31365 0.760816 0
vt 0.33072 0.689562 0
vt 0.315383 0.75128 0
vt 0.335336 0.690456 0
vt 0.315383 0.75128 0
vt 0.33072 0.689562 0
vt 0.323644 0.708389 0
vt 0.342945 0.657558 0
vt 0.33072 0.689562 0
vt 0.335336 0.690456 0
vt 0.345823 0.612721 0
vt 0.33072 0.689562 0
vt 0.342945 0.657558 0
vt 0.367835 0.46696 0
vt 0.373287 0.445643 0
vt 0.381551 0.380362 0
vt 0.35812 0.525198 0
vt 0.345823 0.612721 0
vt 0.348809 0.610418 0
vt 0.348809 0.610418 0
vt 0.342945 0.657558 0
vt 0.35386 0.593677 0
vt 0.345823 0.612721 0
vt 0.342945 0.657558 0
vt 0.348809 0.610418 0
vt 0.35812 0.525198 0
vt 0.367835 0.46696 0
vt 0.365615 0.447558 0
vt 0.374219 0.373338 0
vt 0.365615 0.447558 0
vt 0.367835 0.46696 0
vt 0.374219 0.373338 0
vt 0.360776 0.443129 0
vt 0.365615 0.447558 0
vt 0.345823 0.612721 0
vt 0.35812 0.525198 0
vt 0.33827 0.622915 0
vt 0.354867 0.523265 0
vt 0.33827 0.622915 0
vt 0.35812 0.525198 0
vt 0.347833 0.521965 0
vt 0.33827 0.622915 0
vt 0.354867 0.523265 0
vt 0.347833 0.521965 0
vt 0.335536 0.602445 0
vt 0.33827 0.622915 0
vt 0.348371 0.439333 0
vt 0.35451 0.444048 0
vt 0.365311 0.365555 0
vt 0.35451 0.444048 0
vt 0.360776 0.443129 0
vt 0.365311 0.365555 0
vt 0.365311 0.365555 0
vt 0.360776 0.443129 0
vt 0.374219 0.373338 0
vt 0.347833 0.521965 0
vt 0.35451 0.444048 0
vt 0.348371 0.439333 0
vt 0.360776 0.443129 0
vt 0.35451 0.444048 0
vt 0.347833 0.521965 0
vt 0.348371 0.439333 0
vt 0.331561 0.538178 0
vt 0.347833 0.521965 0
vt 0.331561 0.538178 0
vt 0.333889 0.577315 0
vt 0.347833 0.521965 0
vt 0.333889 0.577315 0
vt 0.335536 0.602445 0
vt 0.347833 0.521965 0
vt 0.331561 0.538178 0
vt 0.328741 0.564004 0
vt 0.333889 0.577315 0
vt 0.326186 0.490434 0
vt 0.330461 0.512769 0
vt 0.335807 0.423171 0
vt 0.330461 0.512769 0
vt 0.348371 0.439333 0
vt 0.342373 0.433929 0
vt 0.335807 0.423171 0
vt 0.330461 0.512769 0
vt 0.342373 0.433929 0
vt 0.330461 0.512769 0
vt 0.331561 0.538178 0
vt 0.348371 0.439333 0
vt 0.328741 0.564004 0
vt 0.331561 0.538178 0
vt 0.323738 0.556356 0
vt 0.321285 0.529879 0
vt 0.331561 0.538178 0
vt 0.330461 0.512769 0
vt 0.326186 0.490434 0
vt 0.321285 0.529879 0
vt 0.330461 0.512769 0
vt 0.321285 0.529879 0
vt 0.323738 0.556356 0
vt 0.331561 0.538178 0
vt 0.327921 0.44088 0
vt 0.335807 0.423171 0
vt 0.327206 0.404824 0
vt 0.322034 0.429137 0
vt 0.327921 0.44088 0
vt 0.327206 0.404824 0
vt 0.320034 0.473048 0
vt 0.327921 0.44088 0
vt 0.322034 0.429137 0
vt 0.311906 0.440454 0
vt 0.320034 0.473048 0
vt 0.322034 0.429137 0
vt 0.320034 0.473048 0
vt 0.326186 0.490434 0
vt 0.327921 0.44088 0
vt 0.327921 0.44088 0
vt 0.326186 0.490434 0
vt 0.335807 0.423171 0
vt 0.311906 0.440454 0
vt 0.313352 0.479121 0
vt 0.320034 0.473048 0
vt 0.321285 0.529879 0
vt 0.319484 0.507188 0
vt 0.312871 0.513184 0
vt 0.321285 0.529879 0
vt 0.326186 0.490434 0
vt 0.319484 0.507188 0
vt 0.320034 0.473048 0
vt 0.319484 0.507188 0
vt 0.326186 0.490434 0
vt 0.313352 0.479121 0
vt 0.319484 0.507188 0
vt 0.320034 0.473048 0
vt 0.313352 0.479121 0
vt 0.312871 0.513184 0
vt 0.319484 0.507188 0
vt 0.365615 0.447558 0
vt 0.354867 0.523265 0
vt 0.35812 0.525198 0
vt 0.360776 0.443129 0
vt 0.354867 0.523265 0
vt 0.365615 0.447558 0
vt 0.360776 0.443129 0
vt 0.347833 0.521965 0
vt 0.354867 0.523265 0
vt 0.348809 0.610418 0
vt 0.367835 0.46696 0
vt 0.35812 0.525198 0
vt 0.35386 0.593677 0
vt 0.367835 0.46696 0
vt 0.348809 0.610418 0
vt 0.35386 0.593677 0
vt 0.373287 0.445643 0
vt 0.367835 0.46696 0
vt 0.377673 0.629156 0
vt 0.365494 0.61428 0
vt 0.373647 0.657223 0
vt 0.377673 0.629156 0
vt 0.380345 0.604747 0
vt 0.365494 0.61428 0
vt 0.38444 0.582105 0
vt 0.380345 0.604747 0
vt 0.390764 0.612411 0
vt 0.370629 0.555981 0
vt 0.380345 0.604747 0
vt 0.38444 0.582105 0
vt 0.370629 0.555981 0
vt 0.365494 0.61428 0
vt 0.380345 0.604747 0
vt 0.370629 0.555981 0
vt 0.355472 0.600136 0
vt 0.365494 0.61428 0
vt 0.370629 0.555981 0
vt 0.36115 0.53524 0
vt 0.355472 0.600136 0
vt 0.38444 0.582105 0
vt 0.384723 0.555805 0
vt 0.370629 0.555981 0
vt 0.389545 0.554617 0
vt 0.393342 0.591851 0
vt 0.396689 0.578671 0
vt 0.384723 0.555805 0
vt 0.393342 0.591851 0
vt 0.389545 0.554617 0
vt 0.393342 0.591851 0
vt 0.38444 0.582105 0
vt 0.390764 0.612411 0
vt 0.384723 0.555805 0
vt 0.38444 0.582105 0
vt 0.393342 0.591851 0
vt 0.366547 0.478886 0
vt 0.389545 0.554617 0
vt 0.383656 0.513879 0
vt 0.370629 0.555981 0
vt 0.357075 0.493317 0
vt 0.36115 0.53524 0
vt 0.384723 0.555805 0
vt 0.357075 0.493317 0
vt 0.370629 0.555981 0
vt 0.384723 0.555805 0
vt 0.366886 0.49751 0
vt 0.357075 0.493317 0
vt 0.384723 0.555805 0
vt 0.389545 0.554617 0
vt 0.366547 0.478886 0
vt 0.366886 0.49751 0
vt 0.384723 0.555805 0
vt 0.366547 0.478886 0
vt 0.389026 0.657813 0
vt 0.377673 0.629156 0
vt 0.373647 0.657223 0
vt 0.389026 0.657813 0
vt 0.380345 0.604747 0
vt 0.377673 0.629156 0
vt 0.390764 0.612411 0
vt 0.380345 0.604747 0
vt 0.389026 0.657813 0
vt 0.389026 0.657813 0
vt 0.382543 0.699189 0
vt 0.394518 0.75187 0
vt 0.382543 0.699189 0
vt 0.389026 0.657813 0
vt 0.373647 0.657223 0
vt 0.401653 0.648806 0
vt 0.402307 0.61896 0
vt 0.393342 0.591851 0
vt 0.402307 0.61896 0
vt 0.396689 0.578671 0
vt 0.393342 0.591851 0
vt 0.401653 0.648806 0
vt 0.393342 0.591851 0
vt 0.390764 0.612411 0
vt 0.392755 0.551194 0
vt 0.398857 0.575981 0
vt 0.397049 0.561165 0
vt 0.392755 0.551194 0
vt 0.389545 0.554617 0
vt 0.396689 0.578671 0
vt 0.398857 0.575981 0
vt 0.392755 0.551194 0
vt 0.396689 0.578671 0
vt 0.389545 0.554617 0
vt 0.392755 0.551194 0
vt 0.383656 0.513879 0
vt 0.389607 0.528196 0
vt 0.392755 0.551194 0
vt 0.397049 0.561165 0
vt 0.389607 0.528196 0
vt 0.383656 0.513879 0
vt 0.392755 0.551194 0
vt 0.383656 0.513879 0
vt 0.369983 0.467529 0
vt 0.366547 0.478886 0
vt 0.369983 0.467529 0
vt 0.383656 0.513879 0
vt 0.375748 0.478653 0
vt 0.383656 0.513879 0
vt 0.389607 0.528196 0
vt 0.375748 0.478653 0
vt 0.407452 0.619415 0
vt 0.412035 0.673773 0
vt 0.415345 0.664092 0
vt 0.398857 0.575981 0
vt 0.405878 0.604792 0
vt 0.397049 0.561165 0
vt 0.415345 0.664092 0
vt 0.405878 0.604792 0
vt 0.407452 0.619415 0
vt 0.402307 0.61896 0
vt 0.407452 0.619415 0
vt 0.396689 0.578671 0
vt 0.412035 0.673773 0
vt 0.407452 0.619415 0
vt 0.402307 0.61896 0
vt 0.369637 0.711934 0
vt 0.382543 0.699189 0
vt 0.373647 0.657223 0
vt 0.351453 0.565652 0
vt 0.346764 0.587167 0
vt 0.355472 0.600136 0
vt 0.337303 0.655339 0
vt 0.335191 0.686366 0
vt 0.343645 0.680624 0
vt 0.337303 0.655339 0
vt 0.327659 0.675594 0
vt 0.335191 0.686366 0
vt 0.343645 0.680624 0
vt 0.335191 0.686366 0
vt 0.329974 0.75653 0
vt 0.335191 0.686366 0
vt 0.327659 0.675594 0
vt 0.329974 0.75653 0
vt 0.469999 0.39624 0
vt 0.472546 0.376138 0
vt 0.459654 0.339873 0
vt 0.472546 0.376138 0
vt 0.468215 0.320108 0
vt 0.465653 0.330703 0
vt 0.459654 0.339873 0
vt 0.472546 0.376138 0
vt 0.465653 0.330703 0
vt 0.472546 0.376138 0
vt 0.485103 0.382774 0
vt 0.468215 0.320108 0
vt 0.457418 0.376659 0
vt 0.469999 0.39624 0
vt 0.459654 0.339873 0
vt 0.466285 0.420475 0
vt 0.469999 0.39624 0
vt 0.457418 0.376659 0
vt 0.456981 0.41208 0
vt 0.466285 0.420475 0
vt 0.457418 0.376659 0
vt 0.454799 0.465195 0
vt 0.466285 0.420475 0
vt 0.456981 0.41208 0
vt 0.461595 0.4795 0
vt 0.466285 0.420475 0
vt 0.454799 0.465195 0
vt 0.461595 0.4795 0
vt 0.470097 0.46117 0
vt 0.466285 0.420475 0
vt 0.452233 0.502295 0
vt 0.461595 0.4795 0
vt 0.454799 0.465195 0
vt 0.448256 0.557165 0
vt 0.459272 0.537484 0
vt 0.452233 0.502295 0
vt 0.485474 0.436411 0
vt 0.4878 0.411073 0
vt 0.469999 0.39624 0
vt 0.5031 0.431725 0
vt 0.4878 0.411073 0
vt 0.485474 0.436411 0
vt 0.494699 0.474822 0
vt 0.5031 0.431725 0
vt 0.485474 0.436411 0
vt 0.5031 0.431725 0
vt 0.504563 0.415907 0
vt 0.4878 0.411073 0
vt 0.4878 0.411073 0
vt 0.485103 0.382774 0
vt 0.472546 0.376138 0
vt 0.469999 0.39624 0
vt 0.4878 0.411073 0
vt 0.472546 0.376138 0
vt 0.4878 0.411073 0
vt 0.504563 0.415907 0
vt 0.485103 0.382774 0
vt 0.470097 0.46117 0
vt 0.485474 0.436411 0
vt 0.466285 0.420475 0
vt 0.494699 0.474822 0
vt 0.485474 0.436411 0
vt 0.470097 0.46117 0
vt 0.466285 0.420475 0
vt 0.485474 0.436411 0
vt 0.469999 0.39624 0
vt 0.474413 0.508361 0
vt 0.494699 0.474822 0
vt 0.470097 0.46117 0
vt 0.474413 0.508361 0
vt 0.470097 0.46117 0
vt 0.461595 0.4795 0
vt 0.459272 0.537484 0
vt 0.461595 0.4795 0
vt 0.452233 0.502295 0
vt 0.551923 0.500111 0
vt 0.5031 0.431725 0
vt 0.494699 0.474822 0
vt 0.551923 0.500111 0
vt 0.504563 0.415907 0
vt 0.5031 0.431725 0
vt 0.5439 0.514956 0
vt 0.494699 0.474822 0
vt 0.501953 0.508119 0
vt 0.474413 0.508361 0
vt 0.501953 0.508119 0
vt 0.494699 0.474822 0
vt 0.501953 0.508119 0
vt 0.474413 0.508361 0
vt 0.489705 0.552039 0
vt 0.459272 0.537484 0
vt 0.474413 0.508361 0
vt 0.461595 0.4795 0
vt 0.575038 0.527088 0
vt 0.564297 0.503667 0
vt 0.551923 0.500111 0
vt 0.551923 0.500111 0
vt 0.564297 0.503667 0
vt 0.504563 0.415907 0
vt 0.575038 0.527088 0
vt 0.551923 0.500111 0
vt 0.5439 0.514956 0
vt 0.494699 0.474822 0
vt 0.5439 0.514956 0
vt 0.551923 0.500111 0
vt 0.489705 0.552039 0
vt 0.499751 0.557518 0
vt 0.501953 0.508119 0
vt 0.615141 0.57889 0
vt 0.60514 0.556835 0
vt 0.596389 0.553606 0
vt 0.575038 0.527088 0
vt 0.60514 0.556835 0
vt 0.564297 0.503667 0
vt 0.596389 0.553606 0
vt 0.60514 0.556835 0
vt 0.575038 0.527088 0
vt 0.615141 0.57889 0
vt 0.596389 0.553606 0
vt 0.589927 0.554175 0
vt 0.596389 0.553606 0
vt 0.575038 0.527088 0
vt 0.589927 0.554175 0
vt 0.5439 0.514956 0
vt 0.589927 0.554175 0
vt 0.575038 0.527088 0
vt 0.589927 0.554175 0
vt 0.5439 0.514956 0
vt 0.620068 0.606339 0
vt 0.5439 0.514956 0
vt 0.501953 0.508119 0
vt 0.54424 0.545575 0
vt 0.499751 0.557518 0
vt 0.54424 0.545575 0
vt 0.501953 0.508119 0
vt 0.615141 0.57889 0
vt 0.631539 0.609001 0
vt 0.60514 0.556835 0
vt 0.625861 0.602493 0
vt 0.631539 0.609001 0
vt 0.615141 0.57889 0
vt 0.589927 0.554175 0
vt 0.625861 0.602493 0
vt 0.615141 0.57889 0
vt 0.620068 0.606339 0
vt 0.625861 0.602493 0
vt 0.589927 0.554175 0
vt 0.5439 0.514956 0
vt 0.610978 0.618871 0
vt 0.620068 0.606339 0
vt 0.54424 0.545575 0
vt 0.610978 0.618871 0
vt 0.5439 0.514956 0
vt 0.471447 0.660569 0
vt 0.469084 0.655929 0
vt 0.461555 0.671853 0
vt 0.479834 0.649052 0
vt 0.469084 0.655929 0
vt 0.471447 0.660569 0
vt 0.484417 0.65575 0
vt 0.479834 0.649052 0
vt 0.471447 0.660569 0
vt 0.466146 0.653366 0
vt 0.469084 0.655929 0
vt 0.479834 0.649052 0
vt 0.459413 0.668188 0
vt 0.469084 0.655929 0
vt 0.466146 0.653366 0
vt 0.45538 0.669014 0
vt 0.459413 0.668188 0
vt 0.466146 0.653366 0
vt 0.459413 0.668188 0
vt 0.461555 0.671853 0
vt 0.469084 0.655929 0
vt 0.466146 0.653366 0
vt 0.462982 0.646506 0
vt 0.45538 0.669014 0
vt 0.475481 0.641621 0
vt 0.462982 0.646506 0
vt 0.466146 0.653366 0
vt 0.479834 0.649052 0
vt 0.475481 0.641621 0
vt 0.466146 0.653366 0
vt 0.475481 0.641621 0
vt 0.471288 0.628382 0
vt 0.462982 0.646506 0
vt 0.45538 0.669014 0
vt 0.462982 0.646506 0
vt 0.449479 0.624077 0
vt 0.462982 0.646506 0
vt 0.471288 0.628382 0
vt 0.455745 0.606114 0
vt 0.449479 0.624077 0
vt 0.462982 0.646506 0
vt 0.455745 0.606114 0
vt 0.449479 0.624077 0
vt 0.456421 0.57516 0
vt 0.448256 0.557165 0
vt 0.455745 0.606114 0
vt 0.456421 0.57516 0
vt 0.449479 0.624077 0
vt 0.455745 0.606114 0
vt 0.471288 0.628382 0
vt 0.456421 0.57516 0
vt 0.448256 0.557165 0
vt 0.456421 0.57516 0
vt 0.459272 0.537484 0
vt 0.507214 0.655145 0
vt 0.493272 0.649792 0
vt 0.484417 0.65575 0
vt 0.511034 0.639516 0
vt 0.493272 0.649792 0
vt 0.507214 0.655145 0
vt 0.479834 0.649052 0
vt 0.484417 0.65575 0
vt 0.493272 0.649792 0
vt 0.493272 0.649792 0
vt 0.48637 0.635634 0
vt 0.479834 0.649052 0
vt 0.505224 0.620477 0
vt 0.48637 0.635634 0
vt 0.493272 0.649792 0
vt 0.511034 0.639516 0
vt 0.505224 0.620477 0
vt 0.493272 0.649792 0
vt 0.471288 0.628382 0
vt 0.475481 0.641621 0
vt 0.48637 0.635634 0
vt 0.475481 0.641621 0
vt 0.479834 0.649052 0
vt 0.48637 0.635634 0
vt 0.48637 0.635634 0
vt 0.491988 0.614599 0
vt 0.471288 0.628382 0
vt 0.505224 0.620477 0
vt 0.491988 0.614599 0
vt 0.48637 0.635634 0
vt 0.480666 0.576794 0
vt 0.469328 0.579487 0
vt 0.471288 0.628382 0
vt 0.491988 0.614599 0
vt 0.480666 0.576794 0
vt 0.471288 0.628382 0
vt 0.456421 0.57516 0
vt 0.471288 0.628382 0
vt 0.469328 0.579487 0
vt 0.469328 0.579487 0
vt 0.459272 0.537484 0
vt 0.456421 0.57516 0
vt 0.511034 0.639516 0
vt 0.507214 0.655145 0
vt 0.538668 0.630654 0
vt 0.507214 0.655145 0
vt 0.543032 0.646806 0
vt 0.538668 0.630654 0
vt 0.538668 0.630654 0
vt 0.52049 0.617906 0
vt 0.511034 0.639516 0
vt 0.538668 0.630654 0
vt 0.545011 0.60292 0
vt 0.52049 0.617906 0
vt 0.505224 0.620477 0
vt 0.511034 0.639516 0
vt 0.52049 0.617906 0
vt 0.52049 0.617906 0
vt 0.514043 0.60339 0
vt 0.505224 0.620477 0
vt 0.545011 0.60292 0
vt 0.514043 0.60339 0
vt 0.52049 0.617906 0
vt 0.491988 0.614599 0
vt 0.505224 0.620477 0
vt 0.514043 0.60339 0
vt 0.514043 0.60339 0
vt 0.511053 0.577171 0
vt 0.491988 0.614599 0
vt 0.492286 0.579389 0
vt 0.480666 0.576794 0
vt 0.491988 0.614599 0
vt 0.511053 0.577171 0
vt 0.492286 0.579389 0
vt 0.491988 0.614599 0
vt 0.480666 0.576794 0
vt 0.477435 0.553989 0
vt 0.469328 0.579487 0
vt 0.459272 0.537484 0
vt 0.469328 0.579487 0
vt 0.477435 0.553989 0
vt 0.474413 0.508361 0
vt 0.477435 0.553989 0
vt 0.489705 0.552039 0
vt 0.459272 0.537484 0
vt 0.477435 0.553989 0
vt 0.474413 0.508361 0
vt 0.543032 0.646806 0
vt 0.609614 0.65382 0
vt 0.602435 0.643797 0
vt 0.602435 0.643797 0
vt 0.538668 0.630654 0
vt 0.543032 0.646806 0
vt 0.602435 0.643797 0
vt 0.545011 0.60292 0
vt 0.538668 0.630654 0
vt 0.514043 0.60339 0
vt 0.545011 0.60292 0
vt 0.547518 0.58018 0
vt 0.511053 0.577171 0
vt 0.514043 0.60339 0
vt 0.547518 0.58018 0
vt 0.511053 0.577171 0
vt 0.499751 0.557518 0
vt 0.492286 0.579389 0
vt 0.489705 0.552039 0
vt 0.492286 0.579389 0
vt 0.499751 0.557518 0
vt 0.480666 0.576794 0
vt 0.492286 0.579389 0
vt 0.489705 0.552039 0
vt 0.477435 0.553989 0
vt 0.480666 0.576794 0
vt 0.489705 0.552039 0
vt 0.545011 0.60292 0
vt 0.602435 0.643797 0
vt 0.610978 0.618871 0
vt 0.54424 0.545575 0
vt 0.547518 0.58018 0
vt 0.610978 0.618871 0
vt 0.547518 0.58018 0
vt 0.54424 0.545575 0
vt 0.511053 0.577171 0
vt 0.499751 0.557518 0
vt 0.511053 0.577171 0
vt 0.54424 0.545575 0
vt 0.632789 0.625557 0
vt 0.635066 0.638209 0
vt 0.631539 0.609001 0
vt 0.632789 0.625557 0
vt 0.633341 0.651668 0
vt 0.635066 0.638209 0
vt 0.338365 0.723924 0
vt 0.355764 0.638658 0
vt 0.335737 0.627185 0
vt 0.398477 0.734628 0
vt 0.391769 0.652541 0
vt 0.384924 0.730227 0
vt 0.404681 0.664375 0
vt 0.391769 0.652541 0
vt 0.398477 0.734628 0
vt 0.404681 0.664375 0
vt 0.402915 0.601057 0
vt 0.391769 0.652541 0
vt 0.384924 0.730227 0
vt 0.391769 0.652541 0
vt 0.375812 0.630234 0
vt 0.449479 0.624077 0
vt 0.441004 0.653641 0
vt 0.45538 0.669014 0
vt 0.441004 0.653641 0
vt 0.440068 0.720675 0
vt 0.45538 0.669014 0
vt 0.441004 0.653641 0
vt 0.429799 0.692651 0
vt 0.440068 0.720675 0
vt 0.441004 0.653641 0
vt 0.423303 0.624215 0
vt 0.429799 0.692651 0
vt 0.415946 0.700131 0
vt 0.429799 0.692651 0
vt 0.423303 0.624215 0
vt 0.423797 0.75811 0
vt 0.429799 0.692651 0
vt 0.415946 0.700131 0
vt 0.440068 0.720675 0
vt 0.429799 0.692651 0
vt 0.423797 0.75811 0
vt 0.398477 0.734628 0
vt 0.415946 0.700131 0
vt 0.404681 0.664375 0
vt 0.423303 0.624215 0
vt 0.404681 0.664375 0
vt 0.415946 0.700131 0
vt 0.423303 0.624215 0
vt 0.402915 0.601057 0
vt 0.404681 0.664375 0
vt 0.407514 0.482624 0
vt 0.402793 0.520864 0
vt 0.414981 0.542514 0
vt 0.402793 0.520864 0
vt 0.402915 0.601057 0
vt 0.414981 0.542514 0
vt 0.430185 0.506254 0
vt 0.414981 0.542514 0
vt 0.423303 0.624215 0
vt 0.414981 0.542514 0
vt 0.402915 0.601057 0
vt 0.423303 0.624215 0
vt 0.439417 0.384756 0
vt 0.430185 0.506254 0
vt 0.440376 0.473793 0
vt 0.452233 0.502295 0
vt 0.438636 0.550464 0
vt 0.448256 0.557165 0
vt 0.440376 0.473793 0
vt 0.438636 0.550464 0
vt 0.452233 0.502295 0
vt 0.440376 0.473793 0
vt 0.430185 0.506254 0
vt 0.438636 0.550464 0
vt 0.407514 0.482624 0
vt 0.421656 0.464518 0
vt 0.41876 0.358777 0
vt 0.414981 0.542514 0
vt 0.421656 0.464518 0
vt 0.407514 0.482624 0
vt 0.414981 0.542514 0
vt 0.430185 0.506254 0
vt 0.421656 0.464518 0
vt 0.439417 0.384756 0
vt 0.421656 0.464518 0
vt 0.430185 0.506254 0
vt 0.454799 0.465195 0
vt 0.440376 0.473793 0
vt 0.452233 0.502295 0
vt 0.421656 0.464518 0
vt 0.429833 0.383251 0
vt 0.41876 0.358777 0
vt 0.421656 0.464518 0
vt 0.439417 0.384756 0
vt 0.429833 0.383251 0
vt 0.438675 0.28864 0
vt 0.439417 0.384756 0
vt 0.456981 0.41208 0
vt 0.456981 0.41208 0
vt 0.440376 0.473793 0
vt 0.454799 0.465195 0
vt 0.456981 0.41208 0
vt 0.439417 0.384756 0
vt 0.440376 0.473793 0
vt 0.417547 0.276324 0
vt 0.41876 0.358777 0
vt 0.428423 0.291419 0
vt 0.428423 0.291419 0
vt 0.429833 0.383251 0
vt 0.439417 0.384756 0
vt 0.438675 0.28864 0
vt 0.428423 0.291419 0
vt 0.439417 0.384756 0
vt 0.428423 0.291419 0
vt 0.41876 0.358777 0
vt 0.429833 0.383251 0
vt 0.447499 0.275301 0
vt 0.457418 0.376659 0
vt 0.459654 0.339873 0
vt 0.438675 0.28864 0
vt 0.457418 0.376659 0
vt 0.447499 0.275301 0
vt 0.457418 0.376659 0
vt 0.438675 0.28864 0
vt 0.456981 0.41208 0
vt 0.462108 0.257696 0
vt 0.461899 0.27364 0
vt 0.468215 0.320108 0
vt 0.462108 0.257696 0
vt 0.453971 0.181033 0
vt 0.461899 0.27364 0
vt 0.43301 0.210235 0
vt 0.447499 0.275301 0
vt 0.442825 0.165539 0
vt 0.43301 0.210235 0
vt 0.438675 0.28864 0
vt 0.447499 0.275301 0
vt 0.442825 0.165539 0
vt 0.447499 0.275301 0
vt 0.459654 0.339873 0
vt 0.270007 0.18302 0
vt 0.270295 0.147872 0
vt 0.264501 0.134995 0
vt 0.27479 0.214578 0
vt 0.270295 0.147872 0
vt 0.270007 0.18302 0
vt 0.267012 0.0981141 0
vt 0.270295 0.147872 0
vt 0.269161 0.0938247 0
vt 0.264501 0.134995 0
vt 0.270295 0.147872 0
vt 0.267012 0.0981141 0
vt 0.280939 0.927924 0
vt 0.290267 0.890689 0
vt 0.282933 0.900048 0
vt 0.28455 0.939714 0
vt 0.290267 0.890689 0
vt 0.280939 0.927924 0
vt 0.242287 0.17488 0
vt 0.246236 0.162934 0
vt 0.240052 0.153097 0
vt 0.248743 0.193858 0
vt 0.246236 0.162934 0
vt 0.242287 0.17488 0
vt 0.243246 0.187677 0
vt 0.248743 0.193858 0
vt 0.242287 0.17488 0
vt 0.248743 0.193858 0
vt 0.251987 0.152658 0
vt 0.246236 0.162934 0
vt 0.246236 0.162934 0
vt 0.246142 0.100884 0
vt 0.240624 0.1223 0
vt 0.240052 0.153097 0
vt 0.246236 0.162934 0
vt 0.240624 0.1223 0
vt 0.246236 0.162934 0
vt 0.251987 0.152658 0
vt 0.246142 0.100884 0
vt 0.246142 0.100884 0
vt 0.251987 0.152658 0
vt 0.26553 0.0418565 0
vt 0.246142 0.100884 0
vt 0.26553 0.0418565 0
vt 0.252188 0.0538337 0
vt 0.252188 0.0538337 0
vt 0.26553 0.0418565 0
vt 0.275138 0.995458 0
vt 0.261168 0.0103332 0
vt 0.252188 0.0538337 0
vt 0.275138 0.995458 0
vt 0.261168 0.0103332 0
vt 0.275138 0.995458 0
vt 0.27991 0.958417 0
vt 0.27991 0.958417 0
vt 0.275138 0.995458 0
vt 0.288688 0.968969 0
vt 0.27991 0.958417 0
vt 0.288688 0.968969 0
vt 0.28455 0.939714 0
vt 0.28455 0.939714 0
vt 0.288688 0.968969 0
vt 0.294252 0.961061 0
vt 0.251987 0.152658 0
vt 0.257794 0.223642 0
vt 0.271017 0.110218 0
vt 0.251987 0.152658 0
vt 0.271017 0.110218 0
vt 0.277394 0.0427948 0
vt 0.26553 0.0418565 0
vt 0.251987 0.152658 0
vt 0.277394 0.0427948 0
vt 0.26553 0.0418565 0
vt 0.277394 0.0427948 0
vt 0.275138 0.995458 0
vt 0.275138 0.995458 0
vt 0.277394 0.0427948 0
vt 0.297755 0.000961721 0
vt 0.288688 0.968969 0
vt 0.297755 0.000961721 0
vt 0.294252 0.961061 0
vt 0.275138 0.995458 0
vt 0.297755 0.000961721 0
vt 0.288688 0.968969 0
vt 0.30214 0.991246 0
vt 0.297755 0.000961721 0
vt 0.305942 0.0236707 0
vt 0.294252 0.961061 0
vt 0.297755 0.000961721 0
vt 0.30214 0.991246 0
vt 0.271017 0.110218 0
vt 0.284645 0.0579326 0
vt 0.277394 0.0427948 0
vt 0.299159 0.0260181 0
vt 0.294573 0.114518 0
vt 0.299638 0.117914 0
vt 0.284645 0.0579326 0
vt 0.294573 0.114518 0
vt 0.299159 0.0260181 0
vt 0.280601 0.227941 0
vt 0.287588 0.222427 0
vt 0.286033 0.216623 0
vt 0.282331 0.22635 0
vt 0.287588 0.222427 0
vt 0.280601 0.227941 0
vt 0.275684 0.233929 0
vt 0.282331 0.22635 0
vt 0.280601 0.227941 0
vt 0.282331 0.22635 0
vt 0.289635 0.232413 0
vt 0.287588 0.222427 0
vt 0.297065 0.221796 0
vt 0.287588 0.222427 0
vt 0.289635 0.232413 0
vt 0.293313 0.216031 0
vt 0.287588 0.222427 0
vt 0.297065 0.221796 0
vt 0.293313 0.216031 0
vt 0.286033 0.216623 0
vt 0.287588 0.222427 0
vt 0.296077 0.187836 0
vt 0.295701 0.2075 0
vt 0.3069 0.211044 0
vt 0.28859 0.202081 0
vt 0.295701 0.2075 0
vt 0.296077 0.187836 0
vt 0.28859 0.202081 0
vt 0.286033 0.216623 0
vt 0.295701 0.2075 0
vt 0.30072 0.217327 0
vt 0.293313 0.216031 0
vt 0.297065 0.221796 0
vt 0.295701 0.2075 0
vt 0.293313 0.216031 0
vt 0.30072 0.217327 0
vt 0.3069 0.211044 0
vt 0.295701 0.2075 0
vt 0.30072 0.217327 0
vt 0.295701 0.2075 0
vt 0.286033 0.216623 0
vt 0.293313 0.216031 0
vt 0.301831 0.174694 0
vt 0.296077 0.187836 0
vt 0.3069 0.211044 0
vt 0.294739 0.157617 0
vt 0.296077 0.187836 0
vt 0.301831 0.174694 0
vt 0.299638 0.117914 0
vt 0.294739 0.157617 0
vt 0.305811 0.136273 0
vt 0.312149 0.149524 0
vt 0.301831 0.174694 0
vt 0.3069 0.211044 0
vt 0.305811 0.136273 0
vt 0.301831 0.174694 0
vt 0.312149 0.149524 0
vt 0.305811 0.136273 0
vt 0.294739 0.157617 0
vt 0.301831 0.174694 0
vt 0.314596 0.0841488 0
vt 0.305811 0.136273 0
vt 0.312149 0.149524 0
vt 0.308196 0.0960529 0
vt 0.305811 0.136273 0
vt 0.314596 0.0841488 0
vt 0.308196 0.0960529 0
vt 0.299638 0.117914 0
vt 0.305811 0.136273 0
vt 0.266865 0.252427 0
vt 0.270165 0.247143 0
vt 0.270791 0.246621 0
vt 0.26344 0.252802 0
vt 0.270165 0.247143 0
vt 0.266865 0.252427 0
vt 0.280601 0.227941 0
vt 0.270165 0.247143 0
vt 0.275684 0.233929 0
vt 0.270791 0.246621 0
vt 0.270165 0.247143 0
vt 0.280601 0.227941 0
vt 0.286033 0.216623 0
vt 0.270791 0.246621 0
vt 0.280601 0.227941 0
vt 0.270791 0.246621 0
vt 0.286033 0.216623 0
vt 0.273777 0.235466 0
vt 0.28859 0.202081 0
vt 0.273777 0.235466 0
vt 0.286033 0.216623 0
vt 0.273777 0.235466 0
vt 0.28859 0.202081 0
vt 0.280449 0.200056 0
vt 0.296077 0.187836 0
vt 0.280449 0.200056 0
vt 0.28859 0.202081 0
vt 0.294739 0.157617 0
vt 0.280449 0.200056 0
vt 0.296077 0.187836 0
vt 0.299638 0.117914 0
vt 0.285936 0.141007 0
vt 0.294739 0.157617 0
vt 0.294573 0.114518 0
vt 0.285936 0.141007 0
vt 0.299638 0.117914 0
vt 0.285936 0.141007 0
vt 0.294573 0.114518 0
vt 0.284645 0.0579326 0
vt 0.254243 0.241506 0
vt 0.261467 0.251731 0
vt 0.257613 0.242925 0
vt 0.256181 0.245549 0
vt 0.261467 0.251731 0
vt 0.254243 0.241506 0
vt 0.256181 0.245549 0
vt 0.26344 0.252802 0
vt 0.261467 0.251731 0
vt 0.266865 0.252427 0
vt 0.261467 0.251731 0
vt 0.26344 0.252802 0
vt 0.270791 0.246621 0
vt 0.261467 0.251731 0
vt 0.266865 0.252427 0
vt 0.257613 0.242925 0
vt 0.267032 0.243357 0
vt 0.262537 0.237258 0
vt 0.261467 0.251731 0
vt 0.267032 0.243357 0
vt 0.257613 0.242925 0
vt 0.261467 0.251731 0
vt 0.270791 0.246621 0
vt 0.267032 0.243357 0
vt 0.273777 0.235466 0
vt 0.267032 0.243357 0
vt 0.270791 0.246621 0
vt 0.267032 0.243357 0
vt 0.269285 0.223242 0
vt 0.262537 0.237258 0
vt 0.267032 0.243357 0
vt 0.273777 0.235466 0
vt 0.269285 0.223242 0
vt 0.280449 0.200056 0
vt 0.269285 0.223242 0
vt 0.273777 0.235466 0
vt 0.294739 0.157617 0
vt 0.269285 0.223242 0
vt 0.280449 0.200056 0
vt 0.269285 0.223242 0
vt 0.294739 0.157617 0
vt 0.285936 0.141007 0
vt 0.269285 0.223242 0
vt 0.285936 0.141007 0
vt 0.271017 0.110218 0
vt 0.284645 0.0579326 0
vt 0.271017 0.110218 0
vt 0.285936 0.141007 0
vt 0.244702 0.2126 0
vt 0.249786 0.230439 0
vt 0.246916 0.219781 0
vt 0.244702 0.2126 0
vt 0.256181 0.245549 0
vt 0.249786 0.230439 0
vt 0.254243 0.241506 0
vt 0.249786 0.230439 0
vt 0.256181 0.245549 0
vt 0.257613 0.242925 0
vt 0.249786 0.230439 0
vt 0.254243 0.241506 0
vt 0.249786 0.230439 0
vt 0.253113 0.229092 0
vt 0.246916 0.219781 0
vt 0.249786 0.230439 0
vt 0.257613 0.242925 0
vt 0.253113 0.229092 0
vt 0.262537 0.237258 0
vt 0.253113 0.229092 0
vt 0.257613 0.242925 0
vt 0.271017 0.110218 0
vt 0.257794 0.223642 0
vt 0.269285 0.223242 0
vt 0.243246 0.187677 0
vt 0.243786 0.175859 0
vt 0.244702 0.2126 0
vt 0.244702 0.2126 0
vt 0.243786 0.175859 0
vt 0.252003 0.221024 0
vt 0.244702 0.2126 0
vt 0.252003 0.221024 0
vt 0.256181 0.245549 0
vt 0.256181 0.245549 0
vt 0.252003 0.221024 0
vt 0.257605 0.218784 0
vt 0.256181 0.245549 0
vt 0.259942 0.245697 0
vt 0.26344 0.252802 0
vt 0.256181 0.245549 0
vt 0.257605 0.218784 0
vt 0.259942 0.245697 0
vt 0.26344 0.252802 0
vt 0.259942 0.245697 0
vt 0.26956 0.221566 0
vt 0.270165 0.247143 0
vt 0.275181 0.226515 0
vt 0.275684 0.233929 0
vt 0.26344 0.252802 0
vt 0.275181 0.226515 0
vt 0.270165 0.247143 0
vt 0.26344 0.252802 0
vt 0.26956 0.221566 0
vt 0.275181 0.226515 0
vt 0.275181 0.226515 0
vt 0.26956 0.221566 0
vt 0.273439 0.210261 0
vt 0.282331 0.22635 0
vt 0.281774 0.223093 0
vt 0.289635 0.232413 0
vt 0.275181 0.226515 0
vt 0.281774 0.223093 0
vt 0.282331 0.22635 0
vt 0.275684 0.233929 0
vt 0.275181 0.226515 0
vt 0.282331 0.22635 0
vt 0.275181 0.226515 0
vt 0.273439 0.210261 0
vt 0.281774 0.223093 0
vt 0.284965 0.231137 0
vt 0.279327 0.216953 0
vt 0.280852 0.228183 0
vt 0.281774 0.223093 0
vt 0.279327 0.216953 0
vt 0.284965 0.231137 0
vt 0.289635 0.232413 0
vt 0.281774 0.223093 0
vt 0.284965 0.231137 0
vt 0.281774 0.223093 0
vt 0.273439 0.210261 0
vt 0.279327 0.216953 0
vt 0.243786 0.175859 0
vt 0.247671 0.102434 0
vt 0.252003 0.221024 0
vt 0.247671 0.102434 0
vt 0.254118 0.08557 0
vt 0.252003 0.221024 0
vt 0.252003 0.221024 0
vt 0.254118 0.08557 0
vt 0.257605 0.218784 0
vt 0.259942 0.245697 0
vt 0.26473 0.211281 0
vt 0.26956 0.221566 0
vt 0.257605 0.218784 0
vt 0.26473 0.211281 0
vt 0.259942 0.245697 0
vt 0.257605 0.218784 0
vt 0.261524 0.181637 0
vt 0.26473 0.211281 0
vt 0.26473 0.211281 0
vt 0.261524 0.181637 0
vt 0.265214 0.182177 0
vt 0.26473 0.211281 0
vt 0.273439 0.210261 0
vt 0.26956 0.221566 0
vt 0.26473 0.211281 0
vt 0.265214 0.182177 0
vt 0.273439 0.210261 0
vt 0.273439 0.210261 0
vt 0.265214 0.182177 0
vt 0.272299 0.197627 0
vt 0.279327 0.216953 0
vt 0.276173 0.209543 0
vt 0.280852 0.228183 0
vt 0.272299 0.197627 0
vt 0.276173 0.209543 0
vt 0.279327 0.216953 0
vt 0.273439 0.210261 0
vt 0.272299 0.197627 0
vt 0.279327 0.216953 0
vt 0.272299 0.197627 0
vt 0.27235 0.191582 0
vt 0.276173 0.209543 0
vt 0.276427 0.222157 0
vt 0.275633 0.196534 0
vt 0.27479 0.214578 0
vt 0.276173 0.209543 0
vt 0.275633 0.196534 0
vt 0.276427 0.222157 0
vt 0.280852 0.228183 0
vt 0.276173 0.209543 0
vt 0.276427 0.222157 0
vt 0.276173 0.209543 0
vt 0.27235 0.191582 0
vt 0.275633 0.196534 0
vt 0.254118 0.08557 0
vt 0.261524 0.181637 0
vt 0.257605 0.218784 0
vt 0.254118 0.08557 0
vt 0.258691 0.0454526 0
vt 0.261524 0.181637 0
vt 0.261524 0.181637 0
vt 0.258691 0.0454526 0
vt 0.262844 0.111765 0
vt 0.261524 0.181637 0
vt 0.262844 0.111765 0
vt 0.265214 0.182177 0
vt 0.265214 0.182177 0
vt 0.262844 0.111765 0
vt 0.265807 0.159318 0
vt 0.272299 0.197627 0
vt 0.267302 0.159457 0
vt 0.27235 0.191582 0
vt 0.265807 0.159318 0
vt 0.267302 0.159457 0
vt 0.272299 0.197627 0
vt 0.265214 0.182177 0
vt 0.265807 0.159318 0
vt 0.272299 0.197627 0
vt 0.27235 0.191582 0
vt 0.267302 0.159457 0
vt 0.273299 0.170063 0
vt 0.273299 0.170063 0
vt 0.275633 0.196534 0
vt 0.27235 0.191582 0
vt 0.262844 0.111765 0
vt 0.267302 0.159457 0
vt 0.265807 0.159318 0
vt 0.262844 0.111765 0
vt 0.26368 0.0850219 0
vt 0.267302 0.159457 0
vt 0.267302 0.159457 0
vt 0.269563 0.0918497 0
vt 0.273299 0.170063 0
vt 0.267302 0.159457 0
vt 0.26368 0.0850219 0
vt 0.269563 0.0918497 0
vt 0.269161 0.0938247 0
vt 0.275633 0.196534 0
vt 0.273299 0.170063 0
vt 0.269161 0.0938247 0
vt 0.270295 0.147872 0
vt 0.275633 0.196534 0
vt 0.27479 0.214578 0
vt 0.275633 0.196534 0
vt 0.270295 0.147872 0
vt 0.266232 0.969222 0
vt 0.279028 0.942745 0
vt 0.264343 0.974588 0
vt 0.28455 0.939714 0
vt 0.279028 0.942745 0
vt 0.266232 0.969222 0
vt 0.267744 0.969526 0
vt 0.28455 0.939714 0
vt 0.266232 0.969222 0
vt 0.27575 0.955407 0
vt 0.275756 0.958087 0
vt 0.279028 0.942745 0
vt 0.275756 0.958087 0
vt 0.264343 0.974588 0
vt 0.279028 0.942745 0
vt 0.262852 0.984514 0
vt 0.273576 0.9748 0
vt 0.262962 0.00445932 0
vt 0.275756 0.958087 0
vt 0.273576 0.9748 0
vt 0.262852 0.984514 0
vt 0.264343 0.974588 0
vt 0.275756 0.958087 0
vt 0.262852 0.984514 0
vt 0.275756 0.958087 0
vt 0.27575 0.955407 0
vt 0.273576 0.9748 0
vt 0.27376 0.977436 0
vt 0.273576 0.9748 0
vt 0.27575 0.955407 0
vt 0.262962 0.00445932 0
vt 0.273576 0.9748 0
vt 0.27376 0.977436 0
vt 0.27075 0.0224964 0
vt 0.262962 0.00445932 0
vt 0.27376 0.977436 0
vt 0.262962 0.00445932 0
vt 0.269563 0.0918497 0
vt 0.26368 0.0850219 0
vt 0.262962 0.00445932 0
vt 0.27075 0.0224964 0
vt 0.269563 0.0918497 0
vt 0.269161 0.0938247 0
vt 0.269563 0.0918497 0
vt 0.27075 0.0224964 0
vt 0.252527 0.03131 0
vt 0.269875 0.971712 0
vt 0.252124 0.0260788 0
vt 0.261168 0.0103332 0
vt 0.269875 0.971712 0
vt 0.252527 0.03131 0
vt 0.261168 0.0103332 0
vt 0.27991 0.958417 0
vt 0.269875 0.971712 0
vt 0.267744 0.969526 0
vt 0.252124 0.0260788 0
vt 0.269875 0.971712 0
vt 0.253567 0.0178556 0
vt 0.266232 0.969222 0
vt 0.254774 0.0150111 0
vt 0.267744 0.969526 0
vt 0.266232 0.969222 0
vt 0.253567 0.0178556 0
vt 0.252124 0.0260788 0
vt 0.267744 0.969526 0
vt 0.253567 0.0178556 0
vt 0.264343 0.974588 0
vt 0.254774 0.0150111 0
vt 0.266232 0.969222 0
vt 0.253193 0.0324996 0
vt 0.262852 0.984514 0
vt 0.260669 0.00500268 0
vt 0.264343 0.974588 0
vt 0.262852 0.984514 0
vt 0.253193 0.0324996 0
vt 0.254774 0.0150111 0
vt 0.264343 0.974588 0
vt 0.253193 0.0324996 0
vt 0.262962 0.00445932 0
vt 0.260669 0.00500268 0
vt 0.262852 0.984514 0
vt 0.260669 0.00500268 0
vt 0.261363 0.0259324 0
vt 0.258691 0.0454526 0
vt 0.260669 0.00500268 0
vt 0.262962 0.00445932 0
vt 0.261363 0.0259324 0
vt 0.262844 0.111765 0
vt 0.261363 0.0259324 0
vt 0.26368 0.0850219 0
vt 0.258691 0.0454526 0
vt 0.261363 0.0259324 0
vt 0.262844 0.111765 0
vt 0.26368 0.0850219 0
vt 0.261363 0.0259324 0
vt 0.262962 0.00445932 0
vt 0.252188 0.0538337 0
vt 0.252527 0.03131 0
vt 0.243385 0.079145 0
vt 0.246142 0.100884 0
vt 0.252188 0.0538337 0
vt 0.243385 0.079145 0
vt 0.252188 0.0538337 0
vt 0.261168 0.0103332 0
vt 0.252527 0.03131 0
vt 0.252124 0.0260788 0
vt 0.243385 0.079145 0
vt 0.252527 0.03131 0
vt 0.252124 0.0260788 0
vt 0.253567 0.0178556 0
vt 0.244297 0.0698935 0
vt 0.243385 0.079145 0
vt 0.252124 0.0260788 0
vt 0.244297 0.0698935 0
vt 0.254774 0.0150111 0
vt 0.244297 0.0698935 0
vt 0.253567 0.0178556 0
vt 0.254774 0.0150111 0
vt 0.253193 0.0324996 0
vt 0.247107 0.0698595 0
vt 0.244297 0.0698935 0
vt 0.254774 0.0150111 0
vt 0.247107 0.0698595 0
vt 0.247107 0.0698595 0
vt 0.253193 0.0324996 0
vt 0.247671 0.102434 0
vt 0.258691 0.0454526 0
vt 0.253193 0.0324996 0
vt 0.260669 0.00500268 0
vt 0.254118 0.08557 0
vt 0.253193 0.0324996 0
vt 0.258691 0.0454526 0
vt 0.254118 0.08557 0
vt 0.247671 0.102434 0
vt 0.253193 0.0324996 0
vt 0.240052 0.153097 0
vt 0.240624 0.1223 0
vt 0.238303 0.143641 0
vt 0.243385 0.079145 0
vt 0.240624 0.1223 0
vt 0.246142 0.100884 0
vt 0.239459 0.113648 0
vt 0.240624 0.1223 0
vt 0.243385 0.079145 0
vt 0.239459 0.113648 0
vt 0.238303 0.143641 0
vt 0.240624 0.1223 0
vt 0.244297 0.0698935 0
vt 0.239459 0.113648 0
vt 0.243385 0.079145 0
vt 0.239459 0.113648 0
vt 0.244297 0.0698935 0
vt 0.238303 0.143641 0
vt 0.247107 0.0698595 0
vt 0.238303 0.143641 0
vt 0.244297 0.0698935 0
vt 0.247671 0.102434 0
vt 0.238303 0.143641 0
vt 0.247107 0.0698595 0
vt 0.243786 0.175859 0
vt 0.239321 0.165546 0
vt 0.238303 0.143641 0
vt 0.247671 0.102434 0
vt 0.243786 0.175859 0
vt 0.238303 0.143641 0
vt 0.243786 0.175859 0
vt 0.243246 0.187677 0
vt 0.239321 0.165546 0
vt 0.239321 0.165546 0
vt 0.242287 0.17488 0
vt 0.240052 0.153097 0
vt 0.238303 0.143641 0
vt 0.239321 0.165546 0
vt 0.240052 0.153097 0
vt 0.239321 0.165546 0
vt 0.243246 0.187677 0
vt 0.242287 0.17488 0
vt 0.269875 0.971712 0
vt 0.277414 0.950554 0
vt 0.267744 0.969526 0
vt 0.27991 0.958417 0
vt 0.277414 0.950554 0
vt 0.269875 0.971712 0
vt 0.27991 0.958417 0
vt 0.28455 0.939714 0
vt 0.277414 0.950554 0
vt 0.28455 0.939714 0
vt 0.267744 0.969526 0
vt 0.277414 0.950554 0
vt 0.273299 0.170063 0
vt 0.269563 0.0918497 0
vt 0.269161 0.0938247 0
vt 0.251987 0.152658 0
vt 0.248743 0.193858 0
vt 0.257794 0.223642 0
vt 0.248743 0.193858 0
vt 0.244468 0.206533 0
vt 0.253113 0.229092 0
vt 0.257794 0.223642 0
vt 0.248743 0.193858 0
vt 0.253113 0.229092 0
vt 0.248743 0.193858 0
vt 0.243246 0.187677 0
vt 0.244468 0.206533 0
vt 0.253113 0.229092 0
vt 0.244468 0.206533 0
vt 0.246916 0.219781 0
vt 0.246916 0.219781 0
vt 0.244468 0.206533 0
vt 0.244702 0.2126 0
vt 0.244468 0.206533 0
vt 0.243246 0.187677 0
vt 0.244702 0.2126 0
vt 0.253113 0.229092 0
vt 0.262537 0.237258 0
vt 0.257794 0.223642 0
vt 0.269285 0.223242 0
vt 0.257794 0.223642 0
vt 0.262537 0.237258 0
vt 0.305942 0.0236707 0
vt 0.308196 0.0960529 0
vt 0.314596 0.0841488 0
vt 0.305942 0.0236707 0
vt 0.299638 0.117914 0
vt 0.308196 0.0960529 0
vt 0.299159 0.0260181 0
vt 0.299638 0.117914 0
vt 0.305942 0.0236707 0
vt 0.297755 0.000961721 0
vt 0.299159 0.0260181 0
vt 0.305942 0.0236707 0
vt 0.277394 0.0427948 0
vt 0.299159 0.0260181 0
vt 0.297755 0.000961721 0
vt 0.284645 0.0579326 0
vt 0.299159 0.0260181 0
vt 0.277394 0.0427948 0
vt 0.279028 0.942745 0
vt 0.280939 0.927924 0
vt 0.27575 0.955407 0
vt 0.28455 0.939714 0
vt 0.280939 0.927924 0
vt 0.279028 0.942745 0
vt 0.294252 0.961061 0
vt 0.298269 0.92801 0
vt 0.28455 0.939714 0
vt 0.305164 0.974077 0
vt 0.298269 0.92801 0
vt 0.294252 0.961061 0
vt 0.305164 0.974077 0
vt 0.308991 0.934067 0
vt 0.298269 0.92801 0
vt 0.294252 0.961061 0
vt 0.30214 0.991246 0
vt 0.305164 0.974077 0
vt 0.30214 0.991246 0
vt 0.305942 0.0236707 0
vt 0.305164 0.974077 0
vt 0.297065 0.221796 0
vt 0.289635 0.232413 0
vt 0.298502 0.242515 0
vt 0.298502 0.242515 0
vt 0.294657 0.249983 0
vt 0.299923 0.261588 0
vt 0.306382 0.26074 0
vt 0.298502 0.242515 0
vt 0.299923 0.261588 0
vt 0.298502 0.242515 0
vt 0.289635 0.232413 0
vt 0.294657 0.249983 0
vt 0.299923 0.261588 0
vt 0.303009 0.296607 0
vt 0.306382 0.26074 0
vt 0.30072 0.217327 0
vt 0.298502 0.242515 0
vt 0.306382 0.26074 0
vt 0.3069 0.211044 0
vt 0.30072 0.217327 0
vt 0.306382 0.26074 0
vt 0.30072 0.217327 0
vt 0.297065 0.221796 0
vt 0.298502 0.242515 0
vt 0.276427 0.222157 0
vt 0.276328 0.250988 0
vt 0.280852 0.228183 0
vt 0.27479 0.214578 0
vt 0.276328 0.250988 0
vt 0.276427 0.222157 0
vt 0.287064 0.245577 0
vt 0.284965 0.231137 0
vt 0.280852 0.228183 0
vt 0.287064 0.245577 0
vt 0.289635 0.232413 0
vt 0.284965 0.231137 0
vt 0.293646 0.284125 0
vt 0.287064 0.245577 0
vt 0.276328 0.250988 0
vt 0.287064 0.245577 0
vt 0.280852 0.228183 0
vt 0.276328 0.250988 0
vt 0.320353 0.144875 0
vt 0.324357 0.0916888 0
vt 0.314596 0.0841488 0
vt 0.312149 0.149524 0
vt 0.320353 0.144875 0
vt 0.314596 0.0841488 0
vt 0.319874 0.210441 0
vt 0.312149 0.149524 0
vt 0.3069 0.211044 0
vt 0.320353 0.144875 0
vt 0.312149 0.149524 0
vt 0.319874 0.210441 0
vt 0.269864 0.974405 0
vt 0.27075 0.0224964 0
vt 0.27376 0.977436 0
vt 0.269864 0.974405 0
vt 0.265319 0.0229007 0
vt 0.27075 0.0224964 0
vt 0.27075 0.0224964 0
vt 0.267012 0.0981141 0
vt 0.269161 0.0938247 0
vt 0.299956 0.366175 0
vt 0.303009 0.296607 0
vt 0.293646 0.284125 0
vt 0.315795 0.354069 0
vt 0.303009 0.296607 0
vt 0.299956 0.366175 0
vt 0.315795 0.354069 0
vt 0.306382 0.26074 0
vt 0.303009 0.296607 0
vt 0.26297 0.19116 0
vt 0.27022 0.242044 0
vt 0.264501 0.134995 0
vt 0.27479 0.214578 0
vt 0.270007 0.18302 0
vt 0.27022 0.242044 0
vt 0.270007 0.18302 0
vt 0.264501 0.134995 0
vt 0.27022 0.242044 0
vt 0.27075 0.0224964 0
vt 0.265319 0.0229007 0
vt 0.260422 0.0921062 0
vt 0.286949 0.801858 0
vt 0.290267 0.890689 0
vt 0.294158 0.814748 0
vt 0.282223 0.862447 0
vt 0.290267 0.890689 0
vt 0.286949 0.801858 0
vt 0.278894 0.806623 0
vt 0.282223 0.862447 0
vt 0.286949 0.801858 0
vt 0.282223 0.862447 0
vt 0.282933 0.900048 0
vt 0.290267 0.890689 0
vt 0.298269 0.92801 0
vt 0.290267 0.890689 0
vt 0.28455 0.939714 0
vt 0.30225 0.87525 0
vt 0.290267 0.890689 0
vt 0.298269 0.92801 0
vt 0.308991 0.934067 0
vt 0.30225 0.87525 0
vt 0.298269 0.92801 0
vt 0.30225 0.87525 0
vt 0.294158 0.814748 0
vt 0.290267 0.890689 0
vt 0.313629 0.86389 0
vt 0.30225 0.87525 0
vt 0.308991 0.934067 0
vt 0.302449 0.801188 0
vt 0.30225 0.87525 0
vt 0.313629 0.86389 0
vt 0.311896 0.784773 0
vt 0.302449 0.801188 0
vt 0.313629 0.86389 0
vt 0.302449 0.801188 0
vt 0.294158 0.814748 0
vt 0.30225 0.87525 0
vt 0.299956 0.366175 0
vt 0.293646 0.284125 0
vt 0.289099 0.346913 0
vt 0.294657 0.249983 0
vt 0.293646 0.284125 0
vt 0.299923 0.261588 0
vt 0.287064 0.245577 0
vt 0.293646 0.284125 0
vt 0.294657 0.249983 0
vt 0.289635 0.232413 0
vt 0.287064 0.245577 0
vt 0.294657 0.249983 0
vt 0.293646 0.284125 0
vt 0.303009 0.296607 0
vt 0.299923 0.261588 0
vt 0.276328 0.250988 0
vt 0.289099 0.346913 0
vt 0.293646 0.284125 0
vt 0.276328 0.250988 0
vt 0.277928 0.316198 0
vt 0.289099 0.346913 0
vt 0.317422 0.96045 0
vt 0.313629 0.86389 0
vt 0.308991 0.934067 0
vt 0.332267 0.902521 0
vt 0.313629 0.86389 0
vt 0.317422 0.96045 0
vt 0.314596 0.0841488 0
vt 0.318173 0.0321041 0
vt 0.305942 0.0236707 0
vt 0.324357 0.0916888 0
vt 0.318173 0.0321041 0
vt 0.314596 0.0841488 0
vt 0.324357 0.0916888 0
vt 0.335626 0.0372187 0
vt 0.318173 0.0321041 0
vt 0.305164 0.974077 0
vt 0.317422 0.96045 0
vt 0.308991 0.934067 0
vt 0.318173 0.0321041 0
vt 0.317422 0.96045 0
vt 0.305164 0.974077 0
vt 0.305942 0.0236707 0
vt 0.318173 0.0321041 0
vt 0.305164 0.974077 0
vt 0.318173 0.0321041 0
vt 0.335626 0.0372187 0
vt 0.317422 0.96045 0
vt 0.350952 0.113743 0
vt 0.335626 0.0372187 0
vt 0.324357 0.0916888 0
vt 0.322588 0.282912 0
vt 0.344339 0.298017 0
vt 0.319874 0.210441 0
vt 0.3069 0.211044 0
vt 0.322588 0.282912 0
vt 0.319874 0.210441 0
vt 0.322588 0.282912 0
vt 0.338285 0.398481 0
vt 0.344339 0.298017 0
vt 0.351383 0.215708 0
vt 0.319874 0.210441 0
vt 0.344339 0.298017 0
vt 0.331028 0.506468 0
vt 0.338285 0.398481 0
vt 0.315795 0.354069 0
vt 0.306382 0.26074 0
vt 0.322588 0.282912 0
vt 0.3069 0.211044 0
vt 0.257864 0.954287 0
vt 0.260739 0.875677 0
vt 0.257412 0.904856 0
vt 0.253324 0.0282426 0
vt 0.253378 0.0219665 0
vt 0.257864 0.954287 0
vt 0.257412 0.904856 0
vt 0.253324 0.0282426 0
vt 0.257864 0.954287 0
vt 0.259753 0.0240977 0
vt 0.257864 0.954287 0
vt 0.253378 0.0219665 0
vt 0.26297 0.19116 0
vt 0.264501 0.134995 0
vt 0.260422 0.0921062 0
vt 0.268165 0.304854 0
vt 0.277928 0.316198 0
vt 0.27022 0.242044 0
vt 0.265319 0.0229007 0
vt 0.259753 0.0240977 0
vt 0.260422 0.0921062 0
vt 0.267848 0.946992 0
vt 0.259753 0.0240977 0
vt 0.265319 0.0229007 0
vt 0.262386 0.9511 0
vt 0.259753 0.0240977 0
vt 0.267848 0.946992 0
vt 0.257864 0.954287 0
vt 0.259753 0.0240977 0
vt 0.262386 0.9511 0
vt 0.262386 0.9511 0
vt 0.265737 0.865526 0
vt 0.257864 0.954287 0
vt 0.267848 0.946992 0
vt 0.265737 0.865526 0
vt 0.262386 0.9511 0
vt 0.260739 0.875677 0
vt 0.257864 0.954287 0
vt 0.265737 0.865526 0
vt 0.282223 0.862447 0
vt 0.276201 0.912042 0
vt 0.282933 0.900048 0
vt 0.274694 0.850915 0
vt 0.276201 0.912042 0
vt 0.282223 0.862447 0
vt 0.278894 0.806623 0
vt 0.274694 0.850915 0
vt 0.282223 0.862447 0
vt 0.274694 0.850915 0
vt 0.267848 0.946992 0
vt 0.276201 0.912042 0
vt 0.273759 0.947605 0
vt 0.276201 0.912042 0
vt 0.267848 0.946992 0
vt 0.280939 0.927924 0
vt 0.276201 0.912042 0
vt 0.273759 0.947605 0
vt 0.27575 0.955407 0
vt 0.280939 0.927924 0
vt 0.273759 0.947605 0
vt 0.280939 0.927924 0
vt 0.282933 0.900048 0
vt 0.276201 0.912042 0
vt 0.273759 0.947605 0
vt 0.269864 0.974405 0
vt 0.27376 0.977436 0
vt 0.27575 0.955407 0
vt 0.273759 0.947605 0
vt 0.27376 0.977436 0
vt 0.273759 0.947605 0
vt 0.267848 0.946992 0
vt 0.269864 0.974405 0
vt 0.265319 0.0229007 0
vt 0.269864 0.974405 0
vt 0.267848 0.946992 0
vt 0.311896 0.784773 0
vt 0.313629 0.86389 0
vt 0.329974 0.75653 0
vt 0.335626 0.0372187 0
vt 0.358671 0.00977153 0
vt 0.350516 0.897133 0
vt 0.350952 0.113743 0
vt 0.358671 0.00977153 0
vt 0.335626 0.0372187 0
vt 0.350952 0.113743 0
vt 0.372456 0.0946521 0
vt 0.358671 0.00977153 0
vt 0.332267 0.902521 0
vt 0.335626 0.0372187 0
vt 0.350516 0.897133 0
vt 0.43301 0.210235 0
vt 0.428423 0.291419 0
vt 0.438675 0.28864 0
vt 0.414825 0.160449 0
vt 0.428423 0.291419 0
vt 0.43301 0.210235 0
vt 0.414825 0.160449 0
vt 0.417547 0.276324 0
vt 0.428423 0.291419 0
vt 0.459654 0.339873 0
vt 0.461899 0.27364 0
vt 0.453971 0.181033 0
vt 0.442825 0.165539 0
vt 0.459654 0.339873 0
vt 0.453971 0.181033 0
vt 0.461899 0.27364 0
vt 0.465653 0.330703 0
vt 0.468215 0.320108 0
vt 0.461899 0.27364 0
vt 0.459654 0.339873 0
vt 0.465653 0.330703 0
vt 0.430185 0.506254 0
vt 0.423303 0.624215 0
vt 0.438636 0.550464 0
vt 0.438636 0.550464 0
vt 0.441004 0.653641 0
vt 0.449479 0.624077 0
vt 0.448256 0.557165 0
vt 0.438636 0.550464 0
vt 0.449479 0.624077 0
vt 0.438636 0.550464 0
vt 0.423303 0.624215 0
vt 0.441004 0.653641 0
vt 0.459413 0.668188 0
vt 0.456617 0.695853 0
vt 0.461555 0.671853 0
vt 0.452371 0.710707 0
vt 0.456617 0.695853 0
vt 0.459413 0.668188 0
vt 0.45538 0.669014 0
vt 0.452371 0.710707 0
vt 0.459413 0.668188 0
vt 0.274694 0.850915 0
vt 0.278894 0.806623 0
vt 0.276089 0.747667 0
vt 0.276089 0.747667 0
vt 0.287626 0.697938 0
vt 0.282593 0.671933 0
vt 0.276089 0.747667 0
vt 0.278894 0.806623 0
vt 0.287626 0.697938 0
vt 0.300641 0.535721 0
vt 0.295207 0.60796 0
vt 0.304745 0.531546 0
vt 0.295207 0.60796 0
vt 0.300641 0.535721 0
vt 0.296924 0.540498 0
vt 0.282039 0.591446 0
vt 0.283042 0.616041 0
vt 0.291148 0.549016 0
vt 0.288872 0.537143 0
vt 0.282039 0.591446 0
vt 0.291148 0.549016 0
vt 0.282039 0.591446 0
vt 0.277095 0.665219 0
vt 0.283042 0.616041 0
vt 0.282593 0.671933 0
vt 0.283042 0.616041 0
vt 0.277095 0.665219 0
vt 0.277095 0.665219 0
vt 0.270363 0.747749 0
vt 0.282593 0.671933 0
vt 0.270363 0.747749 0
vt 0.260739 0.875677 0
vt 0.265737 0.865526 0
vt 0.277928 0.316198 0
vt 0.268165 0.304854 0
vt 0.279437 0.46891 0
vt 0.357075 0.493317 0
vt 0.347622 0.506243 0
vt 0.36115 0.53524 0
vt 0.351453 0.565652 0
vt 0.355472 0.600136 0
vt 0.36115 0.53524 0
vt 0.351453 0.565652 0
vt 0.345852 0.540613 0
vt 0.346764 0.587167 0
vt 0.347622 0.506243 0
vt 0.345852 0.540613 0
vt 0.351453 0.565652 0
vt 0.36115 0.53524 0
vt 0.347622 0.506243 0
vt 0.351453 0.565652 0
vt 0.366886 0.49751 0
vt 0.366547 0.478886 0
vt 0.353535 0.464272 0
vt 0.357075 0.493317 0
vt 0.366886 0.49751 0
vt 0.353535 0.464272 0
vt 0.393999 0.845746 0
vt 0.405609 0.834834 0
vt 0.394518 0.75187 0
vt 0.405735 0.730755 0
vt 0.405609 0.834834 0
vt 0.414638 0.816257 0
vt 0.414638 0.816257 0
vt 0.417604 0.785714 0
vt 0.405735 0.730755 0
vt 0.415138 0.724414 0
vt 0.417604 0.785714 0
vt 0.424802 0.813056 0
vt 0.405609 0.834834 0
vt 0.417681 0.888987 0
vt 0.414638 0.816257 0
vt 0.405609 0.834834 0
vt 0.413927 0.953622 0
vt 0.417681 0.888987 0
vt 0.425709 0.881031 0
vt 0.417681 0.888987 0
vt 0.424967 0.960241 0
vt 0.430413 0.94935 0
vt 0.425709 0.881031 0
vt 0.424967 0.960241 0
vt 0.425709 0.881031 0
vt 0.414638 0.816257 0
vt 0.417681 0.888987 0
vt 0.424967 0.960241 0
vt 0.417681 0.888987 0
vt 0.413927 0.953622 0
vt 0.417604 0.785714 0
vt 0.425709 0.881031 0
vt 0.424802 0.813056 0
vt 0.414638 0.816257 0
vt 0.425709 0.881031 0
vt 0.417604 0.785714 0
vt 0.432781 0.874484 0
vt 0.430889 0.884531 0
vt 0.434818 0.948034 0
vt 0.439857 0.950172 0
vt 0.432781 0.874484 0
vt 0.434818 0.948034 0
vt 0.432781 0.874484 0
vt 0.424802 0.813056 0
vt 0.430889 0.884531 0
vt 0.434818 0.948034 0
vt 0.425709 0.881031 0
vt 0.430413 0.94935 0
vt 0.430889 0.884531 0
vt 0.425709 0.881031 0
vt 0.434818 0.948034 0
vt 0.430889 0.884531 0
vt 0.424802 0.813056 0
vt 0.425709 0.881031 0
vt 0.275276 0.659737 0
vt 0.270363 0.747749 0
vt 0.277095 0.665219 0
vt 0.275276 0.659737 0
vt 0.282039 0.591446 0
vt 0.275194 0.661334 0
vt 0.277095 0.665219 0
vt 0.282039 0.591446 0
vt 0.275276 0.659737 0
vt 0.280086 0.593097 0
vt 0.288872 0.537143 0
vt 0.286867 0.536068 0
vt 0.282039 0.591446 0
vt 0.288872 0.537143 0
vt 0.280086 0.593097 0
vt 0.275194 0.661334 0
vt 0.282039 0.591446 0
vt 0.280086 0.593097 0
vt 0.365431 0.462285 0
vt 0.369983 0.467529 0
vt 0.365068 0.450725 0
vt 0.365431 0.462285 0
vt 0.366547 0.478886 0
vt 0.369983 0.467529 0
vt 0.369983 0.467529 0
vt 0.375748 0.478653 0
vt 0.365068 0.450725 0
vt 0.425544 0.786849 0
vt 0.432781 0.874484 0
vt 0.433602 0.852235 0
vt 0.424802 0.813056 0
vt 0.432781 0.874484 0
vt 0.425544 0.786849 0
vt 0.433602 0.852235 0
vt 0.432781 0.874484 0
vt 0.439857 0.950172 0
vt 0.440811 0.947538 0
vt 0.433602 0.852235 0
vt 0.439857 0.950172 0
vt 0.402793 0.520864 0
vt 0.380245 0.523495 0
vt 0.402915 0.601057 0
vt 0.402793 0.520864 0
vt 0.382819 0.403272 0
vt 0.380245 0.523495 0
vt 0.380245 0.523495 0
vt 0.391769 0.652541 0
vt 0.402915 0.601057 0
vt 0.380245 0.523495 0
vt 0.375812 0.630234 0
vt 0.391769 0.652541 0
vt 0.402793 0.520864 0
vt 0.397172 0.400048 0
vt 0.382819 0.403272 0
vt 0.407514 0.482624 0
vt 0.397172 0.400048 0
vt 0.402793 0.520864 0
vt 0.407514 0.482624 0
vt 0.41876 0.358777 0
vt 0.397172 0.400048 0
vt 0.397172 0.400048 0
vt 0.408075 0.283775 0
vt 0.3916 0.252166 0
vt 0.382819 0.403272 0
vt 0.397172 0.400048 0
vt 0.3916 0.252166 0
vt 0.397172 0.400048 0
vt 0.41876 0.358777 0
vt 0.408075 0.283775 0
vt 0.372456 0.0946521 0
vt 0.377146 0.161533 0
vt 0.39418 0.162624 0
vt 0.377146 0.161533 0
vt 0.3916 0.252166 0
vt 0.39418 0.162624 0
vt 0.39418 0.162624 0
vt 0.408075 0.283775 0
vt 0.417547 0.276324 0
vt 0.39418 0.162624 0
vt 0.3916 0.252166 0
vt 0.408075 0.283775 0
vt 0.41876 0.358777 0
vt 0.417547 0.276324 0
vt 0.408075 0.283775 0
vt 0.417547 0.276324 0
vt 0.414825 0.160449 0
vt 0.39418 0.162624 0
vt 0.371262 0.88941 0
vt 0.379054 0.0249585 0
vt 0.386617 0.936867 0
vt 0.358671 0.00977153 0
vt 0.379054 0.0249585 0
vt 0.371262 0.88941 0
vt 0.350516 0.897133 0
vt 0.358671 0.00977153 0
vt 0.371262 0.88941 0
vt 0.358671 0.00977153 0
vt 0.372456 0.0946521 0
vt 0.379054 0.0249585 0
vt 0.395932 0.0389759 0
vt 0.39418 0.162624 0
vt 0.414825 0.160449 0
vt 0.379054 0.0249585 0
vt 0.39418 0.162624 0
vt 0.395932 0.0389759 0
vt 0.386617 0.936867 0
vt 0.379054 0.0249585 0
vt 0.395932 0.0389759 0
vt 0.379054 0.0249585 0
vt 0.372456 0.0946521 0
vt 0.39418 0.162624 0
vt 0.413927 0.953622 0
vt 0.405609 0.834834 0
vt 0.400167 0.941813 0
vt 0.405609 0.834834 0
vt 0.393999 0.845746 0
vt 0.400167 0.941813 0
vt 0.400167 0.941813 0
vt 0.393999 0.845746 0
vt 0.386617 0.936867 0
vt 0.393999 0.845746 0
vt 0.394518 0.75187 0
vt 0.381656 0.773273 0
vt 0.381656 0.773273 0
vt 0.382543 0.699189 0
vt 0.369637 0.711934 0
vt 0.381656 0.773273 0
vt 0.394518 0.75187 0
vt 0.382543 0.699189 0
vt 0.369637 0.711934 0
vt 0.35673 0.722751 0
vt 0.368012 0.784568 0
vt 0.365494 0.61428 0
vt 0.353126 0.665909 0
vt 0.373647 0.657223 0
vt 0.369637 0.711934 0
vt 0.373647 0.657223 0
vt 0.353126 0.665909 0
vt 0.353126 0.665909 0
vt 0.35673 0.722751 0
vt 0.369637 0.711934 0
vt 0.314247 0.713574 0
vt 0.327659 0.675594 0
vt 0.321658 0.633418 0
vt 0.311896 0.784773 0
vt 0.327659 0.675594 0
vt 0.314247 0.713574 0
vt 0.311896 0.784773 0
vt 0.329974 0.75653 0
vt 0.327659 0.675594 0
vt 0.33084 0.566254 0
vt 0.347622 0.506243 0
vt 0.334833 0.511758 0
vt 0.345852 0.540613 0
vt 0.347622 0.506243 0
vt 0.33084 0.566254 0
vt 0.33084 0.566254 0
vt 0.322133 0.549575 0
vt 0.321658 0.633418 0
vt 0.32615 0.530036 0
vt 0.33084 0.566254 0
vt 0.334833 0.511758 0
vt 0.33084 0.566254 0
vt 0.32615 0.530036 0
vt 0.322133 0.549575 0
vt 0.277928 0.316198 0
vt 0.279437 0.46891 0
vt 0.289099 0.346913 0
vt 0.286949 0.801858 0
vt 0.296884 0.739255 0
vt 0.287626 0.697938 0
vt 0.278894 0.806623 0
vt 0.286949 0.801858 0
vt 0.287626 0.697938 0
vt 0.286949 0.801858 0
vt 0.294158 0.814748 0
vt 0.296884 0.739255 0
vt 0.310681 0.655569 0
vt 0.301044 0.625121 0
vt 0.296884 0.739255 0
vt 0.301044 0.625121 0
vt 0.287626 0.697938 0
vt 0.296884 0.739255 0
vt 0.296884 0.739255 0
vt 0.314247 0.713574 0
vt 0.310681 0.655569 0
vt 0.302449 0.801188 0
vt 0.314247 0.713574 0
vt 0.296884 0.739255 0
vt 0.294158 0.814748 0
vt 0.302449 0.801188 0
vt 0.296884 0.739255 0
vt 0.302449 0.801188 0
vt 0.311896 0.784773 0
vt 0.314247 0.713574 0
vt 0.310681 0.655569 0
vt 0.314247 0.713574 0
vt 0.321658 0.633418 0
vt 0.310681 0.655569 0
vt 0.321658 0.633418 0
vt 0.322133 0.549575 0
vt 0.322133 0.549575 0
vt 0.301044 0.625121 0
vt 0.310681 0.655569 0
vt 0.301044 0.625121 0
vt 0.313123 0.539662 0
vt 0.304745 0.531546 0
vt 0.313123 0.539662 0
vt 0.301044 0.625121 0
vt 0.322133 0.549575 0
vt 0.301044 0.625121 0
vt 0.295207 0.60796 0
vt 0.287626 0.697938 0
vt 0.301044 0.625121 0
vt 0.304745 0.531546 0
vt 0.295207 0.60796 0
vt 0.435065 0.0306503 0
vt 0.430413 0.94935 0
vt 0.424967 0.960241 0
vt 0.413927 0.953622 0
vt 0.42545 0.0750421 0
vt 0.424967 0.960241 0
vt 0.442825 0.165539 0
vt 0.42545 0.0750421 0
vt 0.43301 0.210235 0
vt 0.435065 0.0306503 0
vt 0.42545 0.0750421 0
vt 0.442825 0.165539 0
vt 0.435065 0.0306503 0
vt 0.424967 0.960241 0
vt 0.42545 0.0750421 0
vt 0.439857 0.950172 0
vt 0.434818 0.948034 0
vt 0.44462 0.0598707 0
vt 0.453971 0.181033 0
vt 0.439857 0.950172 0
vt 0.44462 0.0598707 0
vt 0.435065 0.0306503 0
vt 0.44462 0.0598707 0
vt 0.434818 0.948034 0
vt 0.430413 0.94935 0
vt 0.435065 0.0306503 0
vt 0.434818 0.948034 0
vt 0.435065 0.0306503 0
vt 0.442825 0.165539 0
vt 0.44462 0.0598707 0
vt 0.453971 0.181033 0
vt 0.44462 0.0598707 0
vt 0.442825 0.165539 0
vt 0.462108 0.257696 0
vt 0.439857 0.950172 0
vt 0.453971 0.181033 0
vt 0.462108 0.257696 0
vt 0.440811 0.947538 0
vt 0.439857 0.950172 0
vt 0.42545 0.0750421 0
vt 0.409069 0.0291591 0
vt 0.414825 0.160449 0
vt 0.43301 0.210235 0
vt 0.42545 0.0750421 0
vt 0.414825 0.160449 0
vt 0.42545 0.0750421 0
vt 0.413927 0.953622 0
vt 0.409069 0.0291591 0
vt 0.409069 0.0291591 0
vt 0.413927 0.953622 0
vt 0.400167 0.941813 0
vt 0.395932 0.0389759 0
vt 0.409069 0.0291591 0
vt 0.400167 0.941813 0
vt 0.386617 0.936867 0
vt 0.395932 0.0389759 0
vt 0.400167 0.941813 0
vt 0.395932 0.0389759 0
vt 0.414825 0.160449 0
vt 0.409069 0.0291591 0
vt 0.259939 0.143042 0
vt 0.236343 0.308367 0
vt 0.299301 0.307432 0
vt 0.259939 0.143042 0
vt 0.299301 0.307432 0
vt 0.358284 0.291294 0
vt 0.259939 0.143042 0
vt 0.358284 0.291294 0
vt 0.407515 0.261536 0
vt 0.259939 0.143042 0
vt 0.407515 0.261536 0
vt 0.442175 0.221075 0
vt 0.259939 0.143042 0
vt 0.442175 0.221075 0
vt 0.458876 0.173859 0
vt 0.259939 0.143042 0
vt 0.458876 0.173859 0
vt 0.455971 0.124517 0
vt 0.259939 0.143042 0
vt 0.455971 0.124517 0
vt 0.433752 0.0778885 0
vt 0.259939 0.143042 0
vt 0.433752 0.0778885 0
vt 0.394384 0.0385227 0
vt 0.259939 0.143042 0
vt 0.394384 0.0385227 0
vt 0.341728 0.0102768 0
vt 0.259939 0.143042 0
vt 0.341728 0.0102768 0
vt 0.280935 0.995914 0
vt 0.259939 0.143042 0
vt 0.280935 0.995914 0
vt 0.217958 0.996853 0
vt 0.259939 0.143042 0
vt 0.217958 0.996853 0
vt 0.158966 0.012989 0
vt 0.259939 0.143042 0
vt 0.158966 0.012989 0
vt 0.109737 0.0427418 0
vt 0.259939 0.143042 0
vt 0.109737 0.0427418 0
vt 0.0750847 0.0832081 0
vt 0.259939 0.143042 0
vt 0.0750847 0.0832081 0
vt 0.058403 0.130424 0
vt 0.259939 0.143042 0
vt 0.058403 0.130424 0
vt 0.0613213 0.179768 0
vt 0.259939 0.143042 0
vt 0.0613213 0.179768 0
vt 0.0835514 0.2264 0
vt 0.259939 0.143042 0
vt 0.0835514 0.2264 0
vt 0.122919 0.265766 0
vt 0.259939 0.143042 0
vt 0.122919 0.265766 0
vt 0.175568 0.29401 0
vt 0.259939 0.143042 0
vt 0.175568 0.29401 0
vt 0.236343 0.308367 0
vt 0.211182 0.484669 0
vt 0.299301 0.307432 0
vt 0.236343 0.308367 0
vt 0.211182 0.484669 0
vt 0.334332 0.482836 0
vt 0.299301 0.307432 0
vt 0.449701 0.451271 0
vt 0.299301 0.307432 0
vt 0.334332 0.482836 0
vt 0.299301 0.307432 0
vt 0.449701 0.451271 0
vt 0.358284 0.291294 0
vt 0.449701 0.451271 0
vt 0.407515 0.261536 0
vt 0.358284 0.291294 0
vt 0.449701 0.451271 0
vt 0.546011 0.393051 0
vt 0.407515 0.261536 0
vt 0.546011 0.393051 0
vt 0.442175 0.221075 0
vt 0.407515 0.261536 0
vt 0.546011 0.393051 0
vt 0.613829 0.313894 0
vt 0.442175 0.221075 0
vt 0.646511 0.221533 0
vt 0.442175 0.221075 0
vt 0.613829 0.313894 0
vt 0.442175 0.221075 0
vt 0.646511 0.221533 0
vt 0.458876 0.173859 0
vt 0.646511 0.221533 0
vt 0.455971 0.124517 0
vt 0.458876 0.173859 0
vt 0.646511 0.221533 0
vt 0.640848 0.125015 0
vt 0.455971 0.124517 0
vt 0.597385 0.0337887 0
vt 0.455971 0.124517 0
vt 0.640848 0.125015 0
vt 0.455971 0.124517 0
vt 0.597385 0.0337887 0
vt 0.433752 0.0778885 0
vt 0.520378 0.956776 0
vt 0.433752 0.0778885 0
vt 0.597385 0.0337887 0
vt 0.433752 0.0778885 0
vt 0.520378 0.956776 0
vt 0.394384 0.0385227 0
vt 0.520378 0.956776 0
vt 0.341728 0.0102768 0
vt 0.394384 0.0385227 0
vt 0.520378 0.956776 0
vt 0.417356 0.901518 0
vt 0.341728 0.0102768 0
vt 0.298414 0.87343 0
vt 0.341728 0.0102768 0
vt 0.417356 0.901518 0
vt 0.341728 0.0102768 0
vt 0.298414 0.87343 0
vt 0.280935 0.995914 0
vt 0.298414 0.87343 0
vt 0.217958 0.996853 0
vt 0.280935 0.995914 0
vt 0.298414 0.87343 0
vt 0.175203 0.875256 0
vt 0.217958 0.996853 0
vt 0.0597916 0.90682 0
vt 0.217958 0.996853 0
vt 0.175203 0.875256 0
vt 0.217958 0.996853 0
vt 0.0597916 0.90682 0
vt 0.158966 0.012989 0
vt 0.963484 0.965036 0
vt 0.158966 0.012989 0
vt 0.0597916 0.90682 0
vt 0.158966 0.012989 0
vt 0.963484 0.965036 0
vt 0.109737 0.0427418 0
vt 0.963484 0.965036 0
vt 0.0750847 0.0832081 0
vt 0.109737 0.0427418 0
vt 0.963484 0.965036 0
vt 0.895706 0.044199 0
vt 0.0750847 0.0832081 0
vt 0.863089 0.136564 0
vt 0.0750847 0.0832081 0
vt 0.895706 0.044199 0
vt 0.0750847 0.0832081 0
vt 0.863089 0.136564 0
vt 0.058403 0.130424 0
vt 0.0613213 0.179768 0
vt 0.863089 0.136564 0
vt 0.868813 0.233093 0
vt 0.863089 0.136564 0
vt 0.0613213 0.179768 0
vt 0.058403 0.130424 0
vt 0.912313 0.32432 0
vt 0.0613213 0.179768 0
vt 0.868813 0.233093 0
vt 0.0613213 0.179768 0
vt 0.912313 0.32432 0
vt 0.0835514 0.2264 0
vt 0.912313 0.32432 0
vt 0.122919 0.265766 0
vt 0.0835514 0.2264 0
vt 0.912313 0.32432 0
vt 0.989321 0.401337 0
vt 0.122919 0.265766 0
vt 0.989321 0.401337 0
vt 0.175568 0.29401 0
vt 0.122919 0.265766 0
vt 0.989321 0.401337 0
vt 0.0923042 0.456589 0
vt 0.175568 0.29401 0
vt 0.211182 0.484669 0
vt 0.175568 0.29401 0
vt 0.0923042 0.456589 0
vt 0.175568 0.29401 0
vt 0.211182 0.484669 0
vt 0.236343 0.308367 0
vt 0.363491 0.661592 0
vt 0.211182 0.484669 0
vt 0.185555 0.664246 0
vt 0.211182 0.484669 0
vt 0.363491 0.661592 0
vt 0.334332 0.482836 0
vt 0.363491 0.661592 0
vt 0.449701 0.451271 0
vt 0.334332 0.482836 0
vt 0.363491 0.661592 0
vt 0.530201 0.615967 0
vt 0.449701 0.451271 0
vt 0.669374 0.531843 0
vt 0.449701 0.451271 0
vt 0.530201 0.615967 0
vt 0.449701 0.451271 0
vt 0.669374 0.531843 0
vt 0.546011 0.393051 0
vt 0.767384 0.417452 0
vt 0.546011 0.393051 0
vt 0.669374 0.531843 0
vt 0.546011 0.393051 0
vt 0.767384 0.417452 0
vt 0.613829 0.313894 0
vt 0.767384 0.417452 0
vt 0.646511 0.221533 0
vt 0.613829 0.313894 0
vt 0.767384 0.417452 0
vt 0.814634 0.283974 0
vt 0.646511 0.221533 0
vt 0.806473 0.144503 0
vt 0.646511 0.221533 0
vt 0.814634 0.283974 0
vt 0.646511 0.221533 0
vt 0.806473 0.144503 0
vt 0.640848 0.125015 0
vt 0.806473 0.144503 0
vt 0.597385 0.0337887 0
vt 0.640848 0.125015 0
vt 0.806473 0.144503 0
vt 0.743683 0.0126667 0
vt 0.597385 0.0337887 0
vt 0.743683 0.0126667 0
vt 0.520378 0.956776 0
vt 0.597385 0.0337887 0
vt 0.743683 0.0126667 0
vt 0.632399 0.901375 0
vt 0.520378 0.956776 0
vt 0.483517 0.821526 0
vt 0.520378 0.956776 0
vt 0.632399 0.901375 0
vt 0.520378 0.956776 0
vt 0.483517 0.821526 0
vt 0.417356 0.901518 0
vt 0.483517 0.821526 0
vt 0.298414 0.87343 0
vt 0.417356 0.901518 0
vt 0.483517 0.821526 0
vt 0.311615 0.78093 0
vt 0.298414 0.87343 0
vt 0.298414 0.87343 0
vt 0.133547 0.783567 0
vt 0.175203 0.875256 0
vt 0.311615 0.78093 0
vt 0.133547 0.783567 0
vt 0.298414 0.87343 0
vt 0.133547 0.783567 0
vt 0.0597916 0.90682 0
vt 0.175203 0.875256 0
vt 0.133547 0.783567 0
vt 0.966755 0.829182 0
vt 0.0597916 0.90682 0
vt 0.966755 0.829182 0
vt 0.963484 0.965036 0
vt 0.0597916 0.90682 0
vt 0.966755 0.829182 0
vt 0.827581 0.913309 0
vt 0.963484 0.965036 0
vt 0.729654 0.0277119 0
vt 0.963484 0.965036 0
vt 0.827581 0.913309 0
vt 0.963484 0.965036 0
vt 0.729654 0.0277119 0
vt 0.895706 0.044199 0
vt 0.729654 0.0277119 0
vt 0.863089 0.136564 0
vt 0.895706 0.044199 0
vt 0.729654 0.0277119 0
vt 0.682537 0.16119 0
vt 0.863089 0.136564 0
vt 0.690828 0.300688 0
vt 0.863089 0.136564 0
vt 0.682537 0.16119 0
vt 0.863089 0.136564 0
vt 0.690828 0.300688 0
vt 0.868813 0.233093 0
vt 0.690828 0.300688 0
vt 0.912313 0.32432 0
vt 0.868813 0.233093 0
vt 0.690828 0.300688 0
vt 0.753702 0.432531 0
vt 0.912313 0.32432 0
vt 0.864986 0.543818 0
vt 0.912313 0.32432 0
vt 0.753702 0.432531 0
vt 0.912313 0.32432 0
vt 0.864986 0.543818 0
vt 0.989321 0.401337 0
vt 0.0137863 0.623663 0
vt 0.989321 0.401337 0
vt 0.864986 0.543818 0
vt 0.989321 0.401337 0
vt 0.0137863 0.623663 0
vt 0.0923042 0.456589 0
vt 0.0137863 0.623663 0
vt 0.211182 0.484669 0
vt 0.0923042 0.456589 0
vt 0.0137863 0.623663 0
vt 0.185555 0.664246 0
vt 0.211182 0.484669 0
vt 0.393999 0.845746 0
vt 0.386617 0.936867 0
vt 0.371262 0.88941 0
vt 0.393999 0.845746 0
vt 0.371262 0.88941 0
vt 0.381656 0.773273 0
vt 0.415138 0.724414 0
vt 0.417604 0.785714 0
vt 0.405735 0.730755 0
vt 0.405735 0.730755 0
vt 0.405609 0.834834 0
vt 0.394518 0.75187 0
vt 0.405735 0.730755 0
vt 0.394518 0.75187 0
vt 0.389026 0.657813 0
vt 0.415138 0.724414 0
vt 0.405735 0.730755 0
vt 0.401653 0.648806 0
vt 0.296924 0.540498 0
vt 0.289703 0.579795 0
vt 0.291148 0.549016 0
vt 0.283042 0.616041 0
vt 0.291148 0.549016 0
vt 0.289703 0.579795 0
vt 0.291558 0.589287 0
vt 0.282593 0.671933 0
vt 0.283042 0.616041 0
vt 0.283042 0.616041 0
vt 0.289703 0.579795 0
vt 0.291558 0.589287 0
vt 0.296924 0.540498 0
vt 0.291558 0.589287 0
vt 0.289703 0.579795 0
vt 0.296924 0.540498 0
vt 0.295207 0.60796 0
vt 0.291558 0.589287 0
vt 0.295207 0.60796 0
vt 0.287626 0.697938 0
vt 0.282593 0.671933 0
vt 0.282593 0.671933 0
vt 0.291558 0.589287 0
vt 0.295207 0.60796 0
vt 0.267012 0.0981141 0
vt 0.260422 0.0921062 0
vt 0.27075 0.0224964 0
vt 0.267012 0.0981141 0
vt 0.264501 0.134995 0
vt 0.260422 0.0921062 0
vt 0.276328 0.250988 0
vt 0.277928 0.316198 0
vt 0.27022 0.242044 0
vt 0.276328 0.250988 0
vt 0.27022 0.242044 0
vt 0.27479 0.214578 0
vt 0.274694 0.850915 0
vt 0.267848 0.946992 0
vt 0.265737 0.865526 0
vt 0.276089 0.747667 0
vt 0.265737 0.865526 0
vt 0.270363 0.747749 0
vt 0.276089 0.747667 0
vt 0.274694 0.850915 0
vt 0.265737 0.865526 0
vt 0.276089 0.747667 0
vt 0.270363 0.747749 0
vt 0.282593 0.671933 0
vt 0.27022 0.242044 0
vt 0.268165 0.304854 0
vt 0.261701 0.225083 0
vt 0.27022 0.242044 0
vt 0.261701 0.225083 0
vt 0.26297 0.19116 0
vt 0.267197 0.759666 0
vt 0.257412 0.904856 0
vt 0.266778 0.766578 0
vt 0.260739 0.875677 0
vt 0.257412 0.904856 0
vt 0.267197 0.759666 0
vt 0.267197 0.759666 0
vt 0.266778 0.766578 0
vt 0.275194 0.661334 0
vt 0.267197 0.759666 0
vt 0.275194 0.661334 0
vt 0.275276 0.659737 0
vt 0.270363 0.747749 0
vt 0.260739 0.875677 0
vt 0.267197 0.759666 0
vt 0.270363 0.747749 0
vt 0.267197 0.759666 0
vt 0.275276 0.659737 0
vt 0.254411 0.157871 0
vt 0.254765 0.223859 0
vt 0.25606 0.224542 0
vt 0.25606 0.224542 0
vt 0.255141 0.158594 0
vt 0.254411 0.157871 0
vt 0.253324 0.0282426 0
vt 0.254411 0.157871 0
vt 0.255141 0.158594 0
vt 0.25429 0.157572 0
vt 0.254765 0.223859 0
vt 0.254411 0.157871 0
vt 0.253378 0.0219665 0
vt 0.25429 0.157572 0
vt 0.254411 0.157871 0
vt 0.253378 0.0219665 0
vt 0.254411 0.157871 0
vt 0.253324 0.0282426 0
vt 0.25429 0.157572 0
vt 0.255327 0.157588 0
vt 0.254765 0.223859 0
vt 0.253378 0.0219665 0
vt 0.259753 0.0240977 0
vt 0.255327 0.157588 0
vt 0.253378 0.0219665 0
vt 0.255327 0.157588 0
vt 0.25429 0.157572 0
vt 0.259274 0.224633 0
vt 0.255327 0.157588 0
vt 0.260189 0.158751 0
vt 0.259274 0.224633 0
vt 0.260189 0.158751 0
vt 0.261701 0.225083 0
vt 0.259753 0.0240977 0
vt 0.260189 0.158751 0
vt 0.255327 0.157588 0
vt 0.254765 0.223859 0
vt 0.255327 0.157588 0
vt 0.259274 0.224633 0
vt 0.26297 0.19116 0
vt 0.261701 0.225083 0
vt 0.260189 0.158751 0
vt 0.260189 0.158751 0
vt 0.259753 0.0240977 0
vt 0.260422 0.0921062 0
vt 0.260422 0.0921062 0
vt 0.26297 0.19116 0
vt 0.260189 0.158751 0
vt 0.271918 0.714058 0
vt 0.264943 0.704342 0
vt 0.267439 0.600635 0
vt 0.274948 0.60368 0
vt 0.280188 0.712876 0
vt 0.271918 0.714058 0
vt 0.271918 0.714058 0
vt 0.267439 0.600635 0
vt 0.274948 0.60368 0
vt 0.268213 0.473283 0
vt 0.274948 0.60368 0
vt 0.267439 0.600635 0
vt 0.289579 0.607903 0
vt 0.290653 0.719239 0
vt 0.280188 0.712876 0
vt 0.302823 0.617382 0
vt 0.290653 0.719239 0
vt 0.289579 0.607903 0
vt 0.296149 0.498778 0
vt 0.302823 0.617382 0
vt 0.289579 0.607903 0
vt 0.264943 0.704342 0
vt 0.261121 0.70928 0
vt 0.260928 0.59725 0
vt 0.264943 0.704342 0
vt 0.260928 0.59725 0
vt 0.263786 0.60029 0
vt 0.261551 0.474658 0
vt 0.263786 0.60029 0
vt 0.260928 0.59725 0
vt 0.258629 0.467787 0
vt 0.261551 0.474658 0
vt 0.260928 0.59725 0
vt 0.261551 0.474658 0
vt 0.268213 0.473283 0
vt 0.267439 0.600635 0
vt 0.261551 0.474658 0
vt 0.267439 0.600635 0
vt 0.263786 0.60029 0
vt 0.264943 0.704342 0
vt 0.263786 0.60029 0
vt 0.267439 0.600635 0
vt 0.260094 0.597913 0
vt 0.258944 0.470128 0
vt 0.258629 0.467787 0
vt 0.258629 0.467787 0
vt 0.260928 0.59725 0
vt 0.260094 0.597913 0
vt 0.261121 0.70928 0
vt 0.260094 0.597913 0
vt 0.260928 0.59725 0
vt 0.260094 0.597913 0
vt 0.261121 0.70928 0
vt 0.260663 0.706124 0
vt 0.274948 0.60368 0
vt 0.268213 0.473283 0
vt 0.279437 0.46891 0
vt 0.279437 0.46891 0
vt 0.282059 0.598512 0
vt 0.274948 0.60368 0
vt 0.280188 0.712876 0
vt 0.274948 0.60368 0
vt 0.282059 0.598512 0
vt 0.282059 0.598512 0
vt 0.279437 0.46891 0
vt 0.296149 0.498778 0
vt 0.296149 0.498778 0
vt 0.289579 0.607903 0
vt 0.282059 0.598512 0
vt 0.280188 0.712876 0
vt 0.282059 0.598512 0
vt 0.289579 0.607903 0
vt 0.256074 0.225569 0
vt 0.25606 0.224542 0
vt 0.254765 0.223859 0
vt 0.268165 0.304854 0
vt 0.261773 0.341651 0
vt 0.259274 0.224633 0
vt 0.268165 0.304854 0
vt 0.259274 0.224633 0
vt 0.261701 0.225083 0
vt 0.261773 0.341651 0
vt 0.254765 0.223859 0
vt 0.259274 0.224633 0
vt 0.326841 0.411966 0
vt 0.32347 0.405813 0
vt 0.326902 0.411453 0
vt 0.318963 0.406996 0
vt 0.323534 0.404369 0
vt 0.32347 0.405813 0
vt 0.326966 0.411042 0
vt 0.326902 0.411453 0
vt 0.323534 0.404369 0
vt 0.32347 0.405813 0
vt 0.323534 0.404369 0
vt 0.326902 0.411453 0
vt 0.315879 0.505343 0
vt 0.320989 0.484644 0
vt 0.320183 0.505835 0
vt 0.326104 0.46639 0
vt 0.32541 0.486921 0
vt 0.320989 0.484644 0
vt 0.320989 0.484644 0
vt 0.32541 0.486921 0
vt 0.320183 0.505835 0
vt 0.319025 0.465793 0
vt 0.322754 0.450999 0
vt 0.322533 0.465041 0
vt 0.326471 0.444659 0
vt 0.326439 0.453103 0
vt 0.322754 0.450999 0
vt 0.326104 0.46639 0
vt 0.322533 0.465041 0
vt 0.326439 0.453103 0
vt 0.322754 0.450999 0
vt 0.326439 0.453103 0
vt 0.322533 0.465041 0
vt 0.319025 0.465793 0
vt 0.322533 0.465041 0
vt 0.317392 0.485269 0
vt 0.326104 0.46639 0
vt 0.320989 0.484644 0
vt 0.322533 0.465041 0
vt 0.315879 0.505343 0
vt 0.317392 0.485269 0
vt 0.320989 0.484644 0
vt 0.322533 0.465041 0
vt 0.320989 0.484644 0
vt 0.317392 0.485269 0
vt 0.31344 0.474109 0
vt 0.309193 0.484845 0
vt 0.31446 0.4505 0
vt 0.305167 0.49607 0
vt 0.310257 0.461479 0
vt 0.309193 0.484845 0
vt 0.316156 0.428641 0
vt 0.31446 0.4505 0
vt 0.310257 0.461479 0
vt 0.309193 0.484845 0
vt 0.310257 0.461479 0
vt 0.31446 0.4505 0
vt 0.320628 0.435934 0
vt 0.316873 0.45445 0
vt 0.318247 0.431781 0
vt 0.31344 0.474109 0
vt 0.31446 0.4505 0
vt 0.316873 0.45445 0
vt 0.316156 0.428641 0
vt 0.318247 0.431781 0
vt 0.31446 0.4505 0
vt 0.316873 0.45445 0
vt 0.31446 0.4505 0
vt 0.318247 0.431781 0
vt 0.320628 0.435934 0
vt 0.323573 0.428935 0
vt 0.323362 0.435857 0
vt 0.326812 0.430436 0
vt 0.326698 0.437442 0
vt 0.323573 0.428935 0
vt 0.326471 0.444659 0
vt 0.323362 0.435857 0
vt 0.326698 0.437442 0
vt 0.323573 0.428935 0
vt 0.326698 0.437442 0
vt 0.323362 0.435857 0
vt 0.32105 0.41649 0
vt 0.323744 0.414116 0
vt 0.323713 0.419013 0
vt 0.326834 0.418059 0
vt 0.326779 0.423534 0
vt 0.323744 0.414116 0
vt 0.326812 0.430436 0
vt 0.323713 0.419013 0
vt 0.326779 0.423534 0
vt 0.323744 0.414116 0
vt 0.326779 0.423534 0
vt 0.323713 0.419013 0
vt 0.32105 0.41649 0
vt 0.323713 0.419013 0
vt 0.320703 0.425675 0
vt 0.326812 0.430436 0
vt 0.323573 0.428935 0
vt 0.323713 0.419013 0
vt 0.320628 0.435934 0
vt 0.320703 0.425675 0
vt 0.323573 0.428935 0
vt 0.323713 0.419013 0
vt 0.323573 0.428935 0
vt 0.320703 0.425675 0
vt 0.320628 0.435934 0
vt 0.318247 0.431781 0
vt 0.320703 0.425675 0
vt 0.316156 0.428641 0
vt 0.318482 0.422168 0
vt 0.318247 0.431781 0
vt 0.32105 0.41649 0
vt 0.320703 0.425675 0
vt 0.318482 0.422168 0
vt 0.318247 0.431781 0
vt 0.318482 0.422168 0
vt 0.320703 0.425675 0
vt 0.305167 0.49607 0
vt 0.305992 0.476271 0
vt 0.310257 0.461479 0
vt 0.307301 0.457407 0
vt 0.311586 0.442725 0
vt 0.305992 0.476271 0
vt 0.316156 0.428641 0
vt 0.310257 0.461479 0
vt 0.311586 0.442725 0
vt 0.305992 0.476271 0
vt 0.311586 0.442725 0
vt 0.310257 0.461479 0
vt 0.32105 0.41649 0
vt 0.323899 0.409724 0
vt 0.323744 0.414116 0
vt 0.326841 0.411966 0
vt 0.326844 0.414211 0
vt 0.323899 0.409724 0
vt 0.326834 0.418059 0
vt 0.323744 0.414116 0
vt 0.326844 0.414211 0
vt 0.323899 0.409724 0
vt 0.326844 0.414211 0
vt 0.323744 0.414116 0
vt 0.326841 0.411966 0
vt 0.323899 0.409724 0
vt 0.32347 0.405813 0
vt 0.32105 0.41649 0
vt 0.319747 0.411498 0
vt 0.323899 0.409724 0
vt 0.318834 0.408157 0
vt 0.32347 0.405813 0
vt 0.319747 0.411498 0
vt 0.323899 0.409724 0
vt 0.319747 0.411498 0
vt 0.32347 0.405813 0
vt 0.318834 0.408157 0
vt 0.318963 0.406996 0
vt 0.32347 0.405813 0
vt 0.313745 0.424082 0
vt 0.31016 0.432919 0
vt 0.313029 0.422227 0
vt 0.306785 0.442232 0
vt 0.309454 0.431107 0
vt 0.31016 0.432919 0
vt 0.312464 0.420756 0
vt 0.313029 0.422227 0
vt 0.309454 0.431107 0
vt 0.31016 0.432919 0
vt 0.309454 0.431107 0
vt 0.313029 0.422227 0
vt 0.318834 0.408157 0
vt 0.316148 0.415671 0
vt 0.315518 0.414042 0
vt 0.313745 0.424082 0
vt 0.313029 0.422227 0
vt 0.316148 0.415671 0
vt 0.312464 0.420756 0
vt 0.315518 0.414042 0
vt 0.313029 0.422227 0
vt 0.316148 0.415671 0
vt 0.313029 0.422227 0
vt 0.315518 0.414042 0
vt 0.32105 0.41649 0
vt 0.31717 0.419513 0
vt 0.319747 0.411498 0
vt 0.313745 0.424082 0
vt 0.316148 0.415671 0
vt 0.31717 0.419513 0
vt 0.318834 0.408157 0
vt 0.319747 0.411498 0
vt 0.316148 0.415671 0
vt 0.31717 0.419513 0
vt 0.316148 0.415671 0
vt 0.319747 0.411498 0
vt 0.318834 0.408157 0
vt 0.315518 0.414042 0
vt 0.318963 0.406996 0
vt 0.312464 0.420756 0
vt 0.315506 0.413119 0
vt 0.315518 0.414042 0
vt 0.315518 0.414042 0
vt 0.315506 0.413119 0
vt 0.318963 0.406996 0
vt 0.306785 0.442232 0
vt 0.305405 0.443076 0
vt 0.309454 0.431107 0
vt 0.304143 0.444144 0
vt 0.308091 0.432003 0
vt 0.305405 0.443076 0
vt 0.312464 0.420756 0
vt 0.309454 0.431107 0
vt 0.308091 0.432003 0
vt 0.305405 0.443076 0
vt 0.308091 0.432003 0
vt 0.309454 0.431107 0
vt 0.316156 0.428641 0
vt 0.311586 0.442725 0
vt 0.311239 0.434934 0
vt 0.307301 0.457407 0
vt 0.306907 0.449558 0
vt 0.311586 0.442725 0
vt 0.306785 0.442232 0
vt 0.311239 0.434934 0
vt 0.306907 0.449558 0
vt 0.311586 0.442725 0
vt 0.306907 0.449558 0
vt 0.311239 0.434934 0
vt 0.313745 0.424082 0
vt 0.314825 0.426054 0
vt 0.31016 0.432919 0
vt 0.316156 0.428641 0
vt 0.311239 0.434934 0
vt 0.314825 0.426054 0
vt 0.306785 0.442232 0
vt 0.31016 0.432919 0
vt 0.311239 0.434934 0
vt 0.314825 0.426054 0
vt 0.311239 0.434934 0
vt 0.31016 0.432919 0
vt 0.32105 0.41649 0
vt 0.318482 0.422168 0
vt 0.31717 0.419513 0
vt 0.316156 0.428641 0
vt 0.314825 0.426054 0
vt 0.318482 0.422168 0
vt 0.313745 0.424082 0
vt 0.31717 0.419513 0
vt 0.314825 0.426054 0
vt 0.318482 0.422168 0
vt 0.314825 0.426054 0
vt 0.31717 0.419513 0
vt 0.315879 0.505343 0
vt 0.314502 0.489272 0
vt 0.317392 0.485269 0
vt 0.31344 0.474109 0
vt 0.316157 0.46968 0
vt 0.314502 0.489272 0
vt 0.319025 0.465793 0
vt 0.317392 0.485269 0
vt 0.316157 0.46968 0
vt 0.314502 0.489272 0
vt 0.316157 0.46968 0
vt 0.317392 0.485269 0
vt 0.320628 0.435934 0
vt 0.323362 0.435857 0
vt 0.319745 0.450409 0
vt 0.326471 0.444659 0
vt 0.322754 0.450999 0
vt 0.323362 0.435857 0
vt 0.319025 0.465793 0
vt 0.319745 0.450409 0
vt 0.322754 0.450999 0
vt 0.323362 0.435857 0
vt 0.322754 0.450999 0
vt 0.319745 0.450409 0
vt 0.31344 0.474109 0
vt 0.316873 0.45445 0
vt 0.316157 0.46968 0
vt 0.320628 0.435934 0
vt 0.319745 0.450409 0
vt 0.316873 0.45445 0
vt 0.319025 0.465793 0
vt 0.316157 0.46968 0
vt 0.319745 0.450409 0
vt 0.316873 0.45445 0
vt 0.319745 0.450409 0
vt 0.316157 0.46968 0
vt 0.307301 0.457407 0
vt 0.302772 0.481178 0
vt 0.302396 0.468533 0
vt 0.307301 0.457407 0
vt 0.305992 0.476271 0
vt 0.302772 0.481178 0
vt 0.304143 0.444144 0
vt 0.300921 0.462075 0
vt 0.299594 0.462789 0
vt 0.306785 0.442232 0
vt 0.302149 0.46094 0
vt 0.305405 0.443076 0
vt 0.304143 0.444144 0
vt 0.305405 0.443076 0
vt 0.300921 0.462075 0
vt 0.302149 0.46094 0
vt 0.300921 0.462075 0
vt 0.305405 0.443076 0
vt 0.307301 0.457407 0
vt 0.302396 0.468533 0
vt 0.306907 0.449558 0
vt 0.306785 0.442232 0
vt 0.306907 0.449558 0
vt 0.302149 0.46094 0
vt 0.302396 0.468533 0
vt 0.302149 0.46094 0
vt 0.306907 0.449558 0
vt 0.31344 0.474109 0
vt 0.308851 0.502283 0
vt 0.309193 0.484845 0
vt 0.31344 0.474109 0
vt 0.314502 0.489272 0
vt 0.308851 0.502283 0
vt 0.337656 0.407122 0
vt 0.332238 0.400599 0
vt 0.332171 0.399429 0
vt 0.329071 0.399383 0
vt 0.332171 0.399429 0
vt 0.328639 0.400051 0
vt 0.332238 0.400599 0
vt 0.328639 0.400051 0
vt 0.332171 0.399429 0
vt 0.328516 0.432308 0
vt 0.328132 0.425153 0
vt 0.330587 0.428102 0
vt 0.334241 0.433281 0
vt 0.330671 0.439143 0
vt 0.330587 0.428102 0
vt 0.328944 0.445344 0
vt 0.328912 0.438696 0
vt 0.330671 0.439143 0
vt 0.328516 0.432308 0
vt 0.330587 0.428102 0
vt 0.328912 0.438696 0
vt 0.330671 0.439143 0
vt 0.328912 0.438696 0
vt 0.330587 0.428102 0
vt 0.334241 0.433281 0
vt 0.330587 0.428102 0
vt 0.334132 0.425604 0
vt 0.333895 0.417643 0
vt 0.334132 0.425604 0
vt 0.330717 0.415922 0
vt 0.327981 0.41718 0
vt 0.330717 0.415922 0
vt 0.330552 0.419663 0
vt 0.334132 0.425604 0
vt 0.330552 0.419663 0
vt 0.330717 0.415922 0
vt 0.327981 0.41718 0
vt 0.330552 0.419663 0
vt 0.328132 0.425153 0
vt 0.334132 0.425604 0
vt 0.330587 0.428102 0
vt 0.330552 0.419663 0
vt 0.328132 0.425153 0
vt 0.330552 0.419663 0
vt 0.330587 0.428102 0
vt 0.335267 0.462795 0
vt 0.331916 0.464052 0
vt 0.335295 0.454716 0
vt 0.329714 0.461898 0
vt 0.331271 0.45646 0
vt 0.331916 0.464052 0
vt 0.335455 0.444677 0
vt 0.335295 0.454716 0
vt 0.331271 0.45646 0
vt 0.331916 0.464052 0
vt 0.331271 0.45646 0
vt 0.335295 0.454716 0
vt 0.334241 0.433281 0
vt 0.335455 0.444677 0
vt 0.330671 0.439143 0
vt 0.328944 0.445344 0
vt 0.330671 0.439143 0
vt 0.331058 0.44779 0
vt 0.335455 0.444677 0
vt 0.331058 0.44779 0
vt 0.330671 0.439143 0
vt 0.329714 0.461898 0
vt 0.329181 0.454109 0
vt 0.331271 0.45646 0
vt 0.328944 0.445344 0
vt 0.331058 0.44779 0
vt 0.329181 0.454109 0
vt 0.335455 0.444677 0
vt 0.331271 0.45646 0
vt 0.331058 0.44779 0
vt 0.329181 0.454109 0
vt 0.331058 0.44779 0
vt 0.331271 0.45646 0
vt 0.335267 0.462795 0
vt 0.331487 0.474622 0
vt 0.331916 0.464052 0
vt 0.3293 0.481701 0
vt 0.329438 0.472187 0
vt 0.331487 0.474622 0
vt 0.329714 0.461898 0
vt 0.331916 0.464052 0
vt 0.329438 0.472187 0
vt 0.331487 0.474622 0
vt 0.329438 0.472187 0
vt 0.331916 0.464052 0
vt 0.327981 0.41718 0
vt 0.32798 0.410323 0
vt 0.330717 0.415922 0
vt 0.333895 0.417643 0
vt 0.330717 0.415922 0
vt 0.330715 0.409579 0
vt 0.328154 0.405673 0
vt 0.330715 0.409579 0
vt 0.32798 0.410323 0
vt 0.330717 0.415922 0
vt 0.32798 0.410323 0
vt 0.330715 0.409579 0
vt 0.337388 0.411115 0
vt 0.336019 0.413513 0
vt 0.332179 0.403469 0
vt 0.333895 0.417643 0
vt 0.330715 0.409579 0
vt 0.336019 0.413513 0
vt 0.328154 0.405673 0
vt 0.33118 0.407085 0
vt 0.330715 0.409579 0
vt 0.330715 0.409579 0
vt 0.33118 0.407085 0
vt 0.336019 0.413513 0
vt 0.336019 0.413513 0
vt 0.33118 0.407085 0
vt 0.332179 0.403469 0
vt 0.328154 0.405673 0
vt 0.328493 0.40315 0
vt 0.33118 0.407085 0
vt 0.328668 0.401499 0
vt 0.332179 0.403469 0
vt 0.328493 0.40315 0
vt 0.33118 0.407085 0
vt 0.328493 0.40315 0
vt 0.332179 0.403469 0
vt 0.328668 0.401499 0
vt 0.332238 0.400599 0
vt 0.332179 0.403469 0
vt 0.337656 0.407122 0
vt 0.337388 0.411115 0
vt 0.332238 0.400599 0
vt 0.332179 0.403469 0
vt 0.332238 0.400599 0
vt 0.337388 0.411115 0
vt 0.328668 0.401499 0
vt 0.328639 0.400051 0
vt 0.332238 0.400599 0
vt 0.32615 0.530036 0
vt 0.323336 0.52802 0
vt 0.325717 0.50856 0
vt 0.32615 0.530036 0
vt 0.325717 0.50856 0
vt 0.329709 0.509249 0
vt 0.325717 0.50856 0
vt 0.320183 0.505835 0
vt 0.32541 0.486921 0
vt 0.305167 0.49607 0
vt 0.300855 0.51797 0
vt 0.301716 0.500521 0
vt 0.296924 0.540498 0
vt 0.29757 0.522747 0
vt 0.300855 0.51797 0
vt 0.298673 0.505636 0
vt 0.301716 0.500521 0
vt 0.29757 0.522747 0
vt 0.300855 0.51797 0
vt 0.29757 0.522747 0
vt 0.301716 0.500521 0
vt 0.304745 0.531546 0
vt 0.300641 0.535721 0
vt 0.304716 0.513358 0
vt 0.296924 0.540498 0
vt 0.300855 0.51797 0
vt 0.300641 0.535721 0
vt 0.305167 0.49607 0
vt 0.304716 0.513358 0
vt 0.300855 0.51797 0
vt 0.300641 0.535721 0
vt 0.300855 0.51797 0
vt 0.304716 0.513358 0
vt 0.298673 0.505636 0
vt 0.298151 0.492797 0
vt 0.302772 0.481178 0
vt 0.298094 0.480612 0
vt 0.302396 0.468533 0
vt 0.298151 0.492797 0
vt 0.302772 0.481178 0
vt 0.298151 0.492797 0
vt 0.302396 0.468533 0
vt 0.305167 0.49607 0
vt 0.301716 0.500521 0
vt 0.305992 0.476271 0
vt 0.298673 0.505636 0
vt 0.302772 0.481178 0
vt 0.301716 0.500521 0
vt 0.301716 0.500521 0
vt 0.302772 0.481178 0
vt 0.305992 0.476271 0
vt 0.298094 0.480612 0
vt 0.296787 0.481347 0
vt 0.300921 0.462075 0
vt 0.295575 0.482209 0
vt 0.299594 0.462789 0
vt 0.296787 0.481347 0
vt 0.300921 0.462075 0
vt 0.296787 0.481347 0
vt 0.299594 0.462789 0
vt 0.298094 0.480612 0
vt 0.300921 0.462075 0
vt 0.302149 0.46094 0
vt 0.298094 0.480612 0
vt 0.302149 0.46094 0
vt 0.302396 0.468533 0
vt 0.304745 0.531546 0
vt 0.304716 0.513358 0
vt 0.308851 0.502283 0
vt 0.305167 0.49607 0
vt 0.309193 0.484845 0
vt 0.304716 0.513358 0
vt 0.308851 0.502283 0
vt 0.304716 0.513358 0
vt 0.309193 0.484845 0
vt 0.315879 0.505343 0
vt 0.310164 0.518048 0
vt 0.314502 0.489272 0
vt 0.304745 0.531546 0
vt 0.308851 0.502283 0
vt 0.310164 0.518048 0
vt 0.310164 0.518048 0
vt 0.308851 0.502283 0
vt 0.314502 0.489272 0
vt 0.325717 0.50856 0
vt 0.323336 0.52802 0
vt 0.320183 0.505835 0
vt 0.322133 0.549575 0
vt 0.318925 0.52709 0
vt 0.323336 0.52802 0
vt 0.315879 0.505343 0
vt 0.320183 0.505835 0
vt 0.318925 0.52709 0
vt 0.323336 0.52802 0
vt 0.318925 0.52709 0
vt 0.320183 0.505835 0
vt 0.315879 0.505343 0
vt 0.318925 0.52709 0
vt 0.310164 0.518048 0
vt 0.322133 0.549575 0
vt 0.313123 0.539662 0
vt 0.318925 0.52709 0
vt 0.304745 0.531546 0
vt 0.310164 0.518048 0
vt 0.313123 0.539662 0
vt 0.318925 0.52709 0
vt 0.313123 0.539662 0
vt 0.310164 0.518048 0
vt 0.326441 0.41099 0
vt 0.329071 0.399383 0
vt 0.32638 0.411404 0
vt 0.326322 0.41192 0
vt 0.32638 0.411404 0
vt 0.328639 0.400051 0
vt 0.32638 0.411404 0
vt 0.329071 0.399383 0
vt 0.328639 0.400051 0
vt 0.326178 0.444624 0
vt 0.326355 0.437398 0
vt 0.328516 0.432308 0
vt 0.326422 0.430388 0
vt 0.328132 0.425153 0
vt 0.326355 0.437398 0
vt 0.328132 0.425153 0
vt 0.328516 0.432308 0
vt 0.326355 0.437398 0
vt 0.326104 0.46639 0
vt 0.326205 0.453068 0
vt 0.328944 0.445344 0
vt 0.326178 0.444624 0
vt 0.328516 0.432308 0
vt 0.326205 0.453068 0
vt 0.326205 0.453068 0
vt 0.328516 0.432308 0
vt 0.328912 0.438696 0
vt 0.326205 0.453068 0
vt 0.328912 0.438696 0
vt 0.328944 0.445344 0
vt 0.326422 0.430388 0
vt 0.327981 0.41718 0
vt 0.328132 0.425153 0
vt 0.326104 0.46639 0
vt 0.328944 0.445344 0
vt 0.329181 0.454109 0
vt 0.326104 0.46639 0
vt 0.329181 0.454109 0
vt 0.329714 0.461898 0
vt 0.326104 0.46639 0
vt 0.329714 0.461898 0
vt 0.32541 0.486921 0
vt 0.325717 0.50856 0
vt 0.32541 0.486921 0
vt 0.3293 0.481701 0
vt 0.32541 0.486921 0
vt 0.329714 0.461898 0
vt 0.329438 0.472187 0
vt 0.329438 0.472187 0
vt 0.3293 0.481701 0
vt 0.32541 0.486921 0
vt 0.326358 0.418012 0
vt 0.32798 0.410323 0
vt 0.326341 0.423488 0
vt 0.326422 0.430388 0
vt 0.326341 0.423488 0
vt 0.327981 0.41718 0
vt 0.32798 0.410323 0
vt 0.327981 0.41718 0
vt 0.326341 0.423488 0
vt 0.326358 0.418012 0
vt 0.326341 0.414164 0
vt 0.32798 0.410323 0
vt 0.326322 0.41192 0
vt 0.328154 0.405673 0
vt 0.326341 0.414164 0
vt 0.326341 0.414164 0
vt 0.328154 0.405673 0
vt 0.32798 0.410323 0
vt 0.326322 0.41192 0
vt 0.328668 0.401499 0
vt 0.328493 0.40315 0
vt 0.326322 0.41192 0
vt 0.328493 0.40315 0
vt 0.328154 0.405673 0
vt 0.326322 0.41192 0
vt 0.328639 0.400051 0
vt 0.328668 0.401499 0
vt 0.334833 0.511758 0
vt 0.329709 0.509249 0
vt 0.334499 0.487955 0
vt 0.325717 0.50856 0
vt 0.3293 0.481701 0
vt 0.329709 0.509249 0
vt 0.331487 0.474622 0
vt 0.335267 0.462795 0
vt 0.334499 0.487955 0
vt 0.334499 0.487955 0
vt 0.3293 0.481701 0
vt 0.331487 0.474622 0
vt 0.329709 0.509249 0
vt 0.3293 0.481701 0
vt 0.334499 0.487955 0
vt 0.334833 0.511758 0
vt 0.32615 0.530036 0
vt 0.329709 0.509249 0
vt 0.322133 0.549575 0
vt 0.323336 0.52802 0
vt 0.32615 0.530036 0
vt 0.341591 0.435587 0
vt 0.337912 0.449627 0
vt 0.337207 0.43356 0
vt 0.337912 0.449627 0
vt 0.335267 0.462795 0
vt 0.335295 0.454716 0
vt 0.335295 0.454716 0
vt 0.335455 0.444677 0
vt 0.337912 0.449627 0
vt 0.335455 0.444677 0
vt 0.334241 0.433281 0
vt 0.337207 0.43356 0
vt 0.337912 0.449627 0
vt 0.335455 0.444677 0
vt 0.337207 0.43356 0
vt 0.341591 0.435587 0
vt 0.337207 0.43356 0
vt 0.33732 0.425537 0
vt 0.337207 0.43356 0
vt 0.334241 0.433281 0
vt 0.334132 0.425604 0
vt 0.334132 0.425604 0
vt 0.333895 0.417643 0
vt 0.33732 0.425537 0
vt 0.337207 0.43356 0
vt 0.334132 0.425604 0
vt 0.33732 0.425537 0
vt 0.333895 0.417643 0
vt 0.337701 0.421147 0
vt 0.33732 0.425537 0
vt 0.342388 0.426372 0
vt 0.341591 0.435587 0
vt 0.337701 0.421147 0
vt 0.33732 0.425537 0
vt 0.337701 0.421147 0
vt 0.341591 0.435587 0
vt 0.342388 0.426372 0
vt 0.337701 0.421147 0
vt 0.34028 0.418903 0
vt 0.337701 0.421147 0
vt 0.333895 0.417643 0
vt 0.336019 0.413513 0
vt 0.336019 0.413513 0
vt 0.337388 0.411115 0
vt 0.34028 0.418903 0
vt 0.337701 0.421147 0
vt 0.336019 0.413513 0
vt 0.34028 0.418903 0
vt 0.335267 0.462795 0
vt 0.337912 0.449627 0
vt 0.337692 0.469162 0
vt 0.341591 0.435587 0
vt 0.340993 0.453912 0
vt 0.337912 0.449627 0
vt 0.340237 0.473378 0
vt 0.337692 0.469162 0
vt 0.340993 0.453912 0
vt 0.337912 0.449627 0
vt 0.340993 0.453912 0
vt 0.337692 0.469162 0
vt 0.340237 0.473378 0
vt 0.33757 0.492193 0
vt 0.337692 0.469162 0
vt 0.334833 0.511758 0
vt 0.334499 0.487955 0
vt 0.33757 0.492193 0
vt 0.335267 0.462795 0
vt 0.337692 0.469162 0
vt 0.334499 0.487955 0
vt 0.33757 0.492193 0
vt 0.334499 0.487955 0
vt 0.337692 0.469162 0
vt 0.313371 0.486784 0
vt 0.318393 0.598506 0
vt 0.296149 0.498778 0
vt 0.296149 0.498778 0
vt 0.318393 0.598506 0
vt 0.302823 0.617382 0
vt 0.273509 0.321699 0
vt 0.270345 0.195674 0
vt 0.27265 0.205405 0
vt 0.273509 0.321699 0
vt 0.27265 0.205405 0
vt 0.276277 0.330164 0
vt 0.276277 0.330164 0
vt 0.27265 0.205405 0
vt 0.276806 0.202187 0
vt 0.276277 0.330164 0
vt 0.276806 0.202187 0
vt 0.279927 0.319977 0
vt 0.279927 0.319977 0
vt 0.276806 0.202187 0
vt 0.282761 0.202601 0
vt 0.279927 0.319977 0
vt 0.282761 0.202601 0
vt 0.284911 0.324134 0
vt 0.284911 0.324134 0
vt 0.282761 0.202601 0
vt 0.289412 0.204286 0
vt 0.284911 0.324134 0
vt 0.289412 0.204286 0
vt 0.292193 0.326348 0
vt 0.292193 0.326348 0
vt 0.289412 0.204286 0
vt 0.297737 0.206536 0
vt 0.292193 0.326348 0
vt 0.297737 0.206536 0
vt 0.299315 0.324735 0
vt 0.299315 0.324735 0
vt 0.297737 0.206536 0
vt 0.308219 0.209404 0
vt 0.299315 0.324735 0
vt 0.308219 0.209404 0
vt 0.306545 0.327771 0
vt 0.306545 0.327771 0
vt 0.308219 0.209404 0
vt 0.318438 0.212952 0
vt 0.306545 0.327771 0
vt 0.318438 0.212952 0
vt 0.315436 0.33737 0
vt 0.315436 0.33737 0
vt 0.318438 0.212952 0
vt 0.329177 0.217334 0
vt 0.315436 0.33737 0
vt 0.329177 0.217334 0
vt 0.32484 0.333782 0
vt 0.32484 0.333782 0
vt 0.329177 0.217334 0
vt 0.342356 0.222696 0
vt 0.32484 0.333782 0
vt 0.342356 0.222696 0
vt 0.335138 0.347261 0
vt 0.335138 0.347261 0
vt 0.342356 0.222696 0
vt 0.353015 0.228528 0
vt 0.335138 0.347261 0
vt 0.353015 0.228528 0
vt 0.345296 0.345649 0
vt 0.345296 0.345649 0
vt 0.353015 0.228528 0
vt 0.362524 0.233957 0
vt 0.345296 0.345649 0
vt 0.362524 0.233957 0
vt 0.352291 0.357805 0
vt 0.352291 0.357805 0
vt 0.362524 0.233957 0
vt 0.369547 0.238946 0
vt 0.352291 0.357805 0
vt 0.369547 0.238946 0
vt 0.359403 0.35575 0
vt 0.359403 0.35575 0
vt 0.369547 0.238946 0
vt 0.377344 0.244545 0
vt 0.359403 0.35575 0
vt 0.377344 0.244545 0
vt 0.365311 0.365555 0
vt 0.365311 0.365555 0
vt 0.377344 0.244545 0
vt 0.385234 0.250933 0
vt 0.365311 0.365555 0
vt 0.385234 0.250933 0
vt 0.374219 0.373338 0
vt 0.374219 0.373338 0
vt 0.385234 0.250933 0
vt 0.392046 0.256607 0
vt 0.374219 0.373338 0
vt 0.392046 0.256607 0
vt 0.37986 0.373664 0
vt 0.37986 0.373664 0
vt 0.392046 0.256607 0
vt 0.396178 0.257838 0
vt 0.37986 0.373664 0
vt 0.396178 0.257838 0
vt 0.381551 0.380362 0
vt 0.381551 0.380362 0
vt 0.396178 0.257838 0
vt 0.396147 0.268529 0
vt 0.381551 0.380362 0
vt 0.396147 0.268529 0
vt 0.382242 0.381885 0
vt 0.270345 0.195674 0
vt 0.266635 0.0745493 0
vt 0.269081 0.0866495 0
vt 0.270345 0.195674 0
vt 0.269081 0.0866495 0
vt 0.27265 0.205405 0
vt 0.27265 0.205405 0
vt 0.269081 0.0866495 0
vt 0.274152 0.0833345 0
vt 0.27265 0.205405 0
vt 0.274152 0.0833345 0
vt 0.276806 0.202187 0
vt 0.276806 0.202187 0
vt 0.274152 0.0833345 0
vt 0.280496 0.084035 0
vt 0.276806 0.202187 0
vt 0.280496 0.084035 0
vt 0.282761 0.202601 0
vt 0.282761 0.202601 0
vt 0.280496 0.084035 0
vt 0.287307 0.0874529 0
vt 0.282761 0.202601 0
vt 0.287307 0.0874529 0
vt 0.289412 0.204286 0
vt 0.289412 0.204286 0
vt 0.287307 0.0874529 0
vt 0.296463 0.0896759 0
vt 0.289412 0.204286 0
vt 0.296463 0.0896759 0
vt 0.297737 0.206536 0
vt 0.297737 0.206536 0
vt 0.296463 0.0896759 0
vt 0.307721 0.0929892 0
vt 0.297737 0.206536 0
vt 0.307721 0.0929892 0
vt 0.308219 0.209404 0
vt 0.308219 0.209404 0
vt 0.307721 0.0929892 0
vt 0.319915 0.0976107 0
vt 0.308219 0.209404 0
vt 0.319915 0.0976107 0
vt 0.318438 0.212952 0
vt 0.318438 0.212952 0
vt 0.319915 0.0976107 0
vt 0.33328 0.10278 0
vt 0.318438 0.212952 0
vt 0.33328 0.10278 0
vt 0.329177 0.217334 0
vt 0.329177 0.217334 0
vt 0.33328 0.10278 0
vt 0.347556 0.108676 0
vt 0.329177 0.217334 0
vt 0.347556 0.108676 0
vt 0.342356 0.222696 0
vt 0.342356 0.222696 0
vt 0.347556 0.108676 0
vt 0.36005 0.115083 0
vt 0.342356 0.222696 0
vt 0.36005 0.115083 0
vt 0.353015 0.228528 0
vt 0.353015 0.228528 0
vt 0.36005 0.115083 0
vt 0.370136 0.120168 0
vt 0.353015 0.228528 0
vt 0.370136 0.120168 0
vt 0.362524 0.233957 0
vt 0.362524 0.233957 0
vt 0.370136 0.120168 0
vt 0.378481 0.125304 0
vt 0.362524 0.233957 0
vt 0.378481 0.125304 0
vt 0.369547 0.238946 0
vt 0.369547 0.238946 0
vt 0.378481 0.125304 0
vt 0.386881 0.129973 0
vt 0.369547 0.238946 0
vt 0.386881 0.129973 0
vt 0.377344 0.244545 0
vt 0.377344 0.244545 0
vt 0.386881 0.129973 0
vt 0.395708 0.135513 0
vt 0.377344 0.244545 0
vt 0.395708 0.135513 0
vt 0.385234 0.250933 0
vt 0.385234 0.250933 0
vt 0.395708 0.135513 0
vt 0.403644 0.140017 0
vt 0.385234 0.250933 0
vt 0.403644 0.140017 0
vt 0.392046 0.256607 0
vt 0.392046 0.256607 0
vt 0.403644 0.140017 0
vt 0.409097 0.139547 0
vt 0.392046 0.256607 0
vt 0.409097 0.139547 0
vt 0.396178 0.257838 0
vt 0.396178 0.257838 0
vt 0.409097 0.139547 0
vt 0.409628 0.150964 0
vt 0.396178 0.257838 0
vt 0.409628 0.150964 0
vt 0.396147 0.268529 0
vt 0.266635 0.0745493 0
vt 0.263882 0.951747 0
vt 0.265888 0.965242 0
vt 0.266635 0.0745493 0
vt 0.265888 0.965242 0
vt 0.269081 0.0866495 0
vt 0.269081 0.0866495 0
vt 0.265888 0.965242 0
vt 0.271353 0.961384 0
vt 0.269081 0.0866495 0
vt 0.271353 0.961384 0
vt 0.274152 0.0833345 0
vt 0.274152 0.0833345 0
vt 0.271353 0.961384 0
vt 0.278625 0.962211 0
vt 0.274152 0.0833345 0
vt 0.278625 0.962211 0
vt 0.280496 0.084035 0
vt 0.280496 0.084035 0
vt 0.278625 0.962211 0
vt 0.285593 0.964908 0
vt 0.280496 0.084035 0
vt 0.285593 0.964908 0
vt 0.287307 0.0874529 0
vt 0.287307 0.0874529 0
vt 0.285593 0.964908 0
vt 0.295586 0.968047 0
vt 0.287307 0.0874529 0
vt 0.295586 0.968047 0
vt 0.296463 0.0896759 0
vt 0.296463 0.0896759 0
vt 0.295586 0.968047 0
vt 0.308107 0.97201 0
vt 0.296463 0.0896759 0
vt 0.308107 0.97201 0
vt 0.307721 0.0929892 0
vt 0.307721 0.0929892 0
vt 0.308107 0.97201 0
vt 0.321083 0.977056 0
vt 0.307721 0.0929892 0
vt 0.321083 0.977056 0
vt 0.319915 0.0976107 0
vt 0.319915 0.0976107 0
vt 0.321083 0.977056 0
vt 0.336695 0.982799 0
vt 0.319915 0.0976107 0
vt 0.336695 0.982799 0
vt 0.33328 0.10278 0
vt 0.33328 0.10278 0
vt 0.336695 0.982799 0
vt 0.353085 0.989528 0
vt 0.33328 0.10278 0
vt 0.353085 0.989528 0
vt 0.347556 0.108676 0
vt 0.347556 0.108676 0
vt 0.353085 0.989528 0
vt 0.366999 0.99623 0
vt 0.347556 0.108676 0
vt 0.366999 0.99623 0
vt 0.36005 0.115083 0
vt 0.36005 0.115083 0
vt 0.366999 0.99623 0
vt 0.377778 0.00128355 0
vt 0.36005 0.115083 0
vt 0.377778 0.00128355 0
vt 0.370136 0.120168 0
vt 0.370136 0.120168 0
vt 0.377778 0.00128355 0
vt 0.386938 0.00623978 0
vt 0.370136 0.120168 0
vt 0.386938 0.00623978 0
vt 0.378481 0.125304 0
vt 0.378481 0.125304 0
vt 0.386938 0.00623978 0
vt 0.396265 0.0103204 0
vt 0.378481 0.125304 0
vt 0.396265 0.0103204 0
vt 0.386881 0.129973 0
vt 0.386881 0.129973 0
vt 0.396265 0.0103204 0
vt 0.405566 0.0150714 0
vt 0.386881 0.129973 0
vt 0.405566 0.0150714 0
vt 0.395708 0.135513 0
vt 0.395708 0.135513 0
vt 0.405566 0.0150714 0
vt 0.414854 0.019213 0
vt 0.395708 0.135513 0
vt 0.414854 0.019213 0
vt 0.403644 0.140017 0
vt 0.403644 0.140017 0
vt 0.414854 0.019213 0
vt 0.421735 0.0177277 0
vt 0.403644 0.140017 0
vt 0.421735 0.0177277 0
vt 0.409097 0.139547 0
vt 0.409097 0.139547 0
vt 0.421735 0.0177277 0
vt 0.422722 0.029932 0
vt 0.409097 0.139547 0
vt 0.422722 0.029932 0
vt 0.409628 0.150964 0
vt 0.263882 0.951747 0
vt 0.261913 0.825732 0
vt 0.263332 0.840019 0
vt 0.263882 0.951747 0
vt 0.263332 0.840019 0
vt 0.265888 0.965242 0
vt 0.265888 0.965242 0
vt 0.263332 0.840019 0
vt 0.268235 0.834037 0
vt 0.265888 0.965242 0
vt 0.268235 0.834037 0
vt 0.271353 0.961384 0
vt 0.271353 0.961384 0
vt 0.268235 0.834037 0
vt 0.275954 0.835743 0
vt 0.271353 0.961384 0
vt 0.275954 0.835743 0
vt 0.278625 0.962211 0
vt 0.278625 0.962211 0
vt 0.275954 0.835743 0
vt 0.283307 0.838713 0
vt 0.278625 0.962211 0
vt 0.283307 0.838713 0
vt 0.285593 0.964908 0
vt 0.285593 0.964908 0
vt 0.283307 0.838713 0
vt 0.293353 0.844193 0
vt 0.285593 0.964908 0
vt 0.293353 0.844193 0
vt 0.295586 0.968047 0
vt 0.295586 0.968047 0
vt 0.293353 0.844193 0
vt 0.308102 0.847994 0
vt 0.295586 0.968047 0
vt 0.308102 0.847994 0
vt 0.308107 0.97201 0
vt 0.308107 0.97201 0
vt 0.308102 0.847994 0
vt 0.321502 0.851928 0
vt 0.308107 0.97201 0
vt 0.321502 0.851928 0
vt 0.321083 0.977056 0
vt 0.321083 0.977056 0
vt 0.321502 0.851928 0
vt 0.337846 0.854014 0
vt 0.321083 0.977056 0
vt 0.337846 0.854014 0
vt 0.336695 0.982799 0
vt 0.336695 0.982799 0
vt 0.337846 0.854014 0
vt 0.356312 0.857969 0
vt 0.336695 0.982799 0
vt 0.356312 0.857969 0
vt 0.353085 0.989528 0
vt 0.353085 0.989528 0
vt 0.356312 0.857969 0
vt 0.371874 0.863757 0
vt 0.353085 0.989528 0
vt 0.371874 0.863757 0
vt 0.366999 0.99623 0
vt 0.366999 0.99623 0
vt 0.371874 0.863757 0
vt 0.383775 0.869691 0
vt 0.366999 0.99623 0
vt 0.383775 0.869691 0
vt 0.377778 0.00128355 0
vt 0.377778 0.00128355 0
vt 0.383775 0.869691 0
vt 0.393759 0.876104 0
vt 0.377778 0.00128355 0
vt 0.393759 0.876104 0
vt 0.386938 0.00623978 0
vt 0.386938 0.00623978 0
vt 0.393759 0.876104 0
vt 0.405212 0.882898 0
vt 0.386938 0.00623978 0
vt 0.405212 0.882898 0
vt 0.396265 0.0103204 0
vt 0.396265 0.0103204 0
vt 0.405212 0.882898 0
vt 0.415162 0.888577 0
vt 0.396265 0.0103204 0
vt 0.415162 0.888577 0
vt 0.405566 0.0150714 0
vt 0.405566 0.0150714 0
vt 0.415162 0.888577 0
vt 0.425562 0.893494 0
vt 0.405566 0.0150714 0
vt 0.425562 0.893494 0
vt 0.414854 0.019213 0
vt 0.414854 0.019213 0
vt 0.425562 0.893494 0
vt 0.433992 0.892621 0
vt 0.414854 0.019213 0
vt 0.433992 0.892621 0
vt 0.421735 0.0177277 0
vt 0.421735 0.0177277 0
vt 0.433992 0.892621 0
vt 0.435231 0.905702 0
vt 0.421735 0.0177277 0
vt 0.435231 0.905702 0
vt 0.422722 0.029932 0
vt 0.261913 0.825732 0
vt 0.260663 0.706124 0
vt 0.261121 0.70928 0
vt 0.261913 0.825732 0
vt 0.261121 0.70928 0
vt 0.263332 0.840019 0
vt 0.263332 0.840019 0
vt 0.261121 0.70928 0
vt 0.264943 0.704342 0
vt 0.263332 0.840019 0
vt 0.264943 0.704342 0
vt 0.268235 0.834037 0
vt 0.268235 0.834037 0
vt 0.264943 0.704342 0
vt 0.271918 0.714058 0
vt 0.268235 0.834037 0
vt 0.271918 0.714058 0
vt 0.275954 0.835743 0
vt 0.275954 0.835743 0
vt 0.271918 0.714058 0
vt 0.280188 0.712876 0
vt 0.275954 0.835743 0
vt 0.280188 0.712876 0
vt 0.283307 0.838713 0
vt 0.283307 0.838713 0
vt 0.280188 0.712876 0
vt 0.290653 0.719239 0
vt 0.283307 0.838713 0
vt 0.290653 0.719239 0
vt 0.293353 0.844193 0
vt 0.293353 0.844193 0
vt 0.290653 0.719239 0
vt 0.30449 0.72944 0
vt 0.293353 0.844193 0
vt 0.30449 0.72944 0
vt 0.308102 0.847994 0
vt 0.308102 0.847994 0
vt 0.30449 0.72944 0
vt 0.319763 0.719753 0
vt 0.308102 0.847994 0
vt 0.319763 0.719753 0
vt 0.321502 0.851928 0
vt 0.321502 0.851928 0
vt 0.319763 0.719753 0
vt 0.338365 0.723924 0
vt 0.321502 0.851928 0
vt 0.338365 0.723924 0
vt 0.337846 0.854014 0
vt 0.337846 0.854014 0
vt 0.338365 0.723924 0
vt 0.354808 0.723744 0
vt 0.337846 0.854014 0
vt 0.354808 0.723744 0
vt 0.356312 0.857969 0
vt 0.356312 0.857969 0
vt 0.354808 0.723744 0
vt 0.369639 0.720948 0
vt 0.356312 0.857969 0
vt 0.369639 0.720948 0
vt 0.371874 0.863757 0
vt 0.371874 0.863757 0
vt 0.369639 0.720948 0
vt 0.384924 0.730227 0
vt 0.371874 0.863757 0
vt 0.384924 0.730227 0
vt 0.383775 0.869691 0
vt 0.383775 0.869691 0
vt 0.384924 0.730227 0
vt 0.398477 0.734628 0
vt 0.383775 0.869691 0
vt 0.398477 0.734628 0
vt 0.393759 0.876104 0
vt 0.393759 0.876104 0
vt 0.398477 0.734628 0
vt 0.410833 0.755508 0
vt 0.393759 0.876104 0
vt 0.410833 0.755508 0
vt 0.405212 0.882898 0
vt 0.405212 0.882898 0
vt 0.410833 0.755508 0
vt 0.423797 0.75811 0
vt 0.405212 0.882898 0
vt 0.423797 0.75811 0
vt 0.415162 0.888577 0
vt 0.415162 0.888577 0
vt 0.423797 0.75811 0
vt 0.435729 0.771968 0
vt 0.415162 0.888577 0
vt 0.435729 0.771968 0
vt 0.425562 0.893494 0
vt 0.425562 0.893494 0
vt 0.435729 0.771968 0
vt 0.443807 0.777597 0
vt 0.425562 0.893494 0
vt 0.443807 0.777597 0
vt 0.433992 0.892621 0
vt 0.433992 0.892621 0
vt 0.443807 0.777597 0
vt 0.446851 0.778904 0
vt 0.433992 0.892621 0
vt 0.446851 0.778904 0
vt 0.435231 0.905702 0
vt 0.619435 0.652178 0
vt 0.602435 0.643797 0
vt 0.610978 0.618871 0
vt 0.619435 0.652178 0
vt 0.616071 0.656718 0
vt 0.609614 0.65382 0
vt 0.619435 0.652178 0
vt 0.609614 0.65382 0
vt 0.602435 0.643797 0
vt 0.625861 0.602493 0
vt 0.631539 0.609001 0
vt 0.628767 0.612383 0
vt 0.632789 0.625557 0
vt 0.628767 0.612383 0
vt 0.631539 0.609001 0
vt 0.620068 0.606339 0
vt 0.625861 0.602493 0
vt 0.628767 0.612383 0
vt 0.620068 0.606339 0
vt 0.628767 0.612383 0
vt 0.629733 0.623666 0
vt 0.632789 0.625557 0
vt 0.629733 0.623666 0
vt 0.628767 0.612383 0
vt 0.610978 0.618871 0
vt 0.62529 0.651505 0
vt 0.619435 0.652178 0
vt 0.62529 0.651505 0
vt 0.630031 0.657663 0
vt 0.623019 0.659838 0
vt 0.623019 0.659838 0
vt 0.619435 0.652178 0
vt 0.62529 0.651505 0
vt 0.610978 0.618871 0
vt 0.628195 0.643945 0
vt 0.62529 0.651505 0
vt 0.628195 0.643945 0
vt 0.633341 0.651668 0
vt 0.630031 0.657663 0
vt 0.630031 0.657663 0
vt 0.62529 0.651505 0
vt 0.628195 0.643945 0
vt 0.623019 0.659838 0
vt 0.616071 0.656718 0
vt 0.619435 0.652178 0
vt 0.628195 0.643945 0
vt 0.610978 0.618871 0
vt 0.620068 0.606339 0
vt 0.620068 0.606339 0
vt 0.629789 0.633297 0
vt 0.628195 0.643945 0
vt 0.633341 0.651668 0
vt 0.628195 0.643945 0
vt 0.629789 0.633297 0
vt 0.632789 0.625557 0
vt 0.633341 0.651668 0
vt 0.629789 0.633297 0
vt 0.629789 0.633297 0
vt 0.629733 0.623666 0
vt 0.632789 0.625557 0
vt 0.620068 0.606339 0
vt 0.629733 0.623666 0
vt 0.629789 0.633297 0
vt 0.452371 0.710707 0
vt 0.450171 0.740273 0
vt 0.445825 0.746561 0
vt 0.446851 0.778904 0
vt 0.445825 0.746561 0
vt 0.450171 0.740273 0
vt 0.446851 0.778904 0
vt 0.450171 0.740273 0
vt 0.452519 0.728397 0
vt 0.452371 0.710707 0
vt 0.456617 0.695853 0
vt 0.452519 0.728397 0
vt 0.452519 0.728397 0
vt 0.450171 0.740273 0
vt 0.452371 0.710707 0
vt 0.254765 0.223859 0
vt 0.256391 0.333613 0
vt 0.256074 0.225569 0
vt 0.351383 0.215708 0
vt 0.319874 0.210441 0
vt 0.320353 0.144875 0
vt 0.324357 0.0916888 0
vt 0.351383 0.215708 0
vt 0.320353 0.144875 0
vt 0.382819 0.403272 0
vt 0.380245 0.523495 0
vt 0.359834 0.43474 0
vt 0.382819 0.403272 0
vt 0.359834 0.43474 0
vt 0.363196 0.331177 0
vt 0.322588 0.282912 0
vt 0.338285 0.398481 0
vt 0.315795 0.354069 0
vt 0.322588 0.282912 0
vt 0.315795 0.354069 0
vt 0.306382 0.26074 0
vt 0.401653 0.648806 0
vt 0.412035 0.673773 0
vt 0.415138 0.724414 0
vt 0.401653 0.648806 0
vt 0.389026 0.657813 0
vt 0.390764 0.612411 0
vt 0.401653 0.648806 0
vt 0.405735 0.730755 0
vt 0.389026 0.657813 0
vt 0.412035 0.673773 0
vt 0.401653 0.648806 0
vt 0.402307 0.61896 0
vt 0.398857 0.575981 0
vt 0.405878 0.604792 0
vt 0.407452 0.619415 0
vt 0.398857 0.575981 0
vt 0.407452 0.619415 0
vt 0.396689 0.578671 0
vt 0.425544 0.786849 0
vt 0.424802 0.813056 0
vt 0.415138 0.724414 0
vt 0.425544 0.786849 0
vt 0.415138 0.724414 0
vt 0.419671 0.730476 0
vt 0.419671 0.730476 0
vt 0.415138 0.724414 0
vt 0.412035 0.673773 0
vt 0.425544 0.786849 0
vt 0.419671 0.730476 0
vt 0.425934 0.766273 0
vt 0.433602 0.852235 0
vt 0.425544 0.786849 0
vt 0.425934 0.766273 0
vt 0.412035 0.673773 0
vt 0.425934 0.766273 0
vt 0.419671 0.730476 0
vt 0.433602 0.852235 0
vt 0.425934 0.766273 0
vt 0.426565 0.762431 0
vt 0.425934 0.766273 0
vt 0.412035 0.673773 0
vt 0.415345 0.664092 0
vt 0.415345 0.664092 0
vt 0.426565 0.762431 0
vt 0.425934 0.766273 0
vt 0.313629 0.86389 0
vt 0.329974 0.75653 0
vt 0.32909 0.831679 0
vt 0.329974 0.75653 0
vt 0.344022 0.748717 0
vt 0.340337 0.824509 0
vt 0.329974 0.75653 0
vt 0.340337 0.824509 0
vt 0.32909 0.831679 0
vt 0.343645 0.680624 0
vt 0.344022 0.748717 0
vt 0.329974 0.75653 0
vt 0.351581 0.806741 0
vt 0.340337 0.824509 0
vt 0.344022 0.748717 0
vt 0.344022 0.748717 0
vt 0.35673 0.722751 0
vt 0.351581 0.806741 0
vt 0.343645 0.680624 0
vt 0.35673 0.722751 0
vt 0.344022 0.748717 0
vt 0.351581 0.806741 0
vt 0.35673 0.722751 0
vt 0.368012 0.784568 0
vt 0.32909 0.831679 0
vt 0.332267 0.902521 0
vt 0.313629 0.86389 0
vt 0.332267 0.902521 0
vt 0.32909 0.831679 0
vt 0.340337 0.824509 0
vt 0.350516 0.897133 0
vt 0.332267 0.902521 0
vt 0.340337 0.824509 0
vt 0.350516 0.897133 0
vt 0.340337 0.824509 0
vt 0.351581 0.806741 0
vt 0.371262 0.88941 0
vt 0.351581 0.806741 0
vt 0.368012 0.784568 0
vt 0.351581 0.806741 0
vt 0.371262 0.88941 0
vt 0.350516 0.897133 0
vt 0.348371 0.439333 0
vt 0.352291 0.357805 0
vt 0.359403 0.35575 0
vt 0.348371 0.439333 0
vt 0.359403 0.35575 0
vt 0.365311 0.365555 0
vt 0.261551 0.474658 0
vt 0.258629 0.467787 0
vt 0.258593 0.344174 0
vt 0.258629 0.467787 0
vt 0.258944 0.470128 0
vt 0.256391 0.333613 0
vt 0.256391 0.333613 0
vt 0.258593 0.344174 0
vt 0.258629 0.467787 0
vt 0.258593 0.344174 0
vt 0.261773 0.341651 0
vt 0.261551 0.474658 0
vt 0.359834 0.43474 0
vt 0.380245 0.523495 0
vt 0.36271 0.520654 0
vt 0.375812 0.630234 0
vt 0.36271 0.520654 0
vt 0.380245 0.523495 0
vt 0.331028 0.506468 0
vt 0.335737 0.627185 0
vt 0.318393 0.598506 0
vt 0.318393 0.598506 0
vt 0.313371 0.486784 0
vt 0.331028 0.506468 0
vt 0.355764 0.638658 0
vt 0.36271 0.520654 0
vt 0.375812 0.630234 0
vt 0.355764 0.638658 0
vt 0.348142 0.510974 0
vt 0.36271 0.520654 0
vt 0.348142 0.510974 0
vt 0.338285 0.398481 0
vt 0.359834 0.43474 0
vt 0.359834 0.43474 0
vt 0.36271 0.520654 0
vt 0.348142 0.510974 0
vt 0.338285 0.398481 0
vt 0.348142 0.510974 0
vt 0.331028 0.506468 0
vt 0.348142 0.510974 0
vt 0.355764 0.638658 0
vt 0.335737 0.627185 0
vt 0.335737 0.627185 0
vt 0.331028 0.506468 0
vt 0.348142 0.510974 0
vt 0.268165 0.304854 0
vt 0.279437 0.46891 0
vt 0.268213 0.473283 0
vt 0.296149 0.498778 0
vt 0.289099 0.346913 0
vt 0.299956 0.366175 0
vt 0.261773 0.341651 0
vt 0.268213 0.473283 0
vt 0.261551 0.474658 0
vt 0.261773 0.341651 0
vt 0.268165 0.304854 0
vt 0.268213 0.473283 0
vt 0.315795 0.354069 0
vt 0.331028 0.506468 0
vt 0.313371 0.486784 0
vt 0.299956 0.366175 0
vt 0.315795 0.354069 0
vt 0.313371 0.486784 0
vt 0.299956 0.366175 0
vt 0.313371 0.486784 0
vt 0.296149 0.498778 0
vt 0.289099 0.346913 0
vt 0.296149 0.498778 0
vt 0.279437 0.46891 0
vt 0.254765 0.223859 0
vt 0.258593 0.344174 0
vt 0.256391 0.333613 0
vt 0.254765 0.223859 0
vt 0.261773 0.341651 0
vt 0.258593 0.344174 0
vt 0.273509 0.321699 0
vt 0.276277 0.330164 0
vt 0.274538 0.430148 0
vt 0.274538 0.430148 0
vt 0.273541 0.430035 0
vt 0.273509 0.321699 0
vt 0.273261 0.494144 0
vt 0.273541 0.430035 0
vt 0.274538 0.430148 0
vt 0.274538 0.430148 0
vt 0.276136 0.430218 0
vt 0.275701 0.497028 0
vt 0.275701 0.497028 0
vt 0.273261 0.494144 0
vt 0.274538 0.430148 0
vt 0.276277 0.330164 0
vt 0.276136 0.430218 0
vt 0.274538 0.430148 0
vt 0.279082 0.517957 0
vt 0.280633 0.43109 0
vt 0.284197 0.438035 0
vt 0.281505 0.376636 0
vt 0.284197 0.438035 0
vt 0.280633 0.43109 0
vt 0.279082 0.517957 0
vt 0.278154 0.430584 0
vt 0.280633 0.43109 0
vt 0.278154 0.430584 0
vt 0.276277 0.330164 0
vt 0.281505 0.376636 0
vt 0.281505 0.376636 0
vt 0.280633 0.43109 0
vt 0.278154 0.430584 0
vt 0.276277 0.330164 0
vt 0.278154 0.430584 0
vt 0.276136 0.430218 0
vt 0.278154 0.430584 0
vt 0.279082 0.517957 0
vt 0.275701 0.497028 0
vt 0.275701 0.497028 0
vt 0.276136 0.430218 0
vt 0.278154 0.430584 0
vt 0.452371 0.710707 0
vt 0.445825 0.746561 0
vt 0.440068 0.720675 0
vt 0.452371 0.710707 0
vt 0.440068 0.720675 0
vt 0.45538 0.669014 0
vt 0.281505 0.376636 0
vt 0.279927 0.319977 0
vt 0.284911 0.324134 0
vt 0.281505 0.376636 0
vt 0.284911 0.324134 0
vt 0.286885 0.370309 0
vt 0.292193 0.326348 0
vt 0.291351 0.379527 0
vt 0.286885 0.370309 0
vt 0.286885 0.370309 0
vt 0.284911 0.324134 0
vt 0.292193 0.326348 0
vt 0.306545 0.327771 0
vt 0.305406 0.381658 0
vt 0.298701 0.352355 0
vt 0.298701 0.352355 0
vt 0.299315 0.324735 0
vt 0.306545 0.327771 0
vt 0.281505 0.376636 0
vt 0.276277 0.330164 0
vt 0.279927 0.319977 0
vt 0.367835 0.46696 0
vt 0.374219 0.373338 0
vt 0.37986 0.373664 0
vt 0.373287 0.445643 0
vt 0.381551 0.380362 0
vt 0.382242 0.381885 0
vt 0.367835 0.46696 0
vt 0.37986 0.373664 0
vt 0.381551 0.380362 0
vt 0.348371 0.439333 0
vt 0.342373 0.433929 0
vt 0.352291 0.357805 0
vt 0.342373 0.433929 0
vt 0.335807 0.423171 0
vt 0.352291 0.357805 0
vt 0.335807 0.423171 0
vt 0.345296 0.345649 0
vt 0.352291 0.357805 0
vt 0.335807 0.423171 0
vt 0.335138 0.347261 0
vt 0.345296 0.345649 0
vt 0.335807 0.423171 0
vt 0.327206 0.404824 0
vt 0.335138 0.347261 0
vt 0.335138 0.347261 0
vt 0.327206 0.404824 0
vt 0.320993 0.38203 0
vt 0.320993 0.38203 0
vt 0.32484 0.333782 0
vt 0.335138 0.347261 0
vt 0.311058 0.399208 0
vt 0.315436 0.33737 0
vt 0.320993 0.38203 0
vt 0.315436 0.33737 0
vt 0.311058 0.399208 0
vt 0.305406 0.381658 0
vt 0.305406 0.381658 0
vt 0.306545 0.327771 0
vt 0.315436 0.33737 0
vt 0.320993 0.38203 0
vt 0.315436 0.33737 0
vt 0.32484 0.333782 0
vt 0.298701 0.352355 0
vt 0.291351 0.379527 0
vt 0.292193 0.326348 0
vt 0.292193 0.326348 0
vt 0.299315 0.324735 0
vt 0.298701 0.352355 0
vt 0.415946 0.700131 0
vt 0.423797 0.75811 0
vt 0.410833 0.755508 0
vt 0.440068 0.720675 0
vt 0.435729 0.771968 0
vt 0.423797 0.75811 0
vt 0.435729 0.771968 0
vt 0.440068 0.720675 0
vt 0.445825 0.746561 0
vt 0.445825 0.746561 0
vt 0.443807 0.777597 0
vt 0.435729 0.771968 0
vt 0.375812 0.630234 0
vt 0.384924 0.730227 0
vt 0.369639 0.720948 0
vt 0.415946 0.700131 0
vt 0.410833 0.755508 0
vt 0.398477 0.734628 0
vt 0.335737 0.627185 0
vt 0.338365 0.723924 0
vt 0.319763 0.719753 0
vt 0.318393 0.598506 0
vt 0.335737 0.627185 0
vt 0.319763 0.719753 0
vt 0.355764 0.638658 0
vt 0.354808 0.723744 0
vt 0.338365 0.723924 0
vt 0.355764 0.638658 0
vt 0.369639 0.720948 0
vt 0.354808 0.723744 0
vt 0.375812 0.630234 0
vt 0.369639 0.720948 0
vt 0.355764 0.638658 0
vt 0.302823 0.617382 0
vt 0.30449 0.72944 0
vt 0.290653 0.719239 0
vt 0.302823 0.617382 0
vt 0.319763 0.719753 0
vt 0.30449 0.72944 0
vt 0.318393 0.598506 0
vt 0.319763 0.719753 0
vt 0.302823 0.617382 0
vt 0.446851 0.778904 0
vt 0.443807 0.777597 0
vt 0.445825 0.746561 0
vt 0.547518 0.58018 0
vt 0.610978 0.618871 0
vt 0.545011 0.60292 0
vt 0.33947 0.577589 0
vt 0.33591 0.584775 0
vt 0.33084 0.566254 0
vt 0.34934 0.666861 0
vt 0.35673 0.722751 0
vt 0.343645 0.680624 0
vt 0.353126 0.665909 0
vt 0.35673 0.722751 0
vt 0.34934 0.666861 0
vt 0.345852 0.540613 0
vt 0.346764 0.587167 0
vt 0.33947 0.577589 0
vt 0.33947 0.577589 0
vt 0.33084 0.566254 0
vt 0.345852 0.540613 0
vt 0.330653 0.646334 0
vt 0.337303 0.655339 0
vt 0.327659 0.675594 0
vt 0.327659 0.675594 0
vt 0.321658 0.633418 0
vt 0.330653 0.646334 0
vt 0.333653 0.617169 0
vt 0.331574 0.629234 0
vt 0.331284 0.613335 0
vt 0.331284 0.613335 0
vt 0.33591 0.584775 0
vt 0.333653 0.617169 0
vt 0.333653 0.617169 0
vt 0.33591 0.584775 0
vt 0.33898 0.596473 0
vt 0.33898 0.596473 0
vt 0.337037 0.609427 0
vt 0.333653 0.617169 0
vt 0.355472 0.600136 0
vt 0.350653 0.602217 0
vt 0.346764 0.587167 0
vt 0.342686 0.602779 0
vt 0.339866 0.606575 0
vt 0.339549 0.602778 0
vt 0.342686 0.602779 0
vt 0.339549 0.602778 0
vt 0.33898 0.596473 0
vt 0.33898 0.596473 0
vt 0.33591 0.584775 0
vt 0.33947 0.577589 0
vt 0.33898 0.596473 0
vt 0.33947 0.577589 0
vt 0.346764 0.587167 0
vt 0.346528 0.595367 0
vt 0.350653 0.602217 0
vt 0.348002 0.605114 0
vt 0.346528 0.595367 0
vt 0.342686 0.602779 0
vt 0.33898 0.596473 0
vt 0.348002 0.605114 0
vt 0.342686 0.602779 0
vt 0.346528 0.595367 0
vt 0.346528 0.595367 0
vt 0.33898 0.596473 0
vt 0.346764 0.587167 0
vt 0.346764 0.587167 0
vt 0.350653 0.602217 0
vt 0.346528 0.595367 0
vt 0.342337 0.607924 0
vt 0.339866 0.606575 0
vt 0.342686 0.602779 0
vt 0.345327 0.606599 0
vt 0.342337 0.607924 0
vt 0.342686 0.602779 0
vt 0.345327 0.606599 0
vt 0.342686 0.602779 0
vt 0.348002 0.605114 0
vt 0.345327 0.606599 0
vt 0.344673 0.609724 0
vt 0.342337 0.607924 0
vt 0.346046 0.612575 0
vt 0.344673 0.609724 0
vt 0.345327 0.606599 0
vt 0.347629 0.609173 0
vt 0.346046 0.612575 0
vt 0.345327 0.606599 0
vt 0.347629 0.609173 0
vt 0.345327 0.606599 0
vt 0.348002 0.605114 0
vt 0.348002 0.605114 0
vt 0.350653 0.602217 0
vt 0.349999 0.61159 0
vt 0.347629 0.609173 0
vt 0.349189 0.61925 0
vt 0.347886 0.618871 0
vt 0.349999 0.61159 0
vt 0.349189 0.61925 0
vt 0.347629 0.609173 0
vt 0.347629 0.609173 0
vt 0.347886 0.618871 0
vt 0.346046 0.612575 0
vt 0.347629 0.609173 0
vt 0.348002 0.605114 0
vt 0.349999 0.61159 0
vt 0.349169 0.634049 0
vt 0.347886 0.618871 0
vt 0.349189 0.61925 0
vt 0.351244 0.641171 0
vt 0.349169 0.634049 0
vt 0.349189 0.61925 0
vt 0.349999 0.61159 0
vt 0.350653 0.602217 0
vt 0.352761 0.613955 0
vt 0.349999 0.61159 0
vt 0.352761 0.613955 0
vt 0.352585 0.628216 0
vt 0.351244 0.641171 0
vt 0.349189 0.61925 0
vt 0.349999 0.61159 0
vt 0.351244 0.641171 0
vt 0.349999 0.61159 0
vt 0.352585 0.628216 0
vt 0.365494 0.61428 0
vt 0.353126 0.665909 0
vt 0.354282 0.637061 0
vt 0.35488 0.619854 0
vt 0.365494 0.61428 0
vt 0.354282 0.637061 0
vt 0.352761 0.613955 0
vt 0.350653 0.602217 0
vt 0.355472 0.600136 0
vt 0.355472 0.600136 0
vt 0.365494 0.61428 0
vt 0.35488 0.619854 0
vt 0.352761 0.613955 0
vt 0.355472 0.600136 0
vt 0.35488 0.619854 0
vt 0.353126 0.665909 0
vt 0.350337 0.654412 0
vt 0.351244 0.641171 0
vt 0.354282 0.637061 0
vt 0.353126 0.665909 0
vt 0.351244 0.641171 0
vt 0.354282 0.637061 0
vt 0.351244 0.641171 0
vt 0.352585 0.628216 0
vt 0.352585 0.628216 0
vt 0.352761 0.613955 0
vt 0.35488 0.619854 0
vt 0.354282 0.637061 0
vt 0.352585 0.628216 0
vt 0.35488 0.619854 0
vt 0.347759 0.628999 0
vt 0.347886 0.618871 0
vt 0.349169 0.634049 0
vt 0.34689 0.636084 0
vt 0.347759 0.628999 0
vt 0.349169 0.634049 0
vt 0.348406 0.647983 0
vt 0.351244 0.641171 0
vt 0.350337 0.654412 0
vt 0.349169 0.634049 0
vt 0.351244 0.641171 0
vt 0.348406 0.647983 0
vt 0.348101 0.64057 0
vt 0.349169 0.634049 0
vt 0.348406 0.647983 0
vt 0.34689 0.636084 0
vt 0.349169 0.634049 0
vt 0.348101 0.64057 0
vt 0.344312 0.639873 0
vt 0.344965 0.63907 0
vt 0.346112 0.642265 0
vt 0.345342 0.645524 0
vt 0.344312 0.639873 0
vt 0.346112 0.642265 0
vt 0.345342 0.645524 0
vt 0.346112 0.642265 0
vt 0.348406 0.647983 0
vt 0.348406 0.647983 0
vt 0.350337 0.654412 0
vt 0.347529 0.657148 0
vt 0.343183 0.648309 0
vt 0.340439 0.643008 0
vt 0.342232 0.641347 0
vt 0.345342 0.645524 0
vt 0.343183 0.648309 0
vt 0.342232 0.641347 0
vt 0.347529 0.657148 0
vt 0.343183 0.648309 0
vt 0.345342 0.645524 0
vt 0.345342 0.645524 0
vt 0.342232 0.641347 0
vt 0.344312 0.639873 0
vt 0.345342 0.645524 0
vt 0.348406 0.647983 0
vt 0.347529 0.657148 0
vt 0.34704 0.641031 0
vt 0.34689 0.636084 0
vt 0.348101 0.64057 0
vt 0.345845 0.638131 0
vt 0.34689 0.636084 0
vt 0.34704 0.641031 0
vt 0.34704 0.641031 0
vt 0.348101 0.64057 0
vt 0.348406 0.647983 0
vt 0.346112 0.642265 0
vt 0.344965 0.63907 0
vt 0.345845 0.638131 0
vt 0.34704 0.641031 0
vt 0.346112 0.642265 0
vt 0.345845 0.638131 0
vt 0.348406 0.647983 0
vt 0.346112 0.642265 0
vt 0.34704 0.641031 0
vt 0.338719 0.610205 0
vt 0.336914 0.619304 0
vt 0.337037 0.609427 0
vt 0.339549 0.602778 0
vt 0.338719 0.610205 0
vt 0.337037 0.609427 0
vt 0.339549 0.602778 0
vt 0.337037 0.609427 0
vt 0.33898 0.596473 0
vt 0.339549 0.602778 0
vt 0.339866 0.606575 0
vt 0.338719 0.610205 0
vt 0.321658 0.633418 0
vt 0.33084 0.566254 0
vt 0.331284 0.613335 0
vt 0.321658 0.633418 0
vt 0.331284 0.613335 0
vt 0.331574 0.629234 0
vt 0.335008 0.622489 0
vt 0.336523 0.626353 0
vt 0.335516 0.627918 0
vt 0.336914 0.619304 0
vt 0.336523 0.626353 0
vt 0.335008 0.622489 0
vt 0.333266 0.628467 0
vt 0.331574 0.629234 0
vt 0.333653 0.617169 0
vt 0.335008 0.622489 0
vt 0.337037 0.609427 0
vt 0.336914 0.619304 0
vt 0.333653 0.617169 0
vt 0.337037 0.609427 0
vt 0.335008 0.622489 0
vt 0.335008 0.622489 0
vt 0.335516 0.627918 0
vt 0.333266 0.628467 0
vt 0.335008 0.622489 0
vt 0.333266 0.628467 0
vt 0.333653 0.617169 0
vt 0.338985 0.636183 0
vt 0.340439 0.643008 0
vt 0.338043 0.642887 0
vt 0.336024 0.632496 0
vt 0.338985 0.636183 0
vt 0.338043 0.642887 0
vt 0.337223 0.63092 0
vt 0.338985 0.636183 0
vt 0.336024 0.632496 0
vt 0.336024 0.632496 0
vt 0.338043 0.642887 0
vt 0.333266 0.628467 0
vt 0.335516 0.627918 0
vt 0.336523 0.626353 0
vt 0.337223 0.63092 0
vt 0.336024 0.632496 0
vt 0.335516 0.627918 0
vt 0.337223 0.63092 0
vt 0.336024 0.632496 0
vt 0.333266 0.628467 0
vt 0.335516 0.627918 0
vt 0.344051 0.667247 0
vt 0.343183 0.648309 0
vt 0.347529 0.657148 0
vt 0.347529 0.657148 0
vt 0.350337 0.654412 0
vt 0.34934 0.666861 0
vt 0.34934 0.666861 0
vt 0.343645 0.680624 0
vt 0.344051 0.667247 0
vt 0.344051 0.667247 0
vt 0.347529 0.657148 0
vt 0.34934 0.666861 0
vt 0.34934 0.666861 0
vt 0.350337 0.654412 0
vt 0.353126 0.665909 0
vt 0.338043 0.642887 0
vt 0.340439 0.643008 0
vt 0.343183 0.648309 0
vt 0.337303 0.655339 0
vt 0.338043 0.642887 0
vt 0.343183 0.648309 0
vt 0.337303 0.655339 0
vt 0.343183 0.648309 0
vt 0.344051 0.667247 0
vt 0.337303 0.655339 0
vt 0.344051 0.667247 0
vt 0.343645 0.680624 0
vt 0.330653 0.646334 0
vt 0.331574 0.629234 0
vt 0.333266 0.628467 0
vt 0.330653 0.646334 0
vt 0.338043 0.642887 0
vt 0.337303 0.655339 0
vt 0.333266 0.628467 0
vt 0.338043 0.642887 0
vt 0.330653 0.646334 0
vt 0.321658 0.633418 0
vt 0.331574 0.629234 0
vt 0.330653 0.646334 0
vt 0.346111 0.620829 0
vt 0.347886 0.618871 0
vt 0.347759 0.628999 0
vt 0.345527 0.631301 0
vt 0.346111 0.620829 0
vt 0.347759 0.628999 0
vt 0.344007 0.625483 0
vt 0.346111 0.620829 0
vt 0.345527 0.631301 0
vt 0.345527 0.631301 0
vt 0.347759 0.628999 0
vt 0.34689 0.636084 0
vt 0.343835 0.630512 0
vt 0.344007 0.625483 0
vt 0.345527 0.631301 0
vt 0.344642 0.635549 0
vt 0.345527 0.631301 0
vt 0.34689 0.636084 0
vt 0.343835 0.630512 0
vt 0.345527 0.631301 0
vt 0.344642 0.635549 0
vt 0.344642 0.635549 0
vt 0.34689 0.636084 0
vt 0.345845 0.638131 0
vt 0.345845 0.638131 0
vt 0.344965 0.63907 0
vt 0.344642 0.635549 0
vt 0.344642 0.635549 0
vt 0.344965 0.63907 0
vt 0.344312 0.639873 0
vt 0.342539 0.636239 0
vt 0.344642 0.635549 0
vt 0.344312 0.639873 0
vt 0.343835 0.630512 0
vt 0.344642 0.635549 0
vt 0.342539 0.636239 0
vt 0.342232 0.641347 0
vt 0.340439 0.643008 0
vt 0.340715 0.63749 0
vt 0.342539 0.636239 0
vt 0.342232 0.641347 0
vt 0.340715 0.63749 0
vt 0.344312 0.639873 0
vt 0.342232 0.641347 0
vt 0.342539 0.636239 0
vt 0.342539 0.636239 0
vt 0.340715 0.63749 0
vt 0.34178 0.632918 0
vt 0.34178 0.632918 0
vt 0.343835 0.630512 0
vt 0.342539 0.636239 0
vt 0.340715 0.63749 0
vt 0.340439 0.643008 0
vt 0.338985 0.636183 0
vt 0.34178 0.632918 0
vt 0.340715 0.63749 0
vt 0.338985 0.636183 0
vt 0.337223 0.63092 0
vt 0.336523 0.626353 0
vt 0.338818 0.630788 0
vt 0.34094 0.631407 0
vt 0.34178 0.632918 0
vt 0.338985 0.636183 0
vt 0.338818 0.630788 0
vt 0.34094 0.631407 0
vt 0.338985 0.636183 0
vt 0.340728 0.627159 0
vt 0.34094 0.631407 0
vt 0.338818 0.630788 0
vt 0.338818 0.630788 0
vt 0.338985 0.636183 0
vt 0.337223 0.63092 0
vt 0.338631 0.625016 0
vt 0.338818 0.630788 0
vt 0.336523 0.626353 0
vt 0.340728 0.627159 0
vt 0.338818 0.630788 0
vt 0.338631 0.625016 0
vt 0.338631 0.625016 0
vt 0.336523 0.626353 0
vt 0.336914 0.619304 0
vt 0.33891 0.618908 0
vt 0.340728 0.627159 0
vt 0.338631 0.625016 0
vt 0.341544 0.62092 0
vt 0.340728 0.627159 0
vt 0.33891 0.618908 0
vt 0.33891 0.618908 0
vt 0.338631 0.625016 0
vt 0.336914 0.619304 0
vt 0.33891 0.618908 0
vt 0.336914 0.619304 0
vt 0.338719 0.610205 0
vt 0.340473 0.612221 0
vt 0.33891 0.618908 0
vt 0.338719 0.610205 0
vt 0.341544 0.62092 0
vt 0.33891 0.618908 0
vt 0.340473 0.612221 0
vt 0.338719 0.610205 0
vt 0.339866 0.606575 0
vt 0.340473 0.612221 0
vt 0.340473 0.612221 0
vt 0.339866 0.606575 0
vt 0.342337 0.607924 0
vt 0.342444 0.614434 0
vt 0.340473 0.612221 0
vt 0.342337 0.607924 0
vt 0.341544 0.62092 0
vt 0.340473 0.612221 0
vt 0.342444 0.614434 0
vt 0.342444 0.614434 0
vt 0.344673 0.609724 0
vt 0.344991 0.617259 0
vt 0.342337 0.607924 0
vt 0.344673 0.609724 0
vt 0.342444 0.614434 0
vt 0.342444 0.614434 0
vt 0.344991 0.617259 0
vt 0.342599 0.620621 0
vt 0.342599 0.620621 0
vt 0.341544 0.62092 0
vt 0.342444 0.614434 0
vt 0.346046 0.612575 0
vt 0.347886 0.618871 0
vt 0.346111 0.620829 0
vt 0.344991 0.617259 0
vt 0.344673 0.609724 0
vt 0.346046 0.612575 0
vt 0.344991 0.617259 0
vt 0.346111 0.620829 0
vt 0.344007 0.625483 0
vt 0.346046 0.612575 0
vt 0.346111 0.620829 0
vt 0.344991 0.617259 0
vt 0.344991 0.617259 0
vt 0.344007 0.625483 0
vt 0.342599 0.620621 0
vt 0.331284 0.613335 0
vt 0.33084 0.566254 0
vt 0.33591 0.584775 0
vt 0.332267 0.902521 0
vt 0.335626 0.0372187 0
vt 0.317422 0.96045 0
vt 0.350952 0.113743 0
vt 0.351383 0.215708 0
vt 0.324357 0.0916888 0
vt 0.371262 0.88941 0
vt 0.368012 0.784568 0
vt 0.381656 0.773273 0
vt 0.381656 0.773273 0
vt 0.368012 0.784568 0
vt 0.369637 0.711934 0
vt 0.341591 0.435587 0
vt 0.348388 0.441756 0
vt 0.347812 0.475531 0
vt 0.348388 0.441756 0
vt 0.341591 0.435587 0
vt 0.342388 0.426372 0
vt 0.342388 0.426372 0
vt 0.35598 0.439769 0
vt 0.348388 0.441756 0
vt 0.350689 0.424895 0
vt 0.35598 0.439769 0
vt 0.342388 0.426372 0
vt 0.350689 0.424895 0
vt 0.342388 0.426372 0
vt 0.34028 0.418903 0
vt 0.350689 0.424895 0
vt 0.34028 0.418903 0
vt 0.337388 0.411115 0
vt 0.337388 0.411115 0
vt 0.350037 0.422226 0
vt 0.350689 0.424895 0
vt 0.350037 0.422226 0
vt 0.337388 0.411115 0
vt 0.337656 0.407122 0
vt 0.340993 0.453912 0
vt 0.341591 0.435587 0
vt 0.347812 0.475531 0
vt 0.347812 0.475531 0
vt 0.340237 0.473378 0
vt 0.340993 0.453912 0
vt 0.29757 0.522747 0
vt 0.296924 0.540498 0
vt 0.291148 0.549016 0
vt 0.291148 0.549016 0
vt 0.298673 0.505636 0
vt 0.29757 0.522747 0
vt 0.288872 0.537143 0
vt 0.298673 0.505636 0
vt 0.291148 0.549016 0
vt 0.298151 0.492797 0
vt 0.298673 0.505636 0
vt 0.288872 0.537143 0
vt 0.288872 0.537143 0
vt 0.298094 0.480612 0
vt 0.298151 0.492797 0
vt 0.296787 0.481347 0
vt 0.298094 0.480612 0
vt 0.286867 0.536068 0
vt 0.286867 0.536068 0
vt 0.295575 0.482209 0
vt 0.296787 0.481347 0
vt 0.286867 0.536068 0
vt 0.298094 0.480612 0
vt 0.288872 0.537143 0
vt 0.347812 0.475531 0
vt 0.353535 0.464272 0
vt 0.357075 0.493317 0
vt 0.347812 0.475531 0
vt 0.357075 0.493317 0
vt 0.347622 0.506243 0
vt 0.353535 0.464272 0
vt 0.347812 0.475531 0
vt 0.348388 0.441756 0
vt 0.348388 0.441756 0
vt 0.365431 0.462285 0
vt 0.366547 0.478886 0
vt 0.348388 0.441756 0
vt 0.366547 0.478886 0
vt 0.353535 0.464272 0
vt 0.365431 0.462285 0
vt 0.348388 0.441756 0
vt 0.35598 0.439769 0
vt 0.35598 0.439769 0
vt 0.350689 0.424895 0
vt 0.365068 0.450725 0
vt 0.35598 0.439769 0
vt 0.365068 0.450725 0
vt 0.365431 0.462285 0
vt 0.350037 0.422226 0
vt 0.365068 0.450725 0
vt 0.350689 0.424895 0
vt 0.340237 0.473378 0
vt 0.347812 0.475531 0
vt 0.347622 0.506243 0
vt 0.33757 0.492193 0
vt 0.340237 0.473378 0
vt 0.347622 0.506243 0
vt 0.347622 0.506243 0
vt 0.334833 0.511758 0
vt 0.33757 0.492193 0
vt 0.350952 0.113743 0
vt 0.377146 0.161533 0
vt 0.374831 0.224814 0
vt 0.372456 0.0946521 0
vt 0.377146 0.161533 0
vt 0.350952 0.113743 0
vt 0.350952 0.113743 0
vt 0.374831 0.224814 0
vt 0.351383 0.215708 0
vt 0.374831 0.224814 0
vt 0.377146 0.161533 0
vt 0.3916 0.252166 0
vt 0.382819 0.403272 0
vt 0.374831 0.224814 0
vt 0.3916 0.252166 0
vt 0.374831 0.224814 0
vt 0.382819 0.403272 0
vt 0.363196 0.331177 0
vt 0.374831 0.224814 0
vt 0.363196 0.331177 0
vt 0.351383 0.215708 0
vt 0.344339 0.298017 0
vt 0.359834 0.43474 0
vt 0.338285 0.398481 0
vt 0.344339 0.298017 0
vt 0.351383 0.215708 0
vt 0.363196 0.331177 0
vt 0.359834 0.43474 0
vt 0.344339 0.298017 0
vt 0.363196 0.331177 0
vt 0.272403 0.882956 0
vt 0.272788 0.781361 0
vt 0.275864 0.811986 0
vt 0.276615 0.881734 0
vt 0.272403 0.882956 0
vt 0.275864 0.811986 0
vt 0.274555 0.919478 0
vt 0.272403 0.882956 0
vt 0.276615 0.881734 0
vt 0.276615 0.881734 0
vt 0.275864 0.811986 0
vt 0.280238 0.828311 0
vt 0.275864 0.811986 0
vt 0.272788 0.781361 0
vt 0.280427 0.707441 0
vt 0.285172 0.757506 0
vt 0.275864 0.811986 0
vt 0.280427 0.707441 0
vt 0.280238 0.828311 0
vt 0.275864 0.811986 0
vt 0.285172 0.757506 0
vt 0.285172 0.757506 0
vt 0.280427 0.707441 0
vt 0.29108 0.666116 0
vt 0.275555 0.696803 0
vt 0.280042 0.644798 0
vt 0.285432 0.637459 0
vt 0.280427 0.707441 0
vt 0.275555 0.696803 0
vt 0.285432 0.637459 0
vt 0.272788 0.781361 0
vt 0.275555 0.696803 0
vt 0.280427 0.707441 0
vt 0.280427 0.707441 0
vt 0.285432 0.637459 0
vt 0.29108 0.666116 0
vt 0.285432 0.637459 0
vt 0.280042 0.644798 0
vt 0.289561 0.608279 0
vt 0.295888 0.622283 0
vt 0.285432 0.637459 0
vt 0.289561 0.608279 0
vt 0.29108 0.666116 0
vt 0.285432 0.637459 0
vt 0.295888 0.622283 0
vt 0.295888 0.622283 0
vt 0.289561 0.608279 0
vt 0.299602 0.599976 0
vt 0.283885 0.609066 0
vt 0.288468 0.571774 0
vt 0.294515 0.573921 0
vt 0.289561 0.608279 0
vt 0.283885 0.609066 0
vt 0.294515 0.573921 0
vt 0.280042 0.644798 0
vt 0.283885 0.609066 0
vt 0.289561 0.608279 0
vt 0.289561 0.608279 0
vt 0.294515 0.573921 0
vt 0.299602 0.599976 0
vt 0.299602 0.599976 0
vt 0.294515 0.573921 0
vt 0.305907 0.559959 0
vt 0.288468 0.571774 0
vt 0.293844 0.529638 0
vt 0.299289 0.542911 0
vt 0.294515 0.573921 0
vt 0.288468 0.571774 0
vt 0.299289 0.542911 0
vt 0.294515 0.573921 0
vt 0.299289 0.542911 0
vt 0.305907 0.559959 0
vt 0.299289 0.542911 0
vt 0.293844 0.529638 0
vt 0.303448 0.50984 0
vt 0.30928 0.536488 0
vt 0.299289 0.542911 0
vt 0.303448 0.50984 0
vt 0.305907 0.559959 0
vt 0.299289 0.542911 0
vt 0.30928 0.536488 0
vt 0.30928 0.536488 0
vt 0.303448 0.50984 0
vt 0.312871 0.513184 0
vt 0.293844 0.529638 0
vt 0.297994 0.485931 0
vt 0.303448 0.50984 0
vt 0.277749 0.887596 0
vt 0.281392 0.871209 0
vt 0.273543 0.850969 0
vt 0.272403 0.882956 0
vt 0.277749 0.887596 0
vt 0.273543 0.850969 0
vt 0.274555 0.919478 0
vt 0.277749 0.887596 0
vt 0.272403 0.882956 0
vt 0.272403 0.882956 0
vt 0.273543 0.850969 0
vt 0.272788 0.781361 0
vt 0.277583 0.844587 0
vt 0.273709 0.809283 0
vt 0.271841 0.790148 0
vt 0.273543 0.850969 0
vt 0.277583 0.844587 0
vt 0.271841 0.790148 0
vt 0.281392 0.871209 0
vt 0.277583 0.844587 0
vt 0.273543 0.850969 0
vt 0.273543 0.850969 0
vt 0.271841 0.790148 0
vt 0.272788 0.781361 0
vt 0.271841 0.790148 0
vt 0.273709 0.809283 0
vt 0.273329 0.725844 0
vt 0.275555 0.696803 0
vt 0.271841 0.790148 0
vt 0.273329 0.725844 0
vt 0.272788 0.781361 0
vt 0.271841 0.790148 0
vt 0.275555 0.696803 0
vt 0.275555 0.696803 0
vt 0.273329 0.725844 0
vt 0.280042 0.644798 0
vt 0.273329 0.725844 0
vt 0.272614 0.730356 0
vt 0.277076 0.659642 0
vt 0.273709 0.809283 0
vt 0.272614 0.730356 0
vt 0.273329 0.725844 0
vt 0.273329 0.725844 0
vt 0.277076 0.659642 0
vt 0.280042 0.644798 0
vt 0.283885 0.609066 0
vt 0.277076 0.659642 0
vt 0.280601 0.617164 0
vt 0.280042 0.644798 0
vt 0.277076 0.659642 0
vt 0.283885 0.609066 0
vt 0.283885 0.609066 0
vt 0.280601 0.617164 0
vt 0.288468 0.571774 0
vt 0.280601 0.617164 0
vt 0.279573 0.616966 0
vt 0.28444 0.578972 0
vt 0.277076 0.659642 0
vt 0.279573 0.616966 0
vt 0.280601 0.617164 0
vt 0.280601 0.617164 0
vt 0.28444 0.578972 0
vt 0.288468 0.571774 0
vt 0.288468 0.571774 0
vt 0.28444 0.578972 0
vt 0.293844 0.529638 0
vt 0.282844 0.574478 0
vt 0.285758 0.532672 0
vt 0.288029 0.542376 0
vt 0.28444 0.578972 0
vt 0.282844 0.574478 0
vt 0.288029 0.542376 0
vt 0.279573 0.616966 0
vt 0.282844 0.574478 0
vt 0.28444 0.578972 0
vt 0.28444 0.578972 0
vt 0.288029 0.542376 0
vt 0.293844 0.529638 0
vt 0.288029 0.542376 0
vt 0.285758 0.532672 0
vt 0.291415 0.502028 0
vt 0.293844 0.529638 0
vt 0.288029 0.542376 0
vt 0.291415 0.502028 0
vt 0.293844 0.529638 0
vt 0.291415 0.502028 0
vt 0.297994 0.485931 0
vt 0.285758 0.532672 0
vt 0.291578 0.48069 0
vt 0.291415 0.502028 0
vt 0.273709 0.809283 0
vt 0.271016 0.775399 0
vt 0.272614 0.730356 0
vt 0.272614 0.730356 0
vt 0.273069 0.699423 0
vt 0.277076 0.659642 0
vt 0.271016 0.775399 0
vt 0.273069 0.699423 0
vt 0.272614 0.730356 0
vt 0.277076 0.659642 0
vt 0.273069 0.699423 0
vt 0.277506 0.622934 0
vt 0.279573 0.616966 0
vt 0.277076 0.659642 0
vt 0.277506 0.622934 0
vt 0.282844 0.574478 0
vt 0.277506 0.622934 0
vt 0.281442 0.564847 0
vt 0.279573 0.616966 0
vt 0.277506 0.622934 0
vt 0.282844 0.574478 0
vt 0.282844 0.574478 0
vt 0.281442 0.564847 0
vt 0.285758 0.532672 0
vt 0.277506 0.622934 0
vt 0.279312 0.568443 0
vt 0.281442 0.564847 0
vt 0.281442 0.564847 0
vt 0.279312 0.568443 0
vt 0.284 0.514747 0
vt 0.285758 0.532672 0
vt 0.281442 0.564847 0
vt 0.284 0.514747 0
vt 0.285758 0.532672 0
vt 0.284 0.514747 0
vt 0.291578 0.48069 0
vt 0.279312 0.568443 0
vt 0.281661 0.505784 0
vt 0.284 0.514747 0
vt 0.276437 0.818011 0
vt 0.280494 0.810141 0
vt 0.273088 0.787244 0
vt 0.271016 0.775399 0
vt 0.276437 0.818011 0
vt 0.273088 0.787244 0
vt 0.273709 0.809283 0
vt 0.276437 0.818011 0
vt 0.271016 0.775399 0
vt 0.277735 0.767576 0
vt 0.275316 0.725414 0
vt 0.272667 0.742378 0
vt 0.273088 0.787244 0
vt 0.277735 0.767576 0
vt 0.272667 0.742378 0
vt 0.280494 0.810141 0
vt 0.277735 0.767576 0
vt 0.273088 0.787244 0
vt 0.273088 0.787244 0
vt 0.272667 0.742378 0
vt 0.271016 0.775399 0
vt 0.272667 0.742378 0
vt 0.275316 0.725414 0
vt 0.273299 0.698068 0
vt 0.273069 0.699423 0
vt 0.272667 0.742378 0
vt 0.273299 0.698068 0
vt 0.271016 0.775399 0
vt 0.272667 0.742378 0
vt 0.273069 0.699423 0
vt 0.27433 0.69418 0
vt 0.275378 0.649996 0
vt 0.273299 0.698068 0
vt 0.275316 0.725414 0
vt 0.27433 0.69418 0
vt 0.273299 0.698068 0
vt 0.273299 0.698068 0
vt 0.275378 0.649996 0
vt 0.277172 0.5907 0
vt 0.277506 0.622934 0
vt 0.273299 0.698068 0
vt 0.277172 0.5907 0
vt 0.273069 0.699423 0
vt 0.273299 0.698068 0
vt 0.277506 0.622934 0
vt 0.275378 0.649996 0
vt 0.275847 0.605624 0
vt 0.277172 0.5907 0
vt 0.277506 0.622934 0
vt 0.277172 0.5907 0
vt 0.279312 0.568443 0
vt 0.275847 0.605624 0
vt 0.275813 0.564358 0
vt 0.277172 0.5907 0
vt 0.277172 0.5907 0
vt 0.275813 0.564358 0
vt 0.279082 0.517957 0
vt 0.281661 0.505784 0
vt 0.277172 0.5907 0
vt 0.279082 0.517957 0
vt 0.279312 0.568443 0
vt 0.277172 0.5907 0
vt 0.281661 0.505784 0
vt 0.284365 0.790408 0
vt 0.289164 0.762607 0
vt 0.277735 0.767576 0
vt 0.280494 0.810141 0
vt 0.284365 0.790408 0
vt 0.277735 0.767576 0
vt 0.283165 0.735675 0
vt 0.279622 0.703121 0
vt 0.275316 0.725414 0
vt 0.277735 0.767576 0
vt 0.283165 0.735675 0
vt 0.275316 0.725414 0
vt 0.289164 0.762607 0
vt 0.283165 0.735675 0
vt 0.277735 0.767576 0
vt 0.275316 0.725414 0
vt 0.279622 0.703121 0
vt 0.276354 0.676146 0
vt 0.27433 0.69418 0
vt 0.275316 0.725414 0
vt 0.276354 0.676146 0
vt 0.27433 0.69418 0
vt 0.276354 0.676146 0
vt 0.275378 0.649996 0
vt 0.279622 0.703121 0
vt 0.277534 0.664599 0
vt 0.276354 0.676146 0
vt 0.276354 0.676146 0
vt 0.277534 0.664599 0
vt 0.275847 0.605624 0
vt 0.275378 0.649996 0
vt 0.276354 0.676146 0
vt 0.275847 0.605624 0
vt 0.277534 0.664599 0
vt 0.275646 0.601562 0
vt 0.275847 0.605624 0
vt 0.275847 0.605624 0
vt 0.275646 0.601562 0
vt 0.275813 0.564358 0
vt 0.275646 0.601562 0
vt 0.273261 0.494144 0
vt 0.275813 0.564358 0
vt 0.275813 0.564358 0
vt 0.273261 0.494144 0
vt 0.275701 0.497028 0
vt 0.296462 0.409231 0
vt 0.291351 0.379527 0
vt 0.298701 0.352355 0
vt 0.298701 0.352355 0
vt 0.305406 0.381658 0
vt 0.296462 0.409231 0
vt 0.316924 0.413651 0
vt 0.311058 0.399208 0
vt 0.320993 0.38203 0
vt 0.327206 0.404824 0
vt 0.316924 0.413651 0
vt 0.320993 0.38203 0
vt 0.322034 0.429137 0
vt 0.316924 0.413651 0
vt 0.327206 0.404824 0
vt 0.30162 0.424722 0
vt 0.296462 0.409231 0
vt 0.305406 0.381658 0
vt 0.311058 0.399208 0
vt 0.30162 0.424722 0
vt 0.305406 0.381658 0
vt 0.308711 0.42416 0
vt 0.30162 0.424722 0
vt 0.311058 0.399208 0
vt 0.308711 0.42416 0
vt 0.311058 0.399208 0
vt 0.316924 0.413651 0
vt 0.286885 0.370309 0
vt 0.284197 0.438035 0
vt 0.281505 0.376636 0
vt 0.288673 0.458738 0
vt 0.284197 0.438035 0
vt 0.291351 0.379527 0
vt 0.296462 0.409231 0
vt 0.288673 0.458738 0
vt 0.291351 0.379527 0
vt 0.292174 0.447675 0
vt 0.288673 0.458738 0
vt 0.296462 0.409231 0
vt 0.284197 0.438035 0
vt 0.286885 0.370309 0
vt 0.291351 0.379527 0
vt 0.296261 0.447447 0
vt 0.292174 0.447675 0
vt 0.30162 0.424722 0
vt 0.304791 0.44035 0
vt 0.296261 0.447447 0
vt 0.30162 0.424722 0
vt 0.300231 0.450008 0
vt 0.296261 0.447447 0
vt 0.304791 0.44035 0
vt 0.304791 0.44035 0
vt 0.30162 0.424722 0
vt 0.308711 0.42416 0
vt 0.292174 0.447675 0
vt 0.296462 0.409231 0
vt 0.30162 0.424722 0
vt 0.316924 0.413651 0
vt 0.322034 0.429137 0
vt 0.311906 0.440454 0
vt 0.316924 0.413651 0
vt 0.311906 0.440454 0
vt 0.308711 0.42416 0
vt 0.304791 0.44035 0
vt 0.308711 0.42416 0
vt 0.311906 0.440454 0
vt 0.284197 0.438035 0
vt 0.281661 0.505784 0
vt 0.279082 0.517957 0
vt 0.281661 0.505784 0
vt 0.284197 0.438035 0
vt 0.288673 0.458738 0
vt 0.291578 0.48069 0
vt 0.292174 0.447675 0
vt 0.296261 0.447447 0
vt 0.300231 0.450008 0
vt 0.291578 0.48069 0
vt 0.296261 0.447447 0
vt 0.313352 0.479121 0
vt 0.305679 0.475006 0
vt 0.311906 0.440454 0
vt 0.305679 0.475006 0
vt 0.300231 0.450008 0
vt 0.304791 0.44035 0
vt 0.305679 0.475006 0
vt 0.304791 0.44035 0
vt 0.311906 0.440454 0
vt 0.275813 0.564358 0
vt 0.275701 0.497028 0
vt 0.279082 0.517957 0
vt 0.284 0.514747 0
vt 0.281661 0.505784 0
vt 0.288673 0.458738 0
vt 0.291578 0.48069 0
vt 0.284 0.514747 0
vt 0.288673 0.458738 0
vt 0.291578 0.48069 0
vt 0.288673 0.458738 0
vt 0.292174 0.447675 0
vt 0.297994 0.485931 0
vt 0.291415 0.502028 0
vt 0.291578 0.48069 0
vt 0.297994 0.485931 0
vt 0.291578 0.48069 0
vt 0.300231 0.450008 0
vt 0.303448 0.50984 0
vt 0.297994 0.485931 0
vt 0.305679 0.475006 0
vt 0.313352 0.479121 0
vt 0.303448 0.50984 0
vt 0.305679 0.475006 0
vt 0.312871 0.513184 0
vt 0.303448 0.50984 0
vt 0.313352 0.479121 0
vt 0.297994 0.485931 0
vt 0.300231 0.450008 0
vt 0.305679 0.475006 0
vt 0.282535 0.919777 0
vt 0.274555 0.919478 0
vt 0.276615 0.881734 0
vt 0.285996 0.826969 0
vt 0.282535 0.919777 0
vt 0.276615 0.881734 0
vt 0.293434 0.805939 0
vt 0.282535 0.919777 0
vt 0.285996 0.826969 0
vt 0.285996 0.826969 0
vt 0.276615 0.881734 0
vt 0.280238 0.828311 0
vt 0.301199 0.723668 0
vt 0.293434 0.805939 0
vt 0.294443 0.729705 0
vt 0.300289 0.66138 0
vt 0.301199 0.723668 0
vt 0.294443 0.729705 0
vt 0.306562 0.6819 0
vt 0.301199 0.723668 0
vt 0.300289 0.66138 0
vt 0.300289 0.66138 0
vt 0.294443 0.729705 0
vt 0.29108 0.666116 0
vt 0.285996 0.826969 0
vt 0.280238 0.828311 0
vt 0.285172 0.757506 0
vt 0.294443 0.729705 0
vt 0.285996 0.826969 0
vt 0.285172 0.757506 0
vt 0.293434 0.805939 0
vt 0.285996 0.826969 0
vt 0.294443 0.729705 0
vt 0.294443 0.729705 0
vt 0.285172 0.757506 0
vt 0.29108 0.666116 0
vt 0.311648 0.64669 0
vt 0.306562 0.6819 0
vt 0.304571 0.63287 0
vt 0.309564 0.6022 0
vt 0.311648 0.64669 0
vt 0.304571 0.63287 0
vt 0.309564 0.6022 0
vt 0.304571 0.63287 0
vt 0.299602 0.599976 0
vt 0.300289 0.66138 0
vt 0.29108 0.666116 0
vt 0.295888 0.622283 0
vt 0.304571 0.63287 0
vt 0.300289 0.66138 0
vt 0.295888 0.622283 0
vt 0.306562 0.6819 0
vt 0.300289 0.66138 0
vt 0.304571 0.63287 0
vt 0.304571 0.63287 0
vt 0.295888 0.622283 0
vt 0.299602 0.599976 0
vt 0.318295 0.598744 0
vt 0.311648 0.64669 0
vt 0.309564 0.6022 0
vt 0.3154 0.55825 0
vt 0.318295 0.598744 0
vt 0.309564 0.6022 0
vt 0.3154 0.55825 0
vt 0.309564 0.6022 0
vt 0.305907 0.559959 0
vt 0.309564 0.6022 0
vt 0.299602 0.599976 0
vt 0.305907 0.559959 0
vt 0.323738 0.556356 0
vt 0.318295 0.598744 0
vt 0.3154 0.55825 0
vt 0.321285 0.529879 0
vt 0.323738 0.556356 0
vt 0.3154 0.55825 0
vt 0.321285 0.529879 0
vt 0.3154 0.55825 0
vt 0.312871 0.513184 0
vt 0.3154 0.55825 0
vt 0.305907 0.559959 0
vt 0.30928 0.536488 0
vt 0.3154 0.55825 0
vt 0.30928 0.536488 0
vt 0.312871 0.513184 0
vt 0.288804 0.842906 0
vt 0.281392 0.871209 0
vt 0.288106 0.858999 0
vt 0.297732 0.793532 0
vt 0.288804 0.842906 0
vt 0.288106 0.858999 0
vt 0.297828 0.799362 0
vt 0.288804 0.842906 0
vt 0.297732 0.793532 0
vt 0.297732 0.793532 0
vt 0.288106 0.858999 0
vt 0.293434 0.805939 0
vt 0.277749 0.887596 0
vt 0.274555 0.919478 0
vt 0.282535 0.919777 0
vt 0.288106 0.858999 0
vt 0.277749 0.887596 0
vt 0.282535 0.919777 0
vt 0.281392 0.871209 0
vt 0.277749 0.887596 0
vt 0.288106 0.858999 0
vt 0.288106 0.858999 0
vt 0.282535 0.919777 0
vt 0.293434 0.805939 0
vt 0.305446 0.758532 0
vt 0.297828 0.799362 0
vt 0.304404 0.741196 0
vt 0.30956 0.705521 0
vt 0.305446 0.758532 0
vt 0.304404 0.741196 0
vt 0.3107 0.732764 0
vt 0.305446 0.758532 0
vt 0.30956 0.705521 0
vt 0.30956 0.705521 0
vt 0.304404 0.741196 0
vt 0.306562 0.6819 0
vt 0.297732 0.793532 0
vt 0.293434 0.805939 0
vt 0.301199 0.723668 0
vt 0.304404 0.741196 0
vt 0.297732 0.793532 0
vt 0.301199 0.723668 0
vt 0.297828 0.799362 0
vt 0.297732 0.793532 0
vt 0.304404 0.741196 0
vt 0.304404 0.741196 0
vt 0.301199 0.723668 0
vt 0.306562 0.6819 0
vt 0.316396 0.683425 0
vt 0.3107 0.732764 0
vt 0.315199 0.664835 0
vt 0.30956 0.705521 0
vt 0.306562 0.6819 0
vt 0.311648 0.64669 0
vt 0.315199 0.664835 0
vt 0.30956 0.705521 0
vt 0.311648 0.64669 0
vt 0.3107 0.732764 0
vt 0.30956 0.705521 0
vt 0.315199 0.664835 0
vt 0.320988 0.649143 0
vt 0.316396 0.683425 0
vt 0.321226 0.618679 0
vt 0.325633 0.624037 0
vt 0.320988 0.649143 0
vt 0.321226 0.618679 0
vt 0.315199 0.664835 0
vt 0.311648 0.64669 0
vt 0.318295 0.598744 0
vt 0.321226 0.618679 0
vt 0.315199 0.664835 0
vt 0.318295 0.598744 0
vt 0.316396 0.683425 0
vt 0.315199 0.664835 0
vt 0.321226 0.618679 0
vt 0.333889 0.577315 0
vt 0.325708 0.585037 0
vt 0.328741 0.564004 0
vt 0.328741 0.564004 0
vt 0.325708 0.585037 0
vt 0.323738 0.556356 0
vt 0.321226 0.618679 0
vt 0.318295 0.598744 0
vt 0.323738 0.556356 0
vt 0.325708 0.585037 0
vt 0.321226 0.618679 0
vt 0.323738 0.556356 0
vt 0.325633 0.624037 0
vt 0.321226 0.618679 0
vt 0.325708 0.585037 0
vt 0.285345 0.822318 0
vt 0.273709 0.809283 0
vt 0.28599 0.829263 0
vt 0.296972 0.802136 0
vt 0.285345 0.822318 0
vt 0.28599 0.829263 0
vt 0.29867 0.805513 0
vt 0.285345 0.822318 0
vt 0.296972 0.802136 0
vt 0.296972 0.802136 0
vt 0.28599 0.829263 0
vt 0.297828 0.799362 0
vt 0.277583 0.844587 0
vt 0.281392 0.871209 0
vt 0.288804 0.842906 0
vt 0.28599 0.829263 0
vt 0.277583 0.844587 0
vt 0.288804 0.842906 0
vt 0.273709 0.809283 0
vt 0.277583 0.844587 0
vt 0.28599 0.829263 0
vt 0.28599 0.829263 0
vt 0.288804 0.842906 0
vt 0.297828 0.799362 0
vt 0.30651 0.77867 0
vt 0.29867 0.805513 0
vt 0.30561 0.771002 0
vt 0.3107 0.732764 0
vt 0.30651 0.77867 0
vt 0.30561 0.771002 0
vt 0.311606 0.75186 0
vt 0.30651 0.77867 0
vt 0.3107 0.732764 0
vt 0.296972 0.802136 0
vt 0.297828 0.799362 0
vt 0.305446 0.758532 0
vt 0.30561 0.771002 0
vt 0.296972 0.802136 0
vt 0.305446 0.758532 0
vt 0.29867 0.805513 0
vt 0.296972 0.802136 0
vt 0.30561 0.771002 0
vt 0.30561 0.771002 0
vt 0.305446 0.758532 0
vt 0.3107 0.732764 0
vt 0.317352 0.714228 0
vt 0.311606 0.75186 0
vt 0.316932 0.700364 0
vt 0.316932 0.700364 0
vt 0.3107 0.732764 0
vt 0.316396 0.683425 0
vt 0.311606 0.75186 0
vt 0.3107 0.732764 0
vt 0.316932 0.700364 0
vt 0.323436 0.682481 0
vt 0.317352 0.714228 0
vt 0.323647 0.659641 0
vt 0.316932 0.700364 0
vt 0.316396 0.683425 0
vt 0.320988 0.649143 0
vt 0.323647 0.659641 0
vt 0.316932 0.700364 0
vt 0.320988 0.649143 0
vt 0.317352 0.714228 0
vt 0.316932 0.700364 0
vt 0.323647 0.659641 0
vt 0.323647 0.659641 0
vt 0.320988 0.649143 0
vt 0.325633 0.624037 0
vt 0.333889 0.577315 0
vt 0.335536 0.602445 0
vt 0.325633 0.624037 0
vt 0.325708 0.585037 0
vt 0.333889 0.577315 0
vt 0.325633 0.624037 0
vt 0.33827 0.622915 0
vt 0.323647 0.659641 0
vt 0.325633 0.624037 0
vt 0.323436 0.682481 0
vt 0.323647 0.659641 0
vt 0.33827 0.622915 0
vt 0.33827 0.622915 0
vt 0.325633 0.624037 0
vt 0.335536 0.602445 0
vt 0.291336 0.80874 0
vt 0.280494 0.810141 0
vt 0.287965 0.820763 0
vt 0.29867 0.805513 0
vt 0.291336 0.80874 0
vt 0.287965 0.820763 0
vt 0.301077 0.794209 0
vt 0.291336 0.80874 0
vt 0.29867 0.805513 0
vt 0.276437 0.818011 0
vt 0.273709 0.809283 0
vt 0.285345 0.822318 0
vt 0.287965 0.820763 0
vt 0.276437 0.818011 0
vt 0.285345 0.822318 0
vt 0.280494 0.810141 0
vt 0.276437 0.818011 0
vt 0.287965 0.820763 0
vt 0.287965 0.820763 0
vt 0.285345 0.822318 0
vt 0.29867 0.805513 0
vt 0.308695 0.772825 0
vt 0.301077 0.794209 0
vt 0.30651 0.77867 0
vt 0.311606 0.75186 0
vt 0.308695 0.772825 0
vt 0.30651 0.77867 0
vt 0.314235 0.750666 0
vt 0.308695 0.772825 0
vt 0.311606 0.75186 0
vt 0.301077 0.794209 0
vt 0.29867 0.805513 0
vt 0.30651 0.77867 0
vt 0.323644 0.708389 0
vt 0.314235 0.750666 0
vt 0.317744 0.725366 0
vt 0.317744 0.725366 0
vt 0.311606 0.75186 0
vt 0.317352 0.714228 0
vt 0.314235 0.750666 0
vt 0.311606 0.75186 0
vt 0.317744 0.725366 0
vt 0.317744 0.725366 0
vt 0.317352 0.714228 0
vt 0.323436 0.682481 0
vt 0.323644 0.708389 0
vt 0.317744 0.725366 0
vt 0.323436 0.682481 0
vt 0.33827 0.622915 0
vt 0.345823 0.612721 0
vt 0.323436 0.682481 0
vt 0.33072 0.689562 0
vt 0.323644 0.708389 0
vt 0.323436 0.682481 0
vt 0.33072 0.689562 0
vt 0.323436 0.682481 0
vt 0.345823 0.612721 0
vt 0.297475 0.773649 0
vt 0.289164 0.762607 0
vt 0.294457 0.790384 0
vt 0.303396 0.782424 0
vt 0.297475 0.773649 0
vt 0.294457 0.790384 0
vt 0.305695 0.772224 0
vt 0.297475 0.773649 0
vt 0.303396 0.782424 0
vt 0.303396 0.782424 0
vt 0.294457 0.790384 0
vt 0.301077 0.794209 0
vt 0.284365 0.790408 0
vt 0.280494 0.810141 0
vt 0.291336 0.80874 0
vt 0.294457 0.790384 0
vt 0.284365 0.790408 0
vt 0.291336 0.80874 0
vt 0.289164 0.762607 0
vt 0.284365 0.790408 0
vt 0.294457 0.790384 0
vt 0.294457 0.790384 0
vt 0.291336 0.80874 0
vt 0.301077 0.794209 0
vt 0.31365 0.760816 0
vt 0.305695 0.772224 0
vt 0.308695 0.772825 0
vt 0.315383 0.75128 0
vt 0.31365 0.760816 0
vt 0.308695 0.772825 0
vt 0.315383 0.75128 0
vt 0.308695 0.772825 0
vt 0.314235 0.750666 0
vt 0.303396 0.782424 0
vt 0.301077 0.794209 0
vt 0.308695 0.772825 0
vt 0.305695 0.772224 0
vt 0.303396 0.782424 0
vt 0.308695 0.772825 0
vt 0.315383 0.75128 0
vt 0.314235 0.750666 0
vt 0.323644 0.708389 0
vt 0.335336 0.690456 0
vt 0.31365 0.760816 0
vt 0.315383 0.75128 0
vt 0.33072 0.689562 0
vt 0.335336 0.690456 0
vt 0.315383 0.75128 0
vt 0.315383 0.75128 0
vt 0.323644 0.708389 0
vt 0.33072 0.689562 0
vt 0.342945 0.657558 0
vt 0.335336 0.690456 0
vt 0.33072 0.689562 0
vt 0.345823 0.612721 0
vt 0.342945 0.657558 0
vt 0.33072 0.689562 0
vt 0.367835 0.46696 0
vt 0.381551 0.380362 0
vt 0.373287 0.445643 0
vt 0.35812 0.525198 0
vt 0.348809 0.610418 0
vt 0.345823 0.612721 0
vt 0.348809 0.610418 0
vt 0.35386 0.593677 0
vt 0.342945 0.657558 0
vt 0.345823 0.612721 0
vt 0.348809 0.610418 0
vt 0.342945 0.657558 0
vt 0.35812 0.525198 0
vt 0.365615 0.447558 0
vt 0.367835 0.46696 0
vt 0.374219 0.373338 0
vt 0.367835 0.46696 0
vt 0.365615 0.447558 0
vt 0.374219 0.373338 0
vt 0.365615 0.447558 0
vt 0.360776 0.443129 0
vt 0.345823 0.612721 0
vt 0.33827 0.622915 0
vt 0.35812 0.525198 0
vt 0.354867 0.523265 0
vt 0.35812 0.525198 0
vt 0.33827 0.622915 0
vt 0.347833 0.521965 0
vt 0.354867 0.523265 0
vt 0.33827 0.622915 0
vt 0.347833 0.521965 0
vt 0.33827 0.622915 0
vt 0.335536 0.602445 0
vt 0.348371 0.439333 0
vt 0.365311 0.365555 0
vt 0.35451 0.444048 0
vt 0.35451 0.444048 0
vt 0.365311 0.365555 0
vt 0.360776 0.443129 0
vt 0.365311 0.365555 0
vt 0.374219 0.373338 0
vt 0.360776 0.443129 0
vt 0.347833 0.521965 0
vt 0.348371 0.439333 0
vt 0.35451 0.444048 0
vt 0.360776 0.443129 0
vt 0.347833 0.521965 0
vt 0.35451 0.444048 0
vt 0.348371 0.439333 0
vt 0.347833 0.521965 0
vt 0.331561 0.538178 0
vt 0.331561 0.538178 0
vt 0.347833 0.521965 0
vt 0.333889 0.577315 0
vt 0.333889 0.577315 0
vt 0.347833 0.521965 0
vt 0.335536 0.602445 0
vt 0.331561 0.538178 0
vt 0.333889 0.577315 0
vt 0.328741 0.564004 0
vt 0.326186 0.490434 0
vt 0.335807 0.423171 0
vt 0.330461 0.512769 0
vt 0.330461 0.512769 0
vt 0.342373 0.433929 0
vt 0.348371 0.439333 0
vt 0.335807 0.423171 0
vt 0.342373 0.433929 0
vt 0.330461 0.512769 0
vt 0.330461 0.512769 0
vt 0.348371 0.439333 0
vt 0.331561 0.538178 0
vt 0.328741 0.564004 0
vt 0.323738 0.556356 0
vt 0.331561 0.538178 0
vt 0.321285 0.529879 0
vt 0.330461 0.512769 0
vt 0.331561 0.538178 0
vt 0.326186 0.490434 0
vt 0.330461 0.512769 0
vt 0.321285 0.529879 0
vt 0.321285 0.529879 0
vt 0.331561 0.538178 0
vt 0.323738 0.556356 0
vt 0.327921 0.44088 0
vt 0.327206 0.404824 0
vt 0.335807 0.423171 0
vt 0.322034 0.429137 0
vt 0.327206 0.404824 0
vt 0.327921 0.44088 0
vt 0.320034 0.473048 0
vt 0.322034 0.429137 0
vt 0.327921 0.44088 0
vt 0.311906 0.440454 0
vt 0.322034 0.429137 0
vt 0.320034 0.473048 0
vt 0.320034 0.473048 0
vt 0.327921 0.44088 0
vt 0.326186 0.490434 0
vt 0.327921 0.44088 0
vt 0.335807 0.423171 0
vt 0.326186 0.490434 0
vt 0.311906 0.440454 0
vt 0.320034 0.473048 0
vt 0.313352 0.479121 0
vt 0.321285 0.529879 0
vt 0.312871 0.513184 0
vt 0.319484 0.507188 0
vt 0.321285 0.529879 0
vt 0.319484 0.507188 0
vt 0.326186 0.490434 0
vt 0.320034 0.473048 0
vt 0.326186 0.490434 0
vt 0.319484 0.507188 0
vt 0.313352 0.479121 0
vt 0.320034 0.473048 0
vt 0.319484 0.507188 0
vt 0.313352 0.479121 0
vt 0.319484 0.507188 0
vt 0.312871 0.513184 0
vt 0.365615 0.447558 0
vt 0.35812 0.525198 0
vt 0.354867 0.523265 0
vt 0.360776 0.443129 0
vt 0.365615 0.447558 0
vt 0.354867 0.523265 0
vt 0.360776 0.443129 0
vt 0.354867 0.523265 0
vt 0.347833 0.521965 0
vt 0.348809 0.610418 0
vt 0.35812 0.525198 0
vt 0.367835 0.46696 0
vt 0.35386 0.593677 0
vt 0.348809 0.610418 0
vt 0.367835 0.46696 0
vt 0.35386 0.593677 0
vt 0.367835 0.46696 0
vt 0.373287 0.445643 0
vt 0.377673 0.629156 0
vt 0.373647 0.657223 0
vt 0.365494 0.61428 0
vt 0.377673 0.629156 0
vt 0.365494 0.61428 0
vt 0.380345 0.604747 0
vt 0.38444 0.582105 0
vt 0.390764 0.612411 0
vt 0.380345 0.604747 0
vt 0.370629 0.555981 0
vt 0.38444 0.582105 0
vt 0.380345 0.604747 0
vt 0.370629 0.555981 0
vt 0.380345 0.604747 0
vt 0.365494 0.61428 0
vt 0.370629 0.555981 0
vt 0.365494 0.61428 0
vt 0.355472 0.600136 0
vt 0.370629 0.555981 0
vt 0.355472 0.600136 0
vt 0.36115 0.53524 0
vt 0.38444 0.582105 0
vt 0.370629 0.555981 0
vt 0.384723 0.555805 0
vt 0.389545 0.554617 0
vt 0.396689 0.578671 0
vt 0.393342 0.591851 0
vt 0.384723 0.555805 0
vt 0.389545 0.554617 0
vt 0.393342 0.591851 0
vt 0.393342 0.591851 0
vt 0.390764 0.612411 0
vt 0.38444 0.582105 0
vt 0.384723 0.555805 0
vt 0.393342 0.591851 0
vt 0.38444 0.582105 0
vt 0.366547 0.478886 0
vt 0.383656 0.513879 0
vt 0.389545 0.554617 0
vt 0.370629 0.555981 0
vt 0.36115 0.53524 0
vt 0.357075 0.493317 0
vt 0.384723 0.555805 0
vt 0.370629 0.555981 0
vt 0.357075 0.493317 0
vt 0.384723 0.555805 0
vt 0.357075 0.493317 0
vt 0.366886 0.49751 0
vt 0.384723 0.555805 0
vt 0.366547 0.478886 0
vt 0.389545 0.554617 0
vt 0.366886 0.49751 0
vt 0.366547 0.478886 0
vt 0.384723 0.555805 0
vt 0.389026 0.657813 0
vt 0.373647 0.657223 0
vt 0.377673 0.629156 0
vt 0.389026 0.657813 0
vt 0.377673 0.629156 0
vt 0.380345 0.604747 0
vt 0.390764 0.612411 0
vt 0.389026 0.657813 0
vt 0.380345 0.604747 0
vt 0.389026 0.657813 0
vt 0.394518 0.75187 0
vt 0.382543 0.699189 0
vt 0.382543 0.699189 0
vt 0.373647 0.657223 0
vt 0.389026 0.657813 0
vt 0.401653 0.648806 0
vt 0.393342 0.591851 0
vt 0.402307 0.61896 0
vt 0.402307 0.61896 0
vt 0.393342 0.591851 0
vt 0.396689 0.578671 0
vt 0.401653 0.648806 0
vt 0.390764 0.612411 0
vt 0.393342 0.591851 0
vt 0.392755 0.551194 0
vt 0.397049 0.561165 0
vt 0.398857 0.575981 0
vt 0.392755 0.551194 0
vt 0.396689 0.578671 0
vt 0.389545 0.554617 0
vt 0.398857 0.575981 0
vt 0.396689 0.578671 0
vt 0.392755 0.551194 0
vt 0.389545 0.554617 0
vt 0.383656 0.513879 0
vt 0.392755 0.551194 0
vt 0.389607 0.528196 0
vt 0.397049 0.561165 0
vt 0.392755 0.551194 0
vt 0.389607 0.528196 0
vt 0.392755 0.551194 0
vt 0.383656 0.513879 0
vt 0.383656 0.513879 0
vt 0.366547 0.478886 0
vt 0.369983 0.467529 0
vt 0.369983 0.467529 0
vt 0.375748 0.478653 0
vt 0.383656 0.513879 0
vt 0.383656 0.513879 0
vt 0.375748 0.478653 0
vt 0.389607 0.528196 0
vt 0.407452 0.619415 0
vt 0.415345 0.664092 0
vt 0.412035 0.673773 0
vt 0.398857 0.575981 0
vt 0.397049 0.561165 0
vt 0.405878 0.604792 0
vt 0.415345 0.664092 0
vt 0.407452 0.619415 0
vt 0.405878 0.604792 0
vt 0.402307 0.61896 0
vt 0.396689 0.578671 0
vt 0.407452 0.619415 0
vt 0.412035 0.673773 0
vt 0.402307 0.61896 0
vt 0.407452 0.619415 0
vt 0.369637 0.711934 0
vt 0.373647 0.657223 0
vt 0.382543 0.699189 0
vt 0.351453 0.565652 0
vt 0.355472 0.600136 0
vt 0.346764 0.587167 0
vt 0.337303 0.655339 0
vt 0.343645 0.680624 0
vt 0.335191 0.686366 0
vt 0.337303 0.655339 0
vt 0.335191 0.686366 0
vt 0.327659 0.675594 0
vt 0.343645 0.680624 0
vt 0.329974 0.75653 0
vt 0.335191 0.686366 0
vt 0.335191 0.686366 0
vt 0.329974 0.75653 0
vt 0.327659 0.675594 0
vt 0.469999 0.39624 0
vt 0.459654 0.339873 0
vt 0.472546 0.376138 0
vt 0.472546 0.376138 0
vt 0.465653 0.330703 0
vt 0.468215 0.320108 0
vt 0.459654 0.339873 0
vt 0.465653 0.330703 0
vt 0.472546 0.376138 0
vt 0.472546 0.376138 0
vt 0.468215 0.320108 0
vt 0.485103 0.382774 0
vt 0.457418 0.376659 0
vt 0.459654 0.339873 0
vt 0.469999 0.39624 0
vt 0.466285 0.420475 0
vt 0.457418 0.376659 0
vt 0.469999 0.39624 0
vt 0.456981 0.41208 0
vt 0.457418 0.376659 0
vt 0.466285 0.420475 0
vt 0.454799 0.465195 0
vt 0.456981 0.41208 0
vt 0.466285 0.420475 0
vt 0.461595 0.4795 0
vt 0.454799 0.465195 0
vt 0.466285 0.420475 0
vt 0.461595 0.4795 0
vt 0.466285 0.420475 0
vt 0.470097 0.46117 0
vt 0.452233 0.502295 0
vt 0.454799 0.465195 0
vt 0.461595 0.4795 0
vt 0.448256 0.557165 0
vt 0.452233 0.502295 0
vt 0.459272 0.537484 0
vt 0.485474 0.436411 0
vt 0.469999 0.39624 0
vt 0.4878 0.411073 0
vt 0.5031 0.431725 0
vt 0.485474 0.436411 0
vt 0.4878 0.411073 0
vt 0.494699 0.474822 0
vt 0.485474 0.436411 0
vt 0.5031 0.431725 0
vt 0.5031 0.431725 0
vt 0.4878 0.411073 0
vt 0.504563 0.415907 0
vt 0.4878 0.411073 0
vt 0.472546 0.376138 0
vt 0.485103 0.382774 0
vt 0.469999 0.39624 0
vt 0.472546 0.376138 0
vt 0.4878 0.411073 0
vt 0.4878 0.411073 0
vt 0.485103 0.382774 0
vt 0.504563 0.415907 0
vt 0.470097 0.46117 0
vt 0.466285 0.420475 0
vt 0.485474 0.436411 0
vt 0.494699 0.474822 0
vt 0.470097 0.46117 0
vt 0.485474 0.436411 0
vt 0.466285 0.420475 0
vt 0.469999 0.39624 0
vt 0.485474 0.436411 0
vt 0.474413 0.508361 0
vt 0.470097 0.46117 0
vt 0.494699 0.474822 0
vt 0.474413 0.508361 0
vt 0.461595 0.4795 0
vt 0.470097 0.46117 0
vt 0.459272 0.537484 0
vt 0.452233 0.502295 0
vt 0.461595 0.4795 0
vt 0.551923 0.500111 0
vt 0.494699 0.474822 0
vt 0.5031 0.431725 0
vt 0.551923 0.500111 0
vt 0.5031 0.431725 0
vt 0.504563 0.415907 0
vt 0.5439 0.514956 0
vt 0.501953 0.508119 0
vt 0.494699 0.474822 0
vt 0.474413 0.508361 0
vt 0.494699 0.474822 0
vt 0.501953 0.508119 0
vt 0.501953 0.508119 0
vt 0.489705 0.552039 0
vt 0.474413 0.508361 0
vt 0.459272 0.537484 0
vt 0.461595 0.4795 0
vt 0.474413 0.508361 0
vt 0.575038 0.527088 0
vt 0.551923 0.500111 0
vt 0.564297 0.503667 0
vt 0.551923 0.500111 0
vt 0.504563 0.415907 0
vt 0.564297 0.503667 0
vt 0.575038 0.527088 0
vt 0.5439 0.514956 0
vt 0.551923 0.500111 0
vt 0.494699 0.474822 0
vt 0.551923 0.500111 0
vt 0.5439 0.514956 0
vt 0.489705 0.552039 0
vt 0.501953 0.508119 0
vt 0.499751 0.557518 0
vt 0.615141 0.57889 0
vt 0.596389 0.553606 0
vt 0.60514 0.556835 0
vt 0.575038 0.527088 0
vt 0.564297 0.503667 0
vt 0.60514 0.556835 0
vt 0.596389 0.553606 0
vt 0.575038 0.527088 0
vt 0.60514 0.556835 0
vt 0.615141 0.57889 0
vt 0.589927 0.554175 0
vt 0.596389 0.553606 0
vt 0.596389 0.553606 0
vt 0.589927 0.554175 0
vt 0.575038 0.527088 0
vt 0.5439 0.514956 0
vt 0.575038 0.527088 0
vt 0.589927 0.554175 0
vt 0.589927 0.554175 0
vt 0.620068 0.606339 0
vt 0.5439 0.514956 0
vt 0.5439 0.514956 0
vt 0.54424 0.545575 0
vt 0.501953 0.508119 0
vt 0.499751 0.557518 0
vt 0.501953 0.508119 0
vt 0.54424 0.545575 0
vt 0.615141 0.57889 0
vt 0.60514 0.556835 0
vt 0.631539 0.609001 0
vt 0.625861 0.602493 0
vt 0.615141 0.57889 0
vt 0.631539 0.609001 0
vt 0.589927 0.554175 0
vt 0.615141 0.57889 0
vt 0.625861 0.602493 0
vt 0.620068 0.606339 0
vt 0.589927 0.554175 0
vt 0.625861 0.602493 0
vt 0.5439 0.514956 0
vt 0.620068 0.606339 0
vt 0.610978 0.618871 0
vt 0.54424 0.545575 0
vt 0.5439 0.514956 0
vt 0.610978 0.618871 0
vt 0.471447 0.660569 0
vt 0.461555 0.671853 0
vt 0.469084 0.655929 0
vt 0.479834 0.649052 0
vt 0.471447 0.660569 0
vt 0.469084 0.655929 0
vt 0.484417 0.65575 0
vt 0.471447 0.660569 0
vt 0.479834 0.649052 0
vt 0.466146 0.653366 0
vt 0.479834 0.649052 0
vt 0.469084 0.655929 0
vt 0.459413 0.668188 0
vt 0.466146 0.653366 0
vt 0.469084 0.655929 0
vt 0.45538 0.669014 0
vt 0.466146 0.653366 0
vt 0.459413 0.668188 0
vt 0.459413 0.668188 0
vt 0.469084 0.655929 0
vt 0.461555 0.671853 0
vt 0.466146 0.653366 0
vt 0.45538 0.669014 0
vt 0.462982 0.646506 0
vt 0.475481 0.641621 0
vt 0.466146 0.653366 0
vt 0.462982 0.646506 0
vt 0.479834 0.649052 0
vt 0.466146 0.653366 0
vt 0.475481 0.641621 0
vt 0.475481 0.641621 0
vt 0.462982 0.646506 0
vt 0.471288 0.628382 0
vt 0.45538 0.669014 0
vt 0.449479 0.624077 0
vt 0.462982 0.646506 0
vt 0.462982 0.646506 0
vt 0.455745 0.606114 0
vt 0.471288 0.628382 0
vt 0.449479 0.624077 0
vt 0.455745 0.606114 0
vt 0.462982 0.646506 0
vt 0.449479 0.624077 0
vt 0.448256 0.557165 0
vt 0.456421 0.57516 0
vt 0.455745 0.606114 0
vt 0.449479 0.624077 0
vt 0.456421 0.57516 0
vt 0.455745 0.606114 0
vt 0.456421 0.57516 0
vt 0.471288 0.628382 0
vt 0.448256 0.557165 0
vt 0.459272 0.537484 0
vt 0.456421 0.57516 0
vt 0.507214 0.655145 0
vt 0.484417 0.65575 0
vt 0.493272 0.649792 0
vt 0.511034 0.639516 0
vt 0.507214 0.655145 0
vt 0.493272 0.649792 0
vt 0.479834 0.649052 0
vt 0.493272 0.649792 0
vt 0.484417 0.65575 0
vt 0.493272 0.649792 0
vt 0.479834 0.649052 0
vt 0.48637 0.635634 0
vt 0.505224 0.620477 0
vt 0.493272 0.649792 0
vt 0.48637 0.635634 0
vt 0.511034 0.639516 0
vt 0.493272 0.649792 0
vt 0.505224 0.620477 0
vt 0.471288 0.628382 0
vt 0.48637 0.635634 0
vt 0.475481 0.641621 0
vt 0.475481 0.641621 0
vt 0.48637 0.635634 0
vt 0.479834 0.649052 0
vt 0.48637 0.635634 0
vt 0.471288 0.628382 0
vt 0.491988 0.614599 0
vt 0.505224 0.620477 0
vt 0.48637 0.635634 0
vt 0.491988 0.614599 0
vt 0.480666 0.576794 0
vt 0.471288 0.628382 0
vt 0.469328 0.579487 0
vt 0.491988 0.614599 0
vt 0.471288 0.628382 0
vt 0.480666 0.576794 0
vt 0.456421 0.57516 0
vt 0.469328 0.579487 0
vt 0.471288 0.628382 0
vt 0.469328 0.579487 0
vt 0.456421 0.57516 0
vt 0.459272 0.537484 0
vt 0.511034 0.639516 0
vt 0.538668 0.630654 0
vt 0.507214 0.655145 0
vt 0.507214 0.655145 0
vt 0.538668 0.630654 0
vt 0.543032 0.646806 0
vt 0.538668 0.630654 0
vt 0.511034 0.639516 0
vt 0.52049 0.617906 0
vt 0.538668 0.630654 0
vt 0.52049 0.617906 0
vt 0.545011 0.60292 0
vt 0.505224 0.620477 0
vt 0.52049 0.617906 0
vt 0.511034 0.639516 0
vt 0.52049 0.617906 0
vt 0.505224 0.620477 0
vt 0.514043 0.60339 0
vt 0.545011 0.60292 0
vt 0.52049 0.617906 0
vt 0.514043 0.60339 0
vt 0.491988 0.614599 0
vt 0.514043 0.60339 0
vt 0.505224 0.620477 0
vt 0.514043 0.60339 0
vt 0.491988 0.614599 0
vt 0.511053 0.577171 0
vt 0.492286 0.579389 0
vt 0.491988 0.614599 0
vt 0.480666 0.576794 0
vt 0.511053 0.577171 0
vt 0.491988 0.614599 0
vt 0.492286 0.579389 0
vt 0.480666 0.576794 0
vt 0.469328 0.579487 0
vt 0.477435 0.553989 0
vt 0.459272 0.537484 0
vt 0.477435 0.553989 0
vt 0.469328 0.579487 0
vt 0.474413 0.508361 0
vt 0.489705 0.552039 0
vt 0.477435 0.553989 0
vt 0.459272 0.537484 0
vt 0.474413 0.508361 0
vt 0.477435 0.553989 0
vt 0.543032 0.646806 0
vt 0.602435 0.643797 0
vt 0.609614 0.65382 0
vt 0.602435 0.643797 0
vt 0.543032 0.646806 0
vt 0.538668 0.630654 0
vt 0.602435 0.643797 0
vt 0.538668 0.630654 0
vt 0.545011 0.60292 0
vt 0.514043 0.60339 0
vt 0.547518 0.58018 0
vt 0.545011 0.60292 0
vt 0.511053 0.577171 0
vt 0.547518 0.58018 0
vt 0.514043 0.60339 0
vt 0.511053 0.577171 0
vt 0.492286 0.579389 0
vt 0.499751 0.557518 0
vt 0.489705 0.552039 0
vt 0.499751 0.557518 0
vt 0.492286 0.579389 0
vt 0.480666 0.576794 0
vt 0.489705 0.552039 0
vt 0.492286 0.579389 0
vt 0.477435 0.553989 0
vt 0.489705 0.552039 0
vt 0.480666 0.576794 0
vt 0.545011 0.60292 0
vt 0.610978 0.618871 0
vt 0.602435 0.643797 0
vt 0.54424 0.545575 0
vt 0.610978 0.618871 0
vt 0.547518 0.58018 0
vt 0.547518 0.58018 0
vt 0.511053 0.577171 0
vt 0.54424 0.545575 0
vt 0.499751 0.557518 0
vt 0.54424 0.545575 0
vt 0.511053 0.577171 0
vt 0.632789 0.625557 0
vt 0.631539 0.609001 0
vt 0.635066 0.638209 0
vt 0.632789 0.625557 0
vt 0.635066 0.638209 0
vt 0.633341 0.651668 0
vt 0.338365 0.723924 0
vt 0.335737 0.627185 0
vt 0.355764 0.638658 0
vt 0.398477 0.734628 0
vt 0.384924 0.730227 0
vt 0.391769 0.652541 0
vt 0.404681 0.664375 0
vt 0.398477 0.734628 0
vt 0.391769 0.652541 0
vt 0.404681 0.664375 0
vt 0.391769 0.652541 0
vt 0.402915 0.601057 0
vt 0.384924 0.730227 0
vt 0.375812 0.630234 0
vt 0.391769 0.652541 0
vt 0.449479 0.624077 0
vt 0.45538 0.669014 0
vt 0.441004 0.653641 0
vt 0.441004 0.653641 0
vt 0.45538 0.669014 0
vt 0.440068 0.720675 0
vt 0.441004 0.653641 0
vt 0.440068 0.720675 0
vt 0.429799 0.692651 0
vt 0.441004 0.653641 0
vt 0.429799 0.692651 0
vt 0.423303 0.624215 0
vt 0.415946 0.700131 0
vt 0.423303 0.624215 0
vt 0.429799 0.692651 0
vt 0.423797 0.75811 0
vt 0.415946 0.700131 0
vt 0.429799 0.692651 0
vt 0.440068 0.720675 0
vt 0.423797 0.75811 0
vt 0.429799 0.692651 0
vt 0.398477 0.734628 0
vt 0.404681 0.664375 0
vt 0.415946 0.700131 0
vt 0.423303 0.624215 0
vt 0.415946 0.700131 0
vt 0.404681 0.664375 0
vt 0.423303 0.624215 0
vt 0.404681 0.664375 0
vt 0.402915 0.601057 0
vt 0.407514 0.482624 0
vt 0.414981 0.542514 0
vt 0.402793 0.520864 0
vt 0.402793 0.520864 0
vt 0.414981 0.542514 0
vt 0.402915 0.601057 0
vt 0.430185 0.506254 0
vt 0.423303 0.624215 0
vt 0.414981 0.542514 0
vt 0.414981 0.542514 0
vt 0.423303 0.624215 0
vt 0.402915 0.601057 0
vt 0.439417 0.384756 0
vt 0.440376 0.473793 0
vt 0.430185 0.506254 0
vt 0.452233 0.502295 0
vt 0.448256 0.557165 0
vt 0.438636 0.550464 0
vt 0.440376 0.473793 0
vt 0.452233 0.502295 0
vt 0.438636 0.550464 0
vt 0.440376 0.473793 0
vt 0.438636 0.550464 0
vt 0.430185 0.506254 0
vt 0.407514 0.482624 0
vt 0.41876 0.358777 0
vt 0.421656 0.464518 0
vt 0.414981 0.542514 0
vt 0.407514 0.482624 0
vt 0.421656 0.464518 0
vt 0.414981 0.542514 0
vt 0.421656 0.464518 0
vt 0.430185 0.506254 0
vt 0.439417 0.384756 0
vt 0.430185 0.506254 0
vt 0.421656 0.464518 0
vt 0.454799 0.465195 0
vt 0.452233 0.502295 0
vt 0.440376 0.473793 0
vt 0.421656 0.464518 0
vt 0.41876 0.358777 0
vt 0.429833 0.383251 0
vt 0.421656 0.464518 0
vt 0.429833 0.383251 0
vt 0.439417 0.384756 0
vt 0.438675 0.28864 0
vt 0.456981 0.41208 0
vt 0.439417 0.384756 0
vt 0.456981 0.41208 0
vt 0.454799 0.465195 0
vt 0.440376 0.473793 0
vt 0.456981 0.41208 0
vt 0.440376 0.473793 0
vt 0.439417 0.384756 0
vt 0.417547 0.276324 0
vt 0.428423 0.291419 0
vt 0.41876 0.358777 0
vt 0.428423 0.291419 0
vt 0.439417 0.384756 0
vt 0.429833 0.383251 0
vt 0.438675 0.28864 0
vt 0.439417 0.384756 0
vt 0.428423 0.291419 0
vt 0.428423 0.291419 0
vt 0.429833 0.383251 0
vt 0.41876 0.358777 0
vt 0.447499 0.275301 0
vt 0.459654 0.339873 0
vt 0.457418 0.376659 0
vt 0.438675 0.28864 0
vt 0.447499 0.275301 0
vt 0.457418 0.376659 0
vt 0.457418 0.376659 0
vt 0.456981 0.41208 0
vt 0.438675 0.28864 0
vt 0.462108 0.257696 0
vt 0.468215 0.320108 0
vt 0.461899 0.27364 0
vt 0.462108 0.257696 0
vt 0.461899 0.27364 0
vt 0.453971 0.181033 0
vt 0.43301 0.210235 0
vt 0.442825 0.165539 0
vt 0.447499 0.275301 0
vt 0.43301 0.210235 0
vt 0.447499 0.275301 0
vt 0.438675 0.28864 0
vt 0.442825 0.165539 0
vt 0.459654 0.339873 0
vt 0.447499 0.275301 0
vt 0.270007 0.18302 0
vt 0.264501 0.134995 0
vt 0.270295 0.147872 0
vt 0.27479 0.214578 0
vt 0.270007 0.18302 0
vt 0.270295 0.147872 0
vt 0.267012 0.0981141 0
vt 0.269161 0.0938247 0
vt 0.270295 0.147872 0
vt 0.264501 0.134995 0
vt 0.267012 0.0981141 0
vt 0.270295 0.147872 0
vt 0.280939 0.927924 0
vt 0.282933 0.900048 0
vt 0.290267 0.890689 0
vt 0.28455 0.939714 0
vt 0.280939 0.927924 0
vt 0.290267 0.890689 0
vt 0.242287 0.17488 0
vt 0.240052 0.153097 0
vt 0.246236 0.162934 0
vt 0.248743 0.193858 0
vt 0.242287 0.17488 0
vt 0.246236 0.162934 0
vt 0.243246 0.187677 0
vt 0.242287 0.17488 0
vt 0.248743 0.193858 0
vt 0.248743 0.193858 0
vt 0.246236 0.162934 0
vt 0.251987 0.152658 0
vt 0.246236 0.162934 0
vt 0.240624 0.1223 0
vt 0.246142 0.100884 0
vt 0.240052 0.153097 0
vt 0.240624 0.1223 0
vt 0.246236 0.162934 0
vt 0.246236 0.162934 0
vt 0.246142 0.100884 0
vt 0.251987 0.152658 0
vt 0.246142 0.100884 0
vt 0.26553 0.0418565 0
vt 0.251987 0.152658 0
vt 0.246142 0.100884 0
vt 0.252188 0.0538337 0
vt 0.26553 0.0418565 0
vt 0.252188 0.0538337 0
vt 0.275138 0.995458 0
vt 0.26553 0.0418565 0
vt 0.261168 0.0103332 0
vt 0.275138 0.995458 0
vt 0.252188 0.0538337 0
vt 0.261168 0.0103332 0
vt 0.27991 0.958417 0
vt 0.275138 0.995458 0
vt 0.27991 0.958417 0
vt 0.288688 0.968969 0
vt 0.275138 0.995458 0
vt 0.27991 0.958417 0
vt 0.28455 0.939714 0
vt 0.288688 0.968969 0
vt 0.28455 0.939714 0
vt 0.294252 0.961061 0
vt 0.288688 0.968969 0
vt 0.251987 0.152658 0
vt 0.271017 0.110218 0
vt 0.257794 0.223642 0
vt 0.251987 0.152658 0
vt 0.277394 0.0427948 0
vt 0.271017 0.110218 0
vt 0.26553 0.0418565 0
vt 0.277394 0.0427948 0
vt 0.251987 0.152658 0
vt 0.26553 0.0418565 0
vt 0.275138 0.995458 0
vt 0.277394 0.0427948 0
vt 0.275138 0.995458 0
vt 0.297755 0.000961721 0
vt 0.277394 0.0427948 0
vt 0.288688 0.968969 0
vt 0.294252 0.961061 0
vt 0.297755 0.000961721 0
vt 0.275138 0.995458 0
vt 0.288688 0.968969 0
vt 0.297755 0.000961721 0
vt 0.30214 0.991246 0
vt 0.305942 0.0236707 0
vt 0.297755 0.000961721 0
vt 0.294252 0.961061 0
vt 0.30214 0.991246 0
vt 0.297755 0.000961721 0
vt 0.271017 0.110218 0
vt 0.277394 0.0427948 0
vt 0.284645 0.0579326 0
vt 0.299159 0.0260181 0
vt 0.299638 0.117914 0
vt 0.294573 0.114518 0
vt 0.284645 0.0579326 0
vt 0.299159 0.0260181 0
vt 0.294573 0.114518 0
vt 0.280601 0.227941 0
vt 0.286033 0.216623 0
vt 0.287588 0.222427 0
vt 0.282331 0.22635 0
vt 0.280601 0.227941 0
vt 0.287588 0.222427 0
vt 0.275684 0.233929 0
vt 0.280601 0.227941 0
vt 0.282331 0.22635 0
vt 0.282331 0.22635 0
vt 0.287588 0.222427 0
vt 0.289635 0.232413 0
vt 0.297065 0.221796 0
vt 0.289635 0.232413 0
vt 0.287588 0.222427 0
vt 0.293313 0.216031 0
vt 0.297065 0.221796 0
vt 0.287588 0.222427 0
vt 0.293313 0.216031 0
vt 0.287588 0.222427 0
vt 0.286033 0.216623 0
vt 0.296077 0.187836 0
vt 0.3069 0.211044 0
vt 0.295701 0.2075 0
vt 0.28859 0.202081 0
vt 0.296077 0.187836 0
vt 0.295701 0.2075 0
vt 0.28859 0.202081 0
vt 0.295701 0.2075 0
vt 0.286033 0.216623 0
vt 0.30072 0.217327 0
vt 0.297065 0.221796 0
vt 0.293313 0.216031 0
vt 0.295701 0.2075 0
vt 0.30072 0.217327 0
vt 0.293313 0.216031 0
vt 0.3069 0.211044 0
vt 0.30072 0.217327 0
vt 0.295701 0.2075 0
vt 0.295701 0.2075 0
vt 0.293313 0.216031 0
vt 0.286033 0.216623 0
vt 0.301831 0.174694 0
vt 0.3069 0.211044 0
vt 0.296077 0.187836 0
vt 0.294739 0.157617 0
vt 0.301831 0.174694 0
vt 0.296077 0.187836 0
vt 0.299638 0.117914 0
vt 0.305811 0.136273 0
vt 0.294739 0.157617 0
vt 0.312149 0.149524 0
vt 0.3069 0.211044 0
vt 0.301831 0.174694 0
vt 0.305811 0.136273 0
vt 0.312149 0.149524 0
vt 0.301831 0.174694 0
vt 0.305811 0.136273 0
vt 0.301831 0.174694 0
vt 0.294739 0.157617 0
vt 0.314596 0.0841488 0
vt 0.312149 0.149524 0
vt 0.305811 0.136273 0
vt 0.308196 0.0960529 0
vt 0.314596 0.0841488 0
vt 0.305811 0.136273 0
vt 0.308196 0.0960529 0
vt 0.305811 0.136273 0
vt 0.299638 0.117914 0
vt 0.266865 0.252427 0
vt 0.270791 0.246621 0
vt 0.270165 0.247143 0
vt 0.26344 0.252802 0
vt 0.266865 0.252427 0
vt 0.270165 0.247143 0
vt 0.280601 0.227941 0
vt 0.275684 0.233929 0
vt 0.270165 0.247143 0
vt 0.270791 0.246621 0
vt 0.280601 0.227941 0
vt 0.270165 0.247143 0
vt 0.286033 0.216623 0
vt 0.280601 0.227941 0
vt 0.270791 0.246621 0
vt 0.270791 0.246621 0
vt 0.273777 0.235466 0
vt 0.286033 0.216623 0
vt 0.28859 0.202081 0
vt 0.286033 0.216623 0
vt 0.273777 0.235466 0
vt 0.273777 0.235466 0
vt 0.280449 0.200056 0
vt 0.28859 0.202081 0
vt 0.296077 0.187836 0
vt 0.28859 0.202081 0
vt 0.280449 0.200056 0
vt 0.294739 0.157617 0
vt 0.296077 0.187836 0
vt 0.280449 0.200056 0
vt 0.299638 0.117914 0
vt 0.294739 0.157617 0
vt 0.285936 0.141007 0
vt 0.294573 0.114518 0
vt 0.299638 0.117914 0
vt 0.285936 0.141007 0
vt 0.285936 0.141007 0
vt 0.284645 0.0579326 0
vt 0.294573 0.114518 0
vt 0.254243 0.241506 0
vt 0.257613 0.242925 0
vt 0.261467 0.251731 0
vt 0.256181 0.245549 0
vt 0.254243 0.241506 0
vt 0.261467 0.251731 0
vt 0.256181 0.245549 0
vt 0.261467 0.251731 0
vt 0.26344 0.252802 0
vt 0.266865 0.252427 0
vt 0.26344 0.252802 0
vt 0.261467 0.251731 0
vt 0.270791 0.246621 0
vt 0.266865 0.252427 0
vt 0.261467 0.251731 0
vt 0.257613 0.242925 0
vt 0.262537 0.237258 0
vt 0.267032 0.243357 0
vt 0.261467 0.251731 0
vt 0.257613 0.242925 0
vt 0.267032 0.243357 0
vt 0.261467 0.251731 0
vt 0.267032 0.243357 0
vt 0.270791 0.246621 0
vt 0.273777 0.235466 0
vt 0.270791 0.246621 0
vt 0.267032 0.243357 0
vt 0.267032 0.243357 0
vt 0.262537 0.237258 0
vt 0.269285 0.223242 0
vt 0.267032 0.243357 0
vt 0.269285 0.223242 0
vt 0.273777 0.235466 0
vt 0.280449 0.200056 0
vt 0.273777 0.235466 0
vt 0.269285 0.223242 0
vt 0.294739 0.157617 0
vt 0.280449 0.200056 0
vt 0.269285 0.223242 0
vt 0.269285 0.223242 0
vt 0.285936 0.141007 0
vt 0.294739 0.157617 0
vt 0.269285 0.223242 0
vt 0.271017 0.110218 0
vt 0.285936 0.141007 0
vt 0.284645 0.0579326 0
vt 0.285936 0.141007 0
vt 0.271017 0.110218 0
vt 0.244702 0.2126 0
vt 0.246916 0.219781 0
vt 0.249786 0.230439 0
vt 0.244702 0.2126 0
vt 0.249786 0.230439 0
vt 0.256181 0.245549 0
vt 0.254243 0.241506 0
vt 0.256181 0.245549 0
vt 0.249786 0.230439 0
vt 0.257613 0.242925 0
vt 0.254243 0.241506 0
vt 0.249786 0.230439 0
vt 0.249786 0.230439 0
vt 0.246916 0.219781 0
vt 0.253113 0.229092 0
vt 0.249786 0.230439 0
vt 0.253113 0.229092 0
vt 0.257613 0.242925 0
vt 0.262537 0.237258 0
vt 0.257613 0.242925 0
vt 0.253113 0.229092 0
vt 0.271017 0.110218 0
vt 0.269285 0.223242 0
vt 0.257794 0.223642 0
vt 0.243246 0.187677 0
vt 0.244702 0.2126 0
vt 0.243786 0.175859 0
vt 0.244702 0.2126 0
vt 0.252003 0.221024 0
vt 0.243786 0.175859 0
vt 0.244702 0.2126 0
vt 0.256181 0.245549 0
vt 0.252003 0.221024 0
vt 0.256181 0.245549 0
vt 0.257605 0.218784 0
vt 0.252003 0.221024 0
vt 0.256181 0.245549 0
vt 0.26344 0.252802 0
vt 0.259942 0.245697 0
vt 0.256181 0.245549 0
vt 0.259942 0.245697 0
vt 0.257605 0.218784 0
vt 0.26344 0.252802 0
vt 0.26956 0.221566 0
vt 0.259942 0.245697 0
vt 0.270165 0.247143 0
vt 0.275684 0.233929 0
vt 0.275181 0.226515 0
vt 0.26344 0.252802 0
vt 0.270165 0.247143 0
vt 0.275181 0.226515 0
vt 0.26344 0.252802 0
vt 0.275181 0.226515 0
vt 0.26956 0.221566 0
vt 0.275181 0.226515 0
vt 0.273439 0.210261 0
vt 0.26956 0.221566 0
vt 0.282331 0.22635 0
vt 0.289635 0.232413 0
vt 0.281774 0.223093 0
vt 0.275181 0.226515 0
vt 0.282331 0.22635 0
vt 0.281774 0.223093 0
vt 0.275684 0.233929 0
vt 0.282331 0.22635 0
vt 0.275181 0.226515 0
vt 0.275181 0.226515 0
vt 0.281774 0.223093 0
vt 0.273439 0.210261 0
vt 0.284965 0.231137 0
vt 0.280852 0.228183 0
vt 0.279327 0.216953 0
vt 0.281774 0.223093 0
vt 0.284965 0.231137 0
vt 0.279327 0.216953 0
vt 0.289635 0.232413 0
vt 0.284965 0.231137 0
vt 0.281774 0.223093 0
vt 0.281774 0.223093 0
vt 0.279327 0.216953 0
vt 0.273439 0.210261 0
vt 0.243786 0.175859 0
vt 0.252003 0.221024 0
vt 0.247671 0.102434 0
vt 0.247671 0.102434 0
vt 0.252003 0.221024 0
vt 0.254118 0.08557 0
vt 0.252003 0.221024 0
vt 0.257605 0.218784 0
vt 0.254118 0.08557 0
vt 0.259942 0.245697 0
vt 0.26956 0.221566 0
vt 0.26473 0.211281 0
vt 0.257605 0.218784 0
vt 0.259942 0.245697 0
vt 0.26473 0.211281 0
vt 0.257605 0.218784 0
vt 0.26473 0.211281 0
vt 0.261524 0.181637 0
vt 0.26473 0.211281 0
vt 0.265214 0.182177 0
vt 0.261524 0.181637 0
vt 0.26473 0.211281 0
vt 0.26956 0.221566 0
vt 0.273439 0.210261 0
vt 0.26473 0.211281 0
vt 0.273439 0.210261 0
vt 0.265214 0.182177 0
vt 0.273439 0.210261 0
vt 0.272299 0.197627 0
vt 0.265214 0.182177 0
vt 0.279327 0.216953 0
vt 0.280852 0.228183 0
vt 0.276173 0.209543 0
vt 0.272299 0.197627 0
vt 0.279327 0.216953 0
vt 0.276173 0.209543 0
vt 0.273439 0.210261 0
vt 0.279327 0.216953 0
vt 0.272299 0.197627 0
vt 0.272299 0.197627 0
vt 0.276173 0.209543 0
vt 0.27235 0.191582 0
vt 0.276427 0.222157 0
vt 0.27479 0.214578 0
vt 0.275633 0.196534 0
vt 0.276173 0.209543 0
vt 0.276427 0.222157 0
vt 0.275633 0.196534 0
vt 0.280852 0.228183 0
vt 0.276427 0.222157 0
vt 0.276173 0.209543 0
vt 0.276173 0.209543 0
vt 0.275633 0.196534 0
vt 0.27235 0.191582 0
vt 0.254118 0.08557 0
vt 0.257605 0.218784 0
vt 0.261524 0.181637 0
vt 0.254118 0.08557 0
vt 0.261524 0.181637 0
vt 0.258691 0.0454526 0
vt 0.261524 0.181637 0
vt 0.262844 0.111765 0
vt 0.258691 0.0454526 0
vt 0.261524 0.181637 0
vt 0.265214 0.182177 0
vt 0.262844 0.111765 0
vt 0.265214 0.182177 0
vt 0.265807 0.159318 0
vt 0.262844 0.111765 0
vt 0.272299 0.197627 0
vt 0.27235 0.191582 0
vt 0.267302 0.159457 0
vt 0.265807 0.159318 0
vt 0.272299 0.197627 0
vt 0.267302 0.159457 0
vt 0.265214 0.182177 0
vt 0.272299 0.197627 0
vt 0.265807 0.159318 0
vt 0.27235 0.191582 0
vt 0.273299 0.170063 0
vt 0.267302 0.159457 0
vt 0.273299 0.170063 0
vt 0.27235 0.191582 0
vt 0.275633 0.196534 0
vt 0.262844 0.111765 0
vt 0.265807 0.159318 0
vt 0.267302 0.159457 0
vt 0.262844 0.111765 0
vt 0.267302 0.159457 0
vt 0.26368 0.0850219 0
vt 0.267302 0.159457 0
vt 0.273299 0.170063 0
vt 0.269563 0.0918497 0
vt 0.267302 0.159457 0
vt 0.269563 0.0918497 0
vt 0.26368 0.0850219 0
vt 0.269161 0.0938247 0
vt 0.273299 0.170063 0
vt 0.275633 0.196534 0
vt 0.269161 0.0938247 0
vt 0.275633 0.196534 0
vt 0.270295 0.147872 0
vt 0.27479 0.214578 0
vt 0.270295 0.147872 0
vt 0.275633 0.196534 0
vt 0.266232 0.969222 0
vt 0.264343 0.974588 0
vt 0.279028 0.942745 0
vt 0.28455 0.939714 0
vt 0.266232 0.969222 0
vt 0.279028 0.942745 0
vt 0.267744 0.969526 0
vt 0.266232 0.969222 0
vt 0.28455 0.939714 0
vt 0.27575 0.955407 0
vt 0.279028 0.942745 0
vt 0.275756 0.958087 0
vt 0.275756 0.958087 0
vt 0.279028 0.942745 0
vt 0.264343 0.974588 0
vt 0.262852 0.984514 0
vt 0.262962 0.00445932 0
vt 0.273576 0.9748 0
vt 0.275756 0.958087 0
vt 0.262852 0.984514 0
vt 0.273576 0.9748 0
vt 0.264343 0.974588 0
vt 0.262852 0.984514 0
vt 0.275756 0.958087 0
vt 0.275756 0.958087 0
vt 0.273576 0.9748 0
vt 0.27575 0.955407 0
vt 0.27376 0.977436 0
vt 0.27575 0.955407 0
vt 0.273576 0.9748 0
vt 0.262962 0.00445932 0
vt 0.27376 0.977436 0
vt 0.273576 0.9748 0
vt 0.27075 0.0224964 0
vt 0.27376 0.977436 0
vt 0.262962 0.00445932 0
vt 0.262962 0.00445932 0
vt 0.26368 0.0850219 0
vt 0.269563 0.0918497 0
vt 0.262962 0.00445932 0
vt 0.269563 0.0918497 0
vt 0.27075 0.0224964 0
vt 0.269161 0.0938247 0
vt 0.27075 0.0224964 0
vt 0.269563 0.0918497 0
vt 0.252527 0.03131 0
vt 0.252124 0.0260788 0
vt 0.269875 0.971712 0
vt 0.261168 0.0103332 0
vt 0.252527 0.03131 0
vt 0.269875 0.971712 0
vt 0.261168 0.0103332 0
vt 0.269875 0.971712 0
vt 0.27991 0.958417 0
vt 0.267744 0.969526 0
vt 0.269875 0.971712 0
vt 0.252124 0.0260788 0
vt 0.253567 0.0178556 0
vt 0.254774 0.0150111 0
vt 0.266232 0.969222 0
vt 0.267744 0.969526 0
vt 0.253567 0.0178556 0
vt 0.266232 0.969222 0
vt 0.252124 0.0260788 0
vt 0.253567 0.0178556 0
vt 0.267744 0.969526 0
vt 0.264343 0.974588 0
vt 0.266232 0.969222 0
vt 0.254774 0.0150111 0
vt 0.253193 0.0324996 0
vt 0.260669 0.00500268 0
vt 0.262852 0.984514 0
vt 0.264343 0.974588 0
vt 0.253193 0.0324996 0
vt 0.262852 0.984514 0
vt 0.254774 0.0150111 0
vt 0.253193 0.0324996 0
vt 0.264343 0.974588 0
vt 0.262962 0.00445932 0
vt 0.262852 0.984514 0
vt 0.260669 0.00500268 0
vt 0.260669 0.00500268 0
vt 0.258691 0.0454526 0
vt 0.261363 0.0259324 0
vt 0.260669 0.00500268 0
vt 0.261363 0.0259324 0
vt 0.262962 0.00445932 0
vt 0.262844 0.111765 0
vt 0.26368 0.0850219 0
vt 0.261363 0.0259324 0
vt 0.258691 0.0454526 0
vt 0.262844 0.111765 0
vt 0.261363 0.0259324 0
vt 0.26368 0.0850219 0
vt 0.262962 0.00445932 0
vt 0.261363 0.0259324 0
vt 0.252188 0.0538337 0
vt 0.243385 0.079145 0
vt 0.252527 0.03131 0
vt 0.246142 0.100884 0
vt 0.243385 0.079145 0
vt 0.252188 0.0538337 0
vt 0.252188 0.0538337 0
vt 0.252527 0.03131 0
vt 0.261168 0.0103332 0
vt 0.252124 0.0260788 0
vt 0.252527 0.03131 0
vt 0.243385 0.079145 0
vt 0.252124 0.0260788 0
vt 0.244297 0.0698935 0
vt 0.253567 0.0178556 0
vt 0.243385 0.079145 0
vt 0.244297 0.0698935 0
vt 0.252124 0.0260788 0
vt 0.254774 0.0150111 0
vt 0.253567 0.0178556 0
vt 0.244297 0.0698935 0
vt 0.254774 0.0150111 0
vt 0.247107 0.0698595 0
vt 0.253193 0.0324996 0
vt 0.244297 0.0698935 0
vt 0.247107 0.0698595 0
vt 0.254774 0.0150111 0
vt 0.247107 0.0698595 0
vt 0.247671 0.102434 0
vt 0.253193 0.0324996 0
vt 0.258691 0.0454526 0
vt 0.260669 0.00500268 0
vt 0.253193 0.0324996 0
vt 0.254118 0.08557 0
vt 0.258691 0.0454526 0
vt 0.253193 0.0324996 0
vt 0.254118 0.08557 0
vt 0.253193 0.0324996 0
vt 0.247671 0.102434 0
vt 0.240052 0.153097 0
vt 0.238303 0.143641 0
vt 0.240624 0.1223 0
vt 0.243385 0.079145 0
vt 0.246142 0.100884 0
vt 0.240624 0.1223 0
vt 0.239459 0.113648 0
vt 0.243385 0.079145 0
vt 0.240624 0.1223 0
vt 0.239459 0.113648 0
vt 0.240624 0.1223 0
vt 0.238303 0.143641 0
vt 0.244297 0.0698935 0
vt 0.243385 0.079145 0
vt 0.239459 0.113648 0
vt 0.239459 0.113648 0
vt 0.238303 0.143641 0
vt 0.244297 0.0698935 0
vt 0.247107 0.0698595 0
vt 0.244297 0.0698935 0
vt 0.238303 0.143641 0
vt 0.247671 0.102434 0
vt 0.247107 0.0698595 0
vt 0.238303 0.143641 0
vt 0.243786 0.175859 0
vt 0.238303 0.143641 0
vt 0.239321 0.165546 0
vt 0.247671 0.102434 0
vt 0.238303 0.143641 0
vt 0.243786 0.175859 0
vt 0.243786 0.175859 0
vt 0.239321 0.165546 0
vt 0.243246 0.187677 0
vt 0.239321 0.165546 0
vt 0.240052 0.153097 0
vt 0.242287 0.17488 0
vt 0.238303 0.143641 0
vt 0.240052 0.153097 0
vt 0.239321 0.165546 0
vt 0.239321 0.165546 0
vt 0.242287 0.17488 0
vt 0.243246 0.187677 0
vt 0.269875 0.971712 0
vt 0.267744 0.969526 0
vt 0.277414 0.950554 0
vt 0.27991 0.958417 0
vt 0.269875 0.971712 0
vt 0.277414 0.950554 0
vt 0.27991 0.958417 0
vt 0.277414 0.950554 0
vt 0.28455 0.939714 0
vt 0.28455 0.939714 0
vt 0.277414 0.950554 0
vt 0.267744 0.969526 0
vt 0.273299 0.170063 0
vt 0.269161 0.0938247 0
vt 0.269563 0.0918497 0
vt 0.251987 0.152658 0
vt 0.257794 0.223642 0
vt 0.248743 0.193858 0
vt 0.248743 0.193858 0
vt 0.253113 0.229092 0
vt 0.244468 0.206533 0
vt 0.257794 0.223642 0
vt 0.253113 0.229092 0
vt 0.248743 0.193858 0
vt 0.248743 0.193858 0
vt 0.244468 0.206533 0
vt 0.243246 0.187677 0
vt 0.253113 0.229092 0
vt 0.246916 0.219781 0
vt 0.244468 0.206533 0
vt 0.246916 0.219781 0
vt 0.244702 0.2126 0
vt 0.244468 0.206533 0
vt 0.244468 0.206533 0
vt 0.244702 0.2126 0
vt 0.243246 0.187677 0
vt 0.253113 0.229092 0
vt 0.257794 0.223642 0
vt 0.262537 0.237258 0
vt 0.269285 0.223242 0
vt 0.262537 0.237258 0
vt 0.257794 0.223642 0
vt 0.305942 0.0236707 0
vt 0.314596 0.0841488 0
vt 0.308196 0.0960529 0
vt 0.305942 0.0236707 0
vt 0.308196 0.0960529 0
vt 0.299638 0.117914 0
vt 0.299159 0.0260181 0
vt 0.305942 0.0236707 0
vt 0.299638 0.117914 0
vt 0.297755 0.000961721 0
vt 0.305942 0.0236707 0
vt 0.299159 0.0260181 0
vt 0.277394 0.0427948 0
vt 0.297755 0.000961721 0
vt 0.299159 0.0260181 0
vt 0.284645 0.0579326 0
vt 0.277394 0.0427948 0
vt 0.299159 0.0260181 0
vt 0.279028 0.942745 0
vt 0.27575 0.955407 0
vt 0.280939 0.927924 0
vt 0.28455 0.939714 0
vt 0.279028 0.942745 0
vt 0.280939 0.927924 0
vt 0.294252 0.961061 0
vt 0.28455 0.939714 0
vt 0.298269 0.92801 0
vt 0.305164 0.974077 0
vt 0.294252 0.961061 0
vt 0.298269 0.92801 0
vt 0.305164 0.974077 0
vt 0.298269 0.92801 0
vt 0.308991 0.934067 0
vt 0.294252 0.961061 0
vt 0.305164 0.974077 0
vt 0.30214 0.991246 0
vt 0.30214 0.991246 0
vt 0.305164 0.974077 0
vt 0.305942 0.0236707 0
vt 0.297065 0.221796 0
vt 0.298502 0.242515 0
vt 0.289635 0.232413 0
vt 0.298502 0.242515 0
vt 0.299923 0.261588 0
vt 0.294657 0.249983 0
vt 0.306382 0.26074 0
vt 0.299923 0.261588 0
vt 0.298502 0.242515 0
vt 0.298502 0.242515 0
vt 0.294657 0.249983 0
vt 0.289635 0.232413 0
vt 0.299923 0.261588 0
vt 0.306382 0.26074 0
vt 0.303009 0.296607 0
vt 0.30072 0.217327 0
vt 0.306382 0.26074 0
vt 0.298502 0.242515 0
vt 0.3069 0.211044 0
vt 0.306382 0.26074 0
vt 0.30072 0.217327 0
vt 0.30072 0.217327 0
vt 0.298502 0.242515 0
vt 0.297065 0.221796 0
vt 0.276427 0.222157 0
vt 0.280852 0.228183 0
vt 0.276328 0.250988 0
vt 0.27479 0.214578 0
vt 0.276427 0.222157 0
vt 0.276328 0.250988 0
vt 0.287064 0.245577 0
vt 0.280852 0.228183 0
vt 0.284965 0.231137 0
vt 0.287064 0.245577 0
vt 0.284965 0.231137 0
vt 0.289635 0.232413 0
vt 0.293646 0.284125 0
vt 0.276328 0.250988 0
vt 0.287064 0.245577 0
vt 0.287064 0.245577 0
vt 0.276328 0.250988 0
vt 0.280852 0.228183 0
vt 0.320353 0.144875 0
vt 0.314596 0.0841488 0
vt 0.324357 0.0916888 0
vt 0.312149 0.149524 0
vt 0.314596 0.0841488 0
vt 0.320353 0.144875 0
vt 0.319874 0.210441 0
vt 0.3069 0.211044 0
vt 0.312149 0.149524 0
vt 0.320353 0.144875 0
vt 0.319874 0.210441 0
vt 0.312149 0.149524 0
vt 0.269864 0.974405 0
vt 0.27376 0.977436 0
vt 0.27075 0.0224964 0
vt 0.269864 0.974405 0
vt 0.27075 0.0224964 0
vt 0.265319 0.0229007 0
vt 0.27075 0.0224964 0
vt 0.269161 0.0938247 0
vt 0.267012 0.0981141 0
vt 0.299956 0.366175 0
vt 0.293646 0.284125 0
vt 0.303009 0.296607 0
vt 0.315795 0.354069 0
vt 0.299956 0.366175 0
vt 0.303009 0.296607 0
vt 0.315795 0.354069 0
vt 0.303009 0.296607 0
vt 0.306382 0.26074 0
vt 0.26297 0.19116 0
vt 0.264501 0.134995 0
vt 0.27022 0.242044 0
vt 0.27479 0.214578 0
vt 0.27022 0.242044 0
vt 0.270007 0.18302 0
vt 0.270007 0.18302 0
vt 0.27022 0.242044 0
vt 0.264501 0.134995 0
vt 0.27075 0.0224964 0
vt 0.260422 0.0921062 0
vt 0.265319 0.0229007 0
vt 0.286949 0.801858 0
vt 0.294158 0.814748 0
vt 0.290267 0.890689 0
vt 0.282223 0.862447 0
vt 0.286949 0.801858 0
vt 0.290267 0.890689 0
vt 0.278894 0.806623 0
vt 0.286949 0.801858 0
vt 0.282223 0.862447 0
vt 0.282223 0.862447 0
vt 0.290267 0.890689 0
vt 0.282933 0.900048 0
vt 0.298269 0.92801 0
vt 0.28455 0.939714 0
vt 0.290267 0.890689 0
vt 0.30225 0.87525 0
vt 0.298269 0.92801 0
vt 0.290267 0.890689 0
vt 0.308991 0.934067 0
vt 0.298269 0.92801 0
vt 0.30225 0.87525 0
vt 0.30225 0.87525 0
vt 0.290267 0.890689 0
vt 0.294158 0.814748 0
vt 0.313629 0.86389 0
vt 0.308991 0.934067 0
vt 0.30225 0.87525 0
vt 0.302449 0.801188 0
vt 0.313629 0.86389 0
vt 0.30225 0.87525 0
vt 0.311896 0.784773 0
vt 0.313629 0.86389 0
vt 0.302449 0.801188 0
vt 0.302449 0.801188 0
vt 0.30225 0.87525 0
vt 0.294158 0.814748 0
vt 0.299956 0.366175 0
vt 0.289099 0.346913 0
vt 0.293646 0.284125 0
vt 0.294657 0.249983 0
vt 0.299923 0.261588 0
vt 0.293646 0.284125 0
vt 0.287064 0.245577 0
vt 0.294657 0.249983 0
vt 0.293646 0.284125 0
vt 0.289635 0.232413 0
vt 0.294657 0.249983 0
vt 0.287064 0.245577 0
vt 0.293646 0.284125 0
vt 0.299923 0.261588 0
vt 0.303009 0.296607 0
vt 0.276328 0.250988 0
vt 0.293646 0.284125 0
vt 0.289099 0.346913 0
vt 0.276328 0.250988 0
vt 0.289099 0.346913 0
vt 0.277928 0.316198 0
vt 0.317422 0.96045 0
vt 0.308991 0.934067 0
vt 0.313629 0.86389 0
vt 0.332267 0.902521 0
vt 0.317422 0.96045 0
vt 0.313629 0.86389 0
vt 0.314596 0.0841488 0
vt 0.305942 0.0236707 0
vt 0.318173 0.0321041 0
vt 0.324357 0.0916888 0
vt 0.314596 0.0841488 0
vt 0.318173 0.0321041 0
vt 0.324357 0.0916888 0
vt 0.318173 0.0321041 0
vt 0.335626 0.0372187 0
vt 0.305164 0.974077 0
vt 0.308991 0.934067 0
vt 0.317422 0.96045 0
vt 0.318173 0.0321041 0
vt 0.305164 0.974077 0
vt 0.317422 0.96045 0
vt 0.305942 0.0236707 0
vt 0.305164 0.974077 0
vt 0.318173 0.0321041 0
vt 0.318173 0.0321041 0
vt 0.317422 0.96045 0
vt 0.335626 0.0372187 0
vt 0.350952 0.113743 0
vt 0.324357 0.0916888 0
vt 0.335626 0.0372187 0
vt 0.322588 0.282912 0
vt 0.319874 0.210441 0
vt 0.344339 0.298017 0
vt 0.3069 0.211044 0
vt 0.319874 0.210441 0
vt 0.322588 0.282912 0
vt 0.322588 0.282912 0
vt 0.344339 0.298017 0
vt 0.338285 0.398481 0
vt 0.351383 0.215708 0
vt 0.344339 0.298017 0
vt 0.319874 0.210441 0
vt 0.331028 0.506468 0
vt 0.315795 0.354069 0
vt 0.338285 0.398481 0
vt 0.306382 0.26074 0
vt 0.3069 0.211044 0
vt 0.322588 0.282912 0
vt 0.257864 0.954287 0
vt 0.257412 0.904856 0
vt 0.260739 0.875677 0
vt 0.253324 0.0282426 0
vt 0.257864 0.954287 0
vt 0.253378 0.0219665 0
vt 0.257412 0.904856 0
vt 0.257864 0.954287 0
vt 0.253324 0.0282426 0
vt 0.259753 0.0240977 0
vt 0.253378 0.0219665 0
vt 0.257864 0.954287 0
vt 0.26297 0.19116 0
vt 0.260422 0.0921062 0
vt 0.264501 0.134995 0
vt 0.268165 0.304854 0
vt 0.27022 0.242044 0
vt 0.277928 0.316198 0
vt 0.265319 0.0229007 0
vt 0.260422 0.0921062 0
vt 0.259753 0.0240977 0
vt 0.267848 0.946992 0
vt 0.265319 0.0229007 0
vt 0.259753 0.0240977 0
vt 0.262386 0.9511 0
vt 0.267848 0.946992 0
vt 0.259753 0.0240977 0
vt 0.257864 0.954287 0
vt 0.262386 0.9511 0
vt 0.259753 0.0240977 0
vt 0.262386 0.9511 0
vt 0.257864 0.954287 0
vt 0.265737 0.865526 0
vt 0.267848 0.946992 0
vt 0.262386 0.9511 0
vt 0.265737 0.865526 0
vt 0.260739 0.875677 0
vt 0.265737 0.865526 0
vt 0.257864 0.954287 0
vt 0.282223 0.862447 0
vt 0.282933 0.900048 0
vt 0.276201 0.912042 0
vt 0.274694 0.850915 0
vt 0.282223 0.862447 0
vt 0.276201 0.912042 0
vt 0.278894 0.806623 0
vt 0.282223 0.862447 0
vt 0.274694 0.850915 0
vt 0.274694 0.850915 0
vt 0.276201 0.912042 0
vt 0.267848 0.946992 0
vt 0.273759 0.947605 0
vt 0.267848 0.946992 0
vt 0.276201 0.912042 0
vt 0.280939 0.927924 0
vt 0.273759 0.947605 0
vt 0.276201 0.912042 0
vt 0.27575 0.955407 0
vt 0.273759 0.947605 0
vt 0.280939 0.927924 0
vt 0.280939 0.927924 0
vt 0.276201 0.912042 0
vt 0.282933 0.900048 0
vt 0.273759 0.947605 0
vt 0.27376 0.977436 0
vt 0.269864 0.974405 0
vt 0.27575 0.955407 0
vt 0.27376 0.977436 0
vt 0.273759 0.947605 0
vt 0.273759 0.947605 0
vt 0.269864 0.974405 0
vt 0.267848 0.946992 0
vt 0.265319 0.0229007 0
vt 0.267848 0.946992 0
vt 0.269864 0.974405 0
vt 0.311896 0.784773 0
vt 0.329974 0.75653 0
vt 0.313629 0.86389 0
vt 0.335626 0.0372187 0
vt 0.350516 0.897133 0
vt 0.358671 0.00977153 0
vt 0.350952 0.113743 0
vt 0.335626 0.0372187 0
vt 0.358671 0.00977153 0
vt 0.350952 0.113743 0
vt 0.358671 0.00977153 0
vt 0.372456 0.0946521 0
vt 0.332267 0.902521 0
vt 0.350516 0.897133 0
vt 0.335626 0.0372187 0
vt 0.43301 0.210235 0
vt 0.438675 0.28864 0
vt 0.428423 0.291419 0
vt 0.414825 0.160449 0
vt 0.43301 0.210235 0
vt 0.428423 0.291419 0
vt 0.414825 0.160449 0
vt 0.428423 0.291419 0
vt 0.417547 0.276324 0
vt 0.459654 0.339873 0
vt 0.453971 0.181033 0
vt 0.461899 0.27364 0
vt 0.442825 0.165539 0
vt 0.453971 0.181033 0
vt 0.459654 0.339873 0
vt 0.461899 0.27364 0
vt 0.468215 0.320108 0
vt 0.465653 0.330703 0
vt 0.461899 0.27364 0
vt 0.465653 0.330703 0
vt 0.459654 0.339873 0
vt 0.430185 0.506254 0
vt 0.438636 0.550464 0
vt 0.423303 0.624215 0
vt 0.438636 0.550464 0
vt 0.449479 0.624077 0
vt 0.441004 0.653641 0
vt 0.448256 0.557165 0
vt 0.449479 0.624077 0
vt 0.438636 0.550464 0
vt 0.438636 0.550464 0
vt 0.441004 0.653641 0
vt 0.423303 0.624215 0
vt 0.459413 0.668188 0
vt 0.461555 0.671853 0
vt 0.456617 0.695853 0
vt 0.452371 0.710707 0
vt 0.459413 0.668188 0
vt 0.456617 0.695853 0
vt 0.45538 0.669014 0
vt 0.459413 0.668188 0
vt 0.452371 0.710707 0
vt 0.274694 0.850915 0
vt 0.276089 0.747667 0
vt 0.278894 0.806623 0
vt 0.276089 0.747667 0
vt 0.282593 0.671933 0
vt 0.287626 0.697938 0
vt 0.276089 0.747667 0
vt 0.287626 0.697938 0
vt 0.278894 0.806623 0
vt 0.300641 0.535721 0
vt 0.304745 0.531546 0
vt 0.295207 0.60796 0
vt 0.295207 0.60796 0
vt 0.296924 0.540498 0
vt 0.300641 0.535721 0
vt 0.282039 0.591446 0
vt 0.291148 0.549016 0
vt 0.283042 0.616041 0
vt 0.288872 0.537143 0
vt 0.291148 0.549016 0
vt 0.282039 0.591446 0
vt 0.282039 0.591446 0
vt 0.283042 0.616041 0
vt 0.277095 0.665219 0
vt 0.282593 0.671933 0
vt 0.277095 0.665219 0
vt 0.283042 0.616041 0
vt 0.277095 0.665219 0
vt 0.282593 0.671933 0
vt 0.270363 0.747749 0
vt 0.270363 0.747749 0
vt 0.265737 0.865526 0
vt 0.260739 0.875677 0
vt 0.277928 0.316198 0
vt 0.279437 0.46891 0
vt 0.268165 0.304854 0
vt 0.357075 0.493317 0
vt 0.36115 0.53524 0
vt 0.347622 0.506243 0
vt 0.351453 0.565652 0
vt 0.36115 0.53524 0
vt 0.355472 0.600136 0
vt 0.351453 0.565652 0
vt 0.346764 0.587167 0
vt 0.345852 0.540613 0
vt 0.347622 0.506243 0
vt 0.351453 0.565652 0
vt 0.345852 0.540613 0
vt 0.36115 0.53524 0
vt 0.351453 0.565652 0
vt 0.347622 0.506243 0
vt 0.366886 0.49751 0
vt 0.353535 0.464272 0
vt 0.366547 0.478886 0
vt 0.357075 0.493317 0
vt 0.353535 0.464272 0
vt 0.366886 0.49751 0
vt 0.393999 0.845746 0
vt 0.394518 0.75187 0
vt 0.405609 0.834834 0
vt 0.405735 0.730755 0
vt 0.414638 0.816257 0
vt 0.405609 0.834834 0
vt 0.414638 0.816257 0
vt 0.405735 0.730755 0
vt 0.417604 0.785714 0
vt 0.415138 0.724414 0
vt 0.424802 0.813056 0
vt 0.417604 0.785714 0
vt 0.405609 0.834834 0
vt 0.414638 0.816257 0
vt 0.417681 0.888987 0
vt 0.405609 0.834834 0
vt 0.417681 0.888987 0
vt 0.413927 0.953622 0
vt 0.425709 0.881031 0
vt 0.424967 0.960241 0
vt 0.417681 0.888987 0
vt 0.430413 0.94935 0
vt 0.424967 0.960241 0
vt 0.425709 0.881031 0
vt 0.425709 0.881031 0
vt 0.417681 0.888987 0
vt 0.414638 0.816257 0
vt 0.424967 0.960241 0
vt 0.413927 0.953622 0
vt 0.417681 0.888987 0
vt 0.417604 0.785714 0
vt 0.424802 0.813056 0
vt 0.425709 0.881031 0
vt 0.414638 0.816257 0
vt 0.417604 0.785714 0
vt 0.425709 0.881031 0
vt 0.432781 0.874484 0
vt 0.434818 0.948034 0
vt 0.430889 0.884531 0
vt 0.439857 0.950172 0
vt 0.434818 0.948034 0
vt 0.432781 0.874484 0
vt 0.432781 0.874484 0
vt 0.430889 0.884531 0
vt 0.424802 0.813056 0
vt 0.434818 0.948034 0
vt 0.430413 0.94935 0
vt 0.425709 0.881031 0
vt 0.430889 0.884531 0
vt 0.434818 0.948034 0
vt 0.425709 0.881031 0
vt 0.430889 0.884531 0
vt 0.425709 0.881031 0
vt 0.424802 0.813056 0
vt 0.275276 0.659737 0
vt 0.277095 0.665219 0
vt 0.270363 0.747749 0
vt 0.275276 0.659737 0
vt 0.275194 0.661334 0
vt 0.282039 0.591446 0
vt 0.277095 0.665219 0
vt 0.275276 0.659737 0
vt 0.282039 0.591446 0
vt 0.280086 0.593097 0
vt 0.286867 0.536068 0
vt 0.288872 0.537143 0
vt 0.282039 0.591446 0
vt 0.280086 0.593097 0
vt 0.288872 0.537143 0
vt 0.275194 0.661334 0
vt 0.280086 0.593097 0
vt 0.282039 0.591446 0
vt 0.365431 0.462285 0
vt 0.365068 0.450725 0
vt 0.369983 0.467529 0
vt 0.365431 0.462285 0
vt 0.369983 0.467529 0
vt 0.366547 0.478886 0
vt 0.369983 0.467529 0
vt 0.365068 0.450725 0
vt 0.375748 0.478653 0
vt 0.425544 0.786849 0
vt 0.433602 0.852235 0
vt 0.432781 0.874484 0
vt 0.424802 0.813056 0
vt 0.425544 0.786849 0
vt 0.432781 0.874484 0
vt 0.433602 0.852235 0
vt 0.439857 0.950172 0
vt 0.432781 0.874484 0
vt 0.440811 0.947538 0
vt 0.439857 0.950172 0
vt 0.433602 0.852235 0
vt 0.402793 0.520864 0
vt 0.402915 0.601057 0
vt 0.380245 0.523495 0
vt 0.402793 0.520864 0
vt 0.380245 0.523495 0
vt 0.382819 0.403272 0
vt 0.380245 0.523495 0
vt 0.402915 0.601057 0
vt 0.391769 0.652541 0
vt 0.380245 0.523495 0
vt 0.391769 0.652541 0
vt 0.375812 0.630234 0
vt 0.402793 0.520864 0
vt 0.382819 0.403272 0
vt 0.397172 0.400048 0
vt 0.407514 0.482624 0
vt 0.402793 0.520864 0
vt 0.397172 0.400048 0
vt 0.407514 0.482624 0
vt 0.397172 0.400048 0
vt 0.41876 0.358777 0
vt 0.397172 0.400048 0
vt 0.3916 0.252166 0
vt 0.408075 0.283775 0
vt 0.382819 0.403272 0
vt 0.3916 0.252166 0
vt 0.397172 0.400048 0
vt 0.397172 0.400048 0
vt 0.408075 0.283775 0
vt 0.41876 0.358777 0
vt 0.372456 0.0946521 0
vt 0.39418 0.162624 0
vt 0.377146 0.161533 0
vt 0.377146 0.161533 0
vt 0.39418 0.162624 0
vt 0.3916 0.252166 0
vt 0.39418 0.162624 0
vt 0.417547 0.276324 0
vt 0.408075 0.283775 0
vt 0.39418 0.162624 0
vt 0.408075 0.283775 0
vt 0.3916 0.252166 0
vt 0.41876 0.358777 0
vt 0.408075 0.283775 0
vt 0.417547 0.276324 0
vt 0.417547 0.276324 0
vt 0.39418 0.162624 0
vt 0.414825 0.160449 0
vt 0.371262 0.88941 0
vt 0.386617 0.936867 0
vt 0.379054 0.0249585 0
vt 0.358671 0.00977153 0
vt 0.371262 0.88941 0
vt 0.379054 0.0249585 0
vt 0.350516 0.897133 0
vt 0.371262 0.88941 0
vt 0.358671 0.00977153 0
vt 0.358671 0.00977153 0
vt 0.379054 0.0249585 0
vt 0.372456 0.0946521 0
vt 0.395932 0.0389759 0
vt 0.414825 0.160449 0
vt 0.39418 0.162624 0
vt 0.379054 0.0249585 0
vt 0.395932 0.0389759 0
vt 0.39418 0.162624 0
vt 0.386617 0.936867 0
vt 0.395932 0.0389759 0
vt 0.379054 0.0249585 0
vt 0.379054 0.0249585 0
vt 0.39418 0.162624 0
vt 0.372456 0.0946521 0
vt 0.413927 0.953622 0
vt 0.400167 0.941813 0
vt 0.405609 0.834834 0
vt 0.405609 0.834834 0
vt 0.400167 0.941813 0
vt 0.393999 0.845746 0
vt 0.400167 0.941813 0
vt 0.386617 0.936867 0
vt 0.393999 0.845746 0
vt 0.393999 0.845746 0
vt 0.381656 0.773273 0
vt 0.394518 0.75187 0
vt 0.381656 0.773273 0
vt 0.369637 0.711934 0
vt 0.382543 0.699189 0
vt 0.381656 0.773273 0
vt 0.382543 0.699189 0
vt 0.394518 0.75187 0
vt 0.369637 0.711934 0
vt 0.368012 0.784568 0
vt 0.35673 0.722751 0
vt 0.365494 0.61428 0
vt 0.373647 0.657223 0
vt 0.353126 0.665909 0
vt 0.369637 0.711934 0
vt 0.353126 0.665909 0
vt 0.373647 0.657223 0
vt 0.353126 0.665909 0
vt 0.369637 0.711934 0
vt 0.35673 0.722751 0
vt 0.314247 0.713574 0
vt 0.321658 0.633418 0
vt 0.327659 0.675594 0
vt 0.311896 0.784773 0
vt 0.314247 0.713574 0
vt 0.327659 0.675594 0
vt 0.311896 0.784773 0
vt 0.327659 0.675594 0
vt 0.329974 0.75653 0
vt 0.33084 0.566254 0
vt 0.334833 0.511758 0
vt 0.347622 0.506243 0
vt 0.345852 0.540613 0
vt 0.33084 0.566254 0
vt 0.347622 0.506243 0
vt 0.33084 0.566254 0
vt 0.321658 0.633418 0
vt 0.322133 0.549575 0
vt 0.32615 0.530036 0
vt 0.334833 0.511758 0
vt 0.33084 0.566254 0
vt 0.33084 0.566254 0
vt 0.322133 0.549575 0
vt 0.32615 0.530036 0
vt 0.277928 0.316198 0
vt 0.289099 0.346913 0
vt 0.279437 0.46891 0
vt 0.286949 0.801858 0
vt 0.287626 0.697938 0
vt 0.296884 0.739255 0
vt 0.278894 0.806623 0
vt 0.287626 0.697938 0
vt 0.286949 0.801858 0
vt 0.286949 0.801858 0
vt 0.296884 0.739255 0
vt 0.294158 0.814748 0
vt 0.310681 0.655569 0
vt 0.296884 0.739255 0
vt 0.301044 0.625121 0
vt 0.301044 0.625121 0
vt 0.296884 0.739255 0
vt 0.287626 0.697938 0
vt 0.296884 0.739255 0
vt 0.310681 0.655569 0
vt 0.314247 0.713574 0
vt 0.302449 0.801188 0
vt 0.296884 0.739255 0
vt 0.314247 0.713574 0
vt 0.294158 0.814748 0
vt 0.296884 0.739255 0
vt 0.302449 0.801188 0
vt 0.302449 0.801188 0
vt 0.314247 0.713574 0
vt 0.311896 0.784773 0
vt 0.310681 0.655569 0
vt 0.321658 0.633418 0
vt 0.314247 0.713574 0
vt 0.310681 0.655569 0
vt 0.322133 0.549575 0
vt 0.321658 0.633418 0
vt 0.322133 0.549575 0
vt 0.310681 0.655569 0
vt 0.301044 0.625121 0
vt 0.301044 0.625121 0
vt 0.304745 0.531546 0
vt 0.313123 0.539662 0
vt 0.313123 0.539662 0
vt 0.322133 0.549575 0
vt 0.301044 0.625121 0
vt 0.301044 0.625121 0
vt 0.287626 0.697938 0
vt 0.295207 0.60796 0
vt 0.301044 0.625121 0
vt 0.295207 0.60796 0
vt 0.304745 0.531546 0
vt 0.435065 0.0306503 0
vt 0.424967 0.960241 0
vt 0.430413 0.94935 0
vt 0.413927 0.953622 0
vt 0.424967 0.960241 0
vt 0.42545 0.0750421 0
vt 0.442825 0.165539 0
vt 0.43301 0.210235 0
vt 0.42545 0.0750421 0
vt 0.435065 0.0306503 0
vt 0.442825 0.165539 0
vt 0.42545 0.0750421 0
vt 0.435065 0.0306503 0
vt 0.42545 0.0750421 0
vt 0.424967 0.960241 0
vt 0.439857 0.950172 0
vt 0.44462 0.0598707 0
vt 0.434818 0.948034 0
vt 0.453971 0.181033 0
vt 0.44462 0.0598707 0
vt 0.439857 0.950172 0
vt 0.435065 0.0306503 0
vt 0.434818 0.948034 0
vt 0.44462 0.0598707 0
vt 0.430413 0.94935 0
vt 0.434818 0.948034 0
vt 0.435065 0.0306503 0
vt 0.435065 0.0306503 0
vt 0.44462 0.0598707 0
vt 0.442825 0.165539 0
vt 0.453971 0.181033 0
vt 0.442825 0.165539 0
vt 0.44462 0.0598707 0
vt 0.462108 0.257696 0
vt 0.453971 0.181033 0
vt 0.439857 0.950172 0
vt 0.462108 0.257696 0
vt 0.439857 0.950172 0
vt 0.440811 0.947538 0
vt 0.42545 0.0750421 0
vt 0.414825 0.160449 0
vt 0.409069 0.0291591 0
vt 0.43301 0.210235 0
vt 0.414825 0.160449 0
vt 0.42545 0.0750421 0
vt 0.42545 0.0750421 0
vt 0.409069 0.0291591 0
vt 0.413927 0.953622 0
vt 0.409069 0.0291591 0
vt 0.400167 0.941813 0
vt 0.413927 0.953622 0
vt 0.395932 0.0389759 0
vt 0.400167 0.941813 0
vt 0.409069 0.0291591 0
vt 0.386617 0.936867 0
vt 0.400167 0.941813 0
vt 0.395932 0.0389759 0
vt 0.395932 0.0389759 0
vt 0.409069 0.0291591 0
vt 0.414825 0.160449 0
vt 0.259939 0.143042 0
vt 0.299301 0.307432 0
vt 0.236343 0.308367 0
vt 0.259939 0.143042 0
vt 0.358284 0.291294 0
vt 0.299301 0.307432 0
vt 0.259939 0.143042 0
vt 0.407515 0.261536 0
vt 0.358284 0.291294 0
vt 0.259939 0.143042 0
vt 0.442175 0.221075 0
vt 0.407515 0.261536 0
vt 0.259939 0.143042 0
vt 0.458876 0.173859 0
vt 0.442175 0.221075 0
vt 0.259939 0.143042 0
vt 0.455971 0.124517 0
vt 0.458876 0.173859 0
vt 0.259939 0.143042 0
vt 0.433752 0.0778885 0
vt 0.455971 0.124517 0
vt 0.259939 0.143042 0
vt 0.394384 0.0385227 0
vt 0.433752 0.0778885 0
vt 0.259939 0.143042 0
vt 0.341728 0.0102768 0
vt 0.394384 0.0385227 0
vt 0.259939 0.143042 0
vt 0.280935 0.995914 0
vt 0.341728 0.0102768 0
vt 0.259939 0.143042 0
vt 0.217958 0.996853 0
vt 0.280935 0.995914 0
vt 0.259939 0.143042 0
vt 0.158966 0.012989 0
vt 0.217958 0.996853 0
vt 0.259939 0.143042 0
vt 0.109737 0.0427418 0
vt 0.158966 0.012989 0
vt 0.259939 0.143042 0
vt 0.0750847 0.0832081 0
vt 0.109737 0.0427418 0
vt 0.259939 0.143042 0
vt 0.058403 0.130424 0
vt 0.0750847 0.0832081 0
vt 0.259939 0.143042 0
vt 0.0613213 0.179768 0
vt 0.058403 0.130424 0
vt 0.259939 0.143042 0
vt 0.0835514 0.2264 0
vt 0.0613213 0.179768 0
vt 0.259939 0.143042 0
vt 0.122919 0.265766 0
vt 0.0835514 0.2264 0
vt 0.259939 0.143042 0
vt 0.175568 0.29401 0
vt 0.122919 0.265766 0
vt 0.259939 0.143042 0
vt 0.236343 0.308367 0
vt 0.175568 0.29401 0
vt 0.211182 0.484669 0
vt 0.236343 0.308367 0
vt 0.299301 0.307432 0
vt 0.211182 0.484669 0
vt 0.299301 0.307432 0
vt 0.334332 0.482836 0
vt 0.449701 0.451271 0
vt 0.334332 0.482836 0
vt 0.299301 0.307432 0
vt 0.299301 0.307432 0
vt 0.358284 0.291294 0
vt 0.449701 0.451271 0
vt 0.449701 0.451271 0
vt 0.358284 0.291294 0
vt 0.407515 0.261536 0
vt 0.449701 0.451271 0
vt 0.407515 0.261536 0
vt 0.546011 0.393051 0
vt 0.546011 0.393051 0
vt 0.407515 0.261536 0
vt 0.442175 0.221075 0
vt 0.546011 0.393051 0
vt 0.442175 0.221075 0
vt 0.613829 0.313894 0
vt 0.646511 0.221533 0
vt 0.613829 0.313894 0
vt 0.442175 0.221075 0
vt 0.442175 0.221075 0
vt 0.458876 0.173859 0
vt 0.646511 0.221533 0
vt 0.646511 0.221533 0
vt 0.458876 0.173859 0
vt 0.455971 0.124517 0
vt 0.646511 0.221533 0
vt 0.455971 0.124517 0
vt 0.640848 0.125015 0
vt 0.597385 0.0337887 0
vt 0.640848 0.125015 0
vt 0.455971 0.124517 0
vt 0.455971 0.124517 0
vt 0.433752 0.0778885 0
vt 0.597385 0.0337887 0
vt 0.520378 0.956776 0
vt 0.597385 0.0337887 0
vt 0.433752 0.0778885 0
vt 0.433752 0.0778885 0
vt 0.394384 0.0385227 0
vt 0.520378 0.956776 0
vt 0.520378 0.956776 0
vt 0.394384 0.0385227 0
vt 0.341728 0.0102768 0
vt 0.520378 0.956776 0
vt 0.341728 0.0102768 0
vt 0.417356 0.901518 0
vt 0.298414 0.87343 0
vt 0.417356 0.901518 0
vt 0.341728 0.0102768 0
vt 0.341728 0.0102768 0
vt 0.280935 0.995914 0
vt 0.298414 0.87343 0
vt 0.298414 0.87343 0
vt 0.280935 0.995914 0
vt 0.217958 0.996853 0
vt 0.298414 0.87343 0
vt 0.217958 0.996853 0
vt 0.175203 0.875256 0
vt 0.0597916 0.90682 0
vt 0.175203 0.875256 0
vt 0.217958 0.996853 0
vt 0.217958 0.996853 0
vt 0.158966 0.012989 0
vt 0.0597916 0.90682 0
vt 0.963484 0.965036 0
vt 0.0597916 0.90682 0
vt 0.158966 0.012989 0
vt 0.158966 0.012989 0
vt 0.109737 0.0427418 0
vt 0.963484 0.965036 0
vt 0.963484 0.965036 0
vt 0.109737 0.0427418 0
vt 0.0750847 0.0832081 0
vt 0.963484 0.965036 0
vt 0.0750847 0.0832081 0
vt 0.895706 0.044199 0
vt 0.863089 0.136564 0
vt 0.895706 0.044199 0
vt 0.0750847 0.0832081 0
vt 0.0750847 0.0832081 0
vt 0.058403 0.130424 0
vt 0.863089 0.136564 0
vt 0.0613213 0.179768 0
vt 0.868813 0.233093 0
vt 0.863089 0.136564 0
vt 0.863089 0.136564 0
vt 0.058403 0.130424 0
vt 0.0613213 0.179768 0
vt 0.912313 0.32432 0
vt 0.868813 0.233093 0
vt 0.0613213 0.179768 0
vt 0.0613213 0.179768 0
vt 0.0835514 0.2264 0
vt 0.912313 0.32432 0
vt 0.912313 0.32432 0
vt 0.0835514 0.2264 0
vt 0.122919 0.265766 0
vt 0.912313 0.32432 0
vt 0.122919 0.265766 0
vt 0.989321 0.401337 0
vt 0.989321 0.401337 0
vt 0.122919 0.265766 0
vt 0.175568 0.29401 0
vt 0.989321 0.401337 0
vt 0.175568 0.29401 0
vt 0.0923042 0.456589 0
vt 0.211182 0.484669 0
vt 0.0923042 0.456589 0
vt 0.175568 0.29401 0
vt 0.175568 0.29401 0
vt 0.236343 0.308367 0
vt 0.211182 0.484669 0
vt 0.363491 0.661592 0
vt 0.185555 0.664246 0
vt 0.211182 0.484669 0
vt 0.211182 0.484669 0
vt 0.334332 0.482836 0
vt 0.363491 0.661592 0
vt 0.363491 0.661592 0
vt 0.334332 0.482836 0
vt 0.449701 0.451271 0
vt 0.363491 0.661592 0
vt 0.449701 0.451271 0
vt 0.530201 0.615967 0
vt 0.669374 0.531843 0
vt 0.530201 0.615967 0
vt 0.449701 0.451271 0
vt 0.449701 0.451271 0
vt 0.546011 0.393051 0
vt 0.669374 0.531843 0
vt 0.767384 0.417452 0
vt 0.669374 0.531843 0
vt 0.546011 0.393051 0
vt 0.546011 0.393051 0
vt 0.613829 0.313894 0
vt 0.767384 0.417452 0
vt 0.767384 0.417452 0
vt 0.613829 0.313894 0
vt 0.646511 0.221533 0
vt 0.767384 0.417452 0
vt 0.646511 0.221533 0
vt 0.814634 0.283974 0
vt 0.806473 0.144503 0
vt 0.814634 0.283974 0
vt 0.646511 0.221533 0
vt 0.646511 0.221533 0
vt 0.640848 0.125015 0
vt 0.806473 0.144503 0
vt 0.806473 0.144503 0
vt 0.640848 0.125015 0
vt 0.597385 0.0337887 0
vt 0.806473 0.144503 0
vt 0.597385 0.0337887 0
vt 0.743683 0.0126667 0
vt 0.743683 0.0126667 0
vt 0.597385 0.0337887 0
vt 0.520378 0.956776 0
vt 0.743683 0.0126667 0
vt 0.520378 0.956776 0
vt 0.632399 0.901375 0
vt 0.483517 0.821526 0
vt 0.632399 0.901375 0
vt 0.520378 0.956776 0
vt 0.520378 0.956776 0
vt 0.417356 0.901518 0
vt 0.483517 0.821526 0
vt 0.483517 0.821526 0
vt 0.417356 0.901518 0
vt 0.298414 0.87343 0
vt 0.483517 0.821526 0
vt 0.298414 0.87343 0
vt 0.311615 0.78093 0
vt 0.298414 0.87343 0
vt 0.175203 0.875256 0
vt 0.133547 0.783567 0
vt 0.311615 0.78093 0
vt 0.298414 0.87343 0
vt 0.133547 0.783567 0
vt 0.133547 0.783567 0
vt 0.175203 0.875256 0
vt 0.0597916 0.90682 0
vt 0.133547 0.783567 0
vt 0.0597916 0.90682 0
vt 0.966755 0.829182 0
vt 0.966755 0.829182 0
vt 0.0597916 0.90682 0
vt 0.963484 0.965036 0
vt 0.966755 0.829182 0
vt 0.963484 0.965036 0
vt 0.827581 0.913309 0
vt 0.729654 0.0277119 0
vt 0.827581 0.913309 0
vt 0.963484 0.965036 0
vt 0.963484 0.965036 0
vt 0.895706 0.044199 0
vt 0.729654 0.0277119 0
vt 0.729654 0.0277119 0
vt 0.895706 0.044199 0
vt 0.863089 0.136564 0
vt 0.729654 0.0277119 0
vt 0.863089 0.136564 0
vt 0.682537 0.16119 0
vt 0.690828 0.300688 0
vt 0.682537 0.16119 0
vt 0.863089 0.136564 0
vt 0.863089 0.136564 0
vt 0.868813 0.233093 0
vt 0.690828 0.300688 0
vt 0.690828 0.300688 0
vt 0.868813 0.233093 0
vt 0.912313 0.32432 0
vt 0.690828 0.300688 0
vt 0.912313 0.32432 0
vt 0.753702 0.432531 0
vt 0.864986 0.543818 0
vt 0.753702 0.432531 0
vt 0.912313 0.32432 0
vt 0.912313 0.32432 0
vt 0.989321 0.401337 0
vt 0.864986 0.543818 0
vt 0.0137863 0.623663 0
vt 0.864986 0.543818 0
vt 0.989321 0.401337 0
vt 0.989321 0.401337 0
vt 0.0923042 0.456589 0
vt 0.0137863 0.623663 0
vt 0.0137863 0.623663 0
vt 0.0923042 0.456589 0
vt 0.211182 0.484669 0
vt 0.0137863 0.623663 0
vt 0.211182 0.484669 0
vt 0.185555 0.664246 0
# 11514 texture vertices
g orc_body
s 1
f 903/7038 921/7037 902/7036
f 921/7035 920/7034 902/7033
f 902/7032 920/7031 901/7030
f 922/7041 921/7040 903/7039
f 905/7050 923/7049 904/7048
f 923/7047 922/7046 904/7045
f 904/7044 922/7043 903/7042
f 917/7017 916/7016 898/7015
f 898/7014 916/7013 897/7012
f 916/7011 915/7010 897/7009
f 899/7020 917/7019 898/7018
f 920/7029 919/7028 901/7027
f 900/7026 918/7025 899/7024
f 918/7023 917/7022 899/7021
f 910/7080 928/7079 909/7078
f 928/7077 927/7076 909/7075
f 909/7074 927/7073 908/7072
f 929/7083 928/7082 910/7081
f 912/7092 930/7091 911/7090
f 930/7089 929/7088 911/7087
f 911/7086 929/7085 910/7084
f 925/7059 924/7058 906/7057
f 906/7056 924/7055 905/7054
f 924/7053 923/7052 905/7051
f 907/7062 925/7061 906/7060
f 927/7071 926/7070 908/7069
f 908/7068 926/7067 907/7066
f 926/7065 925/7064 907/7063
f 888/6954 906/6953 887/6952
f 906/6951 905/6950 887/6949
f 887/6948 905/6947 886/6946
f 907/6957 906/6956 888/6955
f 890/6966 908/6965 889/6964
f 908/6963 907/6962 889/6961
f 889/6960 907/6959 888/6958
f 903/6933 902/6932 884/6931
f 884/6930 902/6929 883/6928
f 902/6927 901/6926 883/6925
f 885/6936 903/6935 884/6934
f 905/6945 904/6944 886/6943
f 886/6942 904/6941 885/6940
f 904/6939 903/6938 885/6937
f 895/6996 913/6995 894/6994
f 913/6993 912/6992 894/6991
f 894/6990 912/6989 893/6988
f 914/6999 913/6998 895/6997
f 897/7008 915/7007 896/7006
f 915/7005 914/7004 896/7003
f 896/7002 914/7001 895/7000
f 910/6975 909/6974 891/6973
f 891/6972 909/6971 890/6970
f 909/6969 908/6968 890/6967
f 892/6978 910/6977 891/6976
f 912/6987 911/6986 893/6985
f 893/6984 911/6983 892/6982
f 911/6981 910/6980 892/6979
f 931/7095 930/7094 912/7093
f 798/7209 799/7208 932/7207
f 932/7206 799/7205 931/7204
f 799/7203 804/7202 931/7201
f 933/7212 798/7211 932/7210
f 801/7221 800/7220 934/7219
f 934/7218 800/7217 933/7216
f 800/7215 798/7214 933/7213
f 929/7188 803/7187 928/7186
f 803/7185 807/7184 928/7183
f 928/7182 807/7181 927/7180
f 802/7191 803/7190 929/7189
f 931/7200 804/7199 930/7198
f 804/7197 802/7196 930/7195
f 930/7194 802/7193 929/7192
f 859/7251 858/7250 489/7249
f 858/7248 490/7247 489/7246
f 488/7245 858/7244 487/7243
f 858/7254 859/7253 487/7252
f 861/7263 860/7262 525/7261
f 525/7260 528/7259 861/7258
f 860/7257 861/7256 526/7255
f 936/7230 811/7229 935/7228
f 811/7227 801/7226 935/7225
f 935/7224 801/7223 934/7222
f 526/7233 521/7232 860/7231
f 858/7242 488/7241 490/7240
f 521/7239 524/7238 860/7237
f 524/7236 863/7235 860/7234
f 936/7125 935/7124 917/7123
f 917/7122 935/7121 916/7120
f 935/7119 934/7118 916/7117
f 918/7128 936/7127 917/7126
f 810/7137 794/7136 920/7135
f 920/7134 794/7133 919/7132
f 794/7131 795/7130 919/7129
f 914/7104 932/7103 913/7102
f 932/7101 931/7100 913/7099
f 913/7098 931/7097 912/7096
f 933/7107 932/7106 914/7105
f 916/7116 934/7115 915/7114
f 934/7113 933/7112 915/7111
f 915/7110 933/7109 914/7108
f 805/7167 808/7166 925/7165
f 925/7164 808/7163 924/7162
f 808/7161 809/7160 924/7159
f 926/7170 805/7169 925/7168
f 807/7179 806/7178 927/7177
f 927/7176 806/7175 926/7174
f 806/7173 805/7172 926/7171
f 922/7146 796/7145 921/7144
f 796/7143 810/7142 921/7141
f 921/7140 810/7139 920/7138
f 797/7149 796/7148 922/7147
f 924/7158 809/7157 923/7156
f 809/7155 797/7154 923/7153
f 923/7152 797/7151 922/7150
f 882/6924 900/6923 881/6922
f 1019/6696 1024/6695 210/6694
f 1025/6693 1019/6692 192/6691
f 1023/6690 1014/6689 1022/6688
f 1024/6699 1025/6698 217/6697
f 1026/6708 1017/6707 218/6706
f 1025/6705 1026/6704 217/6703
f 1025/6702 1024/6701 1019/6700
f 1022/6675 210/6674 211/6673
f 1021/6672 1022/6671 191/6670
f 1021/6669 1008/6668 1020/6667
f 210/6678 1022/6677 1021/6676
f 1023/6687 214/6686 1014/6685
f 1014/6684 191/6683 1022/6682
f 1023/6681 1022/6680 211/6679
f 817/6738 868/6737 818/6736
f 868/6735 867/6734 818/6733
f 818/6732 867/6731 816/6730
f 869/6741 868/6740 817/6739
f 828/6750 870/6749 819/6748
f 870/6747 869/6746 819/6745
f 819/6744 869/6743 817/6742
f 842/6717 532/6716 843/6715
f 1025/6714 1017/6713 1026/6712
f 1017/6711 1025/6710 192/6709
f 531/6720 532/6719 842/6718
f 867/6729 866/6728 816/6727
f 816/6726 866/6725 815/6724
f 866/6723 865/6722 815/6721
f 1012/6612 1013/6611 967/6610
f 967/6609 1013/6608 201/6607
f 1012/6606 967/6605 196/6604
f 1043/6615 1015/6614 201/6613
f 1017/6624 1016/6623 218/6622
f 1015/6621 1003/6620 201/6619
f 1013/6618 1043/6617 201/6616
f 1039/6591 1009/6590 941/6589
f 1011/6588 941/6587 184/6586
f 941/6585 1009/6584 182/6583
f 941/6594 1011/6593 1039/6592
f 959/6603 1007/6602 1012/6601
f 1007/6600 959/6599 189/6598
f 959/6597 1012/6596 196/6595
f 1020/6654 188/6653 1010/6652
f 1019/6651 1010/6650 1035/6649
f 1035/6648 192/6647 1019/6646
f 1020/6657 1010/6656 1019/6655
f 1021/6666 191/6665 1008/6664
f 1008/6663 188/6662 1020/6661
f 1021/6660 1020/6659 210/6658
f 1038/6633 1011/6632 1017/6631
f 1017/6630 192/6629 1038/6628
f 1016/6627 1011/6626 184/6625
f 1017/6636 1011/6635 1016/6634
f 1020/6645 1019/6644 210/6643
f 1018/6642 999/6641 784/6640
f 1016/6639 1018/6638 218/6637
f 871/6753 870/6752 828/6751
f 891/6867 890/6866 872/6865
f 872/6864 890/6863 871/6862
f 890/6861 889/6860 871/6859
f 873/6870 891/6869 872/6868
f 893/6879 892/6878 874/6877
f 874/6876 892/6875 873/6874
f 892/6873 891/6872 873/6871
f 869/6846 887/6845 868/6844
f 887/6843 886/6842 868/6841
f 868/6840 886/6839 867/6838
f 888/6849 887/6848 869/6847
f 871/6858 889/6857 870/6856
f 889/6855 888/6854 870/6853
f 870/6852 888/6851 869/6850
f 898/6909 897/6908 879/6907
f 879/6906 897/6905 878/6904
f 897/6903 896/6902 878/6901
f 880/6912 898/6911 879/6910
f 900/6921 899/6920 881/6919
f 881/6918 899/6917 880/6916
f 899/6915 898/6914 880/6913
f 876/6888 894/6887 875/6886
f 894/6885 893/6884 875/6883
f 875/6882 893/6881 874/6880
f 895/6891 894/6890 876/6889
f 878/6900 896/6899 877/6898
f 896/6897 895/6896 877/6895
f 877/6894 895/6893 876/6892
f 876/6783 875/6782 824/6781
f 824/6780 875/6779 825/6778
f 875/6777 874/6776 825/6775
f 823/6786 876/6785 824/6784
f 878/6795 877/6794 844/6793
f 844/6792 877/6791 823/6790
f 877/6789 876/6788 823/6787
f 827/6762 872/6761 820/6760
f 872/6759 871/6758 820/6757
f 820/6756 871/6755 828/6754
f 873/6765 872/6764 827/6763
f 825/6774 874/6773 826/6772
f 874/6771 873/6770 826/6769
f 826/6768 873/6767 827/6766
f 884/6825 883/6824 865/6823
f 822/6822 882/6821 813/6820
f 882/6819 881/6818 813/6817
f 866/6828 884/6827 865/6826
f 886/6837 885/6836 867/6835
f 867/6834 885/6833 866/6832
f 885/6831 884/6830 866/6829
f 812/6804 879/6803 814/6802
f 879/6801 878/6800 814/6799
f 814/6798 878/6797 844/6796
f 880/6807 879/6806 812/6805
f 813/6816 881/6815 821/6814
f 881/6813 880/6812 821/6811
f 821/6810 880/6809 812/6808
f 112/7719 110/7718 117/7717
f 111/7716 110/7715 112/7714
f 117/7713 108/7712 112/7711
f 450/7722 111/7721 112/7720
f 110/7731 114/7730 113/7729
f 110/7728 109/7727 114/7726
f 112/7725 108/7724 450/7723
f 450/7698 108/7697 416/7696
f 106/7695 103/7694 111/7693
f 111/7692 107/7691 106/7690
f 143/7701 109/7700 110/7699
f 450/7710 792/7709 111/7708
f 792/7707 107/7706 111/7705
f 111/7704 143/7703 110/7702
f 124/7761 117/7760 120/7759
f 116/7758 119/7757 120/7756
f 120/7755 118/7754 124/7753
f 118/7764 119/7763 123/7762
f 128/7773 127/7772 124/7771
f 127/7770 108/7769 124/7768
f 118/7767 123/7766 125/7765
f 113/7740 115/7739 116/7738
f 114/7737 115/7736 113/7735
f 117/7734 110/7733 113/7732
f 113/7743 116/7742 120/7741
f 119/7752 118/7751 120/7750
f 124/7749 108/7748 117/7747
f 117/7746 113/7745 120/7744
f 805/7635 806/7634 533/7633
f 804/7632 799/7631 411/7630
f 803/7629 802/7628 239/7627
f 805/7638 533/7637 532/7636
f 412/7647 803/7646 239/7645
f 807/7644 803/7643 412/7642
f 806/7641 807/7640 412/7639
f 312/7614 828/7613 819/7612
f 819/7611 314/7610 312/7609
f 826/7608 827/7607 320/7606
f 799/7617 798/7616 411/7615
f 800/7626 801/7625 410/7624
f 410/7623 409/7622 800/7621
f 798/7620 800/7619 409/7618
f 456/7677 452/7676 792/7675
f 792/7674 450/7673 456/7672
f 155/7671 448/7670 122/7669
f 781/7680 455/7679 793/7678
f 106/7689 107/7688 105/7687
f 105/7686 104/7685 106/7684
f 793/7683 145/7682 781/7681
f 531/7656 805/7655 532/7654
f 808/7653 805/7652 531/7651
f 809/7650 808/7649 531/7648
f 410/7659 801/7658 811/7657
f 453/7668 448/7667 155/7666
f 452/7665 107/7664 792/7663
f 516/7662 526/7661 522/7660
f 124/7776 118/7775 125/7774
f 104/7890 105/7889 145/7888
f 105/7887 452/7886 145/7885
f 144/7884 109/7883 143/7882
f 147/7893 146/7892 149/7891
f 102/7902 103/7901 149/7900
f 106/7899 104/7898 148/7897
f 149/7896 146/7895 102/7894
f 142/7869 133/7868 141/7867
f 142/7866 132/7865 133/7864
f 135/7863 131/7862 141/7861
f 141/7872 133/7871 135/7870
f 111/7881 103/7880 143/7879
f 103/7878 144/7877 143/7876
f 103/7875 102/7874 144/7873
f 147/7932 148/7931 152/7930
f 151/7929 147/7928 152/7927
f 151/7926 146/7925 147/7924
f 154/7935 136/7934 153/7933
f 155/7944 154/7943 153/7942
f 153/7941 453/7940 155/7939
f 155/7938 121/7937 154/7936
f 106/7911 148/7910 149/7909
f 148/7908 147/7907 149/7906
f 149/7905 103/7904 106/7903
f 156/7914 137/7913 150/7912
f 148/7923 156/7922 152/7921
f 152/7920 150/7919 151/7918
f 156/7917 150/7916 152/7915
f 126/7806 127/7805 128/7804
f 128/7803 125/7802 129/7801
f 125/7800 122/7799 129/7798
f 126/7809 128/7808 129/7807
f 121/7818 125/7817 135/7816
f 123/7815 130/7814 140/7813
f 123/7812 119/7811 130/7810
f 129/7785 419/7784 126/7783
f 129/7782 122/7781 419/7780
f 128/7779 124/7778 125/7777
f 416/7788 108/7787 127/7786
f 125/7797 121/7796 122/7795
f 126/7794 416/7793 127/7792
f 126/7791 419/7790 416/7789
f 139/7848 136/7847 154/7846
f 138/7845 136/7844 139/7843
f 138/7842 137/7841 136/7840
f 134/7851 138/7850 139/7849
f 141/7860 140/7859 142/7858
f 131/7857 140/7856 141/7855
f 154/7854 135/7853 139/7852
f 131/7827 123/7826 140/7825
f 135/7824 123/7823 131/7822
f 135/7821 125/7820 123/7819
f 133/7830 132/7829 134/7828
f 154/7839 121/7838 135/7837
f 135/7836 133/7835 139/7834
f 133/7833 134/7832 139/7831
f 827/7605 820/7604 315/7603
f 845/7377 457/7376 707/7375
f 850/7374 851/7373 445/7372
f 445/7371 446/7370 850/7369
f 846/7380 848/7379 457/7378
f 848/7389 846/7388 847/7387
f 457/7386 848/7385 453/7384
f 845/7383 846/7382 457/7381
f 446/7356 437/7355 849/7354
f 849/7353 437/7352 768/7351
f 437/7350 752/7349 768/7348
f 850/7359 849/7358 768/7357
f 851/7368 850/7367 769/7366
f 849/7365 850/7364 446/7363
f 850/7362 768/7361 769/7360
f 844/7419 823/7418 397/7417
f 733/7416 179/7415 847/7414
f 180/7413 847/7412 179/7411
f 814/7422 844/7421 397/7420
f 836/7431 834/7430 835/7429
f 835/7428 537/7427 836/7426
f 834/7425 836/7424 837/7423
f 180/7398 448/7397 847/7396
f 848/7395 448/7394 453/7393
f 847/7392 448/7391 848/7390
f 707/7401 732/7400 845/7399
f 847/7410 846/7409 733/7408
f 846/7407 732/7406 733/7405
f 846/7404 845/7403 732/7402
f 864/7293 859/7292 489/7291
f 487/7290 859/7289 864/7288
f 864/7287 527/7286 487/7285
f 410/7296 856/7295 538/7294
f 857/7305 740/7304 538/7303
f 857/7302 856/7301 811/7300
f 856/7299 410/7298 811/7297
f 862/7272 861/7271 528/7270
f 528/7269 527/7268 862/7267
f 861/7266 862/7265 526/7264
f 860/7275 863/7274 525/7273
f 864/7284 862/7283 527/7282
f 862/7281 864/7280 489/7279
f 489/7278 526/7277 862/7276
f 421/7335 433/7334 438/7333
f 437/7332 446/7331 438/7330
f 687/7329 697/7328 717/7327
f 433/7338 432/7337 438/7336
f 425/7347 444/7346 441/7345
f 444/7344 447/7343 441/7342
f 436/7341 438/7340 446/7339
f 691/7314 176/7313 175/7312
f 855/7311 835/7310 1046/7309
f 538/7308 856/7307 857/7306
f 691/7317 175/7316 715/7315
f 697/7326 237/7325 717/7324
f 235/7323 236/7322 234/7321
f 236/7320 238/7319 234/7318
f 837/7434 724/7433 834/7432
f 817/7548 818/7547 311/7546
f 498/7545 409/7544 538/7543
f 409/7542 410/7541 538/7540
f 310/7551 817/7550 311/7549
f 312/7560 315/7559 820/7558
f 819/7557 817/7556 310/7555
f 310/7554 314/7553 819/7552
f 311/7527 816/7526 833/7525
f 832/7524 833/7523 330/7522
f 832/7521 323/7520 311/7519
f 833/7530 832/7529 311/7528
f 833/7539 831/7538 309/7537
f 309/7536 330/7535 833/7534
f 831/7533 833/7532 816/7531
f 825/7590 318/7589 401/7588
f 824/7587 825/7586 401/7585
f 823/7584 824/7583 401/7582
f 320/7593 318/7592 825/7591
f 315/7602 316/7601 827/7600
f 320/7599 827/7598 316/7597
f 825/7596 826/7595 320/7594
f 821/7569 812/7568 414/7567
f 818/7566 816/7565 311/7564
f 820/7563 828/7562 312/7561
f 822/7572 813/7571 390/7570
f 823/7581 401/7580 402/7579
f 823/7578 402/7577 397/7576
f 813/7575 821/7574 414/7573
f 533/7464 412/7463 840/7462
f 838/7461 840/7460 237/7459
f 840/7458 839/7457 236/7456
f 840/7467 838/7466 533/7465
f 837/7476 841/7475 724/7474
f 696/7473 711/7472 842/7471
f 841/7470 747/7469 725/7468
f 532/7443 533/7442 838/7441
f 238/7440 839/7439 239/7438
f 839/7437 238/7436 236/7435
f 838/7446 843/7445 532/7444
f 236/7455 237/7454 840/7453
f 839/7452 840/7451 412/7450
f 239/7449 839/7448 412/7447
f 829/7506 830/7505 307/7504
f 815/7503 830/7502 829/7501
f 829/7500 816/7499 815/7498
f 309/7509 831/7508 829/7507
f 323/7518 832/7517 330/7516
f 829/7515 831/7514 816/7513
f 829/7512 307/7511 309/7510
f 843/7485 697/7484 696/7483
f 843/7482 838/7481 697/7480
f 841/7479 725/7478 724/7477
f 842/7488 843/7487 696/7486
f 834/7497 724/7496 1046/7495
f 835/7494 834/7493 1046/7492
f 747/7491 842/7490 711/7489
f 1009/6582 1037/6581 182/6580
f 740/10821 492/10820 497/10819
f 740/10824 497/10823 538/10822
f 538/10827 497/10826 498/10825
f 544/10818 539/10817 739/10816
f 544/10809 739/10808 541/10807
f 539/10812 501/10811 739/10810
f 739/10815 501/10814 467/10813
f 988/10842 744/10841 1062/10840
f 745/10845 219/10844 764/10843
f 764/10848 219/10847 221/10846
f 1062/10839 225/10838 988/10837
f 704/10830 741/10829 729/10828
f 743/10833 742/10832 741/10831
f 704/10836 743/10835 741/10834
f 734/10779 178/10778 735/10777
f 230/10782 734/10781 735/10780
f 178/10785 733/10784 732/10783
f 734/10776 733/10775 178/10774
f 728/10767 692/10766 731/10765
f 692/10770 728/10769 693/10768
f 707/10773 457/10772 709/10771
f 557/10800 737/10799 555/10798
f 461/10803 462/10802 738/10801
f 557/10806 461/10805 738/10804
f 738/10797 737/10796 557/10795
f 552/10788 550/10787 556/10786
f 552/10791 556/10790 736/10789
f 551/10794 552/10793 736/10792
f 753/10905 756/10904 758/10903
f 758/10908 756/10907 757/10906
f 750/10911 753/10910 758/10909
f 755/10902 753/10901 754/10900
f 751/10893 432/10892 750/10891
f 751/10896 752/10895 437/10894
f 753/10899 750/10898 754/10897
f 770/10926 759/10925 789/10924
f 752/10929 760/10928 770/10927
f 758/10932 757/10931 759/10930
f 760/10923 759/10922 770/10921
f 753/10914 755/10913 756/10912
f 758/10917 752/10916 751/10915
f 758/10920 751/10919 750/10918
f 725/10863 747/10862 710/10861
f 748/10866 423/10865 430/10864
f 416/10869 423/10868 451/10867
f 720/10860 727/10859 761/10858
f 746/10851 745/10850 764/10849
f 745/10854 746/10853 742/10852
f 761/10857 742/10856 746/10855
f 428/10884 226/10883 430/10882
f 754/10887 434/10886 749/10885
f 754/10890 750/10889 432/10888
f 427/10881 226/10880 428/10879
f 456/10872 450/10871 451/10870
f 456/10875 451/10874 748/10873
f 748/10878 451/10877 423/10876
f 731/10764 559/10763 558/10762
f 1061/5844 720/5843 761/5842
f 762/5841 763/5840 1061/5839
f 763/5838 854/5837 1061/5836
f 762/5847 1061/5846 761/5845
f 1056/5856 1057/5855 718/5854
f 1057/5853 1056/5852 1045/5851
f 1045/5850 1046/5849 1057/5848
f 742/5823 761/5822 741/5821
f 727/5820 729/5819 741/5818
f 761/5817 727/5816 741/5815
f 1048/5826 725/5825 699/5824
f 1061/5835 719/5834 720/5833
f 854/5832 719/5831 1061/5830
f 698/5829 1048/5828 699/5827
f 1047/5886 1059/5885 1046/5884
f 1059/5883 1060/5882 723/5881
f 1048/5880 1060/5879 1047/5878
f 1060/5889 1048/5888 698/5887
f 1049/5898 810/5897 796/5896
f 1060/5895 698/5894 700/5893
f 700/5892 723/5891 1060/5890
f 718/5865 1057/5864 722/5863
f 1057/5862 1058/5861 722/5860
f 1057/5859 1046/5858 1058/5857
f 1046/5868 1059/5867 1058/5866
f 1060/5877 1059/5876 1047/5875
f 1058/5874 1059/5873 722/5872
f 1059/5871 723/5870 722/5869
f 179/5760 778/5759 749/5758
f 730/10737 565/10736 703/10735
f 730/10740 703/10739 729/10738
f 181/5763 179/5762 749/5761
f 433/5772 434/5771 432/5770
f 434/5769 754/5768 432/5767
f 432/5766 751/5765 437/5764
f 564/10755 731/10754 558/10753
f 565/10758 730/10757 564/10756
f 692/10761 559/10760 731/10759
f 730/10752 731/10751 564/10750
f 729/10743 703/10742 704/10741
f 728/10746 730/10745 729/10744
f 730/10749 728/10748 731/10747
f 695/5802 700/5801 694/5800
f 1062/5799 1064/5798 742/5797
f 742/5796 743/5795 1062/5794
f 700/5805 561/5804 694/5803
f 727/5814 728/5813 729/5812
f 713/5811 699/5810 712/5809
f 699/5808 710/5807 712/5806
f 1063/5781 219/5780 745/5779
f 219/5778 1063/5777 744/5776
f 438/5775 432/5774 437/5773
f 745/5784 742/5783 1064/5782
f 1064/5793 1062/5792 744/5791
f 1063/5790 1064/5789 744/5788
f 1064/5787 1063/5786 745/5785
f 758/10935 759/10934 760/10933
f 787/11163 556/11162 555/11161
f 787/11166 555/11165 786/11164
f 756/11169 787/11168 786/11167
f 787/11160 756/11159 755/11158
f 1062/11151 743/11150 785/11149
f 225/11154 1062/11153 785/11152
f 757/11157 756/11156 786/11155
f 555/11184 788/11183 786/11182
f 788/11187 555/11186 737/11185
f 789/11190 737/11189 790/11188
f 786/11181 759/11180 757/11179
f 759/11172 788/11171 789/11170
f 789/11175 788/11174 737/11173
f 788/11178 759/11177 786/11176
f 743/11121 782/11120 785/11119
f 780/11124 783/11123 782/11122
f 780/11127 782/11126 708/11125
f 785/11118 782/11117 783/11116
f 782/11109 743/11108 701/11107
f 701/11112 743/11111 704/11110
f 702/11115 782/11114 701/11113
f 785/11142 783/11141 784/11140
f 1001/11145 225/11144 785/11143
f 785/11148 784/11147 1001/11146
f 145/11139 784/11138 783/11137
f 708/11130 782/11129 702/11128
f 709/11133 780/11132 708/11131
f 780/11136 145/11135 783/11134
f 721/10707 722/10706 723/10705
f 561/10710 700/10709 698/10708
f 710/10713 699/10712 725/10711
f 718/10704 721/10703 719/10702
f 717/10695 597/10694 687/10693
f 720/10698 719/10697 721/10696
f 722/10701 721/10700 718/10699
f 727/10728 721/10727 726/10726
f 727/10731 726/10730 728/10729
f 721/10734 727/10733 720/10732
f 723/10725 726/10724 721/10723
f 723/10716 700/10715 693/10714
f 723/10719 693/10718 728/10717
f 723/10722 728/10721 726/10720
f 755/11205 779/11204 791/11203
f 791/11208 779/11207 777/11206
f 777/11211 779/11210 778/11209
f 755/11202 791/11201 787/11200
f 771/11193 789/11192 790/11191
f 791/11196 736/11195 787/11194
f 787/11199 736/11198 556/11197
f 237/10686 716/10685 717/10684
f 176/10689 716/10688 175/10687
f 237/10692 697/10691 838/10690
f 717/10683 176/10682 597/10681
f 736/11214 791/11213 777/11212
f 178/10677 715/10676 735/10675
f 716/10680 176/10679 717/10678
f 747/11106 711/11105 710/11104
f 773/10992 234/10991 772/10990
f 773/10995 772/10994 543/10993
f 547/10998 773/10997 543/10996
f 239/10989 536/10988 238/10987
f 238/10980 535/10979 772/10978
f 234/10983 238/10982 772/10981
f 536/10986 535/10985 238/10984
f 233/11013 774/11012 231/11011
f 775/11016 551/11015 774/11014
f 233/11019 775/11018 774/11017
f 231/11010 774/11009 230/11008
f 775/11001 233/11000 773/10999
f 773/11004 233/11003 234/11002
f 547/11007 775/11006 773/11005
f 221/10950 223/10949 765/10948
f 221/10953 765/10952 764/10951
f 764/10956 765/10955 763/10954
f 764/10947 762/10946 746/10945
f 752/10938 758/10937 760/10936
f 761/10941 746/10940 762/10939
f 764/10944 763/10943 762/10942
f 770/10971 768/10970 752/10969
f 770/10974 789/10973 769/10972
f 769/10977 789/10976 771/10975
f 770/10968 769/10967 768/10966
f 766/10959 229/10958 228/10957
f 427/10962 766/10961 228/10960
f 767/10965 229/10964 766/10963
f 418/11076 122/11075 449/11074
f 448/11079 449/11078 122/11077
f 781/11082 145/11081 780/11080
f 122/11073 418/11072 419/11071
f 435/11064 449/11063 181/11062
f 434/11067 435/11066 181/11065
f 448/11070 180/11069 449/11068
f 784/11097 145/11096 452/11095
f 452/11100 218/11099 1018/11098
f 1018/11103 784/11102 452/11101
f 748/11094 452/11093 456/11092
f 781/11085 780/11084 709/11083
f 457/11088 781/11087 709/11086
f 748/11091 218/11090 452/11089
f 734/11034 179/11033 733/11032
f 230/11037 776/11036 734/11035
f 774/11040 736/11039 777/11038
f 776/11031 179/11030 734/11029
f 551/11022 775/11021 547/11020
f 736/11025 774/11024 551/11023
f 776/11028 778/11027 179/11026
f 749/11055 779/11054 754/11053
f 749/11058 778/11057 779/11056
f 434/11061 181/11060 749/11059
f 754/11052 779/11051 755/11050
f 774/11043 777/11042 776/11041
f 776/11046 777/11045 778/11044
f 230/11049 774/11048 776/11047
f 1035/6354 1034/6353 1033/6352
f 1034/6351 1035/6350 1010/6349
f 1033/6348 1034/6347 1009/6346
f 1029/6357 1010/6356 188/6355
f 1034/6366 1037/6365 1009/6364
f 1029/6363 1036/6362 1010/6361
f 1036/6360 1029/6359 1006/6358
f 1032/6333 1031/6332 1008/6331
f 1031/6330 1032/6329 1007/6328
f 1032/6327 1008/6326 191/6325
f 1005/6336 1031/6335 1007/6334
f 1035/6345 1033/6344 192/6343
f 1028/6342 1031/6341 1005/6340
f 1031/6339 1028/6338 1008/6337
f 1012/6396 1040/6395 1013/6394
f 1040/6393 1032/6392 191/6391
f 1032/6390 1012/6389 1007/6388
f 1040/6399 1012/6398 1032/6397
f 1040/6408 1042/6407 1013/6406
f 1014/6405 1040/6404 191/6403
f 1041/6402 1014/6401 214/6400
f 1034/6375 1036/6374 1037/6373
f 1036/6372 1034/6371 1010/6370
f 1037/6369 1036/6368 1006/6367
f 1033/6378 1038/6377 192/6376
f 1033/6387 1039/6386 1038/6385
f 1039/6384 1033/6383 1009/6382
f 1038/6381 1039/6380 1011/6379
f 990/6270 963/6269 199/6268
f 992/6267 990/6266 199/6265
f 983/6264 984/6263 951/6262
f 995/6273 993/6272 206/6271
f 977/6282 993/6281 996/6280
f 993/6279 977/6278 206/6277
f 977/6276 996/6275 209/6274
f 943/6249 984/6248 187/6247
f 956/6246 943/6245 185/6244
f 984/6243 956/6242 195/6241
f 984/6252 943/6251 956/6250
f 984/6261 983/6260 187/6259
f 951/6258 984/6257 195/6256
f 983/6255 951/6254 193/6253
f 1028/6312 1029/6311 188/6310
f 1028/6309 1005/6308 1004/6307
f 1027/6306 1003/6305 1044/6304
f 1029/6315 1030/6314 1006/6313
f 1008/6324 1028/6323 188/6322
f 1028/6321 1030/6320 1029/6319
f 1030/6318 1028/6317 1004/6316
f 979/6291 996/6290 992/6289
f 996/6288 979/6287 209/6286
f 979/6285 992/6284 199/6283
f 948/6294 997/6293 193/6292
f 1003/6303 1027/6302 1002/6301
f 1027/6300 1044/6299 200/6298
f 997/6297 982/6296 193/6295
f 1014/6411 1042/6410 1040/6409
f 999/6525 1000/6524 784/6523
f 942/6522 999/6521 184/6520
f 982/6519 997/6518 998/6517
f 1000/6528 942/6527 183/6526
f 1000/6537 1001/6536 784/6535
f 998/6534 1000/6533 183/6532
f 942/6531 1000/6530 999/6529
f 997/6504 989/6503 225/6502
f 992/6501 996/6500 222/6499
f 996/6498 993/6497 222/6496
f 989/6507 948/6506 194/6505
f 998/6516 997/6515 225/6514
f 982/6513 998/6512 183/6511
f 948/6510 989/6509 997/6508
f 944/6567 1004/6566 186/6565
f 1006/6564 944/6563 182/6562
f 954/6561 1004/6560 1005/6559
f 1030/6570 1004/6569 944/6568
f 1037/6579 1006/6578 182/6577
f 1005/6576 1007/6575 189/6574
f 1006/6573 1030/6572 944/6571
f 938/6546 1002/6545 853/6544
f 998/6543 1001/6542 1000/6541
f 1001/6540 998/6539 225/6538
f 1003/6549 938/6548 201/6547
f 954/6558 1005/6557 189/6556
f 1004/6555 954/6554 186/6553
f 1003/6552 1002/6551 938/6550
f 1016/6441 184/6440 1018/6439
f 184/6438 999/6437 1018/6436
f 1044/6435 1003/6434 1015/6433
f 941/6444 942/6443 184/6442
f 986/6453 987/6452 220/6451
f 985/6450 986/6449 744/6448
f 987/6447 985/6446 194/6445
f 1043/6420 1041/6419 1015/6418
f 1042/6417 1043/6416 1013/6415
f 1041/6414 1042/6413 1014/6412
f 1041/6423 1043/6422 1042/6421
f 214/6432 1044/6431 1041/6430
f 1044/6429 214/6428 200/6427
f 1041/6426 1044/6425 1015/6424
f 987/6483 990/6482 220/6481
f 963/6480 987/6479 194/6478
f 992/6477 991/6476 990/6475
f 963/6486 990/6485 987/6484
f 995/6495 994/6494 993/6493
f 994/6492 995/6491 224/6490
f 993/6489 994/6488 222/6487
f 988/6462 985/6461 744/6460
f 989/6459 988/6458 225/6457
f 987/6456 986/6455 985/6454
f 985/6465 989/6464 194/6463
f 991/6474 992/6473 222/6472
f 990/6471 991/6470 220/6469
f 989/6468 985/6467 988/6466
f 947/6240 983/6239 982/6238
f 946/6012 945/6011 943/6010
f 945/6009 946/6008 182/6007
f 943/6006 945/6005 185/6004
f 947/6015 946/6014 187/6013
f 947/6024 940/6023 946/6022
f 940/6021 947/6020 183/6019
f 946/6018 940/6017 182/6016
f 939/5991 937/5990 969/5989
f 937/5988 939/5987 852/5986
f 969/5985 937/5984 208/5983
f 942/5994 940/5993 183/5992
f 946/6003 943/6002 187/6001
f 942/6000 941/5999 940/5998
f 940/5997 941/5996 182/5995
f 953/6054 955/6053 190/6052
f 956/6051 953/6050 195/6049
f 952/6048 950/6047 951/6046
f 955/6057 956/6056 185/6055
f 957/6066 958/6065 197/6064
f 960/6063 957/6062 203/6061
f 956/6060 955/6059 953/6058
f 949/6033 950/6032 198/6031
f 948/6030 949/6029 194/6028
f 950/6027 948/6026 193/6025
f 950/6036 949/6035 948/6034
f 950/6045 952/6044 198/6043
f 951/6042 950/6041 193/6040
f 952/6039 951/6038 195/6037
f 1053/5928 837/5927 836/5926
f 1053/5925 1052/5924 837/5923
f 1052/5922 1053/5921 810/5920
f 1049/5931 841/5930 837/5929
f 836/5940 537/5939 1054/5938
f 1049/5937 1052/5936 810/5935
f 1052/5934 1049/5933 837/5932
f 1049/5907 1050/5906 841/5905
f 1050/5904 1049/5903 796/5902
f 796/5901 797/5900 1050/5899
f 797/5910 809/5909 1051/5908
f 1053/5919 794/5918 810/5917
f 1051/5916 531/5915 842/5914
f 1051/5913 809/5912 531/5911
f 1046/5970 1045/5969 855/5968
f 1051/5967 1055/5966 797/5965
f 1055/5964 1051/5963 842/5962
f 1047/5973 724/5972 725/5971
f 939/5982 969/5981 202/5980
f 1047/5979 1046/5978 724/5977
f 1048/5976 1047/5975 725/5974
f 795/5949 794/5948 1054/5947
f 1053/5946 1054/5945 794/5944
f 1054/5943 1053/5942 836/5941
f 747/5952 841/5951 1050/5950
f 842/5961 747/5960 1055/5959
f 1055/5958 1050/5957 797/5956
f 1050/5955 1055/5954 747/5953
f 958/6069 960/6068 190/6067
f 971/6183 977/6182 209/6181
f 208/6180 976/6179 974/6178
f 974/6177 976/6176 207/6175
f 977/6186 978/6185 206/6184
f 980/6195 964/6194 198/6193
f 971/6192 978/6191 977/6190
f 978/6189 971/6188 207/6187
f 968/6162 975/6161 203/6160
f 974/6159 972/6158 973/6157
f 972/6156 974/6155 207/6154
f 975/6165 973/6164 205/6163
f 208/6174 974/6173 204/6172
f 968/6171 973/6170 975/6169
f 973/6168 968/6167 204/6166
f 981/6225 975/6224 205/6223
f 962/6222 981/6221 198/6220
f 975/6219 962/6218 203/6217
f 975/6228 981/6227 962/6226
f 983/6237 947/6236 187/6235
f 982/6234 983/6233 193/6232
f 947/6231 982/6230 183/6229
f 980/6204 979/6203 964/6202
f 979/6201 980/6200 209/6199
f 964/6198 979/6197 199/6196
f 970/6207 981/6206 205/6205
f 970/6216 980/6215 981/6214
f 980/6213 970/6212 209/6211
f 981/6210 980/6209 198/6208
f 949/6099 963/6098 194/6097
f 961/6096 962/6095 952/6094
f 962/6093 961/6092 203/6091
f 963/6102 964/6101 199/6100
f 957/6111 965/6110 203/6109
f 949/6108 964/6107 963/6106
f 964/6105 949/6104 198/6103
f 960/6078 953/6077 190/6076
f 961/6075 960/6074 203/6073
f 960/6072 958/6071 957/6070
f 953/6081 961/6080 195/6079
f 952/6090 962/6089 198/6088
f 961/6087 952/6086 195/6085
f 961/6084 953/6083 960/6082
f 970/6141 971/6140 209/6139
f 972/6138 970/6137 205/6136
f 969/6135 208/6134 204/6133
f 971/6144 972/6143 207/6142
f 973/6153 972/6152 205/6151
f 974/6150 973/6149 204/6148
f 972/6147 971/6146 970/6145
f 957/6120 966/6119 965/6118
f 966/6117 957/6116 197/6115
f 965/6114 966/6113 202/6112
f 969/6123 965/6122 202/6121
f 969/6132 968/6131 965/6130
f 968/6129 969/6128 204/6127
f 965/6126 968/6125 203/6124
f 122/7947 121/7946 155/7945
f 545/9768 465/9767 463/9766
f 546/9765 463/9764 550/9763
f 546/9762 549/9761 548/9760
f 546/9771 545/9770 463/9769
f 552/9780 546/9779 550/9778
f 549/9777 546/9776 552/9775
f 547/9774 552/9773 551/9772
f 548/9747 543/9746 542/9745
f 548/9744 547/9743 543/9742
f 541/9741 739/9740 545/9739
f 541/9750 548/9749 542/9748
f 549/9759 547/9758 548/9757
f 545/9756 468/9755 465/9754
f 548/9753 541/9752 546/9751
f 562/9810 561/9809 560/9808
f 553/9807 557/9806 555/9805
f 550/9804 553/9803 556/9802
f 562/9813 560/9812 713/9811
f 705/9822 565/9821 564/9820
f 562/9819 694/9818 561/9817
f 562/9816 563/9815 694/9814
f 554/9789 553/9788 550/9787
f 554/9786 557/9785 553/9784
f 547/9783 549/9782 552/9781
f 550/9792 463/9791 554/9790
f 553/9801 555/9800 556/9799
f 737/9798 738/9797 790/9796
f 738/9795 462/9794 790/9793
f 535/9684 536/9683 534/9682
f 536/9681 804/9680 534/9679
f 536/9678 802/9677 804/9676
f 536/9687 239/9686 802/9685
f 540/9696 409/9695 539/9694
f 409/9693 498/9692 539/9691
f 539/9690 498/9689 501/9688
f 529/9663 518/9662 522/9661
f 522/9660 526/9659 529/9658
f 521/9657 526/9656 516/9655
f 518/9666 529/9665 482/9664
f 412/9675 533/9674 806/9673
f 527/9672 530/9671 487/9670
f 530/9669 488/9668 487/9667
f 542/9726 544/9725 541/9724
f 535/9723 542/9722 772/9721
f 772/9720 542/9719 543/9718
f 535/9729 544/9728 542/9727
f 739/9738 468/9737 545/9736
f 739/9735 467/9734 468/9733
f 541/9732 545/9731 546/9730
f 540/9705 411/9704 798/9703
f 540/9702 544/9701 411/9700
f 544/9699 540/9698 539/9697
f 540/9708 798/9707 409/9706
f 535/9717 534/9716 544/9715
f 534/9714 411/9713 544/9712
f 411/9711 534/9710 804/9709
f 705/9825 564/9824 566/9823
f 594/9939 595/9938 599/9937
f 589/9936 598/9935 610/9934
f 598/9933 596/9932 610/9931
f 594/9942 599/9941 598/9940
f 596/9951 597/9950 600/9949
f 589/9948 594/9947 598/9946
f 598/9945 599/9944 597/9943
f 593/9918 590/9917 591/9916
f 591/9915 588/9914 592/9913
f 590/9912 588/9911 591/9910
f 590/9921 593/9920 595/9919
f 598/9930 597/9929 596/9928
f 589/9927 590/9926 594/9925
f 590/9924 595/9923 594/9922
f 607/9981 605/9980 608/9979
f 607/9978 606/9977 605/9976
f 603/9975 602/9974 604/9973
f 607/9984 592/9983 588/9982
f 589/9993 609/9992 606/9991
f 606/9990 588/9989 589/9988
f 607/9987 588/9986 606/9985
f 600/9960 597/9959 601/9958
f 611/9957 602/9956 603/9955
f 596/9954 600/9953 611/9952
f 600/9963 601/9962 602/9961
f 602/9972 679/9971 604/9970
f 602/9969 601/9968 679/9967
f 611/9966 600/9965 602/9964
f 575/9855 577/9854 574/9853
f 575/9852 574/9851 572/9850
f 571/9849 575/9848 572/9847
f 574/9858 577/9857 573/9856
f 579/9867 566/9866 576/9865
f 577/9864 579/9863 576/9862
f 577/9861 576/9860 573/9859
f 677/9834 567/9833 570/9832
f 569/9831 567/9830 677/9829
f 569/9828 568/9827 567/9826
f 571/9837 569/9836 677/9835
f 571/9846 572/9845 569/9844
f 569/9843 671/9842 568/9841
f 572/9840 671/9839 569/9838
f 584/9897 583/9896 578/9895
f 584/9894 680/9893 583/9892
f 584/9891 579/9890 577/9889
f 585/9900 582/9899 581/9898
f 590/9909 589/9908 588/9907
f 587/9906 586/9905 585/9904
f 587/9903 603/9902 586/9901
f 581/9876 582/9875 571/9874
f 580/9873 581/9872 571/9871
f 579/9870 578/9869 566/9868
f 571/9879 582/9878 575/9877
f 584/9888 578/9887 579/9886
f 582/9885 584/9884 577/9883
f 582/9882 577/9881 575/9880
f 512/9654 523/9653 520/9652
f 473/9426 466/9425 474/9424
f 473/9423 523/9422 481/9421
f 481/9420 477/9419 473/9418
f 479/9429 476/9428 478/9427
f 480/9438 476/9437 477/9436
f 476/9435 480/9434 478/9433
f 479/9432 471/9431 476/9430
f 472/9405 466/9404 473/9403
f 477/9402 472/9401 473/9400
f 469/9399 459/9398 464/9397
f 466/9408 468/9407 474/9406
f 477/9417 481/9416 480/9415
f 471/9414 475/9413 476/9412
f 475/9411 477/9410 476/9409
f 529/9468 481/9467 482/9466
f 481/9465 529/9464 480/9463
f 480/9462 489/9461 486/9460
f 488/9471 485/9470 484/9469
f 490/9480 486/9479 489/9478
f 490/9477 484/9476 486/9475
f 488/9474 484/9473 490/9472
f 485/9447 479/9446 478/9445
f 485/9444 483/9443 484/9442
f 482/9441 481/9440 523/9439
f 485/9450 478/9449 483/9448
f 486/9459 478/9458 480/9457
f 478/9456 486/9455 483/9454
f 483/9453 486/9452 484/9451
f 458/9342 461/9341 557/9340
f 462/9339 461/9338 458/9337
f 458/9336 557/9335 459/9334
f 460/9345 462/9344 458/9343
f 464/9354 554/9353 463/9352
f 459/9351 554/9350 464/9349
f 459/9348 557/9347 554/9346
f 450/9321 416/9320 451/9319
f 435/9318 418/9317 449/9316
f 444/9315 436/9314 446/9313
f 454/9324 453/9323 455/9322
f 781/9333 457/9332 454/9331
f 454/9330 457/9329 453/9328
f 781/9327 454/9326 455/9325
f 460/9384 458/9383 470/9382
f 471/9381 470/9380 475/9379
f 475/9378 469/9377 477/9376
f 470/9387 458/9386 459/9385
f 469/9396 472/9395 477/9394
f 469/9393 464/9392 472/9391
f 471/9390 460/9389 470/9388
f 472/9363 464/9362 466/9361
f 464/9360 465/9359 466/9358
f 464/9357 463/9356 465/9355
f 466/9366 465/9365 468/9364
f 470/9375 469/9374 475/9373
f 470/9372 459/9371 469/9370
f 474/9369 468/9368 467/9367
f 526/9483 489/9482 480/9481
f 506/9597 514/9596 509/9595
f 516/9594 514/9593 515/9592
f 514/9591 506/9590 515/9589
f 517/9600 509/9599 514/9598
f 518/9609 510/9608 517/9607
f 509/9606 517/9605 510/9604
f 517/9603 514/9602 516/9601
f 512/9576 502/9575 510/9574
f 511/9573 502/9572 512/9571
f 510/9570 508/9569 509/9568
f 502/9579 511/9578 504/9577
f 513/9588 515/9587 507/9586
f 507/9585 515/9584 506/9583
f 474/9582 504/9581 511/9580
f 516/9639 522/9638 517/9637
f 516/9636 515/9635 521/9634
f 515/9633 513/9632 521/9631
f 517/9642 522/9641 518/9640
f 519/9651 523/9650 512/9649
f 519/9648 482/9647 523/9646
f 482/9645 519/9644 518/9643
f 520/9618 511/9617 512/9616
f 519/9615 510/9614 518/9613
f 512/9612 510/9611 519/9610
f 511/9621 520/9620 474/9619
f 524/9630 521/9629 513/9628
f 520/9627 473/9626 474/9625
f 520/9624 523/9623 473/9622
f 499/9513 496/9512 500/9511
f 499/9510 498/9509 496/9508
f 492/9507 493/9506 497/9505
f 500/9516 496/9515 495/9514
f 502/9525 503/9524 499/9523
f 499/9522 501/9521 498/9520
f 502/9519 499/9518 500/9517
f 493/9492 491/9491 495/9490
f 493/9489 492/9488 491/9487
f 526/9486 480/9485 529/9484
f 495/9495 491/9494 494/9493
f 497/9504 496/9503 498/9502
f 493/9501 496/9500 497/9499
f 493/9498 495/9497 496/9496
f 508/9555 505/9554 509/9553
f 508/9552 495/9551 505/9550
f 494/9549 505/9548 495/9547
f 509/9558 505/9557 506/9556
f 510/9567 502/9566 508/9565
f 495/9564 508/9563 500/9562
f 500/9561 508/9560 502/9559
f 504/9534 501/9533 503/9532
f 504/9531 467/9530 501/9529
f 499/9528 503/9527 501/9526
f 502/9537 504/9536 503/9535
f 505/9546 507/9545 506/9544
f 505/9543 494/9542 507/9541
f 504/9540 474/9539 467/9538
f 677/10449 624/10448 580/10447
f 678/10446 624/10445 677/10444
f 677/10443 580/10442 571/10441
f 570/10452 678/10451 677/10450
f 570/10461 623/10460 678/10459
f 678/10458 623/10457 621/10456
f 678/10455 621/10454 624/10453
f 676/10428 655/10427 654/10426
f 570/10425 567/10424 675/10423
f 675/10422 568/10421 670/10420
f 676/10431 654/10430 576/10429
f 653/10440 563/10439 647/10438
f 655/10437 676/10436 566/10435
f 566/10434 676/10433 576/10432
f 564/10491 649/10490 566/10489
f 564/10488 558/10487 649/10486
f 586/10485 582/10484 585/10483
f 681/10494 566/10493 578/10492
f 583/10503 683/10502 578/10501
f 682/10500 681/10499 683/10498
f 681/10497 578/10496 683/10495
f 604/10470 679/10469 680/10468
f 580/10467 618/10466 620/10465
f 618/10464 580/10463 624/10462
f 603/10473 604/10472 680/10471
f 586/10482 584/10481 582/10480
f 586/10479 680/10478 584/10477
f 603/10476 680/10475 586/10474
f 665/10365 666/10364 667/10363
f 664/10362 665/10361 662/10360
f 666/10359 665/10358 664/10357
f 669/10368 668/10367 667/10366
f 669/10377 658/10376 660/10375
f 669/10374 673/10373 668/10372
f 667/10371 668/10370 665/10369
f 661/10344 652/10343 648/10342
f 661/10341 644/10340 660/10339
f 661/10338 648/10337 644/10336
f 663/10347 662/10346 574/10345
f 662/10356 663/10355 664/10354
f 573/10353 663/10352 574/10351
f 574/10350 662/10349 572/10348
f 670/10407 668/10406 673/10405
f 670/10404 665/10403 668/10402
f 665/10401 670/10400 672/10399
f 675/10410 670/10409 674/10408
f 567/10419 568/10418 675/10417
f 570/10416 675/10415 674/10414
f 674/10413 670/10412 673/10411
f 671/10386 670/10385 568/10384
f 673/10383 669/10382 643/10381
f 669/10380 660/10379 643/10378
f 671/10389 572/10388 662/10387
f 672/10398 662/10397 665/10396
f 670/10395 671/10394 672/10393
f 671/10392 662/10391 672/10390
f 680/10506 683/10505 583/10504
f 706/10620 707/10619 708/10618
f 706/10617 682/10616 707/10615
f 702/10614 705/10613 706/10612
f 708/10623 707/10622 709/10621
f 689/10632 685/10631 686/10630
f 689/10629 711/10628 696/10627
f 702/10626 706/10625 708/10624
f 703/10599 701/10598 704/10597
f 705/10596 701/10595 703/10594
f 705/10593 702/10592 701/10591
f 565/10602 705/10601 703/10600
f 706/10611 681/10610 682/10609
f 705/10608 681/10607 706/10606
f 705/10605 566/10604 681/10603
f 178/10662 714/10661 715/10660
f 714/10659 679/10658 715/10657
f 714/10656 680/10655 679/10654
f 177/10665 682/10664 683/10663
f 178/10674 177/10673 714/10672
f 714/10671 683/10670 680/10669
f 177/10668 683/10667 714/10666
f 688/10641 685/10640 689/10639
f 690/10638 686/10637 593/10636
f 689/10635 686/10634 690/10633
f 711/10644 689/10643 712/10642
f 707/10653 177/10652 732/10651
f 707/10650 682/10649 177/10648
f 710/10647 711/10646 712/10645
f 712/10536 641/10535 713/10534
f 712/10533 632/10532 641/10531
f 595/10530 684/10529 599/10528
f 631/10539 632/10538 690/10537
f 632/10548 712/10547 690/10546
f 690/10545 712/10544 689/10543
f 593/10542 631/10541 690/10540
f 684/10515 685/10514 687/10513
f 686/10512 685/10511 684/10510
f 593/10509 684/10508 595/10507
f 593/10518 686/10517 684/10516
f 599/10527 687/10526 597/10525
f 684/10524 687/10523 599/10522
f 688/10521 687/10520 685/10519
f 687/10578 688/10577 697/10576
f 688/10575 696/10574 697/10573
f 688/10572 689/10571 696/10570
f 699/10581 561/10580 698/10579
f 693/10590 700/10589 695/10588
f 561/10587 699/10586 560/10585
f 560/10584 699/10583 713/10582
f 601/10557 597/10556 176/10555
f 691/10554 679/10553 601/10552
f 715/10551 679/10550 691/10549
f 601/10560 176/10559 691/10558
f 694/10569 563/10568 695/10567
f 693/10566 695/10565 692/10564
f 695/10563 559/10562 692/10561
f 652/10335 661/10334 658/10333
f 626/10107 629/10106 608/10105
f 635/10104 626/10103 617/10102
f 626/10101 608/10100 617/10099
f 627/10110 592/10109 607/10108
f 629/10119 628/10118 627/10117
f 629/10116 627/10115 608/10114
f 627/10113 607/10112 608/10111
f 580/10086 620/10085 581/10084
f 624/10083 615/10082 618/10081
f 615/10080 624/10079 622/10078
f 674/10089 623/10088 570/10087
f 625/10098 635/10097 617/10096
f 625/10095 617/10094 623/10093
f 674/10092 625/10091 623/10090
f 643/10149 625/10148 673/10147
f 673/10146 625/10145 674/10144
f 628/10143 633/10142 630/10141
f 643/10152 635/10151 625/10150
f 634/10161 636/10160 635/10159
f 636/10158 626/10157 635/10156
f 636/10155 629/10154 626/10153
f 627/10128 591/10127 592/10126
f 630/10125 591/10124 627/10123
f 630/10122 593/10121 591/10120
f 628/10131 630/10130 627/10129
f 630/10140 631/10139 593/10138
f 633/10137 631/10136 630/10135
f 633/10134 632/10133 631/10132
f 608/10023 616/10022 617/10021
f 616/10020 614/10019 617/10018
f 616/10017 615/10016 614/10015
f 616/10026 608/10025 605/10024
f 619/10035 615/10034 616/10033
f 619/10032 618/10031 615/10030
f 616/10029 605/10028 606/10027
f 612/10002 610/10001 596/10000
f 610/9999 612/9998 609/9997
f 609/9996 589/9995 610/9994
f 612/10005 596/10004 611/10003
f 587/10014 585/10013 613/10012
f 613/10011 603/10010 587/10009
f 613/10008 611/10007 603/10006
f 622/10065 621/10064 623/10063
f 581/10062 613/10061 585/10060
f 613/10059 581/10058 620/10057
f 617/10068 622/10067 623/10066
f 624/10077 621/10076 622/10075
f 622/10074 614/10073 615/10072
f 622/10071 617/10070 614/10069
f 620/10044 618/10043 619/10042
f 619/10041 606/10040 609/10039
f 606/10038 619/10037 616/10036
f 609/10047 620/10046 619/10045
f 611/10056 613/10055 620/10054
f 620/10053 612/10052 611/10051
f 620/10050 609/10049 612/10048
f 634/10164 637/10163 636/10162
f 651/10278 558/10277 559/10276
f 558/10275 651/10274 650/10273
f 650/10272 659/10271 657/10270
f 651/10281 559/10280 652/10279
f 695/10290 653/10289 652/10288
f 653/10287 648/10286 652/10285
f 652/10284 559/10283 695/10282
f 566/10257 656/10256 655/10255
f 649/10254 656/10253 566/10252
f 649/10251 657/10250 656/10249
f 650/10260 649/10259 558/10258
f 651/10269 659/10268 650/10267
f 651/10266 652/10265 659/10264
f 657/10263 649/10262 650/10261
f 659/10320 658/10319 669/10318
f 667/10317 656/10316 657/10315
f 655/10314 666/10313 664/10312
f 659/10323 669/10322 657/10321
f 661/10332 660/10331 658/10330
f 658/10329 659/10328 652/10327
f 657/10326 669/10325 667/10324
f 654/10299 663/10298 573/10297
f 654/10296 664/10295 663/10294
f 653/10293 695/10292 563/10291
f 576/10302 654/10301 573/10300
f 656/10311 666/10310 655/10309
f 656/10308 667/10307 666/10306
f 664/10305 654/10304 655/10303
f 640/10194 641/10193 632/10192
f 642/10191 641/10190 640/10189
f 642/10188 713/10187 641/10186
f 638/10197 642/10196 640/10195
f 660/10206 644/10205 634/10204
f 660/10203 634/10202 643/10201
f 634/10200 635/10199 643/10198
f 637/10173 639/10172 628/10171
f 637/10170 628/10169 636/10168
f 628/10167 629/10166 636/10165
f 640/10176 632/10175 633/10174
f 638/10185 640/10184 639/10183
f 639/10182 633/10181 628/10180
f 640/10179 633/10178 639/10177
f 653/10236 647/10235 646/10234
f 648/10233 646/10232 644/10231
f 646/10230 645/10229 644/10228
f 648/10239 653/10238 646/10237
f 642/10248 562/10247 713/10246
f 562/10245 642/10244 563/10243
f 642/10242 647/10241 563/10240
f 646/10215 638/10214 639/10213
f 644/10212 645/10211 637/10210
f 644/10209 637/10208 634/10207
f 646/10218 639/10217 645/10216
f 642/10227 638/10226 647/10225
f 646/10224 647/10223 638/10222
f 645/10221 639/10220 637/10219
f 444/9312 425/9311 436/9310
f 278/8403 276/8402 275/8401
f 278/8400 277/8399 276/8398
f 259/8397 275/8396 256/8395
f 275/8406 276/8405 274/8404
f 280/8415 278/8414 259/8413
f 280/8412 277/8411 278/8410
f 259/8409 278/8408 275/8407
f 255/8382 272/8381 250/8380
f 273/8379 272/8378 255/8377
f 250/8376 272/8375 271/8374
f 256/8385 273/8384 255/8383
f 256/8394 275/8393 273/8392
f 273/8391 274/8390 272/8389
f 275/8388 274/8387 273/8386
f 277/8445 286/8444 276/8443
f 276/8442 284/8441 274/8440
f 286/8439 284/8438 276/8437
f 286/8448 285/8447 284/8446
f 279/8457 288/8456 277/8455
f 288/8454 286/8453 277/8452
f 288/8451 285/8450 286/8449
f 282/8424 281/8423 269/8422
f 280/8421 279/8420 277/8419
f 263/8418 280/8417 259/8416
f 272/8427 283/8426 282/8425
f 284/8436 272/8435 274/8434
f 284/8433 283/8432 272/8431
f 282/8430 283/8429 281/8428
f 264/8319 259/8318 260/8317
f 258/8316 260/8315 257/8314
f 260/8313 256/8312 257/8311
f 264/8322 260/8321 261/8320
f 264/8331 263/8330 259/8329
f 262/8328 264/8327 261/8326
f 261/8325 260/8324 258/8323
f 257/8298 255/8297 252/8296
f 257/8295 256/8294 255/8293
f 254/8292 252/8291 253/8290
f 252/8301 255/8300 250/8299
f 260/8310 259/8309 256/8308
f 258/8307 257/8306 254/8305
f 254/8304 257/8303 252/8302
f 271/8361 270/8360 249/8359
f 271/8358 269/8357 270/8356
f 241/8355 270/8354 267/8353
f 249/8364 270/8363 241/8362
f 271/8373 282/8372 269/8371
f 272/8370 282/8369 271/8368
f 250/8367 271/8366 249/8365
f 240/8340 265/8339 244/8338
f 267/8337 265/8336 240/8335
f 267/8334 266/8333 265/8332
f 241/8343 267/8342 240/8341
f 267/8352 268/8351 266/8350
f 270/8349 268/8348 267/8347
f 270/8346 269/8345 268/8344
f 288/8460 287/8459 285/8458
f 313/8574 315/8573 312/8572
f 312/8571 314/8570 313/8569
f 309/8568 307/8567 308/8566
f 320/8577 316/8576 317/8575
f 315/8586 313/8585 321/8584
f 318/8583 317/8582 319/8581
f 320/8580 317/8579 318/8578
f 306/8553 303/8552 304/8551
f 304/8550 303/8549 301/8548
f 294/8547 304/8546 293/8545
f 306/8556 304/8555 294/8554
f 308/8565 307/8564 305/8563
f 308/8562 305/8561 306/8560
f 306/8559 305/8558 303/8557
f 321/8616 326/8615 329/8614
f 321/8613 325/8612 326/8611
f 314/8610 310/8609 323/8608
f 329/8619 326/8618 327/8617
f 328/8628 319/8627 317/8626
f 321/8625 313/8624 325/8623
f 322/8622 321/8621 329/8620
f 317/8595 316/8594 322/8593
f 316/8592 321/8591 322/8590
f 315/8589 321/8588 316/8587
f 311/8598 323/8597 310/8596
f 313/8607 324/8606 325/8605
f 314/8604 324/8603 313/8602
f 314/8601 323/8600 324/8599
f 283/8490 292/8489 281/8488
f 295/8487 292/8486 283/8485
f 295/8484 302/8483 292/8482
f 295/8493 294/8492 293/8491
f 296/8502 295/8501 284/8500
f 296/8499 294/8498 295/8497
f 295/8496 293/8495 302/8494
f 281/8469 289/8468 269/8467
f 291/8466 289/8465 281/8464
f 291/8463 290/8462 289/8461
f 292/8472 302/8471 299/8470
f 281/8481 292/8480 291/8479
f 291/8478 299/8477 290/8476
f 292/8475 299/8474 291/8473
f 302/8532 301/8531 300/8530
f 299/8529 297/8528 290/8527
f 299/8526 298/8525 297/8524
f 302/8535 300/8534 299/8533
f 304/8544 302/8543 293/8542
f 304/8541 301/8540 302/8539
f 299/8538 300/8537 298/8536
f 285/8511 296/8510 284/8509
f 296/8508 306/8507 294/8506
f 284/8505 295/8504 283/8503
f 296/8514 308/8513 306/8512
f 287/8523 296/8522 285/8521
f 330/8520 296/8519 287/8518
f 330/8517 308/8516 296/8515
f 253/8289 251/8288 248/8287
f 102/8061 167/8060 168/8059
f 168/8058 170/8057 169/8056
f 167/8055 170/8054 168/8053
f 144/8064 102/8063 168/8062
f 171/8073 109/8072 144/8071
f 171/8070 168/8069 169/8068
f 144/8067 168/8066 171/8065
f 165/8040 166/8039 170/8038
f 150/8037 166/8036 165/8035
f 150/8034 164/8033 166/8032
f 151/8043 150/8042 165/8041
f 102/8052 146/8051 167/8050
f 167/8049 165/8048 170/8047
f 146/8046 165/8045 167/8044
f 159/8103 157/8102 174/8101
f 116/8100 115/8099 174/8098
f 157/8097 119/8096 116/8095
f 174/8106 157/8105 116/8104
f 177/8115 178/8114 732/8113
f 107/8112 452/8111 105/8110
f 173/8109 159/8108 174/8107
f 172/8082 171/8081 169/8080
f 114/8079 171/8078 172/8077
f 114/8076 109/8075 171/8074
f 174/8085 115/8084 172/8083
f 172/8094 169/8093 173/8092
f 173/8091 174/8090 172/8089
f 172/8088 115/8087 114/8086
f 130/7977 157/7976 158/7975
f 130/7974 119/7973 157/7972
f 793/7971 104/7970 145/7969
f 158/7980 157/7979 159/7978
f 140/7989 158/7988 161/7987
f 158/7986 159/7985 160/7984
f 140/7983 130/7982 158/7981
f 153/7956 136/7955 455/7954
f 136/7953 156/7952 455/7951
f 136/7950 137/7949 156/7948
f 453/7959 153/7958 455/7957
f 793/7968 156/7967 148/7966
f 455/7965 156/7964 793/7963
f 148/7962 104/7961 793/7960
f 164/8019 163/8018 162/8017
f 162/8016 138/8015 134/8014
f 163/8013 138/8012 162/8011
f 162/8022 160/8021 164/8020
f 165/8031 146/8030 151/8029
f 150/8028 163/8027 164/8026
f 150/8025 137/8024 163/8023
f 161/7998 132/7997 142/7996
f 142/7995 140/7994 161/7993
f 161/7992 158/7991 160/7990
f 134/8001 132/8000 161/7999
f 163/8010 137/8009 138/8008
f 162/8007 161/8006 160/8005
f 134/8004 161/8003 162/8002
f 715/8118 175/8117 735/8116
f 235/8232 234/8231 232/8230
f 233/8229 232/8228 234/8227
f 233/8226 231/8225 232/8224
f 175/8235 235/8234 232/8233
f 235/8244 716/8243 236/8242
f 235/8241 175/8240 716/8239
f 237/8238 236/8237 716/8236
f 748/8211 217/8210 1026/8209
f 748/8208 227/8207 217/8206
f 215/8205 229/8204 216/8203
f 1026/8214 218/8213 748/8212
f 175/8223 232/8222 735/8221
f 735/8220 231/8219 230/8218
f 232/8217 231/8216 735/8215
f 251/8274 249/8273 246/8272
f 251/8271 250/8270 249/8269
f 248/8268 246/8267 247/8266
f 246/8277 249/8276 241/8275
f 252/8286 251/8285 253/8284
f 252/8283 250/8282 251/8281
f 248/8280 251/8279 246/8278
f 243/8253 240/8252 244/8251
f 242/8250 240/8249 243/8248
f 242/8247 241/8246 240/8245
f 245/8256 242/8255 243/8254
f 247/8265 242/8264 245/8263
f 246/8262 242/8261 247/8260
f 246/8259 241/8258 242/8257
f 200/8148 214/8147 216/8146
f 215/8145 216/8144 214/8143
f 214/8142 1023/8141 215/8140
f 227/8151 210/8150 1024/8149
f 986/8160 220/8159 219/8158
f 219/8157 744/8156 986/8155
f 1024/8154 217/8153 227/8152
f 227/8127 213/8126 210/8125
f 449/8124 180/8123 181/8122
f 181/8121 180/8120 179/8119
f 211/8130 210/8129 213/8128
f 1023/8139 211/8138 215/8137
f 211/8136 212/8135 215/8134
f 213/8133 212/8132 211/8131
f 427/8190 228/8189 213/8188
f 213/8187 227/8186 226/8185
f 748/8184 430/8183 227/8182
f 226/8193 427/8192 213/8191
f 228/8202 229/8201 212/8200
f 229/8199 215/8198 212/8197
f 212/8196 213/8195 228/8194
f 991/8169 222/8168 221/8167
f 221/8166 220/8165 991/8164
f 219/8163 220/8162 221/8161
f 223/8172 222/8171 994/8170
f 430/8181 226/8180 227/8179
f 221/8178 222/8177 223/8176
f 994/8175 224/8174 223/8173
f 413/9084 389/9083 394/9082
f 389/9081 413/9080 379/9079
f 393/9078 392/9077 812/9076
f 413/9087 394/9086 395/9085
f 393/9096 814/9095 398/9094
f 398/9093 814/9092 397/9091
f 396/9090 413/9089 395/9088
f 379/9063 391/9062 389/9061
f 390/9060 813/9059 414/9058
f 380/9057 388/9056 379/9055
f 388/9066 415/9065 391/9064
f 392/9075 414/9074 812/9073
f 414/9072 392/9071 389/9070
f 388/9069 391/9068 379/9067
f 404/9126 402/9125 401/9124
f 397/9123 402/9122 404/9121
f 404/9120 401/9119 403/9118
f 399/9129 397/9128 404/9127
f 405/9138 404/9137 403/9136
f 399/9135 404/9134 405/9133
f 399/9132 345/9131 400/9130
f 398/9105 395/9104 393/9103
f 398/9102 397/9101 395/9100
f 393/9099 812/9098 814/9097
f 399/9108 395/9107 397/9106
f 400/9117 359/9116 399/9115
f 396/9114 395/9113 359/9112
f 359/9111 395/9110 399/9109
f 379/9000 370/8999 380/8998
f 370/8997 378/8996 380/8995
f 370/8994 379/8993 413/8992
f 382/9003 298/9002 381/9001
f 374/9012 382/9011 383/9010
f 383/9009 381/9008 384/9007
f 382/9006 381/9005 383/9004
f 377/8979 376/8978 378/8977
f 364/8976 363/8975 374/8974
f 366/8973 375/8972 376/8971
f 368/8982 366/8981 377/8980
f 370/8991 377/8990 378/8989
f 370/8988 368/8987 377/8986
f 377/8985 366/8984 376/8983
f 378/9042 376/9041 386/9040
f 375/9039 383/9038 384/9037
f 375/9036 374/9035 383/9034
f 386/9045 385/9044 387/9043
f 380/9054 387/9053 388/9052
f 380/9051 378/9050 386/9049
f 386/9048 387/9047 380/9046
f 382/9021 297/9020 298/9019
f 372/9018 297/9017 382/9016
f 372/9015 290/9014 297/9013
f 374/9024 372/9023 382/9022
f 376/9033 375/9032 386/9031
f 375/9030 385/9029 386/9028
f 375/9027 384/9026 385/9025
f 345/9141 399/9140 405/9139
f 417/9255 420/9254 433/9253
f 420/9252 418/9251 433/9250
f 431/9249 427/9248 428/9247
f 417/9258 433/9257 421/9256
f 436/9267 426/9266 438/9265
f 433/9264 418/9263 435/9262
f 435/9261 434/9260 433/9259
f 429/9234 443/9233 427/9232
f 422/9231 426/9230 431/9229
f 422/9228 421/9227 426/9226
f 430/9237 423/9236 424/9235
f 429/9246 427/9245 431/9244
f 428/9243 430/9242 431/9241
f 430/9240 424/9239 431/9238
f 443/9297 767/9296 766/9295
f 766/9294 427/9293 443/9292
f 443/9291 439/9290 442/9289
f 442/9300 767/9299 443/9298
f 447/9309 444/9308 445/9307
f 447/9306 440/9305 441/9304
f 446/9303 445/9302 444/9301
f 441/9276 440/9275 439/9274
f 426/9273 421/9272 438/9271
f 425/9270 426/9269 436/9268
f 429/9279 425/9278 439/9277
f 439/9288 440/9287 442/9286
f 439/9285 443/9284 429/9283
f 439/9282 425/9281 441/9280
f 408/9171 403/9170 407/9169
f 403/9168 408/9167 405/9166
f 408/9165 262/9164 405/9163
f 408/9174 407/9173 331/9172
f 394/9183 392/9182 393/9181
f 394/9180 389/9179 392/9178
f 262/9177 408/9176 331/9175
f 406/9150 319/9149 407/9148
f 406/9147 318/9146 319/9145
f 401/9144 318/9143 406/9142
f 407/9153 319/9152 328/9151
f 331/9162 407/9161 328/9160
f 403/9159 401/9158 406/9157
f 403/9156 406/9155 407/9154
f 416/9213 419/9212 424/9211
f 419/9210 417/9209 424/9208
f 417/9207 422/9206 424/9205
f 423/9216 416/9215 424/9214
f 426/9225 429/9224 431/9223
f 426/9222 425/9221 429/9220
f 431/9219 424/9218 422/9217
f 414/9192 391/9191 415/9190
f 414/9189 389/9188 391/9187
f 395/9186 394/9185 393/9184
f 390/9195 414/9194 415/9193
f 417/9204 421/9203 422/9202
f 417/9201 419/9200 420/9199
f 419/9198 418/9197 420/9196
f 364/8970 375/8969 366/8968
f 254/8742 253/8741 340/8740
f 340/8739 338/8738 339/8737
f 253/8736 338/8735 340/8734
f 342/8745 341/8744 343/8743
f 258/8754 254/8753 342/8752
f 258/8751 342/8750 344/8749
f 342/8748 343/8747 344/8746
f 248/8721 247/8720 337/8719
f 337/8718 334/8717 335/8716
f 247/8715 334/8714 337/8713
f 340/8724 339/8723 341/8722
f 253/8733 248/8732 338/8731
f 254/8730 340/8729 342/8728
f 340/8727 341/8726 342/8725
f 333/8784 244/8783 265/8782
f 335/8781 347/8780 348/8779
f 348/8778 346/8777 349/8776
f 333/8787 265/8786 347/8785
f 351/8796 349/8795 350/8794
f 335/8793 333/8792 347/8791
f 347/8790 265/8789 266/8788
f 262/8763 344/8762 405/8761
f 344/8760 345/8759 405/8758
f 344/8757 343/8756 345/8755
f 261/8766 258/8765 344/8764
f 347/8775 346/8774 348/8773
f 347/8772 266/8771 346/8770
f 262/8769 261/8768 344/8767
f 330/8658 309/8657 308/8656
f 328/8655 329/8654 332/8653
f 329/8652 327/8651 332/8650
f 324/8661 287/8660 288/8659
f 279/8670 280/8669 263/8668
f 325/8667 324/8666 279/8665
f 324/8664 288/8663 279/8662
f 330/8637 287/8636 323/8635
f 328/8634 322/8633 329/8632
f 322/8631 328/8630 317/8629
f 324/8640 323/8639 287/8638
f 328/8649 332/8648 331/8647
f 326/8646 279/8645 327/8644
f 326/8643 325/8642 279/8641
f 337/8700 335/8699 336/8698
f 245/8697 243/8696 334/8695
f 334/8694 333/8693 335/8692
f 337/8703 336/8702 338/8701
f 247/8712 245/8711 334/8710
f 248/8709 337/8708 338/8707
f 338/8706 336/8705 339/8704
f 332/8679 264/8678 331/8677
f 332/8676 263/8675 264/8674
f 327/8673 279/8672 263/8671
f 331/8682 264/8681 262/8680
f 243/8691 333/8690 334/8689
f 243/8688 244/8687 333/8686
f 332/8685 327/8684 263/8683
f 351/8799 350/8798 352/8797
f 367/8913 353/8912 366/8911
f 355/8910 353/8909 367/8908
f 367/8907 366/8906 368/8905
f 369/8916 368/8915 370/8914
f 369/8925 367/8924 368/8923
f 356/8922 367/8921 369/8920
f 356/8919 355/8918 367/8917
f 353/8892 364/8891 366/8890
f 365/8889 364/8888 353/8887
f 365/8886 363/8885 364/8884
f 350/8895 349/8894 362/8893
f 353/8904 350/8903 365/8902
f 365/8901 362/8900 363/8899
f 350/8898 362/8897 365/8896
f 360/8955 269/8954 289/8953
f 363/8952 372/8951 374/8950
f 373/8949 372/8948 363/8947
f 360/8958 289/8957 373/8956
f 364/8967 374/8966 375/8965
f 363/8964 360/8963 373/8962
f 373/8961 289/8960 290/8959
f 371/8934 359/8933 358/8932
f 371/8931 396/8930 359/8929
f 371/8928 356/8927 369/8926
f 371/8937 369/8936 413/8935
f 373/8946 290/8945 372/8944
f 396/8943 371/8942 413/8941
f 413/8940 369/8939 370/8938
f 354/8829 352/8828 353/8827
f 341/8826 352/8825 354/8824
f 341/8823 339/8822 352/8821
f 357/8832 355/8831 356/8830
f 343/8841 354/8840 357/8839
f 343/8838 341/8837 354/8836
f 357/8835 356/8834 371/8833
f 336/8808 335/8807 348/8806
f 339/8805 351/8804 352/8803
f 352/8802 350/8801 353/8800
f 336/8811 348/8810 351/8809
f 354/8820 353/8819 355/8818
f 339/8817 336/8816 351/8815
f 351/8814 348/8813 349/8812
f 349/8871 361/8870 362/8869
f 362/8868 360/8867 363/8866
f 361/8865 360/8864 362/8863
f 346/8874 266/8873 268/8872
f 349/8883 346/8882 361/8881
f 361/8880 268/8879 269/8878
f 346/8877 268/8876 361/8875
f 345/8850 358/8849 400/8848
f 400/8847 358/8846 359/8845
f 357/8844 354/8843 355/8842
f 345/8853 343/8852 357/8851
f 361/8862 269/8861 360/8860
f 358/8859 357/8858 371/8857
f 345/8856 357/8855 358/8854
f 1429/1821 1287/1820 1404/1819
f 1295/1818 1297/1817 1428/1816
f 1297/1815 822/1814 390/1813
f 1430/1824 1287/1823 1429/1822
f 1431/1833 1283/1832 1430/1831
f 1283/1830 1285/1829 1430/1828
f 1285/1827 1287/1826 1430/1825
f 1271/1800 1273/1799 1424/1798
f 1425/1797 1424/1796 1273/1795
f 1271/1794 1424/1793 1420/1792
f 1426/1803 1427/1802 1277/1801
f 1293/1812 1295/1811 1428/1810
f 1267/1809 1269/1808 1420/1807
f 1275/1806 1277/1805 1427/1804
f 1355/1863 1354/1862 1422/1861
f 1354/1860 1353/1859 1434/1858
f 1275/1857 1427/1856 1273/1855
f 1422/1866 1370/1865 1355/1864
f 1353/1875 1352/1874 1434/1873
f 1351/1872 1350/1871 1407/1870
f 1356/1869 1355/1868 1370/1867
f 1279/1842 1432/1841 1433/1840
f 1281/1839 1283/1838 1432/1837
f 1431/1836 1432/1835 1283/1834
f 1433/1845 1426/1844 1279/1843
f 1425/1854 1273/1853 1427/1852
f 1279/1851 1281/1850 1432/1849
f 1277/1848 1279/1847 1426/1846
f 1405/1737 835/1736 1104/1735
f 1120/1734 1126/1733 1412/1732
f 1264/1731 1120/1730 1413/1729
f 1128/1740 1405/1739 1104/1738
f 830/1749 1414/1748 307/1747
f 830/1746 815/1745 1414/1744
f 1267/1743 1414/1742 815/1741
f 1412/1716 1413/1715 1120/1714
f 1126/1713 1116/1712 1097/1711
f 1408/1710 1411/1709 1409/1708
f 1116/1719 1124/1718 1128/1717
f 1381/1728 1264/1727 1413/1726
f 1408/1725 1264/1724 1381/1723
f 1097/1722 1116/1721 1128/1720
f 1417/1779 1416/1778 1421/1777
f 1421/1776 1415/1775 1267/1774
f 1418/1773 1421/1772 1420/1771
f 1415/1782 1421/1781 1416/1780
f 1269/1791 1271/1790 1420/1789
f 1422/1788 1423/1787 1368/1786
f 1370/1785 1422/1784 1368/1783
f 1415/1758 1414/1757 1267/1756
f 307/1755 1414/1754 1416/1753
f 1415/1752 1416/1751 1414/1750
f 1418/1761 1419/1760 1417/1759
f 1267/1770 1420/1769 1421/1768
f 1421/1767 1418/1766 1417/1765
f 1419/1764 1418/1763 1420/1762
f 1348/1878 1347/1877 1409/1876
f 1454/1992 1465/1991 1459/1990
f 1461/1989 1459/1988 1464/1987
f 1463/1986 1461/1985 1464/1984
f 1466/1995 1467/1994 1464/1993
f 1459/2004 1465/2003 1464/2002
f 1467/2001 1463/2000 1464/1999
f 1466/1998 1464/1997 1465/1996
f 1456/1971 1455/1970 1460/1969
f 1454/1968 1458/1967 1443/1966
f 1451/1965 1443/1964 1458/1963
f 1460/1974 1455/1973 1461/1972
f 1462/1983 1461/1982 1463/1981
f 1462/1980 1460/1979 1461/1978
f 1455/1977 1459/1976 1461/1975
f 1472/2034 1474/2033 1453/2032
f 1454/2031 1453/2030 1470/2029
f 1472/2028 1473/2027 1474/2026
f 1453/2037 1474/2036 1470/2035
f 1469/2046 1471/2045 1473/2044
f 1441/2043 1469/2042 1473/2041
f 1475/2040 1469/2039 1441/2038
f 1454/2013 1470/2012 1465/2011
f 1468/2010 1466/2009 1469/2008
f 1467/2007 1466/2006 1468/2005
f 1470/2016 1471/2015 1465/2014
f 1441/2025 1473/2024 1472/2023
f 1465/2022 1471/2021 1469/2020
f 1466/2019 1465/2018 1469/2017
f 1438/1908 1439/1907 1437/1906
f 1359/1905 1436/1904 1435/1903
f 1356/1902 1370/1901 811/1900
f 1400/1911 1398/1910 1440/1909
f 1439/1920 1442/1919 1437/1918
f 1443/1917 1437/1916 1442/1915
f 1400/1914 1440/1913 1441/1912
f 1350/1887 1349/1886 1410/1885
f 1349/1884 1348/1883 1410/1882
f 1409/1881 1347/1880 1265/1879
f 1350/1890 1410/1889 1407/1888
f 1347/1899 1119/1898 1265/1897
f 1347/1896 1346/1895 1119/1894
f 1346/1893 1118/1892 1119/1891
f 1438/1950 1437/1949 1451/1948
f 1457/1947 1451/1946 1455/1945
f 1456/1944 1457/1943 1455/1942
f 1437/1953 1443/1952 1451/1951
f 1455/1962 1458/1961 1459/1960
f 1455/1959 1451/1958 1458/1957
f 1454/1956 1459/1955 1458/1954
f 1449/1929 1450/1928 1448/1927
f 1447/1926 1444/1925 1446/1924
f 1445/1923 1446/1922 1444/1921
f 1438/1932 1448/1931 1450/1930
f 1454/1941 1443/1940 1453/1939
f 1452/1938 1448/1937 1451/1936
f 1438/1935 1451/1934 1448/1933
f 1410/1707 1409/1706 1411/1705
f 863/1479 524/1478 1357/1477
f 1358/1476 1359/1475 1357/1474
f 811/1473 936/1472 1345/1471
f 524/1482 1358/1481 1357/1480
f 1360/1491 1361/1490 1363/1489
f 1361/1488 488/1487 1362/1486
f 488/1485 1361/1484 1360/1483
f 1354/1458 1355/1457 1343/1456
f 1354/1455 1343/1454 1342/1453
f 1353/1452 1354/1451 1342/1450
f 1355/1461 1344/1460 1343/1459
f 1356/1470 811/1469 1345/1468
f 1356/1467 1345/1466 1344/1465
f 1355/1464 1356/1463 1344/1462
f 1359/1521 1363/1520 1366/1519
f 863/1518 1357/1517 525/1516
f 1365/1515 1366/1514 528/1513
f 1367/1524 1366/1523 1363/1522
f 1364/1533 1362/1532 1367/1531
f 527/1530 1367/1529 1362/1528
f 1366/1527 1367/1526 527/1525
f 1365/1500 1357/1499 1359/1498
f 1364/1497 1361/1496 1362/1495
f 1361/1494 1364/1493 1363/1492
f 528/1503 525/1502 1365/1501
f 527/1512 528/1511 1366/1510
f 1366/1509 1365/1508 1359/1507
f 1357/1506 1365/1505 525/1504
f 1115/1395 1333/1394 1332/1393
f 1111/1392 1115/1391 1332/1390
f 1111/1389 1332/1388 1331/1387
f 1115/1398 1118/1397 1333/1396
f 1346/1407 1335/1406 1334/1405
f 1118/1404 1346/1403 1334/1402
f 1118/1401 1334/1400 1333/1399
f 795/1374 1121/1373 919/1372
f 936/1371 918/1370 1329/1369
f 1345/1368 936/1367 1329/1366
f 1121/1377 1330/1376 919/1375
f 1112/1386 1111/1385 1331/1384
f 1112/1383 1331/1382 1330/1381
f 1121/1380 1112/1379 1330/1378
f 1351/1437 1340/1436 1339/1435
f 1350/1434 1351/1433 1339/1432
f 1350/1431 1339/1430 1338/1429
f 1351/1440 1352/1439 1340/1438
f 1353/1449 1342/1448 1341/1447
f 1352/1446 1353/1445 1341/1444
f 1352/1443 1341/1442 1340/1441
f 1347/1416 1348/1415 1336/1414
f 1347/1413 1336/1412 1335/1411
f 1346/1410 1347/1409 1335/1408
f 1348/1419 1337/1418 1336/1417
f 1349/1428 1350/1427 1338/1426
f 1349/1425 1338/1424 1337/1423
f 1348/1422 1349/1421 1337/1420
f 1364/1536 1367/1535 1363/1534
f 1402/1650 1397/1649 1403/1648
f 1395/1647 1397/1646 1402/1645
f 1402/1644 1393/1643 1395/1642
f 1397/1653 1399/1652 1403/1651
f 1287/1662 1289/1661 1404/1660
f 1067/1659 1403/1658 1399/1657
f 1399/1656 1401/1655 1067/1654
f 1396/1629 1394/1628 1398/1627
f 1397/1626 1395/1625 1394/1624
f 1396/1623 1397/1622 1394/1621
f 1397/1632 1396/1631 1399/1630
f 1400/1641 1401/1640 1399/1639
f 1400/1638 1396/1637 1398/1636
f 1400/1635 1399/1634 1396/1633
f 1406/1692 1407/1691 1410/1690
f 1264/1689 1408/1688 1265/1687
f 1409/1686 1265/1685 1408/1684
f 1411/1695 1406/1694 1410/1693
f 1411/1704 1408/1703 1380/1702
f 1406/1701 1411/1700 1377/1699
f 1380/1698 1377/1697 1411/1696
f 537/1671 835/1670 1125/1669
f 1125/1668 1405/1667 1124/1666
f 1289/1665 1291/1664 1404/1663
f 1405/1674 1125/1673 835/1672
f 1406/1683 1376/1682 1407/1681
f 1376/1680 1406/1679 1377/1678
f 1128/1677 1124/1676 1405/1675
f 1377/1566 1378/1565 1375/1564
f 1376/1563 1377/1562 1375/1561
f 1371/1560 1373/1559 1374/1558
f 1380/1569 1381/1568 1379/1567
f 1074/1578 1384/1577 1075/1576
f 1383/1575 1069/1574 1075/1573
f 1381/1572 1382/1571 1379/1570
f 1369/1545 857/1544 811/1543
f 1370/1542 1369/1541 811/1540
f 1369/1539 1370/1538 1368/1537
f 740/1548 857/1547 1368/1546
f 1372/1557 1373/1556 1371/1555
f 835/1554 855/1553 1104/1552
f 1369/1551 1368/1550 857/1549
f 1392/1608 1391/1607 1383/1606
f 1389/1605 1392/1604 769/1603
f 1391/1602 1392/1601 1389/1600
f 1392/1611 851/1610 769/1609
f 1394/1620 1395/1619 1393/1618
f 851/1617 1392/1616 445/1615
f 1383/1614 445/1613 1392/1612
f 447/1587 1387/1586 1386/1585
f 1075/1584 1385/1583 1383/1582
f 1071/1581 1074/1580 1075/1579
f 1387/1590 1388/1589 1386/1588
f 1069/1599 1383/1598 1391/1597
f 1069/1596 1391/1595 1389/1594
f 1390/1593 1069/1592 1389/1591
f 1539/2502 1544/2501 1540/2500
f 1540/2499 1543/2498 1541/2497
f 1538/2496 1541/2495 1542/2494
f 1540/2505 1544/2504 1545/2503
f 1548/2514 1549/2513 1547/2512
f 1544/2511 1546/2510 1545/2509
f 1540/2508 1545/2507 1543/2506
f 1377/2481 1380/2480 1537/2479
f 1378/2478 1371/2477 1534/2476
f 1375/2475 1378/2474 1534/2473
f 1371/2484 1378/2483 1537/2482
f 1538/2493 1540/2492 1541/2491
f 1539/2490 1540/2489 1538/2488
f 1537/2487 1378/2486 1377/2485
f 1553/2544 1550/2543 1548/2542
f 1553/2541 1555/2540 1550/2539
f 1554/2538 1555/2537 1553/2536
f 1555/2547 1552/2546 1550/2545
f 1554/2556 1558/2555 1555/2554
f 1557/2553 1558/2552 1554/2551
f 1555/2550 1556/2549 1552/2548
f 1549/2523 1546/2522 1544/2521
f 1547/2520 1544/2519 1539/2518
f 1547/2517 1549/2516 1544/2515
f 1548/2526 1550/2525 1549/2524
f 1550/2535 1552/2534 1551/2533
f 1549/2532 1551/2531 1546/2530
f 1549/2529 1550/2528 1551/2527
f 224/2418 1237/2417 223/2416
f 1236/2415 223/2414 1237/2413
f 1236/2412 1235/2411 1527/2410
f 1236/2421 1527/2420 223/2419
f 1524/2430 1523/2429 1528/2428
f 1529/2427 1530/2426 1524/2425
f 1528/2424 1529/2423 1524/2422
f 1262/2397 1261/2396 1524/2395
f 1253/2394 1524/2393 1261/2392
f 1218/2391 200/2390 216/2389
f 1076/2400 1078/2399 1230/2398
f 1231/2409 1527/2408 1235/2407
f 1231/2406 1078/2405 1527/2404
f 1231/2403 1230/2402 1078/2401
f 1533/2460 1534/2459 1521/2458
f 1251/2457 1263/2456 1530/2455
f 1262/2454 1530/2453 1263/2452
f 1533/2463 1521/2462 1535/2461
f 1534/2472 1536/2471 1375/2470
f 1533/2469 1536/2468 1534/2467
f 1534/2466 1371/2465 1521/2464
f 1523/2439 1525/2438 1531/2437
f 1532/2436 1528/2435 1523/2434
f 1531/2433 1532/2432 1523/2431
f 1526/2442 229/2441 1525/2440
f 1524/2451 1530/2450 1262/2449
f 229/2448 1526/2447 216/2446
f 229/2445 1531/2444 1525/2443
f 1558/2559 1556/2558 1555/2557
f 1581/2673 1570/2672 1580/2671
f 1581/2670 1571/2669 1570/2668
f 1580/2667 1570/2666 1567/2665
f 1581/2676 1582/2675 1571/2674
f 1582/2685 1575/2684 1573/2683
f 1582/2682 1583/2681 1575/2680
f 1571/2679 1582/2678 1573/2677
f 1577/2652 1557/2651 1574/2650
f 1575/2649 1574/2648 1573/2647
f 1575/2646 1577/2645 1574/2644
f 1576/2655 1578/2654 1577/2653
f 1579/2664 1578/2663 1576/2662
f 1578/2661 1562/2660 1557/2659
f 1577/2658 1578/2657 1557/2656
f 1591/2715 1592/2714 1590/2713
f 1587/2712 1580/2711 1567/2710
f 1587/2709 1589/2708 1580/2707
f 1590/2718 1592/2717 1589/2716
f 1591/2727 1593/2726 1592/2725
f 1592/2724 1580/2723 1589/2722
f 1590/2721 1589/2720 1588/2719
f 1584/2694 1585/2693 1583/2692
f 1584/2691 1583/2690 1582/2689
f 1583/2688 1576/2687 1575/2686
f 1583/2697 1585/2696 1576/2695
f 1588/2706 1589/2705 1587/2704
f 1586/2703 1585/2702 1584/2701
f 1585/2700 1579/2699 1576/2698
f 1567/2589 1568/2588 1566/2587
f 1565/2586 1539/2585 1538/2584
f 1563/2583 1538/2582 1542/2581
f 1566/2592 1568/2591 1565/2590
f 1567/2601 1569/2600 1568/2599
f 1568/2598 1539/2597 1565/2596
f 1566/2595 1565/2594 1564/2593
f 1558/2568 1560/2567 1556/2566
f 1558/2565 1559/2564 1560/2563
f 1557/2562 1559/2561 1558/2560
f 1559/2571 1561/2570 1560/2569
f 1563/2580 1565/2579 1538/2578
f 1564/2577 1565/2576 1563/2575
f 1562/2574 1559/2573 1557/2572
f 1573/2631 1574/2630 1572/2629
f 1572/2628 1554/2627 1553/2626
f 1571/2625 1553/2624 1548/2623
f 1573/2634 1572/2633 1571/2632
f 1576/2643 1577/2642 1575/2641
f 1574/2640 1557/2639 1554/2638
f 1574/2637 1554/2636 1572/2635
f 1569/2610 1548/2609 1547/2608
f 1568/2607 1547/2606 1539/2605
f 1568/2604 1569/2603 1547/2602
f 1570/2613 1571/2612 1569/2611
f 1571/2622 1572/2621 1553/2620
f 1571/2619 1548/2618 1569/2617
f 1570/2616 1569/2615 1567/2614
f 216/2388 1526/2387 1218/2386
f 1496/2160 1497/2159 1498/2158
f 1486/2157 1497/2156 1496/2155
f 1495/2154 1448/2153 1492/2152
f 1496/2163 1498/2162 1499/2161
f 1494/2172 1499/2171 1498/2170
f 1493/2169 1499/2168 1494/2167
f 1497/2166 1495/2165 1498/2164
f 1493/2139 1492/2138 1491/2137
f 1493/2136 1494/2135 1492/2134
f 1450/2133 1449/2132 1447/2131
f 1449/2142 1448/2141 1495/2140
f 1494/2151 1495/2150 1492/2149
f 1452/2148 1492/2147 1448/2146
f 1452/2145 1491/2144 1492/2143
f 1500/2202 1398/2201 1445/2200
f 1485/2199 1500/2198 1445/2197
f 1497/2196 1485/2195 1445/2194
f 1449/2205 1495/2204 1444/2203
f 1449/2214 1444/2213 1447/2212
f 1497/2211 1444/2210 1495/2209
f 1497/2208 1445/2207 1444/2206
f 1475/2181 1440/2180 1484/2179
f 1485/2178 1484/2177 1500/2176
f 1495/2175 1494/2174 1498/2173
f 1398/2184 1500/2183 1440/2182
f 1486/2193 1485/2192 1497/2191
f 1475/2190 1441/2189 1440/2188
f 1484/2187 1440/2186 1500/2185
f 1480/2076 1482/2075 1483/2074
f 1481/2073 1482/2072 1480/2071
f 1468/2070 1479/2069 1477/2068
f 1482/2079 1478/2078 1483/2077
f 1485/2088 1487/2087 1483/2086
f 1486/2085 1487/2084 1485/2083
f 1475/2082 1484/2081 1478/2080
f 1467/2055 1468/2054 1476/2053
f 1471/2052 1474/2051 1473/2050
f 1470/2049 1474/2048 1471/2047
f 1476/2058 1468/2057 1477/2056
f 1468/2067 1478/2066 1479/2065
f 1469/2064 1478/2063 1468/2062
f 1469/2061 1475/2060 1478/2059
f 1491/2118 1452/2117 1490/2116
f 1482/2115 1488/2114 1478/2113
f 1482/2112 1489/2111 1488/2110
f 1490/2121 1452/2120 1457/2119
f 1439/2130 1450/2129 1447/2128
f 1456/2127 1490/2126 1457/2125
f 1452/2124 1451/2123 1457/2122
f 1478/2097 1484/2096 1483/2095
f 1487/2094 1480/2093 1483/2092
f 1485/2091 1483/2090 1484/2089
f 1477/2100 1479/2099 1488/2098
f 1481/2109 1489/2108 1482/2107
f 1479/2106 1478/2105 1488/2104
f 1477/2103 1488/2102 1489/2101
f 1467/2217 1476/2216 1501/2215
f 1462/2331 1516/2330 1460/2329
f 1462/2328 1517/2327 1516/2326
f 1515/2325 1516/2324 1514/2323
f 1517/2334 1518/2333 1516/2332
f 1462/2343 1463/2342 1517/2341
f 1467/2340 1501/2339 1463/2338
f 1514/2337 1516/2336 1518/2335
f 1513/2310 1490/2309 1515/2308
f 1491/2307 1490/2306 1513/2305
f 1512/2304 1491/2303 1513/2302
f 1513/2313 1515/2312 1514/2311
f 1515/2322 1460/2321 1516/2320
f 1456/2319 1460/2318 1515/2317
f 1456/2316 1515/2315 1490/2314
f 1253/2373 1258/2372 1523/2371
f 1523/2370 1524/2369 1253/2368
f 1401/2367 1522/2366 1068/2365
f 1525/2376 1523/2375 1258/2374
f 1259/2385 1218/2384 1526/2383
f 1258/2382 1259/2381 1526/2380
f 1525/2379 1258/2378 1526/2377
f 1503/2352 1518/2351 1517/2350
f 1501/2349 1517/2348 1463/2347
f 1501/2346 1503/2345 1517/2344
f 1439/2355 1438/2354 1450/2353
f 1401/2364 1068/2363 1067/2362
f 1371/2361 1374/2360 1521/2359
f 1519/2358 1520/2357 1402/2356
f 1505/2247 1480/2246 1506/2245
f 1481/2244 1480/2243 1505/2242
f 1481/2241 1505/2240 1489/2239
f 1505/2250 1506/2249 1504/2248
f 1487/2259 1506/2258 1480/2257
f 1487/2256 1507/2255 1506/2254
f 1486/2253 1507/2252 1487/2251
f 1476/2226 1477/2225 1502/2224
f 1501/2223 1502/2222 1503/2221
f 1501/2220 1476/2219 1502/2218
f 1503/2229 1502/2228 1504/2227
f 1477/2238 1489/2237 1505/2236
f 1502/2235 1505/2234 1504/2233
f 1502/2232 1477/2231 1505/2230
f 1509/2289 1493/2288 1512/2287
f 1496/2286 1499/2285 1509/2284
f 1510/2283 1509/2282 1511/2281
f 1509/2292 1512/2291 1511/2290
f 1511/2301 1513/2300 1514/2299
f 1511/2298 1512/2297 1513/2296
f 1493/2295 1491/2294 1512/2293
f 1486/2268 1496/2267 1507/2266
f 1504/2265 1506/2264 1508/2263
f 1507/2262 1508/2261 1506/2260
f 1507/2271 1496/2270 1508/2269
f 1510/2280 1496/2279 1509/2278
f 1508/2277 1496/2276 1510/2275
f 1493/2274 1509/2273 1499/2272
f 1345/1365 1329/1364 1328/1363
f 1171/456 1179/455 1173/454
f 1179/453 1181/452 1148/451
f 1181/450 1171/449 1170/448
f 1179/459 1171/458 1181/457
f 1177/468 1181/467 1170/466
f 1181/465 1162/464 1148/463
f 1162/462 1177/461 1156/460
f 978/435 1174/434 1178/433
f 1174/432 978/431 207/430
f 978/429 1178/428 206/427
f 1165/438 1179/437 1148/436
f 1180/447 1179/446 1165/445
f 1179/444 1180/443 1173/442
f 1180/441 1165/440 1164/439
f 1150/498 1183/497 1143/496
f 1138/495 1184/494 1153/493
f 1184/492 1138/491 1137/490
f 1184/501 1150/500 1149/499
f 1185/510 1186/509 1164/508
f 1184/507 1183/506 1150/505
f 1183/504 1184/503 1137/502
f 1183/477 1182/476 1143/475
f 1182/474 1142/473 1132/472
f 1181/471 1177/470 1162/469
f 1142/480 1183/479 1137/478
f 1138/489 1153/488 1140/487
f 1153/486 1184/485 1149/484
f 1183/483 1142/482 1182/481
f 1130/372 1168/371 1169/370
f 1168/369 1166/368 1156/367
f 1166/366 1130/365 1129/364
f 1168/375 1130/374 1166/373
f 1174/384 1171/383 1173/382
f 1171/381 1172/380 1170/379
f 208/378 1130/377 1169/376
f 1165/351 1147/350 1163/349
f 1147/348 1165/347 1148/346
f 1165/345 1163/344 1164/343
f 1166/354 1157/353 1156/352
f 1167/363 1157/362 1166/361
f 1157/360 1167/359 1159/358
f 1167/357 1166/356 1129/355
f 1175/414 1168/413 1177/412
f 1168/411 1175/410 1169/409
f 1175/408 1177/407 1170/406
f 1176/417 208/416 1169/415
f 1178/426 1174/425 1173/424
f 976/423 208/422 1176/421
f 976/420 1176/419 207/418
f 1175/393 1176/392 1169/391
f 1174/390 1172/389 1171/388
f 1172/387 1174/386 207/385
f 1172/396 1175/395 1170/394
f 1177/405 1168/404 1156/403
f 1172/402 1176/401 1175/400
f 1176/399 1172/398 207/397
f 1163/513 1185/512 1164/511
f 1205/627 1214/626 1207/625
f 1214/624 1212/623 1213/622
f 1212/621 1205/620 1204/619
f 1214/630 1205/629 1212/628
f 1216/639 1215/638 1217/637
f 1201/636 1216/635 1200/634
f 1215/633 1201/632 1202/631
f 1210/606 1196/605 1209/604
f 1196/603 1210/602 1197/601
f 1209/600 1196/599 1195/598
f 1211/609 1208/608 1207/607
f 1210/618 1208/617 1211/616
f 1208/615 1210/614 1209/613
f 1210/612 1211/611 1197/610
f 1190/669 1220/668 1223/667
f 1222/666 1220/665 1221/664
f 1220/663 1222/662 1223/661
f 1218/672 1190/671 200/670
f 1225/681 1226/680 1224/679
f 1191/678 1190/677 1223/676
f 1190/675 1218/674 1220/673
f 1216/648 1219/647 1200/646
f 1219/645 1220/644 1218/643
f 1215/642 1216/641 1201/640
f 1221/651 1216/650 1217/649
f 1222/660 1221/659 1217/658
f 1221/657 1220/656 1219/655
f 1221/654 1219/653 1216/652
f 1190/543 1027/542 200/541
f 1182/540 1189/539 1143/538
f 1189/537 1144/536 1143/535
f 1027/546 1191/545 1002/544
f 1196/555 1194/554 1195/553
f 1193/552 1194/551 1192/550
f 1191/549 1027/548 1190/547
f 1178/522 1187/521 206/520
f 1188/519 1178/518 1173/517
f 1187/516 995/515 206/514
f 1187/525 1178/524 1188/523
f 1188/534 1180/533 1186/532
f 1180/531 1188/530 1173/529
f 1186/528 1180/527 1164/526
f 1203/585 1194/584 1193/583
f 1194/582 1203/581 1199/580
f 1203/579 1193/578 1202/577
f 1205/588 1206/587 1204/586
f 1208/597 1206/596 1205/595
f 1206/594 1208/593 1209/592
f 1208/591 1205/590 1207/589
f 1198/564 1194/563 1196/562
f 1194/561 1198/560 1192/559
f 1198/558 1196/557 1197/556
f 1194/567 1199/566 1195/565
f 1203/576 1201/575 1199/574
f 1201/573 1203/572 1202/571
f 1199/570 1201/569 1200/568
f 1163/342 1147/341 1146/340
f 1108/114 1107/113 1106/112
f 1107/111 1104/110 1105/109
f 1103/108 718/107 1106/106
f 1107/117 1105/116 1106/115
f 1110/126 1107/125 1108/124
f 1110/123 1098/122 1109/121
f 1107/120 1110/119 1109/118
f 1104/93 1045/92 1103/91
f 1100/90 1102/89 1096/88
f 1101/87 1100/86 1096/85
f 1056/96 1103/95 1045/94
f 1105/105 1103/104 1106/103
f 1104/102 1103/101 1105/100
f 1103/99 1056/98 718/97
f 1118/156 1117/155 1119/154
f 1118/153 1115/152 1117/151
f 1114/150 1113/149 1116/148
f 1119/159 1117/158 1120/157
f 1123/168 1122/167 1124/166
f 1122/165 1123/164 1112/163
f 1121/162 1122/161 1112/160
f 1108/135 1085/134 1110/133
f 1098/132 1110/131 1099/130
f 1107/129 1109/128 1104/127
f 1099/138 1110/137 1085/136
f 1113/147 1114/146 1111/145
f 1115/144 1111/143 1114/142
f 1112/141 1113/140 1111/139
f 1077/30 1080/29 1079/28
f 1081/27 1079/26 1080/25
f 1078/24 1077/23 1079/22
f 1080/33 1077/32 1076/31
f 1080/42 1082/41 1081/40
f 1083/39 1081/38 1082/37
f 1082/36 1080/35 1076/34
f 1070/9 1071/8 1069/7
f 1067/6 1068/5 1065/4
f 1066/3 1067/2 1065/1
f 1072/12 1073/11 1071/10
f 1077/21 1078/20 1076/19
f 1071/18 1075/17 1069/16
f 1073/15 1074/14 1071/13
f 1098/72 1099/71 1090/70
f 1097/69 1098/68 1090/67
f 1096/66 1081/65 1095/64
f 719/75 854/74 1100/73
f 763/84 1102/83 1100/82
f 854/81 763/80 1100/79
f 719/78 1100/77 1101/76
f 1089/51 1090/50 1088/49
f 1087/48 1085/47 1084/46
f 1085/45 1086/44 1084/43
f 1090/54 1091/53 1088/52
f 1092/63 1094/62 1095/61
f 1094/60 1096/59 1095/58
f 1093/57 1094/56 1092/55
f 1124/171 1122/170 1125/169
f 1145/285 1150/284 1143/283
f 1150/282 1151/281 1149/280
f 1147/279 1145/278 1144/277
f 1151/288 1145/287 1148/286
f 1155/297 1152/296 1154/295
f 1152/294 1153/293 1149/292
f 1145/291 1151/290 1150/289
f 1142/264 1133/263 1132/262
f 1133/261 1139/260 1135/259
f 1139/258 1142/257 1137/256
f 1133/267 1142/266 1139/265
f 1145/276 1147/275 1148/274
f 1147/273 1144/272 1146/271
f 1144/270 1145/269 1143/268
f 1152/327 1161/326 1158/325
f 1161/324 1152/323 1149/322
f 1152/321 1158/320 1154/319
f 1151/330 1161/329 1149/328
f 1162/339 1161/338 1151/337
f 1161/336 1162/335 1156/334
f 1162/333 1151/332 1148/331
f 1157/306 1158/305 1156/304
f 1155/303 1153/302 1152/301
f 1153/300 1155/299 1140/298
f 1160/309 1157/308 1159/307
f 1158/318 1161/317 1156/316
f 1160/315 1158/314 1157/313
f 1158/312 1160/311 1154/310
f 1114/201 1127/200 1115/199
f 1127/198 1114/197 1126/196
f 1116/195 1126/194 1114/193
f 1126/204 1120/203 1127/202
f 1045/213 1104/212 855/211
f 1127/210 1117/209 1115/208
f 1117/207 1127/206 1120/205
f 1123/180 1113/179 1112/178
f 1113/177 1123/176 1124/175
f 1116/174 1113/173 1124/172
f 537/183 1125/182 1054/181
f 1121/192 795/191 1054/190
f 1054/189 1122/188 1121/187
f 1122/186 1054/185 1125/184
f 1136/243 1134/242 1133/241
f 1136/240 1133/239 1135/238
f 1133/237 1134/236 1132/235
f 1138/246 1139/245 1137/244
f 1141/255 1139/254 1138/253
f 1139/252 1141/251 1135/250
f 1141/249 1138/248 1140/247
f 1104/222 1109/221 1128/220
f 1109/219 1098/218 1097/217
f 1128/216 1109/215 1097/214
f 1130/225 1131/224 1129/223
f 937/234 1131/233 1130/232
f 1131/231 937/230 852/229
f 937/228 1130/227 208/226
f 1309/1137 1288/1136 1286/1135
f 1308/1134 1309/1133 1286/1132
f 1308/1131 1286/1130 1284/1129
f 1309/1140 1310/1139 1288/1138
f 1311/1149 1292/1148 1290/1147
f 1310/1146 1311/1145 1290/1144
f 1310/1143 1290/1142 1288/1141
f 1305/1116 1306/1115 1280/1114
f 1305/1113 1280/1112 1278/1111
f 1304/1110 1305/1109 1278/1108
f 1306/1119 1282/1118 1280/1117
f 1307/1128 1308/1127 1284/1126
f 1307/1125 1284/1124 1282/1123
f 1306/1122 1307/1121 1282/1120
f 1315/1179 1299/1178 1298/1177
f 1314/1176 1315/1175 1298/1174
f 1314/1173 1298/1172 883/1171
f 1315/1182 1316/1181 1299/1180
f 1317/1191 1301/1190 1300/1189
f 1316/1188 1317/1187 1300/1186
f 1316/1185 1300/1184 1299/1183
f 1312/1158 1313/1157 1294/1156
f 1312/1155 1294/1154 1292/1153
f 1311/1152 1312/1151 1292/1150
f 1313/1161 1296/1160 1294/1159
f 901/1170 1314/1169 883/1168
f 900/1167 882/1166 1296/1165
f 1313/1164 900/1163 1296/1162
f 1294/1053 1295/1052 1293/1051
f 1292/1050 1294/1049 1293/1048
f 1292/1047 1293/1046 1291/1045
f 1294/1056 1296/1055 1295/1054
f 882/1065 822/1064 1297/1063
f 1296/1062 882/1061 1297/1060
f 1296/1059 1297/1058 1295/1057
f 1286/1032 1288/1031 1287/1030
f 1286/1029 1287/1028 1285/1027
f 1284/1026 1286/1025 1285/1024
f 1288/1035 1289/1034 1287/1033
f 1290/1044 1292/1043 1291/1042
f 1290/1041 1291/1040 1289/1039
f 1288/1038 1290/1037 1289/1036
f 1302/1095 1274/1094 1272/1093
f 1301/1092 1302/1091 1272/1090
f 1301/1089 1272/1088 1270/1087
f 1302/1098 1303/1097 1274/1096
f 1304/1107 1278/1106 1276/1105
f 1303/1104 1304/1103 1276/1102
f 1303/1101 1276/1100 1274/1099
f 1298/1074 1299/1073 1266/1072
f 1298/1071 1266/1070 865/1069
f 883/1068 1298/1067 865/1066
f 1299/1077 1268/1076 1266/1075
f 1300/1086 1301/1085 1270/1084
f 1300/1083 1270/1082 1268/1081
f 1299/1080 1300/1079 1268/1078
f 1317/1194 1318/1193 1301/1192
f 1335/1308 1336/1307 1319/1306
f 1335/1305 1319/1304 1318/1303
f 1334/1302 1335/1301 1318/1300
f 1336/1311 1320/1310 1319/1309
f 1337/1320 1338/1319 1321/1318
f 1337/1317 1321/1316 1320/1315
f 1336/1314 1337/1313 1320/1312
f 1332/1287 1316/1286 1315/1285
f 1331/1284 1332/1283 1315/1282
f 1331/1281 1315/1280 1314/1279
f 1332/1290 1333/1289 1316/1288
f 1334/1299 1318/1298 1317/1297
f 1333/1296 1334/1295 1317/1294
f 1333/1293 1317/1292 1316/1291
f 1342/1350 1343/1349 1326/1348
f 1342/1347 1326/1346 1325/1345
f 1341/1344 1342/1343 1325/1342
f 1343/1353 1327/1352 1326/1351
f 1344/1362 1345/1361 1328/1360
f 1344/1359 1328/1358 1327/1357
f 1343/1356 1344/1355 1327/1354
f 1339/1329 1323/1328 1322/1327
f 1338/1326 1339/1325 1322/1324
f 1338/1323 1322/1322 1321/1321
f 1339/1332 1340/1331 1323/1330
f 1341/1341 1325/1340 1324/1339
f 1340/1338 1341/1337 1324/1336
f 1340/1335 1324/1334 1323/1333
f 1322/1224 1323/1223 1306/1222
f 1322/1221 1306/1220 1305/1219
f 1321/1218 1322/1217 1305/1216
f 1323/1227 1307/1226 1306/1225
f 1324/1236 1325/1235 1308/1234
f 1324/1233 1308/1232 1307/1231
f 1323/1230 1324/1229 1307/1228
f 1319/1203 1303/1202 1302/1201
f 1318/1200 1319/1199 1302/1198
f 1318/1197 1302/1196 1301/1195
f 1319/1206 1320/1205 1303/1204
f 1321/1215 1305/1214 1304/1213
f 1320/1212 1321/1211 1304/1210
f 1320/1209 1304/1208 1303/1207
f 1329/1266 918/1265 1313/1264
f 1329/1263 1313/1262 1312/1261
f 1328/1260 1329/1259 1312/1258
f 918/1269 900/1268 1313/1267
f 1330/1278 1331/1277 1314/1276
f 1330/1275 1314/1274 901/1273
f 919/1272 1330/1271 901/1270
f 1326/1245 1310/1244 1309/1243
f 1325/1242 1326/1241 1309/1240
f 1325/1239 1309/1238 1308/1237
f 1326/1248 1327/1247 1310/1246
f 1328/1257 1312/1256 1311/1255
f 1327/1254 1328/1253 1311/1252
f 1327/1251 1311/1250 1310/1249
f 1284/1023 1285/1022 1283/1021
f 1002/795 1191/794 1242/793
f 1242/792 1191/791 1243/790
f 1002/789 1242/788 853/787
f 1245/798 1192/797 1244/796
f 1247/807 1197/806 1135/805
f 1192/804 1245/803 1193/802
f 1193/801 1245/800 1246/799
f 1240/774 1134/773 1225/772
f 1134/771 1240/770 1132/769
f 1240/768 1225/767 1239/766
f 1240/777 1238/776 1132/775
f 1241/786 1238/785 1240/784
f 1238/783 1241/782 1232/781
f 1241/780 1240/779 1239/778
f 1213/837 1136/836 1214/835
f 1207/834 1214/833 1136/832
f 1136/831 1213/830 1226/829
f 1215/840 1249/839 1248/838
f 1250/849 1215/848 1248/847
f 1202/846 1249/845 1215/844
f 1249/843 1202/842 1246/841
f 1198/816 1197/815 1247/814
f 1192/813 1198/812 1247/811
f 1192/810 1247/809 1244/808
f 1202/819 1193/818 1246/817
f 1207/828 1136/827 1135/826
f 1211/825 1207/824 1135/823
f 1197/822 1211/821 1135/820
f 1228/711 1234/710 1233/709
f 1234/708 1228/707 1146/706
f 1228/705 1233/704 1076/703
f 1235/714 1185/713 1231/712
f 1229/723 1163/722 1146/721
f 1235/720 1186/719 1185/718
f 1186/717 1235/716 1236/715
f 1228/690 1229/689 1146/688
f 1134/687 1136/686 1226/685
f 1226/684 1227/683 1224/682
f 1230/693 1228/692 1076/691
f 1233/702 1234/701 1232/700
f 1230/699 1229/698 1228/697
f 1229/696 1230/695 1231/694
f 1234/753 1144/752 1189/751
f 1144/750 1234/749 1146/748
f 1234/747 1189/746 1232/745
f 1238/756 1182/755 1132/754
f 1225/765 1134/764 1226/763
f 1189/762 1182/761 1238/760
f 1189/759 1238/758 1232/757
f 1237/732 1187/731 1236/730
f 1185/729 1163/728 1229/727
f 1185/726 1229/725 1231/724
f 995/735 1237/734 224/733
f 1188/744 1186/743 1236/742
f 1187/741 1188/740 1236/739
f 1237/738 995/737 1187/736
f 1217/852 1250/851 1243/850
f 865/966 1266/965 815/964
f 1265/963 1119/962 1120/961
f 1265/960 1120/959 1264/958
f 1266/969 1267/968 815/967
f 1268/978 1270/977 1269/976
f 1268/975 1269/974 1267/973
f 1266/972 1268/971 1267/970
f 1261/945 1260/944 1254/943
f 1260/942 1261/941 1262/940
f 1261/939 1254/938 1253/937
f 1263/948 1260/947 1262/946
f 1252/957 1260/956 1263/955
f 1260/954 1252/953 1204/952
f 1252/951 1263/950 1251/949
f 1278/1008 1280/1007 1279/1006
f 1278/1005 1279/1004 1277/1003
f 1276/1002 1278/1001 1277/1000
f 1280/1011 1281/1010 1279/1009
f 1282/1020 1284/1019 1283/1018
f 1282/1017 1283/1016 1281/1015
f 1280/1014 1282/1013 1281/1012
f 1272/987 1273/986 1271/985
f 1270/984 1272/983 1271/982
f 1270/981 1271/980 1269/979
f 1272/990 1274/989 1273/988
f 1276/999 1277/998 1275/997
f 1274/996 1276/995 1275/994
f 1274/993 1275/992 1273/991
f 1224/882 1227/881 1251/880
f 1213/879 1252/878 1227/877
f 1213/876 1212/875 1252/874
f 1225/885 1224/884 1239/883
f 1209/894 1254/893 1206/892
f 1204/891 1206/890 1254/889
f 1254/888 1255/887 1253/886
f 1222/861 1217/860 1243/859
f 1223/858 1222/857 1243/856
f 1217/855 1215/854 1250/853
f 1191/864 1223/863 1243/862
f 1204/873 1252/872 1212/871
f 1213/870 1227/869 1226/868
f 1227/867 1252/866 1251/865
f 1257/924 1259/923 1258/922
f 1257/921 1253/920 1256/919
f 1253/918 1257/917 1258/916
f 1200/927 1219/926 1257/925
f 1254/936 1260/935 1204/934
f 1219/933 1259/932 1257/931
f 1218/930 1259/929 1219/928
f 1255/903 1256/902 1253/901
f 1209/900 1255/899 1254/898
f 1195/897 1255/896 1209/895
f 1195/906 1199/905 1255/904
f 1257/915 1256/914 1200/913
f 1199/912 1256/911 1255/910
f 1200/909 1256/908 1199/907
f 1592/2730 1593/2729 1581/2728
f 1884/4551 1870/4550 1883/4549
f 1882/4548 1881/4547 1873/4546
f 1882/4545 1792/4544 1791/4543
f 1883/4554 1870/4553 1873/4552
f 1886/4563 1876/4562 1885/4561
f 1870/4560 1884/4559 1871/4558
f 1883/4557 1873/4556 1881/4555
f 1868/4530 1869/4529 1877/4528
f 1879/4527 1877/4526 1086/4525
f 1879/4524 1878/4523 1877/4522
f 1869/4533 1086/4532 1877/4531
f 1880/4542 1882/4541 1791/4540
f 1881/4539 1882/4538 1880/4537
f 1086/4536 1869/4535 1775/4534
f 1888/4593 1789/4592 1787/4591
f 1888/4590 1880/4589 1789/4588
f 1877/4587 1887/4586 1868/4585
f 1880/4596 1791/4595 1789/4594
f 1889/4605 1881/4604 1888/4603
f 1889/4602 1883/4601 1881/4600
f 1880/4599 1888/4598 1881/4597
f 1876/4572 1886/4571 1877/4570
f 1885/4569 1871/4568 1884/4567
f 1885/4566 1876/4565 1871/4564
f 1863/4575 1887/4574 1886/4573
f 1864/4584 1887/4583 1863/4582
f 1868/4581 1887/4580 1864/4579
f 1887/4578 1877/4577 1886/4576
f 1867/4467 1866/4466 1860/4465
f 1858/4464 1865/4463 1857/4462
f 1858/4461 1866/4460 1865/4459
f 1860/4470 1862/4469 1867/4468
f 1867/4479 1869/4478 1866/4477
f 1866/4476 1868/4475 1864/4474
f 1865/4473 1866/4472 1864/4471
f 1856/4446 1863/4445 1854/4444
f 1844/4443 1856/4442 1854/4441
f 1862/4440 1860/4439 1859/4438
f 1864/4449 1863/4448 1856/4447
f 1860/4458 1866/4457 1858/4456
f 1865/4455 1864/4454 1857/4453
f 1857/4452 1864/4451 1856/4450
f 1877/4509 1878/4508 1876/4507
f 1872/4506 1871/4505 1875/4504
f 1872/4503 1875/4502 1874/4501
f 1876/4512 1878/4511 1875/4510
f 1874/4521 1878/4520 1879/4519
f 1878/4518 1874/4517 1875/4516
f 1876/4515 1875/4514 1871/4513
f 1862/4488 1774/4487 1775/4486
f 1867/4485 1862/4484 1775/4483
f 1869/4482 1868/4481 1866/4480
f 1774/4491 1862/4490 1091/4489
f 1870/4500 1779/4499 1873/4498
f 1870/4497 1872/4496 1779/4495
f 1871/4494 1872/4493 1870/4492
f 1883/4608 1889/4607 1884/4606
f 1800/4722 1802/4721 1798/4720
f 1800/4719 1803/4718 1802/4717
f 1823/4716 1803/4715 1800/4714
f 1798/4725 1802/4724 1797/4723
f 1872/4734 1776/4733 1779/4732
f 1874/4731 1776/4730 1872/4729
f 1797/4728 1802/4727 1801/4726
f 1838/4701 1895/4700 1839/4699
f 1839/4698 1895/4697 1841/4696
f 1895/4695 1784/4694 1783/4693
f 1838/4704 1784/4703 1895/4702
f 1822/4713 1823/4712 1800/4711
f 1835/4710 1796/4709 1837/4708
f 1796/4707 1835/4706 1841/4705
f 1382/4764 1902/4763 1900/4762
f 1901/4761 1810/4760 1899/4759
f 1900/4758 1899/4757 1382/4756
f 1382/4767 1899/4766 1817/4765
f 1851/4776 1088/4775 1861/4774
f 1899/4773 1811/4772 1817/4771
f 1382/4770 1817/4769 1814/4768
f 1896/4743 1898/4742 1897/4741
f 1794/4740 1896/4739 1897/4738
f 1779/4737 1896/4736 1794/4735
f 1897/4746 1799/4745 1794/4744
f 1900/4755 1901/4754 1899/4753
f 1899/4752 1810/4751 1811/4750
f 1897/4749 1800/4748 1799/4747
f 1786/4638 1891/4637 1892/4636
f 1888/4635 1786/4634 1892/4633
f 1787/4632 1786/4631 1888/4630
f 1888/4641 1892/4640 1889/4639
f 1890/4650 1891/4649 1853/4648
f 1889/4647 1891/4646 1890/4645
f 1891/4644 1889/4643 1892/4642
f 1853/4617 1885/4616 1890/4615
f 1890/4614 1884/4613 1889/4612
f 1890/4611 1885/4610 1884/4609
f 1886/4620 1885/4619 1863/4618
f 1891/4629 1786/4628 1781/4627
f 1885/4626 1853/4625 1854/4624
f 1863/4623 1885/4622 1854/4621
f 1894/4680 1873/4679 1779/4678
f 1894/4677 1779/4676 1792/4675
f 1882/4674 1894/4673 1792/4672
f 1775/4683 1869/4682 1867/4681
f 1841/4692 1783/4691 1796/4690
f 1841/4689 1895/4688 1783/4687
f 1796/4686 1783/4685 1785/4684
f 1893/4659 1784/4658 1842/4657
f 1891/4656 1842/4655 1853/4654
f 1891/4653 1893/4652 1842/4651
f 1781/4662 1780/4661 1893/4660
f 1873/4671 1894/4670 1882/4669
f 1780/4668 1784/4667 1893/4666
f 1781/4665 1893/4664 1891/4663
f 1861/4437 1859/4436 1851/4435
f 1818/4209 1819/4208 1820/4207
f 1821/4206 1818/4205 1820/4204
f 1814/4203 1818/4202 1821/4201
f 1821/4212 1820/4211 1822/4210
f 1825/4221 1826/4220 1824/4219
f 1820/4218 1803/4217 1823/4216
f 1822/4215 1820/4214 1823/4213
f 1817/4188 1815/4187 1814/4186
f 1817/4185 1812/4184 1815/4183
f 1811/4182 1812/4181 1817/4180
f 1812/4191 1806/4190 1815/4189
f 1820/4200 1819/4199 1803/4198
f 1818/4197 1813/4196 1819/4195
f 1814/4194 1813/4193 1818/4192
f 1819/4251 1830/4250 1803/4249
f 1813/4248 1829/4247 1819/4246
f 1816/4245 1829/4244 1813/4243
f 1803/4254 1830/4253 1804/4252
f 1831/4263 1833/4262 1834/4261
f 1832/4260 1833/4259 1831/4258
f 1801/4257 1804/4256 1830/4255
f 1805/4230 1826/4229 1825/4228
f 1809/4227 1826/4226 1805/4225
f 1824/4224 1826/4223 1827/4222
f 1805/4233 1825/4232 1806/4231
f 1829/4242 1816/4241 1828/4240
f 1806/4239 1828/4238 1816/4237
f 1828/4236 1806/4235 1825/4234
f 1790/4125 1797/4124 1788/4123
f 1797/4122 1785/4121 1788/4120
f 1797/4119 1795/4118 1785/4117
f 1798/4128 1797/4127 1790/4126
f 1800/4137 1798/4136 1799/4135
f 1793/4134 1798/4133 1790/4132
f 1794/4131 1798/4130 1793/4129
f 1792/4104 1790/4103 1791/4102
f 1790/4101 1789/4100 1791/4099
f 1790/4098 1788/4097 1789/4096
f 1793/4107 1790/4106 1792/4105
f 1795/4116 1796/4115 1785/4114
f 1794/4113 1793/4112 1779/4111
f 1779/4110 1793/4109 1792/4108
f 1811/4167 1807/4166 1812/4165
f 1810/4164 1807/4163 1811/4162
f 1807/4161 1810/4160 1808/4159
f 1807/4170 1806/4169 1812/4168
f 1815/4179 1806/4178 1816/4177
f 1813/4176 1815/4175 1816/4174
f 1814/4173 1815/4172 1813/4171
f 1803/4146 1804/4145 1802/4144
f 1797/4143 1801/4142 1795/4141
f 1799/4140 1798/4139 1794/4138
f 1802/4149 1804/4148 1801/4147
f 1805/4158 1808/4157 1809/4156
f 1805/4155 1807/4154 1808/4153
f 1806/4152 1807/4151 1805/4150
f 1833/4266 1827/4265 1834/4264
f 1850/4380 1852/4379 1849/4378
f 1851/4377 1852/4376 1850/4375
f 1849/4374 1848/4373 1847/4372
f 1850/4383 1849/4382 1810/4381
f 1843/4392 1854/4391 1853/4390
f 1843/4389 1853/4388 1842/4387
f 1852/4386 1848/4385 1849/4384
f 1847/4359 1846/4358 1827/4357
f 1826/4356 1847/4355 1827/4354
f 1809/4353 1847/4352 1826/4351
f 1848/4362 1846/4361 1847/4360
f 1808/4371 1847/4370 1809/4369
f 1808/4368 1849/4367 1847/4366
f 1810/4365 1849/4364 1808/4363
f 1852/4422 1859/4421 1858/4420
f 1851/4419 1859/4418 1852/4417
f 1858/4416 1857/4415 1848/4414
f 1852/4425 1858/4424 1848/4423
f 1861/4434 1862/4433 1859/4432
f 1091/4431 1862/4430 1861/4429
f 1859/4428 1860/4427 1858/4426
f 1845/4401 1855/4400 1844/4399
f 1846/4398 1855/4397 1845/4396
f 1844/4395 1854/4394 1843/4393
f 1855/4404 1856/4403 1844/4402
f 1848/4413 1857/4412 1855/4411
f 1846/4410 1848/4409 1855/4408
f 1857/4407 1856/4406 1855/4405
f 1829/4296 1837/4295 1819/4294
f 1828/4293 1837/4292 1829/4291
f 1837/4290 1828/4289 1836/4288
f 1830/4299 1819/4298 1837/4297
f 1839/4308 1840/4307 1838/4306
f 1830/4305 1795/4304 1801/4303
f 1795/4302 1830/4301 1837/4300
f 1835/4275 1836/4274 1832/4273
f 1824/4272 1833/4271 1825/4270
f 1827/4269 1833/4268 1824/4267
f 1832/4278 1836/4277 1833/4276
f 1835/4287 1837/4286 1836/4285
f 1825/4284 1836/4283 1828/4282
f 1836/4281 1825/4280 1833/4279
f 1834/4338 1843/4337 1838/4336
f 1843/4335 1842/4334 1838/4333
f 1838/4332 1842/4331 1784/4330
f 1844/4341 1843/4340 1834/4339
f 1846/4350 1845/4349 1827/4348
f 1845/4347 1844/4346 1834/4345
f 1827/4344 1845/4343 1834/4342
f 1831/4317 1840/4316 1832/4315
f 1834/4314 1840/4313 1831/4312
f 1840/4311 1834/4310 1838/4309
f 1839/4320 1841/4319 1840/4318
f 1837/4329 1796/4328 1795/4327
f 1832/4326 1841/4325 1835/4324
f 1841/4323 1832/4322 1840/4321
f 1749/5232 1407/5231 1376/5230
f 1751/5229 1749/5228 1376/5227
f 1376/5226 1375/5225 1757/5224
f 1375/5235 1933/5234 1757/5233
f 1536/5244 1934/5243 1933/5242
f 1933/5241 1762/5240 1755/5239
f 1757/5238 1933/5237 1755/5236
f 769/5211 1929/5210 1389/5209
f 229/5208 767/5207 1695/5206
f 1695/5205 1532/5204 1531/5203
f 1389/5214 1929/5213 1390/5212
f 1751/5223 1376/5222 1757/5221
f 1932/5220 769/5219 771/5218
f 1932/5217 1929/5216 769/5215
f 1067/5274 1936/5273 1919/5272
f 1066/5271 1936/5270 1067/5269
f 1935/5268 1920/5267 1766/5266
f 1067/5277 1919/5276 1403/5275
f 1937/5286 1935/5285 1936/5284
f 1920/5283 1935/5282 1937/5281
f 1936/5280 1535/5279 1919/5278
f 1935/5253 1533/5252 1535/5251
f 1934/5250 1762/5249 1933/5248
f 1536/5247 1933/5246 1375/5245
f 1935/5256 1536/5255 1533/5254
f 1934/5265 1766/5264 1762/5263
f 1934/5262 1536/5261 1935/5260
f 1766/5259 1934/5258 1935/5257
f 1927/5148 1924/5147 1926/5146
f 1924/5145 1925/5144 1072/5143
f 1923/5142 1924/5141 1072/5140
f 1927/5151 1926/5150 1928/5149
f 1390/5160 1926/5159 1070/5158
f 1925/5157 1924/5156 1927/5155
f 1924/5154 1923/5153 1926/5152
f 1528/5127 1692/5126 1529/5125
f 1528/5124 1532/5123 1692/5122
f 1696/5121 1530/5120 1687/5119
f 1073/5130 1072/5129 1065/5128
f 1390/5139 1070/5138 1069/5137
f 1071/5136 1070/5135 1923/5134
f 1923/5133 1072/5132 1071/5131
f 1102/5190 1921/5189 1922/5188
f 763/5187 1921/5186 1102/5185
f 1922/5184 1096/5183 1102/5182
f 223/5193 1527/5192 765/5191
f 229/5202 1695/5201 1531/5200
f 765/5199 1921/5198 763/5197
f 765/5196 1527/5195 1921/5194
f 1930/5169 1929/5168 1932/5167
f 1930/5166 1931/5165 1929/5164
f 1070/5163 1926/5162 1923/5161
f 1931/5172 1390/5171 1929/5170
f 1926/5181 1390/5180 1931/5179
f 1930/5178 1926/5177 1931/5176
f 1928/5175 1926/5174 1930/5173
f 1937/5289 1936/5288 1066/5287
f 1927/5403 1944/5402 1925/5401
f 1927/5400 1928/5399 1943/5398
f 1082/5397 1232/5396 1942/5395
f 1771/5406 1944/5405 1772/5404
f 1945/5415 1930/5414 1932/5413
f 1944/5412 1927/5411 1943/5410
f 1772/5409 1944/5408 1943/5407
f 1239/5382 1447/5381 1941/5380
f 1447/5379 1939/5378 1941/5377
f 1939/5376 1913/5375 1912/5374
f 1941/5385 1942/5384 1239/5383
f 1083/5394 1082/5393 1942/5392
f 1239/5391 1942/5390 1241/5389
f 1232/5388 1241/5387 1942/5386
f 1946/5445 1925/5444 1944/5443
f 1920/5442 1944/5441 1771/5440
f 1920/5439 1946/5438 1944/5437
f 1938/5448 1925/5447 1946/5446
f 1946/5457 1920/5456 1937/5455
f 1938/5454 1937/5453 1066/5452
f 1938/5451 1946/5450 1937/5449
f 1930/5424 1943/5423 1928/5422
f 1930/5421 1945/5420 1943/5419
f 1945/5418 1932/5417 1770/5416
f 1945/5427 1772/5426 1943/5425
f 1932/5436 771/5435 790/5434
f 1770/5433 1932/5432 790/5431
f 1772/5430 1945/5429 1770/5428
f 1441/5319 1683/5318 1522/5317
f 1683/5316 1441/5315 1472/5314
f 1401/5313 1400/5312 1522/5311
f 1522/5322 1400/5321 1441/5320
f 1446/5331 1394/5330 1913/5329
f 1939/5328 1446/5327 1913/5326
f 1447/5325 1446/5324 1939/5323
f 1938/5298 1065/5297 1072/5296
f 1938/5295 1072/5294 1925/5293
f 1935/5292 1535/5291 1936/5290
f 1066/5301 1065/5300 1938/5299
f 1693/5310 1073/5309 1068/5308
f 1522/5307 1693/5306 1068/5305
f 1068/5304 1073/5303 1065/5302
f 1940/5361 1942/5360 1941/5359
f 1940/5358 1908/5357 1907/5356
f 1083/5355 1907/5354 1910/5353
f 1940/5364 1083/5363 1942/5362
f 1940/5373 1912/5372 1908/5371
f 1940/5370 1939/5369 1912/5368
f 1941/5367 1939/5366 1940/5365
f 1447/5340 1239/5339 1439/5338
f 1439/5337 1530/5336 1442/5335
f 1251/5334 1530/5333 1439/5332
f 1251/5343 1439/5342 1224/5341
f 1083/5352 1940/5351 1907/5350
f 1412/5349 1126/5348 1089/5347
f 1239/5346 1224/5345 1439/5344
f 1696/5118 1442/5117 1530/5116
f 1412/4890 1089/4889 1088/4888
f 1904/4887 1412/4886 1088/4885
f 1900/4884 1902/4883 1904/4882
f 1898/4893 1393/4892 1520/4891
f 1822/4902 1914/4901 1374/4900
f 1800/4899 1914/4898 1822/4897
f 1520/4896 1393/4895 1402/4894
f 1911/4869 1908/4868 1912/4867
f 1393/4866 1912/4865 1913/4864
f 1393/4863 1911/4862 1912/4861
f 1412/4872 1904/4871 1413/4870
f 1901/4881 1903/4880 1810/4879
f 1901/4878 1904/4877 1903/4876
f 1900/4875 1904/4874 1901/4873
f 1537/4932 1372/4931 1371/4930
f 1537/4929 1380/4928 1379/4927
f 1372/4926 1379/4925 1814/4924
f 1381/4935 1380/4934 1408/4933
f 1915/4944 1106/4943 718/4942
f 719/4941 1101/4940 1915/4939
f 1814/4938 1379/4937 1382/4936
f 1897/4911 1520/4910 1914/4909
f 1898/4908 1520/4907 1897/4906
f 1914/4905 1519/4904 1374/4903
f 1897/4914 1914/4913 1800/4912
f 1372/4923 1537/4922 1379/4921
f 1374/4920 1519/4919 1521/4918
f 1520/4917 1519/4916 1914/4915
f 1879/4806 1086/4805 1905/4804
f 1372/4803 1821/4802 1373/4801
f 1814/4800 1821/4799 1372/4798
f 1086/4809 1906/4808 1905/4807
f 1413/4818 1902/4817 1381/4816
f 1904/4815 1902/4814 1413/4813
f 1775/4812 1084/4811 1086/4810
f 1850/4785 1810/4784 1903/4783
f 1851/4782 1850/4781 1903/4780
f 1861/4779 1088/4778 1091/4777
f 1088/4788 1903/4787 1904/4786
f 1822/4797 1373/4796 1821/4795
f 1822/4794 1374/4793 1373/4792
f 1088/4791 1851/4790 1903/4789
f 1779/4848 1778/4847 1896/4846
f 1778/4845 1777/4844 1909/4843
f 1907/4842 1909/4841 1910/4840
f 1896/4851 1778/4850 1911/4849
f 1898/4860 1911/4859 1393/4858
f 1778/4857 1908/4856 1911/4855
f 1896/4854 1911/4853 1898/4852
f 1090/4827 1773/4826 1091/4825
f 1087/4824 1090/4823 1099/4822
f 1902/4821 1382/4820 1381/4819
f 1090/4830 1087/4829 1773/4828
f 1907/4839 1778/4838 1909/4837
f 1908/4836 1778/4835 1907/4834
f 1085/4833 1906/4832 1086/4831
f 1915/4947 718/4946 719/4945
f 1752/5061 1754/5060 1761/5059
f 1733/5058 1761/5057 1709/5056
f 1733/5055 1752/5054 1761/5053
f 492/5064 740/5063 1729/5062
f 1095/5073 1910/5072 1092/5071
f 1729/5070 1368/5069 1423/5068
f 1729/5067 740/5066 1368/5065
f 1770/5040 1769/5039 1699/5038
f 1767/5037 1766/5036 1920/5035
f 1771/5034 1767/5033 1920/5032
f 1770/5043 1699/5042 1772/5041
f 1761/5052 1754/5051 1758/5050
f 1701/5049 1699/5048 1769/5047
f 462/5046 1701/5045 1769/5044
f 1094/5103 1101/5102 1096/5101
f 1081/5100 1096/5099 1922/5098
f 1922/5097 1079/5096 1081/5095
f 1126/5106 1097/5105 1089/5104
f 1443/5115 1442/5114 1696/5113
f 1687/5112 1453/5111 1696/5110
f 1687/5109 1530/5108 1529/5107
f 1232/5082 1082/5081 1233/5080
f 1083/5079 1910/5078 1095/5077
f 1081/5076 1083/5075 1095/5074
f 1076/5085 1233/5084 1082/5083
f 1079/5094 1922/5093 1921/5092
f 1078/5091 1921/5090 1527/5089
f 1078/5088 1079/5087 1921/5086
f 1094/4977 1915/4976 1101/4975
f 1916/4974 1094/4973 1093/4972
f 1915/4971 1094/4970 1916/4969
f 1777/4980 1917/4979 1909/4978
f 1917/4989 1093/4988 1092/4987
f 1909/4986 1092/4985 1910/4984
f 1909/4983 1917/4982 1092/4981
f 1090/4956 1089/4955 1097/4954
f 1085/4953 1087/4952 1099/4951
f 1106/4950 1915/4949 1108/4948
f 1085/4959 1108/4958 1906/4957
f 1916/4968 1108/4967 1915/4966
f 1093/4965 1108/4964 1916/4963
f 1906/4962 1108/4961 1093/4960
f 1403/5019 1919/5018 1519/5017
f 1394/5016 1393/5015 1913/5014
f 1093/5013 1905/5012 1906/5011
f 1519/5022 1919/5021 1521/5020
f 1765/5031 1767/5030 1771/5029
f 1403/5028 1519/5027 1402/5026
f 1919/5025 1535/5024 1521/5023
f 1918/4998 1776/4997 1874/4996
f 1918/4995 1917/4994 1776/4993
f 1093/4992 1917/4991 1918/4990
f 1917/5001 1777/5000 1776/4999
f 1905/5010 1093/5009 1918/5008
f 1879/5007 1918/5006 1874/5005
f 1879/5004 1905/5003 1918/5002
f 1789/4095 1788/4094 1787/4093
f 1640/3186 1655/3185 1656/3184
f 1654/3183 1656/3182 1653/3181
f 1654/3180 1640/3179 1656/3178
f 1588/3189 1658/3188 1657/3187
f 1567/3198 1644/3197 1587/3196
f 1657/3195 1647/3194 1659/3193
f 1657/3192 1658/3191 1647/3190
f 1652/3165 1638/3164 1654/3163
f 1636/3162 1638/3161 1652/3160
f 1651/3159 1654/3158 1653/3157
f 1652/3168 1654/3167 1651/3166
f 1641/3177 1640/3176 1642/3175
f 1655/3174 1640/3173 1641/3172
f 1638/3171 1640/3170 1654/3169
f 1650/3228 1663/3227 1661/3226
f 1650/3225 1651/3224 1663/3223
f 1661/3222 1663/3221 1662/3220
f 1651/3231 1653/3230 1663/3229
f 1662/3240 1653/3239 1665/3238
f 1664/3237 1653/3236 1656/3235
f 1663/3234 1653/3233 1662/3232
f 1644/3207 1647/3206 1658/3205
f 1587/3204 1658/3203 1588/3202
f 1587/3201 1644/3200 1658/3199
f 1659/3210 1648/3209 1660/3208
f 1647/3219 1648/3218 1659/3217
f 1660/3216 1650/3215 1661/3214
f 1660/3213 1648/3212 1650/3211
f 1639/3102 1642/3101 1640/3100
f 1639/3099 1626/3098 1642/3097
f 1624/3096 1626/3095 1639/3094
f 1567/3105 1645/3104 1644/3103
f 1645/3114 1631/3113 1646/3112
f 1644/3111 1646/3110 1647/3109
f 1644/3108 1645/3107 1646/3106
f 1621/3081 1624/3080 1637/3079
f 1638/3078 1639/3077 1640/3076
f 1636/3075 1639/3074 1638/3073
f 1637/3084 1624/3083 1639/3082
f 1642/3093 1626/3092 1643/3091
f 1642/3090 1643/3089 1641/3088
f 1637/3087 1639/3086 1636/3085
f 1646/3144 1649/3143 1647/3142
f 1646/3141 1632/3140 1649/3139
f 1631/3138 1632/3137 1646/3136
f 1632/3147 1635/3146 1649/3145
f 1635/3156 1652/3155 1650/3154
f 1635/3153 1636/3152 1652/3151
f 1650/3150 1652/3149 1651/3148
f 1566/3123 1645/3122 1567/3121
f 1566/3120 1628/3119 1645/3118
f 1564/3117 1628/3116 1566/3115
f 1628/3126 1631/3125 1645/3124
f 1648/3135 1635/3134 1650/3133
f 1648/3132 1649/3131 1635/3130
f 1647/3129 1649/3128 1648/3127
f 1653/3243 1664/3242 1665/3241
f 1674/3357 1655/3356 1641/3355
f 1674/3354 1641/3353 1676/3352
f 1674/3351 1676/3350 1404/3349
f 1641/3360 1643/3359 1676/3358
f 1429/3369 1678/3368 1430/3367
f 1429/3366 1404/3365 1678/3364
f 1430/3363 1678/3362 1677/3361
f 1291/3336 1675/3335 1404/3334
f 1656/3333 1655/3332 1674/3331
f 1673/3330 1656/3329 1674/3328
f 1291/3339 1672/3338 1675/3337
f 1674/3348 1675/3347 1672/3346
f 1404/3345 1675/3344 1674/3343
f 1293/3342 1672/3341 1291/3340
f 1679/3399 1677/3398 1680/3397
f 1603/3396 1680/3395 1611/3394
f 1603/3393 1679/3392 1680/3391
f 1430/3402 1677/3401 1679/3400
f 1681/3411 1677/3410 1627/3409
f 1561/3408 1681/3407 1627/3406
f 1680/3405 1612/3404 1611/3403
f 1678/3378 1676/3377 1627/3376
f 1626/3375 1676/3374 1643/3373
f 1404/3372 1676/3371 1678/3370
f 1678/3381 1627/3380 1677/3379
f 1431/3390 1679/3389 1603/3388
f 1431/3387 1430/3386 1679/3385
f 1676/3384 1626/3383 1627/3382
f 385/3273 1660/3272 1668/3271
f 384/3270 1660/3269 385/3268
f 1657/3267 1659/3266 1666/3265
f 1660/3276 1661/3275 1668/3274
f 1661/3285 1662/3284 1668/3283
f 1667/3282 1660/3281 384/3280
f 1659/3279 1660/3278 1667/3277
f 381/3252 1667/3251 384/3250
f 381/3249 1666/3248 1667/3247
f 298/3246 1666/3245 381/3244
f 1666/3255 1659/3254 1667/3253
f 1599/3264 1666/3263 298/3262
f 1599/3261 1657/3260 1666/3259
f 1588/3258 1657/3257 1599/3256
f 1671/3315 1428/3314 1669/3313
f 1670/3312 388/3311 1664/3310
f 415/3309 388/3308 1670/3307
f 1428/3318 1671/3317 1293/3316
f 1669/3327 1656/3326 1673/3325
f 1656/3324 1669/3323 1664/3322
f 1671/3321 1672/3320 1293/3319
f 1662/3294 1665/3293 1668/3292
f 387/3291 1668/3290 1665/3289
f 385/3288 1668/3287 387/3286
f 387/3297 1665/3296 388/3295
f 1670/3306 1664/3305 1669/3304
f 1297/3303 390/3302 1428/3301
f 388/3300 1665/3299 1664/3298
f 1634/3072 1637/3071 1635/3070
f 1419/2844 1425/2843 1606/2842
f 1419/2841 1420/2840 1424/2839
f 1433/2838 1602/2837 1605/2836
f 1606/2847 1425/2846 1601/2845
f 1607/2856 1604/2855 1608/2854
f 1424/2853 1425/2852 1419/2851
f 1606/2850 1601/2849 1607/2848
f 1602/2823 1432/2822 1431/2821
f 1433/2820 1432/2819 1602/2818
f 1426/2817 1601/2816 1427/2815
f 1602/2826 1431/2825 1603/2824
f 1604/2835 1433/2834 1605/2833
f 1604/2832 1426/2831 1433/2830
f 1601/2829 1426/2828 1604/2827
f 1607/2886 1608/2885 1579/2884
f 1419/2883 1606/2882 1586/2881
f 1586/2880 1417/2879 1419/2878
f 1579/2889 1608/2888 1610/2887
f 1609/2898 1611/2897 1613/2896
f 1610/2895 1609/2894 1613/2893
f 1613/2892 1611/2891 1612/2890
f 1604/2865 1605/2864 1609/2863
f 1608/2862 1609/2861 1610/2860
f 1608/2859 1604/2858 1609/2857
f 1601/2868 1604/2867 1607/2866
f 1605/2877 1611/2876 1609/2875
f 1611/2874 1605/2873 1602/2872
f 1603/2871 1611/2870 1602/2869
f 1598/2760 1417/2759 1596/2758
f 1598/2757 1596/2756 1597/2755
f 1596/2754 1584/2753 1582/2752
f 1596/2763 1417/2762 1586/2761
f 1599/2772 1590/2771 1588/2770
f 298/2769 1590/2768 1599/2767
f 1596/2766 1586/2765 1584/2764
f 1594/2739 1593/2738 1591/2737
f 1595/2736 1593/2735 1594/2734
f 1592/2733 1581/2732 1580/2731
f 1595/2742 1596/2741 1593/2740
f 1597/2751 1596/2750 1595/2749
f 1593/2748 1582/2747 1581/2746
f 1593/2745 1596/2744 1582/2743
f 305/2802 1597/2801 303/2800
f 1600/2799 1597/2798 1595/2797
f 303/2796 1597/2795 1600/2794
f 305/2805 1598/2804 1597/2803
f 1425/2814 1427/2813 1601/2812
f 307/2811 1416/2810 1598/2809
f 307/2808 1598/2807 305/2806
f 300/2781 1590/2780 298/2779
f 300/2778 1591/2777 1590/2776
f 301/2775 1591/2774 300/2773
f 301/2784 1600/2783 1591/2782
f 303/2793 1600/2792 301/2791
f 1600/2790 1595/2789 1594/2788
f 1591/2787 1600/2786 1594/2785
f 1416/2901 1417/2900 1598/2899
f 1564/3015 1629/3014 1628/3013
f 1560/3012 1561/3011 1625/3010
f 1556/3009 1560/3008 1625/3007
f 1628/3018 1629/3017 1630/3016
f 1542/3027 1614/3026 1563/3025
f 1629/3024 1616/3023 1630/3022
f 1628/3021 1630/3020 1631/3019
f 1623/2994 1556/2993 1625/2992
f 1624/2991 1623/2990 1625/2989
f 1621/2988 1623/2987 1624/2986
f 1552/2997 1556/2996 1623/2995
f 1625/3006 1561/3005 1627/3004
f 1626/3003 1625/3002 1627/3001
f 1624/3000 1625/2999 1626/2998
f 1630/3057 1633/3056 1631/3055
f 1630/3054 1617/3053 1633/3052
f 1616/3051 1617/3050 1630/3049
f 1617/3060 1620/3059 1633/3058
f 1634/3069 1621/3068 1637/3067
f 1620/3066 1621/3065 1634/3064
f 1635/3063 1637/3062 1636/3061
f 1614/3036 1616/3035 1629/3034
f 1563/3033 1629/3032 1564/3031
f 1563/3030 1614/3029 1629/3028
f 1631/3039 1633/3038 1632/3037
f 1633/3048 1620/3047 1634/3046
f 1632/3045 1634/3044 1635/3043
f 1632/3042 1633/3041 1634/3040
f 1542/2931 1541/2930 1614/2929
f 1610/2928 1613/2927 1562/2926
f 1559/2925 1612/2924 1561/2923
f 1614/2934 1541/2933 1615/2932
f 1616/2943 1618/2942 1617/2941
f 1541/2940 1543/2939 1615/2938
f 1614/2937 1615/2936 1616/2935
f 1606/2910 1607/2909 1579/2908
f 1585/2907 1606/2906 1579/2905
f 1586/2904 1606/2903 1585/2902
f 1578/2913 1579/2912 1562/2911
f 1559/2922 1613/2921 1612/2920
f 1562/2919 1613/2918 1559/2917
f 1579/2916 1610/2915 1562/2914
f 1622/2973 1552/2972 1623/2971
f 1621/2970 1622/2969 1623/2968
f 1620/2967 1622/2966 1621/2965
f 1546/2976 1551/2975 1619/2974
f 1551/2985 1552/2984 1622/2983
f 1619/2982 1622/2981 1620/2980
f 1619/2979 1551/2978 1622/2977
f 1618/2952 1546/2951 1619/2950
f 1617/2949 1619/2948 1620/2947
f 1617/2946 1618/2945 1619/2944
f 1543/2955 1545/2954 1615/2953
f 1545/2964 1546/2963 1618/2962
f 1615/2961 1618/2960 1616/2959
f 1615/2958 1545/2957 1618/2956
f 1719/3867 1748/3866 1715/3865
f 1748/3864 1742/3863 1710/3862
f 1742/3861 1748/3860 1741/3859
f 1715/3870 1748/3869 1710/3868
f 1743/3879 1436/3878 1358/3877
f 513/3876 1743/3875 1358/3874
f 1358/3873 524/3872 513/3871
f 1744/3846 1745/3845 1436/3844
f 1739/3843 1745/3842 1744/3841
f 1744/3840 1737/3839 1739/3838
f 1745/3849 1739/3848 1740/3847
f 1740/3858 1747/3857 1746/3856
f 1740/3855 1741/3854 1747/3853
f 1740/3852 1746/3851 1745/3850
f 1725/3909 1746/3908 1721/3907
f 1746/3906 1725/3905 1435/3904
f 1359/3903 1435/3902 1725/3901
f 488/3912 530/3911 1362/3910
f 1351/3921 1749/3920 1352/3919
f 1409/3918 1410/3917 1348/3916
f 530/3915 527/3914 1362/3913
f 1747/3888 1721/3887 1746/3886
f 1435/3885 1745/3884 1746/3883
f 1435/3882 1436/3881 1745/3880
f 1721/3891 1747/3890 1719/3889
f 1359/3900 1358/3899 1436/3898
f 1719/3897 1741/3896 1748/3895
f 1719/3894 1747/3893 1741/3892
f 1710/3783 1735/3782 1709/3781
f 1735/3780 1732/3779 1734/3778
f 1733/3777 1735/3776 1734/3775
f 494/3786 1736/3785 507/3784
f 1727/3795 1738/3794 1736/3793
f 1736/3792 494/3791 1727/3790
f 507/3789 1736/3788 1737/3787
f 1730/3762 1732/3761 1731/3760
f 1728/3759 1731/3758 1727/3757
f 1728/3756 1730/3755 1731/3754
f 1733/3765 1730/3764 1423/3763
f 1709/3774 1735/3773 1733/3772
f 1734/3771 1730/3770 1733/3769
f 1734/3768 1732/3767 1730/3766
f 1735/3825 1710/3824 1742/3823
f 1742/3822 1732/3821 1735/3820
f 1732/3819 1741/3818 1740/3817
f 1743/3828 507/3827 1737/3826
f 1744/3837 1436/3836 1743/3835
f 1737/3834 1744/3833 1743/3832
f 1743/3831 513/3830 507/3829
f 1738/3804 1731/3803 1732/3802
f 1736/3801 1739/3800 1737/3799
f 1736/3798 1738/3797 1739/3796
f 1738/3807 1727/3806 1731/3805
f 1732/3816 1742/3815 1741/3814
f 1738/3813 1740/3812 1739/3811
f 1732/3810 1740/3809 1738/3808
f 1352/3924 1749/3923 1750/3922
f 462/4038 1769/4037 790/4036
f 1704/4035 1765/4034 1702/4033
f 1768/4032 1702/4031 1765/4030
f 1769/4041 1770/4040 790/4039
f 1699/4050 1768/4049 1772/4048
f 1768/4047 1765/4046 1771/4045
f 1772/4044 1768/4043 1771/4042
f 1767/4017 1762/4016 1766/4015
f 1760/4014 1759/4013 1704/4012
f 1705/4011 1760/4010 1704/4009
f 1759/4020 1764/4019 1767/4018
f 1699/4029 1702/4028 1768/4027
f 1764/4026 1762/4025 1767/4024
f 1759/4023 1767/4022 1765/4021
f 1782/4080 1785/4079 1783/4078
f 1780/4077 1783/4076 1784/4075
f 1780/4074 1782/4073 1783/4072
f 1786/4083 1787/4082 1782/4081
f 1788/4092 1785/4091 1787/4090
f 1787/4089 1785/4088 1782/4087
f 1786/4086 1782/4085 1781/4084
f 1775/4059 1774/4058 1084/4057
f 1773/4056 1774/4055 1091/4054
f 1087/4053 1774/4052 1773/4051
f 1084/4062 1774/4061 1087/4060
f 1781/4071 1782/4070 1780/4069
f 1776/4068 1778/4067 1779/4066
f 1777/4065 1778/4064 1776/4063
f 1750/3954 1434/3953 1352/3952
f 1354/3951 1753/3950 1422/3949
f 1434/3948 1753/3947 1354/3946
f 1434/3957 1750/3956 1754/3955
f 1756/3966 1751/3965 1757/3964
f 1756/3963 1757/3962 1755/3961
f 1750/3960 1751/3959 1754/3958
f 1423/3933 1752/3932 1733/3931
f 1407/3930 1749/3929 1351/3928
f 1749/3927 1751/3926 1750/3925
f 1423/3936 1422/3935 1752/3934
f 1754/3945 1753/3944 1434/3943
f 1753/3942 1754/3941 1752/3940
f 1422/3939 1753/3938 1752/3937
f 1758/3996 1763/3995 1759/3994
f 1763/3993 1758/3992 1756/3991
f 1755/3990 1763/3989 1756/3988
f 1708/3999 1760/3998 1705/3997
f 1704/4008 1759/4007 1765/4006
f 1764/4005 1759/4004 1763/4003
f 1762/4002 1764/4001 1763/4000
f 1760/3975 1758/3974 1759/3973
f 1754/3972 1751/3971 1756/3970
f 1754/3969 1756/3968 1758/3967
f 1709/3978 1761/3977 1708/3976
f 1762/3987 1763/3986 1755/3985
f 1761/3984 1758/3983 1760/3982
f 1708/3981 1761/3980 1760/3979
f 1423/3753 1730/3752 1728/3751
f 1388/3525 1694/3524 1386/3523
f 1388/3522 1689/3521 1694/3520
f 440/3519 1386/3518 1694/3517
f 1691/3528 1694/3527 1689/3526
f 1532/3537 1695/3536 1691/3535
f 1694/3534 1691/3533 442/3532
f 440/3531 1694/3530 442/3529
f 1073/3504 1693/3503 1074/3502
f 1074/3501 1684/3500 1384/3499
f 1682/3498 1684/3497 1074/3496
f 1683/3507 1074/3506 1693/3505
f 1384/3516 1690/3515 1075/3514
f 1690/3513 1388/3512 1385/3511
f 1690/3510 1385/3509 1075/3508
f 1398/3567 1697/3566 1445/3565
f 1453/3564 1443/3563 1696/3562
f 1683/3561 1693/3560 1522/3559
f 1697/3570 1446/3569 1445/3568
f 1699/3579 1700/3578 1698/3577
f 1394/3576 1446/3575 1697/3574
f 1394/3573 1697/3572 1398/3571
f 445/3546 1383/3545 1387/3544
f 767/3543 442/3542 1691/3541
f 767/3540 1691/3539 1695/3538
f 440/3549 447/3548 1386/3547
f 1385/3558 1387/3557 1383/3556
f 1388/3555 1387/3554 1385/3553
f 1387/3552 447/3551 445/3550
f 1683/3441 1472/3440 1682/3439
f 1428/3438 390/3437 415/3436
f 1670/3435 1428/3434 415/3433
f 1472/3444 1684/3443 1682/3442
f 1684/3453 1472/3452 1686/3451
f 1685/3450 1684/3449 1686/3448
f 1384/3447 1684/3446 1685/3445
f 1681/3420 1561/3419 1612/3418
f 1680/3417 1681/3416 1612/3415
f 1677/3414 1681/3413 1680/3412
f 1669/3423 1673/3422 1671/3421
f 1669/3432 1428/3431 1670/3430
f 1673/3429 1674/3428 1672/3427
f 1671/3426 1673/3425 1672/3424
f 1686/3483 1529/3482 1688/3481
f 1687/3480 1529/3479 1686/3478
f 1691/3477 1689/3476 1532/3475
f 1529/3486 1692/3485 1688/3484
f 1683/3495 1682/3494 1074/3493
f 1532/3492 1688/3491 1692/3490
f 1532/3489 1689/3488 1688/3487
f 1686/3462 1688/3461 1685/3460
f 1453/3459 1687/3458 1686/3457
f 1472/3456 1453/3455 1686/3454
f 1388/3465 1690/3464 1689/3463
f 1690/3474 1685/3473 1688/3472
f 1384/3471 1685/3470 1690/3469
f 1689/3468 1690/3467 1688/3466
f 1701/3582 462/3581 1700/3580
f 1724/3696 1723/3695 1722/3694
f 1720/3693 485/3692 1723/3691
f 479/3690 485/3689 1720/3688
f 1724/3699 1720/3698 1723/3697
f 1725/3708 1718/3707 1717/3706
f 1363/3705 1717/3704 1724/3703
f 1720/3702 1724/3701 1717/3700
f 471/3675 479/3674 1716/3673
f 1716/3672 479/3671 1720/3670
f 1706/3669 1715/3668 1710/3667
f 1717/3678 1716/3677 1720/3676
f 1723/3687 485/3686 1722/3685
f 1718/3684 1721/3683 1719/3682
f 1716/3681 1717/3680 1714/3679
f 491/3738 1727/3737 494/3736
f 491/3735 1726/3734 1727/3733
f 492/3732 1726/3731 491/3730
f 1727/3741 1726/3740 1728/3739
f 1726/3750 492/3749 1729/3748
f 1728/3747 1729/3746 1423/3745
f 1728/3744 1726/3743 1729/3742
f 1722/3717 488/3716 1360/3715
f 485/3714 488/3713 1722/3712
f 1718/3711 1725/3710 1721/3709
f 1722/3720 1360/3719 1724/3718
f 1717/3729 1359/3728 1725/3727
f 1363/3726 1359/3725 1717/3724
f 1724/3723 1360/3722 1363/3721
f 1708/3612 1710/3611 1709/3610
f 1705/3609 1706/3608 1708/3607
f 1703/3606 1707/3605 1706/3604
f 1698/3615 1712/3614 1711/3613
f 1712/3624 471/3623 1713/3622
f 1711/3621 1713/3620 1714/3619
f 1711/3618 1712/3617 1713/3616
f 1699/3591 1698/3590 1702/3589
f 462/3588 460/3587 1700/3586
f 1701/3585 1700/3584 1699/3583
f 1702/3594 1698/3593 1703/3592
f 1705/3603 1703/3602 1706/3601
f 1704/3600 1703/3599 1705/3598
f 1702/3597 1703/3596 1704/3595
f 1714/3654 1713/3653 1716/3652
f 1708/3651 1706/3650 1710/3649
f 1706/3648 1707/3647 1715/3646
f 1713/3657 471/3656 1716/3655
f 1719/3666 1715/3665 1718/3664
f 1714/3663 1718/3662 1715/3661
f 1718/3660 1714/3659 1717/3658
f 460/3633 471/3632 1712/3631
f 1700/3630 1712/3629 1698/3628
f 1700/3627 460/3626 1712/3625
f 1703/3636 1711/3635 1707/3634
f 1707/3645 1714/3644 1715/3643
f 1698/3642 1711/3641 1703/3640
f 1707/3639 1711/3638 1714/3637
s off
g orc_iris
s 2
f 15/11256 16/11255 1/11254
f 16/11259 17/11258 1/11257
f 14/11253 15/11252 1/11251
f 12/11247 13/11246 1/11245
f 13/11250 14/11249 1/11248
f 20/11271 21/11270 1/11269
f 21/11274 2/11273 1/11272
f 19/11268 20/11267 1/11266
f 17/11262 18/11261 1/11260
f 18/11265 19/11264 1/11263
f 5/11226 6/11225 1/11224
f 6/11229 7/11228 1/11227
f 4/11223 5/11222 1/11221
f 2/11217 3/11216 1/11215
f 3/11220 4/11219 1/11218
f 10/11241 11/11240 1/11239
f 11/11244 12/11243 1/11242
f 9/11238 10/11237 1/11236
f 7/11232 8/11231 1/11230
f 8/11235 9/11234 1/11233
f 1949/5637 1968/5636 1967/5635
f 1989/5640 1968/5639 1988/5638
f 1987/5634 1967/5633 1968/5632
f 1966/5628 1967/5627 1986/5626
f 1967/5631 1987/5630 1986/5629
f 1969/5643 1988/5642 1968/5641
f 1971/5655 1991/5654 1970/5653
f 1991/5658 1971/5657 1992/5656
f 1990/5652 1970/5651 1991/5650
f 1969/5646 1970/5645 1988/5644
f 1970/5649 1990/5648 1988/5647
f 1982/5604 1962/5603 1983/5602
f 1963/5607 1983/5606 1962/5605
f 1962/5601 1982/5600 1981/5599
f 1961/5595 1981/5594 1960/5593
f 1961/5598 1962/5597 1981/5596
f 1984/5610 1983/5609 1964/5608
f 1965/5622 1966/5621 1985/5620
f 1966/5625 1986/5624 1985/5623
f 1965/5619 1985/5618 1964/5617
f 1963/5613 1964/5612 1983/5611
f 1984/5616 1964/5615 1985/5614
f 1972/5661 1992/5660 1971/5659
f 1979/5706 1980/5705 1999/5704
f 1980/5709 2000/5708 1999/5707
f 1978/5703 1999/5702 1998/5701
f 1978/5697 1998/5696 1997/5695
f 1979/5700 1999/5699 1978/5698
f 1980/5712 1981/5711 2000/5710
f 1982/5724 1983/5723 2002/5722
f 1983/5727 2003/5726 2002/5725
f 1982/5721 2002/5720 1981/5719
f 1981/5715 2001/5714 2000/5713
f 2001/5718 1981/5717 2002/5716
f 1974/5673 1994/5672 1973/5671
f 1974/5676 1975/5675 1994/5674
f 1993/5670 1973/5669 1994/5668
f 1972/5664 1973/5663 1992/5662
f 1973/5667 1993/5666 1992/5665
f 1975/5679 1995/5678 1994/5677
f 1977/5691 1997/5690 1976/5689
f 1977/5694 1978/5693 1997/5692
f 1996/5688 1976/5687 1997/5686
f 1975/5682 1976/5681 1995/5680
f 1976/5685 1996/5684 1995/5683
f 1963/5502 1962/5501 1947/5500
f 1964/5505 1963/5504 1947/5503
f 1962/5499 1961/5498 1947/5497
f 1960/5493 1959/5492 1947/5491
f 1961/5496 1960/5495 1947/5494
f 1965/5508 1964/5507 1947/5506
f 1949/5520 1948/5519 1968/5518
f 1948/5523 1969/5522 1968/5521
f 1949/5517 1967/5516 1947/5515
f 1966/5511 1965/5510 1947/5509
f 1967/5514 1966/5513 1947/5512
f 1952/5469 1951/5468 1947/5467
f 1953/5472 1952/5471 1947/5470
f 1951/5466 1950/5465 1947/5464
f 1948/5460 1949/5459 1947/5458
f 1950/5463 1948/5462 1947/5461
f 1954/5475 1953/5474 1947/5473
f 1958/5487 1957/5486 1947/5485
f 1959/5490 1958/5489 1947/5488
f 1957/5484 1956/5483 1947/5482
f 1955/5478 1954/5477 1947/5476
f 1956/5481 1955/5480 1947/5479
f 1969/5526 1948/5525 1970/5524
f 1957/5571 1977/5570 1976/5569
f 1977/5574 1957/5573 1978/5572
f 1956/5568 1957/5567 1976/5566
f 1975/5562 1955/5561 1976/5560
f 1956/5565 1976/5564 1955/5563
f 1958/5577 1978/5576 1957/5575
f 1960/5589 1980/5588 1959/5587
f 1980/5592 1960/5591 1981/5590
f 1979/5586 1959/5585 1980/5584
f 1958/5580 1959/5579 1978/5578
f 1959/5583 1979/5582 1978/5581
f 1951/5538 1952/5537 1971/5536
f 1952/5541 1972/5540 1971/5539
f 1951/5535 1971/5534 1970/5533
f 1950/5529 1970/5528 1948/5527
f 1950/5532 1951/5531 1970/5530
f 1972/5544 1952/5543 1973/5542
f 1974/5556 1954/5555 1975/5554
f 1955/5559 1975/5558 1954/5557
f 1954/5553 1974/5552 1973/5551
f 1953/5547 1973/5546 1952/5545
f 1953/5550 1954/5549 1973/5548
f 37/11367 38/11366 18/11365
f 37/11364 17/11363 16/11362
f 18/11370 17/11369 37/11368
f 39/11376 19/11375 18/11374
f 18/11373 38/11372 39/11371
f 16/11361 36/11360 37/11359
f 14/11349 34/11348 35/11347
f 34/11346 14/11345 13/11344
f 35/11352 15/11351 14/11350
f 36/11358 16/11357 35/11356
f 16/11355 15/11354 35/11353
f 43/11400 23/11399 22/11398
f 22/11397 42/11396 43/11395
f 24/11403 23/11402 43/11401
f 24/11409 44/11408 45/11407
f 44/11406 24/11405 43/11404
f 22/11394 2/11393 21/11392
f 40/11382 20/11381 39/11380
f 20/11379 19/11378 39/11377
f 21/11385 20/11384 40/11383
f 21/11391 41/11390 22/11389
f 41/11388 21/11387 40/11386
f 13/11343 33/11342 34/11341
f 26/11298 6/11297 25/11296
f 6/11295 5/11294 25/11293
f 6/11301 26/11300 27/11299
f 8/11307 7/11306 27/11305
f 27/11304 7/11303 6/11302
f 25/11292 5/11291 24/11290
f 23/11280 3/11279 22/11278
f 3/11277 2/11276 22/11275
f 3/11283 23/11282 24/11281
f 5/11289 4/11288 24/11287
f 24/11286 4/11285 3/11284
f 11/11331 31/11330 32/11329
f 31/11328 11/11327 30/11326
f 32/11334 12/11333 11/11332
f 33/11340 13/11339 32/11338
f 13/11337 12/11336 32/11335
f 11/11325 10/11324 30/11323
f 8/11313 28/11312 29/11311
f 28/11310 8/11309 27/11308
f 29/11316 9/11315 8/11314
f 30/11322 10/11321 9/11320
f 9/11319 29/11318 30/11317
f 60/11502 40/11501 39/11500
f 39/11499 59/11498 60/11497
f 40/11505 60/11504 61/11503
f 22/11511 41/11510 61/11509
f 61/11508 41/11507 40/11506
f 59/11496 39/11495 58/11494
f 57/11484 37/11483 56/11482
f 37/11481 36/11480 56/11479
f 37/11487 57/11486 58/11485
f 39/11493 38/11492 58/11491
f 58/11490 38/11489 37/11488
f 1985/5739 2005/5738 2004/5737
f 2005/5742 1985/5741 2006/5740
f 1984/5736 1985/5735 2004/5734
f 2003/5730 1983/5729 2004/5728
f 1984/5733 2004/5732 1983/5731
f 1986/5745 2006/5744 1985/5743
f 1968/5757 1989/5756 2007/5755
f 42/11514 22/11513 61/11512
f 1987/5754 1968/5753 2007/5752
f 2006/5748 1986/5747 2007/5746
f 1987/5751 2007/5750 1986/5749
f 56/11478 36/11477 35/11476
f 29/11433 28/11432 48/11431
f 48/11430 28/11429 27/11428
f 49/11436 29/11435 48/11434
f 50/11442 30/11441 49/11440
f 30/11439 29/11438 49/11437
f 27/11427 47/11426 48/11425
f 25/11415 45/11414 46/11413
f 45/11412 25/11411 24/11410
f 46/11418 26/11417 25/11416
f 47/11424 27/11423 46/11422
f 27/11421 26/11420 46/11419
f 54/11466 34/11465 53/11464
f 34/11463 33/11462 53/11461
f 35/11469 34/11468 54/11467
f 35/11475 55/11474 56/11473
f 55/11472 35/11471 54/11470
f 53/11460 32/11459 52/11458
f 51/11448 31/11447 30/11446
f 30/11445 50/11444 51/11443
f 32/11451 31/11450 51/11449
f 53/11457 33/11456 32/11455
f 52/11454 32/11453 51/11452
s off
g orc_eye
s 3
f 89 69 88
f 70 69 89
f 69 68 88
f 68 67 87
f 88 68 87
f 71 91 92
f 92 72 71
f 91 71 70
f 90 70 89
f 70 90 91
f 84 64 83
f 64 84 85
f 64 63 83
f 63 62 82
f 83 63 82
f 66 86 87
f 87 67 66
f 86 66 65
f 85 65 64
f 65 85 86
f 99 79 98
f 79 99 100
f 79 78 98
f 97 98 78
f 78 77 97
f 81 101 82
f 82 62 81
f 101 81 80
f 100 80 79
f 80 100 101
f 94 74 93
f 75 74 94
f 74 73 93
f 73 72 92
f 93 73 92
f 76 96 97
f 97 77 76
f 96 76 75
f 95 75 94
f 75 95 96
f 69 49 68
f 50 49 69
f 49 48 68
f 48 47 67
f 68 48 67
f 51 71 72
f 72 52 51
f 71 51 50
f 70 50 69
f 50 70 71
f 64 44 63
f 44 64 65
f 44 43 63
f 43 42 62
f 63 43 62
f 67 47 46
f 67 46 66
f 66 46 45
f 65 45 44
f 45 65 66
f 79 59 78
f 59 79 80
f 59 58 78
f 58 57 77
f 78 58 77
f 61 81 62
f 62 42 61
f 81 61 60
f 80 60 59
f 60 80 81
f 74 54 73
f 55 54 74
f 54 53 73
f 53 52 72
f 73 53 72
f 56 76 77
f 77 57 56
f 76 56 55
f 75 55 74
f 55 75 76
f 2021 2001 2022
f 2001 2021 2020
f 2002 2022 2001
f 2003 2023 2002
f 2022 2002 2023
f 1999 2019 2018
f 1998 1999 2018
f 1999 2000 2019
f 2000 2001 2020
f 2000 2020 2019
f 2026 2006 2027
f 2006 2026 2005
f 2007 2027 2006
f 1989 2008 2007
f 2027 2007 2008
f 2004 2024 2023
f 2003 2004 2023
f 2004 2005 2024
f 2025 2005 2026
f 2005 2025 2024
f 2011 1991 2012
f 1991 2011 1990
f 1992 2012 1991
f 1992 2013 2012
f 1993 2013 1992
f 1988 2009 2008
f 1989 1988 2008
f 1988 1990 2009
f 2010 1990 2011
f 1990 2010 2009
f 2016 1996 2017
f 1996 2016 2015
f 1997 2017 1996
f 1998 2018 1997
f 2017 1997 2018
f 1994 2014 2013
f 1993 1994 2013
f 1994 1995 2014
f 1995 1996 2015
f 1995 2015 2014
f 2041 2021 2042
f 2021 2041 2040
f 2022 2042 2021
f 2023 2043 2022
f 2042 2022 2043
f 2019 2039 2038
f 2018 2019 2038
f 2019 2020 2039
f 2020 2021 2040
f 2020 2040 2039
f 2046 2026 2047
f 2026 2046 2025
f 2027 2047 2026
f 2008 2028 2027
f 2047 2027 2028
f 2023 2024 2043
f 2044 2043 2024
f 2024 2025 2044
f 2045 2025 2046
f 2025 2045 2044
f 2031 2011 2032
f 2011 2031 2010
f 2012 2032 2011
f 2013 2033 2012
f 2032 2012 2033
f 2009 2029 2028
f 2008 2009 2028
f 2009 2010 2029
f 2030 2010 2031
f 2010 2030 2029
f 2036 2016 2037
f 2016 2036 2035
f 2017 2037 2016
f 2018 2038 2017
f 2037 2017 2038
f 2014 2034 2033
f 2013 2014 2033
f 2014 2015 2034
f 2015 2016 2035
f 2015 2035 2034
s off
# 3998 elements
// stats.js - http://github.com/mrdoob/stats.js
var Stats=function(){function h(a){c.appendChild(a.dom);return a}function k(a){for(var d=0;d<c.children.length;d++)c.children[d].style.display=d===a?"block":"none";l=a}var l=0,c=document.createElement("div");c.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000";c.addEventListener("click",function(a){a.preventDefault();k(++l%c.children.length)},!1);var g=(performance||Date).now(),e=g,a=0,r=h(new Stats.Panel("FPS","#0ff","#002")),f=h(new Stats.Panel("MS","#0f0","#020"));
if(self.performance&&self.performance.memory)var t=h(new Stats.Panel("MB","#f08","#201"));k(0);return{REVISION:16,dom:c,addPanel:h,showPanel:k,begin:function(){g=(performance||Date).now()},end:function(){a++;var c=(performance||Date).now();f.update(c-g,200);if(c>e+1E3&&(r.update(1E3*a/(c-e),100),e=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){g=this.end()},domElement:c,setMode:k}};
Stats.Panel=function(h,k,l){var c=Infinity,g=0,e=Math.round,a=e(window.devicePixelRatio||1),r=80*a,f=48*a,t=3*a,u=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement("canvas");q.width=r;q.height=f;q.style.cssText="width:80px;height:48px";var b=q.getContext("2d");b.font="bold "+9*a+"px Helvetica,Arial,sans-serif";b.textBaseline="top";b.fillStyle=l;b.fillRect(0,0,r,f);b.fillStyle=k;b.fillText(h,t,u);b.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(f,
v){c=Math.min(c,f);g=Math.max(g,f);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=k;b.fillText(e(f)+" "+h+" ("+e(c)+"-"+e(g)+")",t,u);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,e((1-f/v)*p))}}};"object"===typeof module&&(module.exports=Stats);
<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js webgl - geometry - bend editor</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
font-family: Monospace;
background-color: #f0f0f0;
margin: 0px;
overflow: hidden;
}
#info {
position: absolute;
top: 0px;
width: 100%;
padding: 5px;
font-family:Monospace;
font-size:13px;
text-align:center;
}
</style>
</head>
<body>
<div id="container"></div>
<div id="info"><a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> - geometry - bend editor</div>
<script src="three.js"></script>
<script src="DragControls.js"></script>
<script src="OrbitControls.js"></script>
<script src="TransformControls.js"></script>
<script src="OBJLoader.js"></script>
<script src="stats.min.js"></script>
<script src="dat.gui.min.js"></script>
<script>
String.prototype.format = function () {
var str = this;
for ( var i = 0; i < arguments.length; i ++ ) {
str = str.replace( '{' + i + '}', arguments[ i ] );
}
return str;
};
var container, stats;
var camera, scene, renderer;
var splineHelperObjects = [], splineOutline;
var splinePointsLength = 4;
var positions = [];
var options;
var geometry = new THREE.BoxGeometry( 20, 20, 20 );
var transformControl;
var ARC_SEGMENTS = 200;
var splineMesh;
var splines = {};
var params = {
path: 0,
uniform: false,
tension: 0.5,
centripetal: true,
chordal: false,
addPoint: addPoint,
removePoint: removePoint,
exportSpline: exportSpline,
closed: true,
loop: true
};
BITS = 3;
init();
animate();
function init() {
container = document.getElementById( 'container' );
scene = new THREE.Scene();
scene.background = new THREE.Color( 0xf0f0f0 );
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set( 0, 250, 1000 );
scene.add( camera );
scene.add( new THREE.AmbientLight( 0xf0f0f0 ) );
var light = new THREE.SpotLight( 0xffffff, 1.5 );
light.position.set( 0, 1500, 200 );
light.castShadow = true;
light.shadow = new THREE.LightShadow( new THREE.PerspectiveCamera( 70, 1, 200, 2000 ) );
light.shadow.bias = -0.000222;
light.shadow.mapSize.width = 1024;
light.shadow.mapSize.height = 1024;
scene.add( light );
spotlight = light;
var planeGeometry = new THREE.PlaneGeometry( 2000, 2000 );
planeGeometry.rotateX( - Math.PI / 2 );
var planeMaterial = new THREE.ShadowMaterial( { opacity: 0.2 } );
var plane = new THREE.Mesh( planeGeometry, planeMaterial );
plane.position.y = -200;
plane.receiveShadow = true;
scene.add( plane );
var helper = new THREE.GridHelper( 2000, 100 );
helper.position.y = - 199;
helper.material.opacity = 0.25;
helper.material.transparent = true;
scene.add( helper );
//var axes = new THREE.AxesHelper( 1000 );
//axes.position.set( - 500, - 500, - 500 );
//scene.add( axes );
renderer = new THREE.WebGLRenderer( { antialias: false } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.shadowMap.enabled = true;
container.appendChild( renderer.domElement );
stats = new Stats();
container.appendChild( stats.dom );
gui = new dat.GUI();
gui.add( params, 'loop' );
// gui.add( params, 'tension', 0, 1 ).step( 0.01 ).onChange( function( value ) {
// splines.uniform.tension = value;
// splines.centripetal.tension = value;
// updateSplineOutline();
// });
// gui.add( params, 'centripetal' );
// gui.add( params, 'chordal' );
gui.add( params, 'closed' ).onChange((v) => {
splines.centripetal.closed = v;
})
gui.add( params, 'path', 0, 1 ).step( 0.01 ).onChange( function( value ) {
updateValue('pathOffset', value);
});
gui.add( params, 'addPoint' );
gui.add( params, 'removePoint' );
gui.add( params, 'exportSpline' );
gui.open();
// Controls
var controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.damping = 0.2;
controls.addEventListener( 'change', render );
controls.addEventListener( 'start', function() {
cancelHideTransorm();
} );
controls.addEventListener( 'end', function() {
delayHideTransform();
} );
transformControl = new THREE.TransformControls( camera, renderer.domElement );
transformControl.addEventListener( 'change', render );
scene.add( transformControl );
// Hiding transform situation is a little in a mess :()
transformControl.addEventListener( 'change', function( e ) {
cancelHideTransorm();
} );
transformControl.addEventListener( 'mouseDown', function( e ) {
cancelHideTransorm();
} );
transformControl.addEventListener( 'mouseUp', function( e ) {
delayHideTransform();
} );
transformControl.addEventListener( 'objectChange', function( e ) {
updateSplineOutline();
} );
var dragcontrols = new THREE.DragControls( splineHelperObjects, camera, renderer.domElement ); //
dragcontrols.enabled = false;
dragcontrols.addEventListener( 'hoveron', function ( event ) {
transformControl.attach( event.object );
cancelHideTransorm();
} );
dragcontrols.addEventListener( 'hoveroff', function ( event ) {
delayHideTransform();
} );
var hiding;
function delayHideTransform() {
cancelHideTransorm();
hideTransform();
}
function hideTransform() {
hiding = setTimeout( function() {
transformControl.detach( transformControl.object );
}, 2500 )
}
function cancelHideTransorm() {
if ( hiding ) clearTimeout( hiding );
}
/*******
* Curves
*********/
for ( var i = 0; i < splinePointsLength; i ++ ) {
addSplineObject( positions[ i ] );
}
positions = [];
for ( var i = 0; i < splinePointsLength; i ++ ) {
positions.push( splineHelperObjects[ i ].position );
}
var geometry = new THREE.Geometry();
for ( var i = 0; i < ARC_SEGMENTS; i ++ ) {
geometry.vertices.push( new THREE.Vector3() );
}
THREE.CatmullRomCurve3.prototype.computeFrenetFrames = function ( segments, closed ) {
// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf
var normal = new THREE.Vector3();
var tangents = [];
var normals = [];
var binormals = [];
var vec = new THREE.Vector3();
var mat = new THREE.Matrix4();
var i, u, theta;
// compute the tangent vectors for each segment on the curve
for ( i = 0; i <= segments; i ++ ) {
u = i / segments;
tangents[ i ] = this.getTangentAt( u );
tangents[ i ].normalize();
}
// select an initial normal vector perpendicular to the first tangent vector,
// and in the direction of the minimum tangent xyz component
normals[ 0 ] = new THREE.Vector3();
binormals[ 0 ] = new THREE.Vector3();
var min = Number.MAX_VALUE;
var tx = Math.abs( tangents[ 0 ].x );
var ty = Math.abs( tangents[ 0 ].y );
var tz = Math.abs( tangents[ 0 ].z );
/**/
if ( tx <= min ) {
min = tx;
normal.set( 1, 0, 0 );
}
if ( ty <= min ) {
min = ty;
normal.set( 0, 1, 0 );
}
if ( tz <= min ) {
normal.set( 0, 0, 1 );
}
// console.log(normal);
vec.crossVectors( tangents[ 0 ], normal ).normalize();
normals[ 0 ].crossVectors( tangents[ 0 ], vec );
binormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );
// binormals[ 0 ].set(0, 0, 1);
// normals[ 0 ].crossVectors(tangents[ 0 ], binormals[ 0 ]).normalize();
// compute the slowly-varying normal and binormal vectors for each segment on the curve
for ( i = 1; i <= segments; i ++ ) {
normals[ i ] = normals[ i - 1 ].clone();
binormals[ i ] = binormals[ i - 1 ].clone();
vec.crossVectors( tangents[ i - 1 ], tangents[ i ] );
if ( vec.length() > Number.EPSILON ) {
vec.normalize();
theta = Math.acos( THREE.Math.clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors
normals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );
}
binormals[ i ].crossVectors( tangents[ i ], normals[ i ] );
}
// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same
if ( closed === true ) {
theta = Math.acos( THREE.Math.clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );
theta /= segments;
if ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {
theta = - theta;
}
for ( i = 1; i <= segments; i ++ ) {
// twist a little...
normals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );
binormals[ i ].crossVectors( tangents[ i ], normals[ i ] );
}
}
return {
tangents: tangents,
normals: normals,
binormals: binormals
};
}
var curve = new THREE.CatmullRomCurve3( positions );
curve.curveType = 'catmullrom';
curve.mesh = new THREE.Line( geometry.clone(), new THREE.LineBasicMaterial( {
color: 0xff0000,
opacity: 0.35,
linewidth: 2
} ) );
curve.mesh.castShadow = true;
splines.uniform = curve;
curve = new THREE.CatmullRomCurve3( positions, true );
curve.curveType = 'centripetal';
curve.mesh = new THREE.Line( geometry.clone(), new THREE.LineBasicMaterial( {
color: 0x00ff00,
opacity: 0.35,
linewidth: 2
} ) );
curve.mesh.castShadow = true;
splines.centripetal = curve;
curve = new THREE.CatmullRomCurve3( positions );
curve.curveType = 'chordal';
curve.mesh = new THREE.Line( geometry.clone(), new THREE.LineBasicMaterial( {
color: 0x0000ff,
opacity: 0.35,
linewidth: 2
} ) );
curve.mesh.castShadow = true;
splines.chordal = curve;
for ( var k in splines ) {
var spline = splines[ k ];
scene.add( spline.mesh );
}
var controlPoints = [];
for (var i = 0; i < 5; i ++) {
controlPoints.push(
new THREE.Vector3( (Math.random() - 0.5) * 1500, 0, (Math.random() - 0.5) * 1500 )
)
}
load(controlPoints)
/*
load( [ new THREE.Vector3( -150 * 4, 0, 0 ),
new THREE.Vector3( -50 * 4, 0, 0 ),
new THREE.Vector3( 50 * 4, 0, 0 ),
new THREE.Vector3( 150 * 4, 0, 0 ) ] );
*/
initFish()
}
function initTexture() {
const width = 256;
const height = 4;
const dataArray = new Float32Array( width * height * BITS );
const dataTexture = new THREE.DataTexture(
dataArray,
width,
height,
THREE.RGBFormat,
THREE.FloatType
);
dataTexture.wrapS = THREE.RepeatWrapping;
// dataTexture.wrapY = THREE.RepeatWrapping;
dataTexture.magFilter = THREE.LinearFilter;
// dataTexture.minFilter = THREE.LinearMipMapLinearFilter; // requires rgba
//anisotropy
dataTexture.needsUpdate = true;
return dataTexture;
}
function setTextureValue(index, x, y, z, o) {
const image = texture.image;
const { width, height, data } = image;
const i = BITS * width * (o || 0);
data[index * BITS + i + 0] = x;
data[index * BITS + i + 1] = y;
data[index * BITS + i + 2] = z;
}
function initFish() {
// TODO Texture Loading + Load Manager
// customMaterial = new THREE.MeshBasicMaterial({
// wireframe: true,
// color: 0x000000
// });
if ( ! renderer.extensions.get( "OES_texture_float" ) ) {
console.log("No OES_texture_float support for float textures.");
}
if ( renderer.capabilities.maxVertexTextures === 0 ) {
console.log("No support for vertex shader textures.");
}
texture = initTexture();
customMaterial = new THREE.ShaderMaterial({
wireframe: true,
uniforms: {
texture: { value: texture },
pathOffset: { type: 'f', value: 0 }, // time of path curve
pathSegment: { type: 'f', value: 0 }, // fractional length of path
spookOffset: { type: 'f', value: 161 },
spookLength: { type: 'f', value: 400 },
},
vertexShader: `
uniform sampler2D texture;
uniform float pathOffset;
uniform float pathSegment;
uniform float spookOffset;
uniform float spookLength;
void main() {
float mt = 1. - (position.x + spookOffset) / spookLength * pathSegment + pathOffset;
float textureLayers = 4.; // look up takes (i + 0.5) / textureLayers
vec3 spline_pos = texture2D(texture, vec2(mt, (0.5) / textureLayers)).xyz;
vec3 a = texture2D(texture, vec2(mt, (1. + 0.5) / textureLayers)).xyz;
vec3 b = texture2D(texture, vec2(mt, (2. + 0.5) / textureLayers)).xyz;
vec3 c = texture2D(texture, vec2(mt, (3. + 0.5) / textureLayers)).xyz;
mat3 basis = mat3(a, b, c);
vec4 worldPos = modelMatrix * vec4(position, 1.);
worldPos = vec4(
basis
* vec3(worldPos.x * 0., worldPos.y * 1., worldPos.z * 1.)
+ spline_pos
, 1.);
vec4 mvPosition = viewMatrix * worldPos;
gl_Position = projectionMatrix * mvPosition;
}
`,
fragmentShader: `
void main() {
gl_FragColor.rgb = vec3(0.);
}
`
})
var loader = new THREE.OBJLoader();
// load a resource
loader.load(
// resource URL
'ORCA.OBJ',
// called when resource is loaded
function onLoad( object ) {
window.orca = object;
rotMat = new THREE.Matrix4()
rotMat.makeRotationY( -Math.PI / 2);
scaleMat = new THREE.Matrix4()
scaleMat.makeScale(50, 50, 50)
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.geometry.applyMatrix(scaleMat);
child.geometry.applyMatrix(rotMat);
// child.scale.multiplyScalar(50);
// child.position.y = 100;
// child.rotation.y = -Math.PI / 2;
child.material = customMaterial
// child.material.map = texture;
// child.material.color = 0x000000;
}
} );
// -3, 6
// orca.children[0].geometry.attributes.position.array
geoms = orca.children.map(child => child.geometry);
bbs = geoms.map(geo => {
geo.computeBoundingBox();
return geo.boundingBox;
});
// use x-axis aligned
min = Math.min(...bbs.map(bb => bb.min.x))
len = Math.max(...bbs.map(bb => bb.max.x)) - min
console.log(len, min);
updateValue('spookOffset', -min);
updateValue('spookLength', len); //
scene.add( object );
updateSplineOutline()
},
// called when loading is in progresses
function onProgress( xhr ) {
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
},
// called when loading has errors
function onError( error ) {
console.log( 'An error happened' );
}
);
}
/****************************/
function updateValue(name, v) {
customMaterial.uniforms[name].value = v;
}
function updateSplineTexture() {
if (!window.texture) return;
var POINTS = 256;
splines.centripetal.arcLengthDivisions = 200;
splines.centripetal.updateArcLengths()
splineLen = splines.centripetal.getLength()
f = len / splineLen
updateValue('spookOffset', 0);
updateValue('pathSegment', f);
console.log(f);
// uniform chordal centripetal
var points = splines.centripetal.getSpacedPoints(POINTS - 1);
// getPoints() - unequal arc lengths
var frenetFrames = splines.centripetal.computeFrenetFrames(POINTS - 1, params.closed);
// console.log(frenetFrames);
// console.log('points', points);
for (var i = 0; i < POINTS; i++) {
var pt = points[i];
setTextureValue(i, pt.x, pt.y, pt.z, 0);
pt = frenetFrames.tangents[i];
setTextureValue(i, pt.x, pt.y, pt.z, 1);
pt = frenetFrames.normals[i];
setTextureValue(i, pt.x, pt.y, pt.z, 2);
pt = frenetFrames.binormals[i];
setTextureValue(i, pt.x, pt.y, pt.z, 3);
}
texture.needsUpdate = true;
}
function addSplineObject( position ) {
var material = new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } );
var object = new THREE.Mesh( geometry, material );
if ( position ) {
object.position.copy( position );
} else {
object.position.x = Math.random() * 1000 - 500;
object.position.y = Math.random() * 600;
object.position.z = Math.random() * 800 - 400;
}
object.castShadow = true;
object.receiveShadow = true;
scene.add( object );
splineHelperObjects.push( object );
return object;
}
function addPoint() {
splinePointsLength ++;
positions.push( addSplineObject().position );
updateSplineOutline();
}
function removePoint() {
if ( splinePointsLength <= 4 ) {
return;
}
splinePointsLength --;
positions.pop();
scene.remove( splineHelperObjects.pop() );
updateSplineOutline();
}
function updateSplineOutline() {
for ( var k in splines ) {
var spline = splines[ k ];
splineMesh = spline.mesh;
for ( var i = 0; i < ARC_SEGMENTS; i ++ ) {
var p = splineMesh.geometry.vertices[ i ];
var t = i / ( ARC_SEGMENTS - 1 );
spline.getPoint( t, p );
}
splineMesh.geometry.verticesNeedUpdate = true;
updateSplineTexture();
}
}
function exportSpline() {
var strplace = [];
for ( var i = 0; i < splinePointsLength; i ++ ) {
var p = splineHelperObjects[ i ].position;
strplace.push( 'new THREE.Vector3({0}, {1}, {2})'.format( p.x, p.y, p.z ) )
}
console.log( strplace.join( ',\n' ) );
var code = '[' + ( strplace.join( ',\n\t' ) ) + ']';
prompt( 'copy and paste code', code );
}
function load( new_positions ) {
while ( new_positions.length > positions.length ) {
addPoint();
}
while ( new_positions.length < positions.length ) {
removePoint();
}
for ( var i = 0; i < positions.length; i ++ ) {
positions[ i ].copy( new_positions[ i ] );
}
updateSplineOutline();
}
function animate() {
requestAnimationFrame( animate );
render();
stats.update();
transformControl.update();
if (params.loop) {
params.path += 0.005;
params.path %= 1;
gui.updateDisplay();
updateValue('pathOffset', params.path);
}
}
function render() {
splines.uniform.mesh.visible = params.uniform;
splines.centripetal.mesh.visible = params.centripetal;
splines.chordal.mesh.visible = params.chordal;
renderer.render( scene, camera );
}
</script>
</body>
</html>
/**
* @author arodic / https://github.com/arodic
*/
( function () {
'use strict';
var GizmoMaterial = function ( parameters ) {
THREE.MeshBasicMaterial.call( this );
this.depthTest = false;
this.depthWrite = false;
this.fog = false;
this.side = THREE.FrontSide;
this.transparent = true;
this.setValues( parameters );
this.oldColor = this.color.clone();
this.oldOpacity = this.opacity;
this.highlight = function( highlighted ) {
if ( highlighted ) {
this.color.setRGB( 1, 1, 0 );
this.opacity = 1;
} else {
this.color.copy( this.oldColor );
this.opacity = this.oldOpacity;
}
};
};
GizmoMaterial.prototype = Object.create( THREE.MeshBasicMaterial.prototype );
GizmoMaterial.prototype.constructor = GizmoMaterial;
var GizmoLineMaterial = function ( parameters ) {
THREE.LineBasicMaterial.call( this );
this.depthTest = false;
this.depthWrite = false;
this.fog = false;
this.transparent = true;
this.linewidth = 1;
this.setValues( parameters );
this.oldColor = this.color.clone();
this.oldOpacity = this.opacity;
this.highlight = function( highlighted ) {
if ( highlighted ) {
this.color.setRGB( 1, 1, 0 );
this.opacity = 1;
} else {
this.color.copy( this.oldColor );
this.opacity = this.oldOpacity;
}
};
};
GizmoLineMaterial.prototype = Object.create( THREE.LineBasicMaterial.prototype );
GizmoLineMaterial.prototype.constructor = GizmoLineMaterial;
var pickerMaterial = new GizmoMaterial( { visible: false, transparent: false } );
THREE.TransformGizmo = function () {
this.init = function () {
THREE.Object3D.call( this );
this.handles = new THREE.Object3D();
this.pickers = new THREE.Object3D();
this.planes = new THREE.Object3D();
this.add( this.handles );
this.add( this.pickers );
this.add( this.planes );
//// PLANES
var planeGeometry = new THREE.PlaneBufferGeometry( 50, 50, 2, 2 );
var planeMaterial = new THREE.MeshBasicMaterial( { visible: false, side: THREE.DoubleSide } );
var planes = {
"XY": new THREE.Mesh( planeGeometry, planeMaterial ),
"YZ": new THREE.Mesh( planeGeometry, planeMaterial ),
"XZ": new THREE.Mesh( planeGeometry, planeMaterial ),
"XYZE": new THREE.Mesh( planeGeometry, planeMaterial )
};
this.activePlane = planes[ "XYZE" ];
planes[ "YZ" ].rotation.set( 0, Math.PI / 2, 0 );
planes[ "XZ" ].rotation.set( - Math.PI / 2, 0, 0 );
for ( var i in planes ) {
planes[ i ].name = i;
this.planes.add( planes[ i ] );
this.planes[ i ] = planes[ i ];
}
//// HANDLES AND PICKERS
var setupGizmos = function( gizmoMap, parent ) {
for ( var name in gizmoMap ) {
for ( i = gizmoMap[ name ].length; i --; ) {
var object = gizmoMap[ name ][ i ][ 0 ];
var position = gizmoMap[ name ][ i ][ 1 ];
var rotation = gizmoMap[ name ][ i ][ 2 ];
object.name = name;
object.renderOrder = Infinity; // avoid being hidden by other transparent objects
if ( position ) object.position.set( position[ 0 ], position[ 1 ], position[ 2 ] );
if ( rotation ) object.rotation.set( rotation[ 0 ], rotation[ 1 ], rotation[ 2 ] );
parent.add( object );
}
}
};
setupGizmos( this.handleGizmos, this.handles );
setupGizmos( this.pickerGizmos, this.pickers );
// reset Transformations
this.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.updateMatrix();
var tempGeometry = child.geometry.clone();
tempGeometry.applyMatrix( child.matrix );
child.geometry = tempGeometry;
child.position.set( 0, 0, 0 );
child.rotation.set( 0, 0, 0 );
child.scale.set( 1, 1, 1 );
}
} );
};
this.highlight = function ( axis ) {
this.traverse( function( child ) {
if ( child.material && child.material.highlight ) {
if ( child.name === axis ) {
child.material.highlight( true );
} else {
child.material.highlight( false );
}
}
} );
};
};
THREE.TransformGizmo.prototype = Object.create( THREE.Object3D.prototype );
THREE.TransformGizmo.prototype.constructor = THREE.TransformGizmo;
THREE.TransformGizmo.prototype.update = function ( rotation, eye ) {
var vec1 = new THREE.Vector3( 0, 0, 0 );
var vec2 = new THREE.Vector3( 0, 1, 0 );
var lookAtMatrix = new THREE.Matrix4();
this.traverse( function( child ) {
if ( child.name.search( "E" ) !== - 1 ) {
child.quaternion.setFromRotationMatrix( lookAtMatrix.lookAt( eye, vec1, vec2 ) );
} else if ( child.name.search( "X" ) !== - 1 || child.name.search( "Y" ) !== - 1 || child.name.search( "Z" ) !== - 1 ) {
child.quaternion.setFromEuler( rotation );
}
} );
};
THREE.TransformGizmoTranslate = function () {
THREE.TransformGizmo.call( this );
var arrowGeometry = new THREE.Geometry();
var mesh = new THREE.Mesh( new THREE.CylinderGeometry( 0, 0.05, 0.2, 12, 1, false ) );
mesh.position.y = 0.5;
mesh.updateMatrix();
arrowGeometry.merge( mesh.geometry, mesh.matrix );
var lineXGeometry = new THREE.BufferGeometry();
lineXGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) );
var lineYGeometry = new THREE.BufferGeometry();
lineYGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );
var lineZGeometry = new THREE.BufferGeometry();
lineZGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );
this.handleGizmos = {
X: [
[ new THREE.Mesh( arrowGeometry, new GizmoMaterial( { color: 0xff0000 } ) ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ] ],
[ new THREE.Line( lineXGeometry, new GizmoLineMaterial( { color: 0xff0000 } ) ) ]
],
Y: [
[ new THREE.Mesh( arrowGeometry, new GizmoMaterial( { color: 0x00ff00 } ) ), [ 0, 0.5, 0 ] ],
[ new THREE.Line( lineYGeometry, new GizmoLineMaterial( { color: 0x00ff00 } ) ) ]
],
Z: [
[ new THREE.Mesh( arrowGeometry, new GizmoMaterial( { color: 0x0000ff } ) ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ] ],
[ new THREE.Line( lineZGeometry, new GizmoLineMaterial( { color: 0x0000ff } ) ) ]
],
XYZ: [
[ new THREE.Mesh( new THREE.OctahedronGeometry( 0.1, 0 ), new GizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) ), [ 0, 0, 0 ], [ 0, 0, 0 ] ]
],
XY: [
[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.29, 0.29 ), new GizmoMaterial( { color: 0xffff00, opacity: 0.25 } ) ), [ 0.15, 0.15, 0 ] ]
],
YZ: [
[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.29, 0.29 ), new GizmoMaterial( { color: 0x00ffff, opacity: 0.25 } ) ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ] ]
],
XZ: [
[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.29, 0.29 ), new GizmoMaterial( { color: 0xff00ff, opacity: 0.25 } ) ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ] ]
]
};
this.pickerGizmos = {
X: [
[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), pickerMaterial ), [ 0.6, 0, 0 ], [ 0, 0, - Math.PI / 2 ] ]
],
Y: [
[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), pickerMaterial ), [ 0, 0.6, 0 ] ]
],
Z: [
[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), pickerMaterial ), [ 0, 0, 0.6 ], [ Math.PI / 2, 0, 0 ] ]
],
XYZ: [
[ new THREE.Mesh( new THREE.OctahedronGeometry( 0.2, 0 ), pickerMaterial ) ]
],
XY: [
[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.4, 0.4 ), pickerMaterial ), [ 0.2, 0.2, 0 ] ]
],
YZ: [
[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.4, 0.4 ), pickerMaterial ), [ 0, 0.2, 0.2 ], [ 0, Math.PI / 2, 0 ] ]
],
XZ: [
[ new THREE.Mesh( new THREE.PlaneBufferGeometry( 0.4, 0.4 ), pickerMaterial ), [ 0.2, 0, 0.2 ], [ - Math.PI / 2, 0, 0 ] ]
]
};
this.setActivePlane = function ( axis, eye ) {
var tempMatrix = new THREE.Matrix4();
eye.applyMatrix4( tempMatrix.getInverse( tempMatrix.extractRotation( this.planes[ "XY" ].matrixWorld ) ) );
if ( axis === "X" ) {
this.activePlane = this.planes[ "XY" ];
if ( Math.abs( eye.y ) > Math.abs( eye.z ) ) this.activePlane = this.planes[ "XZ" ];
}
if ( axis === "Y" ) {
this.activePlane = this.planes[ "XY" ];
if ( Math.abs( eye.x ) > Math.abs( eye.z ) ) this.activePlane = this.planes[ "YZ" ];
}
if ( axis === "Z" ) {
this.activePlane = this.planes[ "XZ" ];
if ( Math.abs( eye.x ) > Math.abs( eye.y ) ) this.activePlane = this.planes[ "YZ" ];
}
if ( axis === "XYZ" ) this.activePlane = this.planes[ "XYZE" ];
if ( axis === "XY" ) this.activePlane = this.planes[ "XY" ];
if ( axis === "YZ" ) this.activePlane = this.planes[ "YZ" ];
if ( axis === "XZ" ) this.activePlane = this.planes[ "XZ" ];
};
this.init();
};
THREE.TransformGizmoTranslate.prototype = Object.create( THREE.TransformGizmo.prototype );
THREE.TransformGizmoTranslate.prototype.constructor = THREE.TransformGizmoTranslate;
THREE.TransformGizmoRotate = function () {
THREE.TransformGizmo.call( this );
var CircleGeometry = function ( radius, facing, arc ) {
var geometry = new THREE.BufferGeometry();
var vertices = [];
arc = arc ? arc : 1;
for ( var i = 0; i <= 64 * arc; ++ i ) {
if ( facing === 'x' ) vertices.push( 0, Math.cos( i / 32 * Math.PI ) * radius, Math.sin( i / 32 * Math.PI ) * radius );
if ( facing === 'y' ) vertices.push( Math.cos( i / 32 * Math.PI ) * radius, 0, Math.sin( i / 32 * Math.PI ) * radius );
if ( facing === 'z' ) vertices.push( Math.sin( i / 32 * Math.PI ) * radius, Math.cos( i / 32 * Math.PI ) * radius, 0 );
}
geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
return geometry;
};
this.handleGizmos = {
X: [
[ new THREE.Line( new CircleGeometry( 1, 'x', 0.5 ), new GizmoLineMaterial( { color: 0xff0000 } ) ) ]
],
Y: [
[ new THREE.Line( new CircleGeometry( 1, 'y', 0.5 ), new GizmoLineMaterial( { color: 0x00ff00 } ) ) ]
],
Z: [
[ new THREE.Line( new CircleGeometry( 1, 'z', 0.5 ), new GizmoLineMaterial( { color: 0x0000ff } ) ) ]
],
E: [
[ new THREE.Line( new CircleGeometry( 1.25, 'z', 1 ), new GizmoLineMaterial( { color: 0xcccc00 } ) ) ]
],
XYZE: [
[ new THREE.Line( new CircleGeometry( 1, 'z', 1 ), new GizmoLineMaterial( { color: 0x787878 } ) ) ]
]
};
this.pickerGizmos = {
X: [
[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1, 0.12, 4, 12, Math.PI ), pickerMaterial ), [ 0, 0, 0 ], [ 0, - Math.PI / 2, - Math.PI / 2 ] ]
],
Y: [
[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1, 0.12, 4, 12, Math.PI ), pickerMaterial ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ] ]
],
Z: [
[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1, 0.12, 4, 12, Math.PI ), pickerMaterial ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ] ]
],
E: [
[ new THREE.Mesh( new THREE.TorusBufferGeometry( 1.25, 0.12, 2, 24 ), pickerMaterial ) ]
],
XYZE: [
[ new THREE.Mesh() ]// TODO
]
};
this.setActivePlane = function ( axis ) {
if ( axis === "E" ) this.activePlane = this.planes[ "XYZE" ];
if ( axis === "X" ) this.activePlane = this.planes[ "YZ" ];
if ( axis === "Y" ) this.activePlane = this.planes[ "XZ" ];
if ( axis === "Z" ) this.activePlane = this.planes[ "XY" ];
};
this.update = function ( rotation, eye2 ) {
THREE.TransformGizmo.prototype.update.apply( this, arguments );
var tempMatrix = new THREE.Matrix4();
var worldRotation = new THREE.Euler( 0, 0, 1 );
var tempQuaternion = new THREE.Quaternion();
var unitX = new THREE.Vector3( 1, 0, 0 );
var unitY = new THREE.Vector3( 0, 1, 0 );
var unitZ = new THREE.Vector3( 0, 0, 1 );
var quaternionX = new THREE.Quaternion();
var quaternionY = new THREE.Quaternion();
var quaternionZ = new THREE.Quaternion();
var eye = eye2.clone();
worldRotation.copy( this.planes[ "XY" ].rotation );
tempQuaternion.setFromEuler( worldRotation );
tempMatrix.makeRotationFromQuaternion( tempQuaternion ).getInverse( tempMatrix );
eye.applyMatrix4( tempMatrix );
this.traverse( function( child ) {
tempQuaternion.setFromEuler( worldRotation );
if ( child.name === "X" ) {
quaternionX.setFromAxisAngle( unitX, Math.atan2( - eye.y, eye.z ) );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
child.quaternion.copy( tempQuaternion );
}
if ( child.name === "Y" ) {
quaternionY.setFromAxisAngle( unitY, Math.atan2( eye.x, eye.z ) );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionY );
child.quaternion.copy( tempQuaternion );
}
if ( child.name === "Z" ) {
quaternionZ.setFromAxisAngle( unitZ, Math.atan2( eye.y, eye.x ) );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionZ );
child.quaternion.copy( tempQuaternion );
}
} );
};
this.init();
};
THREE.TransformGizmoRotate.prototype = Object.create( THREE.TransformGizmo.prototype );
THREE.TransformGizmoRotate.prototype.constructor = THREE.TransformGizmoRotate;
THREE.TransformGizmoScale = function () {
THREE.TransformGizmo.call( this );
var arrowGeometry = new THREE.Geometry();
var mesh = new THREE.Mesh( new THREE.BoxGeometry( 0.125, 0.125, 0.125 ) );
mesh.position.y = 0.5;
mesh.updateMatrix();
arrowGeometry.merge( mesh.geometry, mesh.matrix );
var lineXGeometry = new THREE.BufferGeometry();
lineXGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) );
var lineYGeometry = new THREE.BufferGeometry();
lineYGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );
var lineZGeometry = new THREE.BufferGeometry();
lineZGeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );
this.handleGizmos = {
X: [
[ new THREE.Mesh( arrowGeometry, new GizmoMaterial( { color: 0xff0000 } ) ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ] ],
[ new THREE.Line( lineXGeometry, new GizmoLineMaterial( { color: 0xff0000 } ) ) ]
],
Y: [
[ new THREE.Mesh( arrowGeometry, new GizmoMaterial( { color: 0x00ff00 } ) ), [ 0, 0.5, 0 ] ],
[ new THREE.Line( lineYGeometry, new GizmoLineMaterial( { color: 0x00ff00 } ) ) ]
],
Z: [
[ new THREE.Mesh( arrowGeometry, new GizmoMaterial( { color: 0x0000ff } ) ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ] ],
[ new THREE.Line( lineZGeometry, new GizmoLineMaterial( { color: 0x0000ff } ) ) ]
],
XYZ: [
[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.125, 0.125, 0.125 ), new GizmoMaterial( { color: 0xffffff, opacity: 0.25 } ) ) ]
]
};
this.pickerGizmos = {
X: [
[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), pickerMaterial ), [ 0.6, 0, 0 ], [ 0, 0, - Math.PI / 2 ] ]
],
Y: [
[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), pickerMaterial ), [ 0, 0.6, 0 ] ]
],
Z: [
[ new THREE.Mesh( new THREE.CylinderBufferGeometry( 0.2, 0, 1, 4, 1, false ), pickerMaterial ), [ 0, 0, 0.6 ], [ Math.PI / 2, 0, 0 ] ]
],
XYZ: [
[ new THREE.Mesh( new THREE.BoxBufferGeometry( 0.4, 0.4, 0.4 ), pickerMaterial ) ]
]
};
this.setActivePlane = function ( axis, eye ) {
var tempMatrix = new THREE.Matrix4();
eye.applyMatrix4( tempMatrix.getInverse( tempMatrix.extractRotation( this.planes[ "XY" ].matrixWorld ) ) );
if ( axis === "X" ) {
this.activePlane = this.planes[ "XY" ];
if ( Math.abs( eye.y ) > Math.abs( eye.z ) ) this.activePlane = this.planes[ "XZ" ];
}
if ( axis === "Y" ) {
this.activePlane = this.planes[ "XY" ];
if ( Math.abs( eye.x ) > Math.abs( eye.z ) ) this.activePlane = this.planes[ "YZ" ];
}
if ( axis === "Z" ) {
this.activePlane = this.planes[ "XZ" ];
if ( Math.abs( eye.x ) > Math.abs( eye.y ) ) this.activePlane = this.planes[ "YZ" ];
}
if ( axis === "XYZ" ) this.activePlane = this.planes[ "XYZE" ];
};
this.init();
};
THREE.TransformGizmoScale.prototype = Object.create( THREE.TransformGizmo.prototype );
THREE.TransformGizmoScale.prototype.constructor = THREE.TransformGizmoScale;
THREE.TransformControls = function ( camera, domElement ) {
// TODO: Make non-uniform scale and rotate play nice in hierarchies
// TODO: ADD RXYZ contol
THREE.Object3D.call( this );
domElement = ( domElement !== undefined ) ? domElement : document;
this.object = undefined;
this.visible = false;
this.translationSnap = null;
this.rotationSnap = null;
this.space = "world";
this.size = 1;
this.axis = null;
var scope = this;
var _mode = "translate";
var _dragging = false;
var _gizmo = {
"translate": new THREE.TransformGizmoTranslate(),
"rotate": new THREE.TransformGizmoRotate(),
"scale": new THREE.TransformGizmoScale()
};
for ( var type in _gizmo ) {
var gizmoObj = _gizmo[ type ];
gizmoObj.visible = ( type === _mode );
this.add( gizmoObj );
}
var changeEvent = { type: "change" };
var mouseDownEvent = { type: "mouseDown" };
var mouseUpEvent = { type: "mouseUp", mode: _mode };
var objectChangeEvent = { type: "objectChange" };
var ray = new THREE.Raycaster();
var pointerVector = new THREE.Vector2();
var point = new THREE.Vector3();
var offset = new THREE.Vector3();
var rotation = new THREE.Vector3();
var offsetRotation = new THREE.Vector3();
var scale = 1;
var lookAtMatrix = new THREE.Matrix4();
var eye = new THREE.Vector3();
var tempMatrix = new THREE.Matrix4();
var tempVector = new THREE.Vector3();
var tempQuaternion = new THREE.Quaternion();
var unitX = new THREE.Vector3( 1, 0, 0 );
var unitY = new THREE.Vector3( 0, 1, 0 );
var unitZ = new THREE.Vector3( 0, 0, 1 );
var quaternionXYZ = new THREE.Quaternion();
var quaternionX = new THREE.Quaternion();
var quaternionY = new THREE.Quaternion();
var quaternionZ = new THREE.Quaternion();
var quaternionE = new THREE.Quaternion();
var oldPosition = new THREE.Vector3();
var oldScale = new THREE.Vector3();
var oldRotationMatrix = new THREE.Matrix4();
var parentRotationMatrix = new THREE.Matrix4();
var parentScale = new THREE.Vector3();
var worldPosition = new THREE.Vector3();
var worldRotation = new THREE.Euler();
var worldRotationMatrix = new THREE.Matrix4();
var camPosition = new THREE.Vector3();
var camRotation = new THREE.Euler();
domElement.addEventListener( "mousedown", onPointerDown, false );
domElement.addEventListener( "touchstart", onPointerDown, false );
domElement.addEventListener( "mousemove", onPointerHover, false );
domElement.addEventListener( "touchmove", onPointerHover, false );
domElement.addEventListener( "mousemove", onPointerMove, false );
domElement.addEventListener( "touchmove", onPointerMove, false );
domElement.addEventListener( "mouseup", onPointerUp, false );
domElement.addEventListener( "mouseout", onPointerUp, false );
domElement.addEventListener( "touchend", onPointerUp, false );
domElement.addEventListener( "touchcancel", onPointerUp, false );
domElement.addEventListener( "touchleave", onPointerUp, false );
this.dispose = function () {
domElement.removeEventListener( "mousedown", onPointerDown );
domElement.removeEventListener( "touchstart", onPointerDown );
domElement.removeEventListener( "mousemove", onPointerHover );
domElement.removeEventListener( "touchmove", onPointerHover );
domElement.removeEventListener( "mousemove", onPointerMove );
domElement.removeEventListener( "touchmove", onPointerMove );
domElement.removeEventListener( "mouseup", onPointerUp );
domElement.removeEventListener( "mouseout", onPointerUp );
domElement.removeEventListener( "touchend", onPointerUp );
domElement.removeEventListener( "touchcancel", onPointerUp );
domElement.removeEventListener( "touchleave", onPointerUp );
};
this.attach = function ( object ) {
this.object = object;
this.visible = true;
this.update();
};
this.detach = function () {
this.object = undefined;
this.visible = false;
this.axis = null;
};
this.getMode = function () {
return _mode;
};
this.setMode = function ( mode ) {
_mode = mode ? mode : _mode;
if ( _mode === "scale" ) scope.space = "local";
for ( var type in _gizmo ) _gizmo[ type ].visible = ( type === _mode );
this.update();
scope.dispatchEvent( changeEvent );
};
this.setTranslationSnap = function ( translationSnap ) {
scope.translationSnap = translationSnap;
};
this.setRotationSnap = function ( rotationSnap ) {
scope.rotationSnap = rotationSnap;
};
this.setSize = function ( size ) {
scope.size = size;
this.update();
scope.dispatchEvent( changeEvent );
};
this.setSpace = function ( space ) {
scope.space = space;
this.update();
scope.dispatchEvent( changeEvent );
};
this.update = function () {
if ( scope.object === undefined ) return;
scope.object.updateMatrixWorld();
worldPosition.setFromMatrixPosition( scope.object.matrixWorld );
worldRotation.setFromRotationMatrix( tempMatrix.extractRotation( scope.object.matrixWorld ) );
camera.updateMatrixWorld();
camPosition.setFromMatrixPosition( camera.matrixWorld );
camRotation.setFromRotationMatrix( tempMatrix.extractRotation( camera.matrixWorld ) );
scale = worldPosition.distanceTo( camPosition ) / 6 * scope.size;
this.position.copy( worldPosition );
this.scale.set( scale, scale, scale );
if ( camera instanceof THREE.PerspectiveCamera ) {
eye.copy( camPosition ).sub( worldPosition ).normalize();
} else if ( camera instanceof THREE.OrthographicCamera ) {
eye.copy( camPosition ).normalize();
}
if ( scope.space === "local" ) {
_gizmo[ _mode ].update( worldRotation, eye );
} else if ( scope.space === "world" ) {
_gizmo[ _mode ].update( new THREE.Euler(), eye );
}
_gizmo[ _mode ].highlight( scope.axis );
};
function onPointerHover( event ) {
if ( scope.object === undefined || _dragging === true || ( event.button !== undefined && event.button !== 0 ) ) return;
var pointer = event.changedTouches ? event.changedTouches[ 0 ] : event;
var intersect = intersectObjects( pointer, _gizmo[ _mode ].pickers.children );
var axis = null;
if ( intersect ) {
axis = intersect.object.name;
event.preventDefault();
}
if ( scope.axis !== axis ) {
scope.axis = axis;
scope.update();
scope.dispatchEvent( changeEvent );
}
}
function onPointerDown( event ) {
if ( scope.object === undefined || _dragging === true || ( event.button !== undefined && event.button !== 0 ) ) return;
var pointer = event.changedTouches ? event.changedTouches[ 0 ] : event;
if ( pointer.button === 0 || pointer.button === undefined ) {
var intersect = intersectObjects( pointer, _gizmo[ _mode ].pickers.children );
if ( intersect ) {
event.preventDefault();
event.stopPropagation();
scope.axis = intersect.object.name;
scope.dispatchEvent( mouseDownEvent );
scope.update();
eye.copy( camPosition ).sub( worldPosition ).normalize();
_gizmo[ _mode ].setActivePlane( scope.axis, eye );
var planeIntersect = intersectObjects( pointer, [ _gizmo[ _mode ].activePlane ] );
if ( planeIntersect ) {
oldPosition.copy( scope.object.position );
oldScale.copy( scope.object.scale );
oldRotationMatrix.extractRotation( scope.object.matrix );
worldRotationMatrix.extractRotation( scope.object.matrixWorld );
parentRotationMatrix.extractRotation( scope.object.parent.matrixWorld );
parentScale.setFromMatrixScale( tempMatrix.getInverse( scope.object.parent.matrixWorld ) );
offset.copy( planeIntersect.point );
}
}
}
_dragging = true;
}
function onPointerMove( event ) {
if ( scope.object === undefined || scope.axis === null || _dragging === false || ( event.button !== undefined && event.button !== 0 ) ) return;
var pointer = event.changedTouches ? event.changedTouches[ 0 ] : event;
var planeIntersect = intersectObjects( pointer, [ _gizmo[ _mode ].activePlane ] );
if ( planeIntersect === false ) return;
event.preventDefault();
event.stopPropagation();
point.copy( planeIntersect.point );
if ( _mode === "translate" ) {
point.sub( offset );
point.multiply( parentScale );
if ( scope.space === "local" ) {
point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
if ( scope.axis.search( "X" ) === - 1 ) point.x = 0;
if ( scope.axis.search( "Y" ) === - 1 ) point.y = 0;
if ( scope.axis.search( "Z" ) === - 1 ) point.z = 0;
point.applyMatrix4( oldRotationMatrix );
scope.object.position.copy( oldPosition );
scope.object.position.add( point );
}
if ( scope.space === "world" || scope.axis.search( "XYZ" ) !== - 1 ) {
if ( scope.axis.search( "X" ) === - 1 ) point.x = 0;
if ( scope.axis.search( "Y" ) === - 1 ) point.y = 0;
if ( scope.axis.search( "Z" ) === - 1 ) point.z = 0;
point.applyMatrix4( tempMatrix.getInverse( parentRotationMatrix ) );
scope.object.position.copy( oldPosition );
scope.object.position.add( point );
}
if ( scope.translationSnap !== null ) {
if ( scope.space === "local" ) {
scope.object.position.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
}
if ( scope.axis.search( "X" ) !== - 1 ) scope.object.position.x = Math.round( scope.object.position.x / scope.translationSnap ) * scope.translationSnap;
if ( scope.axis.search( "Y" ) !== - 1 ) scope.object.position.y = Math.round( scope.object.position.y / scope.translationSnap ) * scope.translationSnap;
if ( scope.axis.search( "Z" ) !== - 1 ) scope.object.position.z = Math.round( scope.object.position.z / scope.translationSnap ) * scope.translationSnap;
if ( scope.space === "local" ) {
scope.object.position.applyMatrix4( worldRotationMatrix );
}
}
} else if ( _mode === "scale" ) {
point.sub( offset );
point.multiply( parentScale );
if ( scope.space === "local" ) {
if ( scope.axis === "XYZ" ) {
scale = 1 + ( ( point.y ) / Math.max( oldScale.x, oldScale.y, oldScale.z ) );
scope.object.scale.x = oldScale.x * scale;
scope.object.scale.y = oldScale.y * scale;
scope.object.scale.z = oldScale.z * scale;
} else {
point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
if ( scope.axis === "X" ) scope.object.scale.x = oldScale.x * ( 1 + point.x / oldScale.x );
if ( scope.axis === "Y" ) scope.object.scale.y = oldScale.y * ( 1 + point.y / oldScale.y );
if ( scope.axis === "Z" ) scope.object.scale.z = oldScale.z * ( 1 + point.z / oldScale.z );
}
}
} else if ( _mode === "rotate" ) {
point.sub( worldPosition );
point.multiply( parentScale );
tempVector.copy( offset ).sub( worldPosition );
tempVector.multiply( parentScale );
if ( scope.axis === "E" ) {
point.applyMatrix4( tempMatrix.getInverse( lookAtMatrix ) );
tempVector.applyMatrix4( tempMatrix.getInverse( lookAtMatrix ) );
rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
quaternionE.setFromAxisAngle( eye, rotation.z - offsetRotation.z );
quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionE );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
scope.object.quaternion.copy( tempQuaternion );
} else if ( scope.axis === "XYZE" ) {
quaternionE.setFromEuler( point.clone().cross( tempVector ).normalize() ); // rotation axis
tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
quaternionX.setFromAxisAngle( quaternionE, - point.clone().angleTo( tempVector ) );
quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
scope.object.quaternion.copy( tempQuaternion );
} else if ( scope.space === "local" ) {
point.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
tempVector.applyMatrix4( tempMatrix.getInverse( worldRotationMatrix ) );
rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
quaternionXYZ.setFromRotationMatrix( oldRotationMatrix );
if ( scope.rotationSnap !== null ) {
quaternionX.setFromAxisAngle( unitX, Math.round( ( rotation.x - offsetRotation.x ) / scope.rotationSnap ) * scope.rotationSnap );
quaternionY.setFromAxisAngle( unitY, Math.round( ( rotation.y - offsetRotation.y ) / scope.rotationSnap ) * scope.rotationSnap );
quaternionZ.setFromAxisAngle( unitZ, Math.round( ( rotation.z - offsetRotation.z ) / scope.rotationSnap ) * scope.rotationSnap );
} else {
quaternionX.setFromAxisAngle( unitX, rotation.x - offsetRotation.x );
quaternionY.setFromAxisAngle( unitY, rotation.y - offsetRotation.y );
quaternionZ.setFromAxisAngle( unitZ, rotation.z - offsetRotation.z );
}
if ( scope.axis === "X" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionX );
if ( scope.axis === "Y" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionY );
if ( scope.axis === "Z" ) quaternionXYZ.multiplyQuaternions( quaternionXYZ, quaternionZ );
scope.object.quaternion.copy( quaternionXYZ );
} else if ( scope.space === "world" ) {
rotation.set( Math.atan2( point.z, point.y ), Math.atan2( point.x, point.z ), Math.atan2( point.y, point.x ) );
offsetRotation.set( Math.atan2( tempVector.z, tempVector.y ), Math.atan2( tempVector.x, tempVector.z ), Math.atan2( tempVector.y, tempVector.x ) );
tempQuaternion.setFromRotationMatrix( tempMatrix.getInverse( parentRotationMatrix ) );
if ( scope.rotationSnap !== null ) {
quaternionX.setFromAxisAngle( unitX, Math.round( ( rotation.x - offsetRotation.x ) / scope.rotationSnap ) * scope.rotationSnap );
quaternionY.setFromAxisAngle( unitY, Math.round( ( rotation.y - offsetRotation.y ) / scope.rotationSnap ) * scope.rotationSnap );
quaternionZ.setFromAxisAngle( unitZ, Math.round( ( rotation.z - offsetRotation.z ) / scope.rotationSnap ) * scope.rotationSnap );
} else {
quaternionX.setFromAxisAngle( unitX, rotation.x - offsetRotation.x );
quaternionY.setFromAxisAngle( unitY, rotation.y - offsetRotation.y );
quaternionZ.setFromAxisAngle( unitZ, rotation.z - offsetRotation.z );
}
quaternionXYZ.setFromRotationMatrix( worldRotationMatrix );
if ( scope.axis === "X" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionX );
if ( scope.axis === "Y" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionY );
if ( scope.axis === "Z" ) tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionZ );
tempQuaternion.multiplyQuaternions( tempQuaternion, quaternionXYZ );
scope.object.quaternion.copy( tempQuaternion );
}
}
scope.update();
scope.dispatchEvent( changeEvent );
scope.dispatchEvent( objectChangeEvent );
}
function onPointerUp( event ) {
event.preventDefault(); // Prevent MouseEvent on mobile
if ( event.button !== undefined && event.button !== 0 ) return;
if ( _dragging && ( scope.axis !== null ) ) {
mouseUpEvent.mode = _mode;
scope.dispatchEvent( mouseUpEvent );
}
_dragging = false;
if ( 'TouchEvent' in window && event instanceof TouchEvent ) {
// Force "rollover"
scope.axis = null;
scope.update();
scope.dispatchEvent( changeEvent );
} else {
onPointerHover( event );
}
}
function intersectObjects( pointer, objects ) {
var rect = domElement.getBoundingClientRect();
var x = ( pointer.clientX - rect.left ) / rect.width;
var y = ( pointer.clientY - rect.top ) / rect.height;
pointerVector.set( ( x * 2 ) - 1, - ( y * 2 ) + 1 );
ray.setFromCamera( pointerVector, camera );
var intersections = ray.intersectObjects( objects, true );
return intersections[ 0 ] ? intersections[ 0 ] : false;
}
};
THREE.TransformControls.prototype = Object.create( THREE.Object3D.prototype );
THREE.TransformControls.prototype.constructor = THREE.TransformControls;
}() );
This file has been truncated, but you can view the full file.
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.THREE = {})));
}(this, (function (exports) { 'use strict';
// Polyfills
if ( Number.EPSILON === undefined ) {
Number.EPSILON = Math.pow( 2, - 52 );
}
if ( Number.isInteger === undefined ) {
// Missing in IE
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger
Number.isInteger = function ( value ) {
return typeof value === 'number' && isFinite( value ) && Math.floor( value ) === value;
};
}
//
if ( Math.sign === undefined ) {
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign
Math.sign = function ( x ) {
return ( x < 0 ) ? - 1 : ( x > 0 ) ? 1 : + x;
};
}
if ( 'name' in Function.prototype === false ) {
// Missing in IE
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
Object.defineProperty( Function.prototype, 'name', {
get: function () {
return this.toString().match( /^\s*function\s*([^\(\s]*)/ )[ 1 ];
}
} );
}
if ( Object.assign === undefined ) {
// Missing in IE
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
( function () {
Object.assign = function ( target ) {
if ( target === undefined || target === null ) {
throw new TypeError( 'Cannot convert undefined or null to object' );
}
var output = Object( target );
for ( var index = 1; index < arguments.length; index ++ ) {
var source = arguments[ index ];
if ( source !== undefined && source !== null ) {
for ( var nextKey in source ) {
if ( Object.prototype.hasOwnProperty.call( source, nextKey ) ) {
output[ nextKey ] = source[ nextKey ];
}
}
}
}
return output;
};
} )();
}
/**
* https://github.com/mrdoob/eventdispatcher.js/
*/
function EventDispatcher() {}
Object.assign( EventDispatcher.prototype, {
addEventListener: function ( type, listener ) {
if ( this._listeners === undefined ) this._listeners = {};
var listeners = this._listeners;
if ( listeners[ type ] === undefined ) {
listeners[ type ] = [];
}
if ( listeners[ type ].indexOf( listener ) === - 1 ) {
listeners[ type ].push( listener );
}
},
hasEventListener: function ( type, listener ) {
if ( this._listeners === undefined ) return false;
var listeners = this._listeners;
return listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;
},
removeEventListener: function ( type, listener ) {
if ( this._listeners === undefined ) return;
var listeners = this._listeners;
var listenerArray = listeners[ type ];
if ( listenerArray !== undefined ) {
var index = listenerArray.indexOf( listener );
if ( index !== - 1 ) {
listenerArray.splice( index, 1 );
}
}
},
dispatchEvent: function ( event ) {
if ( this._listeners === undefined ) return;
var listeners = this._listeners;
var listenerArray = listeners[ event.type ];
if ( listenerArray !== undefined ) {
event.target = this;
var array = listenerArray.slice( 0 );
for ( var i = 0, l = array.length; i < l; i ++ ) {
array[ i ].call( this, event );
}
}
}
} );
var REVISION = '91dev';
var MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 };
var CullFaceNone = 0;
var CullFaceBack = 1;
var CullFaceFront = 2;
var CullFaceFrontBack = 3;
var FrontFaceDirectionCW = 0;
var FrontFaceDirectionCCW = 1;
var BasicShadowMap = 0;
var PCFShadowMap = 1;
var PCFSoftShadowMap = 2;
var FrontSide = 0;
var BackSide = 1;
var DoubleSide = 2;
var FlatShading = 1;
var SmoothShading = 2;
var NoColors = 0;
var FaceColors = 1;
var VertexColors = 2;
var NoBlending = 0;
var NormalBlending = 1;
var AdditiveBlending = 2;
var SubtractiveBlending = 3;
var MultiplyBlending = 4;
var CustomBlending = 5;
var AddEquation = 100;
var SubtractEquation = 101;
var ReverseSubtractEquation = 102;
var MinEquation = 103;
var MaxEquation = 104;
var ZeroFactor = 200;
var OneFactor = 201;
var SrcColorFactor = 202;
var OneMinusSrcColorFactor = 203;
var SrcAlphaFactor = 204;
var OneMinusSrcAlphaFactor = 205;
var DstAlphaFactor = 206;
var OneMinusDstAlphaFactor = 207;
var DstColorFactor = 208;
var OneMinusDstColorFactor = 209;
var SrcAlphaSaturateFactor = 210;
var NeverDepth = 0;
var AlwaysDepth = 1;
var LessDepth = 2;
var LessEqualDepth = 3;
var EqualDepth = 4;
var GreaterEqualDepth = 5;
var GreaterDepth = 6;
var NotEqualDepth = 7;
var MultiplyOperation = 0;
var MixOperation = 1;
var AddOperation = 2;
var NoToneMapping = 0;
var LinearToneMapping = 1;
var ReinhardToneMapping = 2;
var Uncharted2ToneMapping = 3;
var CineonToneMapping = 4;
var UVMapping = 300;
var CubeReflectionMapping = 301;
var CubeRefractionMapping = 302;
var EquirectangularReflectionMapping = 303;
var EquirectangularRefractionMapping = 304;
var SphericalReflectionMapping = 305;
var CubeUVReflectionMapping = 306;
var CubeUVRefractionMapping = 307;
var RepeatWrapping = 1000;
var ClampToEdgeWrapping = 1001;
var MirroredRepeatWrapping = 1002;
var NearestFilter = 1003;
var NearestMipMapNearestFilter = 1004;
var NearestMipMapLinearFilter = 1005;
var LinearFilter = 1006;
var LinearMipMapNearestFilter = 1007;
var LinearMipMapLinearFilter = 1008;
var UnsignedByteType = 1009;
var ByteType = 1010;
var ShortType = 1011;
var UnsignedShortType = 1012;
var IntType = 1013;
var UnsignedIntType = 1014;
var FloatType = 1015;
var HalfFloatType = 1016;
var UnsignedShort4444Type = 1017;
var UnsignedShort5551Type = 1018;
var UnsignedShort565Type = 1019;
var UnsignedInt248Type = 1020;
var AlphaFormat = 1021;
var RGBFormat = 1022;
var RGBAFormat = 1023;
var LuminanceFormat = 1024;
var LuminanceAlphaFormat = 1025;
var RGBEFormat = RGBAFormat;
var DepthFormat = 1026;
var DepthStencilFormat = 1027;
var RGB_S3TC_DXT1_Format = 33776;
var RGBA_S3TC_DXT1_Format = 33777;
var RGBA_S3TC_DXT3_Format = 33778;
var RGBA_S3TC_DXT5_Format = 33779;
var RGB_PVRTC_4BPPV1_Format = 35840;
var RGB_PVRTC_2BPPV1_Format = 35841;
var RGBA_PVRTC_4BPPV1_Format = 35842;
var RGBA_PVRTC_2BPPV1_Format = 35843;
var RGB_ETC1_Format = 36196;
var RGBA_ASTC_4x4_Format = 37808;
var RGBA_ASTC_5x4_Format = 37809;
var RGBA_ASTC_5x5_Format = 37810;
var RGBA_ASTC_6x5_Format = 37811;
var RGBA_ASTC_6x6_Format = 37812;
var RGBA_ASTC_8x5_Format = 37813;
var RGBA_ASTC_8x6_Format = 37814;
var RGBA_ASTC_8x8_Format = 37815;
var RGBA_ASTC_10x5_Format = 37816;
var RGBA_ASTC_10x6_Format = 37817;
var RGBA_ASTC_10x8_Format = 37818;
var RGBA_ASTC_10x10_Format = 37819;
var RGBA_ASTC_12x10_Format = 37820;
var RGBA_ASTC_12x12_Format = 37821;
var LoopOnce = 2200;
var LoopRepeat = 2201;
var LoopPingPong = 2202;
var InterpolateDiscrete = 2300;
var InterpolateLinear = 2301;
var InterpolateSmooth = 2302;
var ZeroCurvatureEnding = 2400;
var ZeroSlopeEnding = 2401;
var WrapAroundEnding = 2402;
var TrianglesDrawMode = 0;
var TriangleStripDrawMode = 1;
var TriangleFanDrawMode = 2;
var LinearEncoding = 3000;
var sRGBEncoding = 3001;
var GammaEncoding = 3007;
var RGBEEncoding = 3002;
var LogLuvEncoding = 3003;
var RGBM7Encoding = 3004;
var RGBM16Encoding = 3005;
var RGBDEncoding = 3006;
var BasicDepthPacking = 3200;
var RGBADepthPacking = 3201;
/**
* @author alteredq / http://alteredqualia.com/
* @author mrdoob / http://mrdoob.com/
*/
var _Math = {
DEG2RAD: Math.PI / 180,
RAD2DEG: 180 / Math.PI,
generateUUID: ( function () {
// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
var lut = [];
for ( var i = 0; i < 256; i ++ ) {
lut[ i ] = ( i < 16 ? '0' : '' ) + ( i ).toString( 16 ).toUpperCase();
}
return function generateUUID() {
var d0 = Math.random() * 0xffffffff | 0;
var d1 = Math.random() * 0xffffffff | 0;
var d2 = Math.random() * 0xffffffff | 0;
var d3 = Math.random() * 0xffffffff | 0;
return lut[ d0 & 0xff ] + lut[ d0 >> 8 & 0xff ] + lut[ d0 >> 16 & 0xff ] + lut[ d0 >> 24 & 0xff ] + '-' +
lut[ d1 & 0xff ] + lut[ d1 >> 8 & 0xff ] + '-' + lut[ d1 >> 16 & 0x0f | 0x40 ] + lut[ d1 >> 24 & 0xff ] + '-' +
lut[ d2 & 0x3f | 0x80 ] + lut[ d2 >> 8 & 0xff ] + '-' + lut[ d2 >> 16 & 0xff ] + lut[ d2 >> 24 & 0xff ] +
lut[ d3 & 0xff ] + lut[ d3 >> 8 & 0xff ] + lut[ d3 >> 16 & 0xff ] + lut[ d3 >> 24 & 0xff ];
};
} )(),
clamp: function ( value, min, max ) {
return Math.max( min, Math.min( max, value ) );
},
// compute euclidian modulo of m % n
// https://en.wikipedia.org/wiki/Modulo_operation
euclideanModulo: function ( n, m ) {
return ( ( n % m ) + m ) % m;
},
// Linear mapping from range <a1, a2> to range <b1, b2>
mapLinear: function ( x, a1, a2, b1, b2 ) {
return b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );
},
// https://en.wikipedia.org/wiki/Linear_interpolation
lerp: function ( x, y, t ) {
return ( 1 - t ) * x + t * y;
},
// http://en.wikipedia.org/wiki/Smoothstep
smoothstep: function ( x, min, max ) {
if ( x <= min ) return 0;
if ( x >= max ) return 1;
x = ( x - min ) / ( max - min );
return x * x * ( 3 - 2 * x );
},
smootherstep: function ( x, min, max ) {
if ( x <= min ) return 0;
if ( x >= max ) return 1;
x = ( x - min ) / ( max - min );
return x * x * x * ( x * ( x * 6 - 15 ) + 10 );
},
// Random integer from <low, high> interval
randInt: function ( low, high ) {
return low + Math.floor( Math.random() * ( high - low + 1 ) );
},
// Random float from <low, high> interval
randFloat: function ( low, high ) {
return low + Math.random() * ( high - low );
},
// Random float from <-range/2, range/2> interval
randFloatSpread: function ( range ) {
return range * ( 0.5 - Math.random() );
},
degToRad: function ( degrees ) {
return degrees * _Math.DEG2RAD;
},
radToDeg: function ( radians ) {
return radians * _Math.RAD2DEG;
},
isPowerOfTwo: function ( value ) {
return ( value & ( value - 1 ) ) === 0 && value !== 0;
},
ceilPowerOfTwo: function ( value ) {
return Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );
},
floorPowerOfTwo: function ( value ) {
return Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );
}
};
/**
* @author mrdoob / http://mrdoob.com/
* @author philogb / http://blog.thejit.org/
* @author egraether / http://egraether.com/
* @author zz85 / http://www.lab4games.net/zz85/blog
*/
function Vector2( x, y ) {
this.x = x || 0;
this.y = y || 0;
}
Object.defineProperties( Vector2.prototype, {
"width": {
get: function () {
return this.x;
},
set: function ( value ) {
this.x = value;
}
},
"height": {
get: function () {
return this.y;
},
set: function ( value ) {
this.y = value;
}
}
} );
Object.assign( Vector2.prototype, {
isVector2: true,
set: function ( x, y ) {
this.x = x;
this.y = y;
return this;
},
setScalar: function ( scalar ) {
this.x = scalar;
this.y = scalar;
return this;
},
setX: function ( x ) {
this.x = x;
return this;
},
setY: function ( y ) {
this.y = y;
return this;
},
setComponent: function ( index, value ) {
switch ( index ) {
case 0: this.x = value; break;
case 1: this.y = value; break;
default: throw new Error( 'index is out of range: ' + index );
}
return this;
},
getComponent: function ( index ) {
switch ( index ) {
case 0: return this.x;
case 1: return this.y;
default: throw new Error( 'index is out of range: ' + index );
}
},
clone: function () {
return new this.constructor( this.x, this.y );
},
copy: function ( v ) {
this.x = v.x;
this.y = v.y;
return this;
},
add: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );
return this.addVectors( v, w );
}
this.x += v.x;
this.y += v.y;
return this;
},
addScalar: function ( s ) {
this.x += s;
this.y += s;
return this;
},
addVectors: function ( a, b ) {
this.x = a.x + b.x;
this.y = a.y + b.y;
return this;
},
addScaledVector: function ( v, s ) {
this.x += v.x * s;
this.y += v.y * s;
return this;
},
sub: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );
return this.subVectors( v, w );
}
this.x -= v.x;
this.y -= v.y;
return this;
},
subScalar: function ( s ) {
this.x -= s;
this.y -= s;
return this;
},
subVectors: function ( a, b ) {
this.x = a.x - b.x;
this.y = a.y - b.y;
return this;
},
multiply: function ( v ) {
this.x *= v.x;
this.y *= v.y;
return this;
},
multiplyScalar: function ( scalar ) {
this.x *= scalar;
this.y *= scalar;
return this;
},
divide: function ( v ) {
this.x /= v.x;
this.y /= v.y;
return this;
},
divideScalar: function ( scalar ) {
return this.multiplyScalar( 1 / scalar );
},
applyMatrix3: function ( m ) {
var x = this.x, y = this.y;
var e = m.elements;
this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];
this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];
return this;
},
min: function ( v ) {
this.x = Math.min( this.x, v.x );
this.y = Math.min( this.y, v.y );
return this;
},
max: function ( v ) {
this.x = Math.max( this.x, v.x );
this.y = Math.max( this.y, v.y );
return this;
},
clamp: function ( min, max ) {
// assumes min < max, componentwise
this.x = Math.max( min.x, Math.min( max.x, this.x ) );
this.y = Math.max( min.y, Math.min( max.y, this.y ) );
return this;
},
clampScalar: function () {
var min = new Vector2();
var max = new Vector2();
return function clampScalar( minVal, maxVal ) {
min.set( minVal, minVal );
max.set( maxVal, maxVal );
return this.clamp( min, max );
};
}(),
clampLength: function ( min, max ) {
var length = this.length();
return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );
},
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 = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );
this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );
return this;
},
negate: function () {
this.x = - this.x;
this.y = - this.y;
return this;
},
dot: function ( v ) {
return this.x * v.x + this.y * v.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 () {
// computes the angle in radians with respect to the positive x-axis
var angle = Math.atan2( this.y, this.x );
if ( angle < 0 ) angle += 2 * Math.PI;
return angle;
},
distanceTo: function ( v ) {
return Math.sqrt( this.distanceToSquared( v ) );
},
distanceToSquared: function ( v ) {
var dx = this.x - v.x, dy = this.y - v.y;
return dx * dx + dy * dy;
},
manhattanDistanceTo: function ( v ) {
return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );
},
setLength: function ( length ) {
return this.normalize().multiplyScalar( length );
},
lerp: function ( v, alpha ) {
this.x += ( v.x - this.x ) * alpha;
this.y += ( v.y - this.y ) * alpha;
return this;
},
lerpVectors: function ( v1, v2, alpha ) {
return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 );
},
equals: function ( v ) {
return ( ( v.x === this.x ) && ( v.y === this.y ) );
},
fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
this.x = array[ offset ];
this.y = array[ offset + 1 ];
return this;
},
toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
array[ offset ] = this.x;
array[ offset + 1 ] = this.y;
return array;
},
fromBufferAttribute: function ( attribute, index, offset ) {
if ( offset !== undefined ) {
console.warn( 'THREE.Vector2: offset has been removed from .fromBufferAttribute().' );
}
this.x = attribute.getX( index );
this.y = attribute.getY( index );
return this;
},
rotateAround: function ( center, angle ) {
var c = Math.cos( angle ), s = Math.sin( angle );
var x = this.x - center.x;
var y = this.y - center.y;
this.x = x * c - y * s + center.x;
this.y = x * s + y * c + center.y;
return this;
}
} );
/**
* @author mrdoob / http://mrdoob.com/
* @author supereggbert / http://www.paulbrunt.co.uk/
* @author philogb / http://blog.thejit.org/
* @author jordi_ros / http://plattsoft.com
* @author D1plo1d / http://github.com/D1plo1d
* @author alteredq / http://alteredqualia.com/
* @author mikael emtinger / http://gomo.se/
* @author timknip / http://www.floorplanner.com/
* @author bhouston / http://clara.io
* @author WestLangley / http://github.com/WestLangley
*/
function Matrix4() {
this.elements = [
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
];
if ( arguments.length > 0 ) {
console.error( 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' );
}
}
Object.assign( Matrix4.prototype, {
isMatrix4: true,
set: function ( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {
var te = this.elements;
te[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;
te[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;
te[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;
te[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;
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 Matrix4().fromArray( this.elements );
},
copy: function ( m ) {
var te = this.elements;
var me = m.elements;
te[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];
te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];
te[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];
te[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];
return this;
},
copyPosition: function ( m ) {
var te = this.elements, me = m.elements;
te[ 12 ] = me[ 12 ];
te[ 13 ] = me[ 13 ];
te[ 14 ] = me[ 14 ];
return this;
},
extractBasis: function ( xAxis, yAxis, zAxis ) {
xAxis.setFromMatrixColumn( this, 0 );
yAxis.setFromMatrixColumn( this, 1 );
zAxis.setFromMatrixColumn( this, 2 );
return this;
},
makeBasis: function ( xAxis, yAxis, zAxis ) {
this.set(
xAxis.x, yAxis.x, zAxis.x, 0,
xAxis.y, yAxis.y, zAxis.y, 0,
xAxis.z, yAxis.z, zAxis.z, 0,
0, 0, 0, 1
);
return this;
},
extractRotation: function () {
var v1 = new Vector3();
return function extractRotation( m ) {
var te = this.elements;
var me = m.elements;
var scaleX = 1 / v1.setFromMatrixColumn( m, 0 ).length();
var scaleY = 1 / v1.setFromMatrixColumn( m, 1 ).length();
var scaleZ = 1 / v1.setFromMatrixColumn( m, 2 ).length();
te[ 0 ] = me[ 0 ] * scaleX;
te[ 1 ] = me[ 1 ] * scaleX;
te[ 2 ] = me[ 2 ] * scaleX;
te[ 4 ] = me[ 4 ] * scaleY;
te[ 5 ] = me[ 5 ] * scaleY;
te[ 6 ] = me[ 6 ] * scaleY;
te[ 8 ] = me[ 8 ] * scaleZ;
te[ 9 ] = me[ 9 ] * scaleZ;
te[ 10 ] = me[ 10 ] * scaleZ;
return this;
};
}(),
makeRotationFromEuler: function ( euler ) {
if ( ! ( euler && euler.isEuler ) ) {
console.error( 'THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' );
}
var te = this.elements;
var x = euler.x, y = euler.y, z = euler.z;
var a = Math.cos( x ), b = Math.sin( x );
var c = Math.cos( y ), d = Math.sin( y );
var e = Math.cos( z ), f = Math.sin( z );
if ( euler.order === 'XYZ' ) {
var ae = a * e, af = a * f, be = b * e, bf = b * f;
te[ 0 ] = c * e;
te[ 4 ] = - c * f;
te[ 8 ] = d;
te[ 1 ] = af + be * d;
te[ 5 ] = ae - bf * d;
te[ 9 ] = - b * c;
te[ 2 ] = bf - ae * d;
te[ 6 ] = be + af * d;
te[ 10 ] = a * c;
} else if ( euler.order === 'YXZ' ) {
var ce = c * e, cf = c * f, de = d * e, df = d * f;
te[ 0 ] = ce + df * b;
te[ 4 ] = de * b - cf;
te[ 8 ] = a * d;
te[ 1 ] = a * f;
te[ 5 ] = a * e;
te[ 9 ] = - b;
te[ 2 ] = cf * b - de;
te[ 6 ] = df + ce * b;
te[ 10 ] = a * c;
} else if ( euler.order === 'ZXY' ) {
var ce = c * e, cf = c * f, de = d * e, df = d * f;
te[ 0 ] = ce - df * b;
te[ 4 ] = - a * f;
te[ 8 ] = de + cf * b;
te[ 1 ] = cf + de * b;
te[ 5 ] = a * e;
te[ 9 ] = df - ce * b;
te[ 2 ] = - a * d;
te[ 6 ] = b;
te[ 10 ] = a * c;
} else if ( euler.order === 'ZYX' ) {
var ae = a * e, af = a * f, be = b * e, bf = b * f;
te[ 0 ] = c * e;
te[ 4 ] = be * d - af;
te[ 8 ] = ae * d + bf;
te[ 1 ] = c * f;
te[ 5 ] = bf * d + ae;
te[ 9 ] = af * d - be;
te[ 2 ] = - d;
te[ 6 ] = b * c;
te[ 10 ] = a * c;
} else if ( euler.order === 'YZX' ) {
var ac = a * c, ad = a * d, bc = b * c, bd = b * d;
te[ 0 ] = c * e;
te[ 4 ] = bd - ac * f;
te[ 8 ] = bc * f + ad;
te[ 1 ] = f;
te[ 5 ] = a * e;
te[ 9 ] = - b * e;
te[ 2 ] = - d * e;
te[ 6 ] = ad * f + bc;
te[ 10 ] = ac - bd * f;
} else if ( euler.order === 'XZY' ) {
var ac = a * c, ad = a * d, bc = b * c, bd = b * d;
te[ 0 ] = c * e;
te[ 4 ] = - f;
te[ 8 ] = d * e;
te[ 1 ] = ac * f + bd;
te[ 5 ] = a * e;
te[ 9 ] = ad * f - bc;
te[ 2 ] = bc * f - ad;
te[ 6 ] = b * e;
te[ 10 ] = bd * f + ac;
}
// last column
te[ 3 ] = 0;
te[ 7 ] = 0;
te[ 11 ] = 0;
// bottom row
te[ 12 ] = 0;
te[ 13 ] = 0;
te[ 14 ] = 0;
te[ 15 ] = 1;
return this;
},
makeRotationFromQuaternion: function ( q ) {
var te = this.elements;
var x = q._x, y = q._y, z = q._z, w = q._w;
var x2 = x + x, y2 = y + y, z2 = z + z;
var xx = x * x2, xy = x * y2, xz = x * z2;
var yy = y * y2, yz = y * z2, zz = z * z2;
var wx = w * x2, wy = w * y2, wz = w * z2;
te[ 0 ] = 1 - ( yy + zz );
te[ 4 ] = xy - wz;
te[ 8 ] = xz + wy;
te[ 1 ] = xy + wz;
te[ 5 ] = 1 - ( xx + zz );
te[ 9 ] = yz - wx;
te[ 2 ] = xz - wy;
te[ 6 ] = yz + wx;
te[ 10 ] = 1 - ( xx + yy );
// last column
te[ 3 ] = 0;
te[ 7 ] = 0;
te[ 11 ] = 0;
// bottom row
te[ 12 ] = 0;
te[ 13 ] = 0;
te[ 14 ] = 0;
te[ 15 ] = 1;
return this;
},
lookAt: function () {
var x = new Vector3();
var y = new Vector3();
var z = new Vector3();
return function lookAt( eye, target, up ) {
var te = this.elements;
z.subVectors( eye, target );
if ( z.lengthSq() === 0 ) {
// eye and target are in the same position
z.z = 1;
}
z.normalize();
x.crossVectors( up, z );
if ( x.lengthSq() === 0 ) {
// up and z are parallel
if ( Math.abs( up.z ) === 1 ) {
z.x += 0.0001;
} else {
z.z += 0.0001;
}
z.normalize();
x.crossVectors( up, z );
}
x.normalize();
y.crossVectors( z, x );
te[ 0 ] = x.x; te[ 4 ] = y.x; te[ 8 ] = z.x;
te[ 1 ] = x.y; te[ 5 ] = y.y; te[ 9 ] = z.y;
te[ 2 ] = x.z; te[ 6 ] = y.z; te[ 10 ] = z.z;
return this;
};
}(),
multiply: function ( m, n ) {
if ( n !== undefined ) {
console.warn( 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' );
return this.multiplyMatrices( m, n );
}
return this.multiplyMatrices( this, m );
},
premultiply: function ( m ) {
return this.multiplyMatrices( m, this );
},
multiplyMatrices: function ( a, b ) {
var ae = a.elements;
var be = b.elements;
var te = this.elements;
var a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];
var a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];
var a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];
var a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];
var b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];
var b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];
var b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];
var b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];
te[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;
te[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;
te[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;
te[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;
te[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;
te[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;
te[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;
te[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;
te[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;
te[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;
te[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;
te[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;
te[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;
te[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;
te[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;
te[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;
return this;
},
multiplyScalar: function ( s ) {
var te = this.elements;
te[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;
te[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;
te[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;
te[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;
return this;
},
applyToBufferAttribute: function () {
var v1 = new Vector3();
return function applyToBufferAttribute( attribute ) {
for ( var i = 0, l = attribute.count; i < l; i ++ ) {
v1.x = attribute.getX( i );
v1.y = attribute.getY( i );
v1.z = attribute.getZ( i );
v1.applyMatrix4( this );
attribute.setXYZ( i, v1.x, v1.y, v1.z );
}
return attribute;
};
}(),
determinant: function () {
var te = this.elements;
var n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];
var n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];
var n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];
var n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];
//TODO: make this more efficient
//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )
return (
n41 * (
+ n14 * n23 * n32
- n13 * n24 * n32
- n14 * n22 * n33
+ n12 * n24 * n33
+ n13 * n22 * n34
- n12 * n23 * n34
) +
n42 * (
+ n11 * n23 * n34
- n11 * n24 * n33
+ n14 * n21 * n33
- n13 * n21 * n34
+ n13 * n24 * n31
- n14 * n23 * n31
) +
n43 * (
+ n11 * n24 * n32
- n11 * n22 * n34
- n14 * n21 * n32
+ n12 * n21 * n34
+ n14 * n22 * n31
- n12 * n24 * n31
) +
n44 * (
- n13 * n22 * n31
- n11 * n23 * n32
+ n11 * n22 * n33
+ n13 * n21 * n32
- n12 * n21 * n33
+ n12 * n23 * n31
)
);
},
transpose: function () {
var te = this.elements;
var tmp;
tmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;
tmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;
tmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;
tmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;
tmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;
tmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;
return this;
},
setPosition: function ( v ) {
var te = this.elements;
te[ 12 ] = v.x;
te[ 13 ] = v.y;
te[ 14 ] = v.z;
return this;
},
getInverse: function ( m, throwOnDegenerate ) {
// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm
var te = this.elements,
me = m.elements,
n11 = me[ 0 ], n21 = me[ 1 ], n31 = me[ 2 ], n41 = me[ 3 ],
n12 = me[ 4 ], n22 = me[ 5 ], n32 = me[ 6 ], n42 = me[ 7 ],
n13 = me[ 8 ], n23 = me[ 9 ], n33 = me[ 10 ], n43 = me[ 11 ],
n14 = me[ 12 ], n24 = me[ 13 ], n34 = me[ 14 ], n44 = me[ 15 ],
t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,
t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,
t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,
t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;
var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;
if ( det === 0 ) {
var msg = "THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0";
if ( throwOnDegenerate === true ) {
throw new Error( msg );
} else {
console.warn( msg );
}
return this.identity();
}
var detInv = 1 / det;
te[ 0 ] = t11 * detInv;
te[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;
te[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;
te[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;
te[ 4 ] = t12 * detInv;
te[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;
te[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;
te[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;
te[ 8 ] = t13 * detInv;
te[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;
te[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;
te[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;
te[ 12 ] = t14 * detInv;
te[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;
te[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;
te[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;
return this;
},
scale: function ( v ) {
var te = this.elements;
var x = v.x, y = v.y, z = v.z;
te[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;
te[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;
te[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;
te[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;
return this;
},
getMaxScaleOnAxis: function () {
var te = this.elements;
var scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];
var scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];
var scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];
return Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );
},
makeTranslation: function ( x, y, z ) {
this.set(
1, 0, 0, x,
0, 1, 0, y,
0, 0, 1, z,
0, 0, 0, 1
);
return this;
},
makeRotationX: function ( theta ) {
var c = Math.cos( theta ), s = Math.sin( theta );
this.set(
1, 0, 0, 0,
0, c, - s, 0,
0, s, c, 0,
0, 0, 0, 1
);
return this;
},
makeRotationY: function ( theta ) {
var c = Math.cos( theta ), s = Math.sin( theta );
this.set(
c, 0, s, 0,
0, 1, 0, 0,
- s, 0, c, 0,
0, 0, 0, 1
);
return this;
},
makeRotationZ: function ( theta ) {
var c = Math.cos( theta ), s = Math.sin( theta );
this.set(
c, - s, 0, 0,
s, c, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
);
return this;
},
makeRotationAxis: function ( axis, angle ) {
// Based on http://www.gamedev.net/reference/articles/article1199.asp
var c = Math.cos( angle );
var s = Math.sin( angle );
var t = 1 - c;
var x = axis.x, y = axis.y, z = axis.z;
var tx = t * x, ty = t * y;
this.set(
tx * x + c, tx * y - s * z, tx * z + s * y, 0,
tx * y + s * z, ty * y + c, ty * z - s * x, 0,
tx * z - s * y, ty * z + s * x, t * z * z + c, 0,
0, 0, 0, 1
);
return this;
},
makeScale: function ( x, y, z ) {
this.set(
x, 0, 0, 0,
0, y, 0, 0,
0, 0, z, 0,
0, 0, 0, 1
);
return this;
},
makeShear: function ( x, y, z ) {
this.set(
1, y, z, 0,
x, 1, z, 0,
x, y, 1, 0,
0, 0, 0, 1
);
return this;
},
compose: function ( position, quaternion, scale ) {
this.makeRotationFromQuaternion( quaternion );
this.scale( scale );
this.setPosition( position );
return this;
},
decompose: function () {
var vector = new Vector3();
var matrix = new Matrix4();
return function decompose( position, quaternion, scale ) {
var te = this.elements;
var sx = vector.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();
var sy = vector.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();
var sz = vector.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();
// if determine is negative, we need to invert one scale
var det = this.determinant();
if ( det < 0 ) sx = - sx;
position.x = te[ 12 ];
position.y = te[ 13 ];
position.z = te[ 14 ];
// scale the rotation part
matrix.copy( this );
var invSX = 1 / sx;
var invSY = 1 / sy;
var invSZ = 1 / sz;
matrix.elements[ 0 ] *= invSX;
matrix.elements[ 1 ] *= invSX;
matrix.elements[ 2 ] *= invSX;
matrix.elements[ 4 ] *= invSY;
matrix.elements[ 5 ] *= invSY;
matrix.elements[ 6 ] *= invSY;
matrix.elements[ 8 ] *= invSZ;
matrix.elements[ 9 ] *= invSZ;
matrix.elements[ 10 ] *= invSZ;
quaternion.setFromRotationMatrix( matrix );
scale.x = sx;
scale.y = sy;
scale.z = sz;
return this;
};
}(),
makePerspective: function ( left, right, top, bottom, near, far ) {
if ( far === undefined ) {
console.warn( 'THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.' );
}
var te = this.elements;
var x = 2 * near / ( right - left );
var y = 2 * near / ( top - bottom );
var a = ( right + left ) / ( right - left );
var b = ( top + bottom ) / ( top - bottom );
var c = - ( far + near ) / ( far - near );
var d = - 2 * far * near / ( far - near );
te[ 0 ] = x; te[ 4 ] = 0; te[ 8 ] = a; te[ 12 ] = 0;
te[ 1 ] = 0; te[ 5 ] = y; te[ 9 ] = b; te[ 13 ] = 0;
te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = c; te[ 14 ] = d;
te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = - 1; te[ 15 ] = 0;
return this;
},
makeOrthographic: function ( left, right, top, bottom, near, far ) {
var te = this.elements;
var w = 1.0 / ( right - left );
var h = 1.0 / ( top - bottom );
var p = 1.0 / ( far - near );
var x = ( right + left ) * w;
var y = ( top + bottom ) * h;
var z = ( far + near ) * p;
te[ 0 ] = 2 * w; te[ 4 ] = 0; te[ 8 ] = 0; te[ 12 ] = - x;
te[ 1 ] = 0; te[ 5 ] = 2 * h; te[ 9 ] = 0; te[ 13 ] = - y;
te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = - 2 * p; te[ 14 ] = - z;
te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = 0; te[ 15 ] = 1;
return this;
},
equals: function ( matrix ) {
var te = this.elements;
var me = matrix.elements;
for ( var i = 0; i < 16; i ++ ) {
if ( te[ i ] !== me[ i ] ) return false;
}
return true;
},
fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
for ( var i = 0; i < 16; i ++ ) {
this.elements[ i ] = array[ i + offset ];
}
return this;
},
toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
var te = this.elements;
array[ offset ] = te[ 0 ];
array[ offset + 1 ] = te[ 1 ];
array[ offset + 2 ] = te[ 2 ];
array[ offset + 3 ] = te[ 3 ];
array[ offset + 4 ] = te[ 4 ];
array[ offset + 5 ] = te[ 5 ];
array[ offset + 6 ] = te[ 6 ];
array[ offset + 7 ] = te[ 7 ];
array[ offset + 8 ] = te[ 8 ];
array[ offset + 9 ] = te[ 9 ];
array[ offset + 10 ] = te[ 10 ];
array[ offset + 11 ] = te[ 11 ];
array[ offset + 12 ] = te[ 12 ];
array[ offset + 13 ] = te[ 13 ];
array[ offset + 14 ] = te[ 14 ];
array[ offset + 15 ] = te[ 15 ];
return array;
}
} );
/**
* @author mikael emtinger / http://gomo.se/
* @author alteredq / http://alteredqualia.com/
* @author WestLangley / http://github.com/WestLangley
* @author bhouston / http://clara.io
*/
function Quaternion( x, y, z, w ) {
this._x = x || 0;
this._y = y || 0;
this._z = z || 0;
this._w = ( w !== undefined ) ? w : 1;
}
Object.assign( Quaternion, {
slerp: function ( qa, qb, qm, t ) {
return qm.copy( qa ).slerp( qb, t );
},
slerpFlat: function ( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {
// fuzz-free, array-based Quaternion SLERP operation
var x0 = src0[ srcOffset0 + 0 ],
y0 = src0[ srcOffset0 + 1 ],
z0 = src0[ srcOffset0 + 2 ],
w0 = src0[ srcOffset0 + 3 ],
x1 = src1[ srcOffset1 + 0 ],
y1 = src1[ srcOffset1 + 1 ],
z1 = src1[ srcOffset1 + 2 ],
w1 = src1[ srcOffset1 + 3 ];
if ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {
var s = 1 - t,
cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,
dir = ( cos >= 0 ? 1 : - 1 ),
sqrSin = 1 - cos * cos;
// Skip the Slerp for tiny steps to avoid numeric problems:
if ( sqrSin > Number.EPSILON ) {
var sin = Math.sqrt( sqrSin ),
len = Math.atan2( sin, cos * dir );
s = Math.sin( s * len ) / sin;
t = Math.sin( t * len ) / sin;
}
var tDir = t * dir;
x0 = x0 * s + x1 * tDir;
y0 = y0 * s + y1 * tDir;
z0 = z0 * s + z1 * tDir;
w0 = w0 * s + w1 * tDir;
// Normalize in case we just did a lerp:
if ( s === 1 - t ) {
var f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );
x0 *= f;
y0 *= f;
z0 *= f;
w0 *= f;
}
}
dst[ dstOffset ] = x0;
dst[ dstOffset + 1 ] = y0;
dst[ dstOffset + 2 ] = z0;
dst[ dstOffset + 3 ] = w0;
}
} );
Object.defineProperties( Quaternion.prototype, {
x: {
get: function () {
return this._x;
},
set: function ( value ) {
this._x = value;
this.onChangeCallback();
}
},
y: {
get: function () {
return this._y;
},
set: function ( value ) {
this._y = value;
this.onChangeCallback();
}
},
z: {
get: function () {
return this._z;
},
set: function ( value ) {
this._z = value;
this.onChangeCallback();
}
},
w: {
get: function () {
return this._w;
},
set: function ( value ) {
this._w = value;
this.onChangeCallback();
}
}
} );
Object.assign( Quaternion.prototype, {
set: function ( x, y, z, w ) {
this._x = x;
this._y = y;
this._z = z;
this._w = w;
this.onChangeCallback();
return this;
},
clone: function () {
return new this.constructor( this._x, this._y, this._z, this._w );
},
copy: function ( quaternion ) {
this._x = quaternion.x;
this._y = quaternion.y;
this._z = quaternion.z;
this._w = quaternion.w;
this.onChangeCallback();
return this;
},
setFromEuler: function ( euler, update ) {
if ( ! ( euler && euler.isEuler ) ) {
throw new Error( 'THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.' );
}
var x = euler._x, y = euler._y, z = euler._z, order = euler.order;
// http://www.mathworks.com/matlabcentral/fileexchange/
// 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/
// content/SpinCalc.m
var cos = Math.cos;
var sin = Math.sin;
var c1 = cos( x / 2 );
var c2 = cos( y / 2 );
var c3 = cos( z / 2 );
var s1 = sin( x / 2 );
var s2 = sin( y / 2 );
var s3 = sin( z / 2 );
if ( order === 'XYZ' ) {
this._x = s1 * c2 * c3 + c1 * s2 * s3;
this._y = c1 * s2 * c3 - s1 * c2 * s3;
this._z = c1 * c2 * s3 + s1 * s2 * c3;
this._w = c1 * c2 * c3 - s1 * s2 * s3;
} else if ( order === 'YXZ' ) {
this._x = s1 * c2 * c3 + c1 * s2 * s3;
this._y = c1 * s2 * c3 - s1 * c2 * s3;
this._z = c1 * c2 * s3 - s1 * s2 * c3;
this._w = c1 * c2 * c3 + s1 * s2 * s3;
} else if ( order === 'ZXY' ) {
this._x = s1 * c2 * c3 - c1 * s2 * s3;
this._y = c1 * s2 * c3 + s1 * c2 * s3;
this._z = c1 * c2 * s3 + s1 * s2 * c3;
this._w = c1 * c2 * c3 - s1 * s2 * s3;
} else if ( order === 'ZYX' ) {
this._x = s1 * c2 * c3 - c1 * s2 * s3;
this._y = c1 * s2 * c3 + s1 * c2 * s3;
this._z = c1 * c2 * s3 - s1 * s2 * c3;
this._w = c1 * c2 * c3 + s1 * s2 * s3;
} else if ( order === 'YZX' ) {
this._x = s1 * c2 * c3 + c1 * s2 * s3;
this._y = c1 * s2 * c3 + s1 * c2 * s3;
this._z = c1 * c2 * s3 - s1 * s2 * c3;
this._w = c1 * c2 * c3 - s1 * s2 * s3;
} else if ( order === 'XZY' ) {
this._x = s1 * c2 * c3 - c1 * s2 * s3;
this._y = c1 * s2 * c3 - s1 * c2 * s3;
this._z = c1 * c2 * s3 + s1 * s2 * c3;
this._w = c1 * c2 * c3 + s1 * s2 * s3;
}
if ( update !== false ) this.onChangeCallback();
return this;
},
setFromAxisAngle: function ( axis, angle ) {
// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm
// assumes axis is normalized
var halfAngle = angle / 2, s = Math.sin( halfAngle );
this._x = axis.x * s;
this._y = axis.y * s;
this._z = axis.z * s;
this._w = Math.cos( halfAngle );
this.onChangeCallback();
return this;
},
setFromRotationMatrix: function ( m ) {
// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm
// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)
var te = m.elements,
m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],
m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],
m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],
trace = m11 + m22 + m33,
s;
if ( trace > 0 ) {
s = 0.5 / Math.sqrt( trace + 1.0 );
this._w = 0.25 / s;
this._x = ( m32 - m23 ) * s;
this._y = ( m13 - m31 ) * s;
this._z = ( m21 - m12 ) * s;
} else if ( m11 > m22 && m11 > m33 ) {
s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );
this._w = ( m32 - m23 ) / s;
this._x = 0.25 * s;
this._y = ( m12 + m21 ) / s;
this._z = ( m13 + m31 ) / s;
} else if ( m22 > m33 ) {
s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );
this._w = ( m13 - m31 ) / s;
this._x = ( m12 + m21 ) / s;
this._y = 0.25 * s;
this._z = ( m23 + m32 ) / s;
} else {
s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );
this._w = ( m21 - m12 ) / s;
this._x = ( m13 + m31 ) / s;
this._y = ( m23 + m32 ) / s;
this._z = 0.25 * s;
}
this.onChangeCallback();
return this;
},
setFromUnitVectors: function () {
// assumes direction vectors vFrom and vTo are normalized
var v1 = new Vector3();
var r;
var EPS = 0.000001;
return function setFromUnitVectors( vFrom, vTo ) {
if ( v1 === undefined ) v1 = new Vector3();
r = vFrom.dot( vTo ) + 1;
if ( r < EPS ) {
r = 0;
if ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {
v1.set( - vFrom.y, vFrom.x, 0 );
} else {
v1.set( 0, - vFrom.z, vFrom.y );
}
} else {
v1.crossVectors( vFrom, vTo );
}
this._x = v1.x;
this._y = v1.y;
this._z = v1.z;
this._w = r;
return this.normalize();
};
}(),
inverse: function () {
// quaternion is assumed to have unit length
return this.conjugate();
},
conjugate: function () {
this._x *= - 1;
this._y *= - 1;
this._z *= - 1;
this.onChangeCallback();
return this;
},
dot: function ( v ) {
return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._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 l = this.length();
if ( l === 0 ) {
this._x = 0;
this._y = 0;
this._z = 0;
this._w = 1;
} else {
l = 1 / l;
this._x = this._x * l;
this._y = this._y * l;
this._z = this._z * l;
this._w = this._w * l;
}
this.onChangeCallback();
return this;
},
multiply: function ( q, p ) {
if ( p !== undefined ) {
console.warn( 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' );
return this.multiplyQuaternions( q, p );
}
return this.multiplyQuaternions( this, q );
},
premultiply: function ( q ) {
return this.multiplyQuaternions( q, this );
},
multiplyQuaternions: function ( a, b ) {
// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm
var qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;
var qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;
this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;
this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;
this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;
this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;
this.onChangeCallback();
return this;
},
slerp: function ( qb, t ) {
if ( t === 0 ) return this;
if ( t === 1 ) return this.copy( qb );
var x = this._x, y = this._y, z = this._z, w = this._w;
// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/
var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;
if ( cosHalfTheta < 0 ) {
this._w = - qb._w;
this._x = - qb._x;
this._y = - qb._y;
this._z = - qb._z;
cosHalfTheta = - cosHalfTheta;
} else {
this.copy( qb );
}
if ( cosHalfTheta >= 1.0 ) {
this._w = w;
this._x = x;
this._y = y;
this._z = z;
return this;
}
var sinHalfTheta = Math.sqrt( 1.0 - cosHalfTheta * cosHalfTheta );
if ( Math.abs( sinHalfTheta ) < 0.001 ) {
this._w = 0.5 * ( w + this._w );
this._x = 0.5 * ( x + this._x );
this._y = 0.5 * ( y + this._y );
this._z = 0.5 * ( z + this._z );
return this;
}
var halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );
var ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,
ratioB = Math.sin( t * halfTheta ) / sinHalfTheta;
this._w = ( w * ratioA + this._w * ratioB );
this._x = ( x * ratioA + this._x * ratioB );
this._y = ( y * ratioA + this._y * ratioB );
this._z = ( z * ratioA + this._z * ratioB );
this.onChangeCallback();
return this;
},
equals: function ( quaternion ) {
return ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );
},
fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
this._x = array[ offset ];
this._y = array[ offset + 1 ];
this._z = array[ offset + 2 ];
this._w = array[ offset + 3 ];
this.onChangeCallback();
return this;
},
toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
array[ offset ] = this._x;
array[ offset + 1 ] = this._y;
array[ offset + 2 ] = this._z;
array[ offset + 3 ] = this._w;
return array;
},
onChange: function ( callback ) {
this.onChangeCallback = callback;
return this;
},
onChangeCallback: function () {}
} );
/**
* @author mrdoob / http://mrdoob.com/
* @author kile / http://kile.stravaganza.org/
* @author philogb / http://blog.thejit.org/
* @author mikael emtinger / http://gomo.se/
* @author egraether / http://egraether.com/
* @author WestLangley / http://github.com/WestLangley
*/
function Vector3( x, y, z ) {
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
}
Object.assign( Vector3.prototype, {
isVector3: true,
set: function ( x, y, z ) {
this.x = x;
this.y = y;
this.z = z;
return this;
},
setScalar: function ( scalar ) {
this.x = scalar;
this.y = scalar;
this.z = scalar;
return this;
},
setX: function ( x ) {
this.x = x;
return this;
},
setY: function ( y ) {
this.y = y;
return this;
},
setZ: function ( z ) {
this.z = z;
return this;
},
setComponent: function ( index, value ) {
switch ( index ) {
case 0: this.x = value; break;
case 1: this.y = value; break;
case 2: this.z = value; break;
default: throw new Error( 'index is out of range: ' + index );
}
return this;
},
getComponent: function ( index ) {
switch ( index ) {
case 0: return this.x;
case 1: return this.y;
case 2: return this.z;
default: throw new Error( 'index is out of range: ' + index );
}
},
clone: function () {
return new this.constructor( this.x, this.y, this.z );
},
copy: function ( v ) {
this.x = v.x;
this.y = v.y;
this.z = v.z;
return this;
},
add: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );
return this.addVectors( v, w );
}
this.x += v.x;
this.y += v.y;
this.z += v.z;
return this;
},
addScalar: function ( s ) {
this.x += s;
this.y += s;
this.z += s;
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 ( v, s ) {
this.x += v.x * s;
this.y += v.y * s;
this.z += v.z * s;
return this;
},
sub: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );
return this.subVectors( v, w );
}
this.x -= v.x;
this.y -= v.y;
this.z -= v.z;
return this;
},
subScalar: function ( s ) {
this.x -= s;
this.y -= s;
this.z -= s;
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 ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' );
return this.multiplyVectors( v, w );
}
this.x *= v.x;
this.y *= v.y;
this.z *= v.z;
return this;
},
multiplyScalar: function ( scalar ) {
this.x *= scalar;
this.y *= scalar;
this.z *= scalar;
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 quaternion = new Quaternion();
return function applyEuler( euler ) {
if ( ! ( euler && euler.isEuler ) ) {
console.error( 'THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.' );
}
return this.applyQuaternion( quaternion.setFromEuler( euler ) );
};
}(),
applyAxisAngle: function () {
var quaternion = new Quaternion();
return function applyAxisAngle( axis, angle ) {
return this.applyQuaternion( quaternion.setFromAxisAngle( axis, angle ) );
};
}(),
applyMatrix3: function ( m ) {
var x = this.x, y = this.y, z = this.z;
var e = m.elements;
this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;
this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;
this.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;
return this;
},
applyMatrix4: function ( m ) {
var x = this.x, y = this.y, z = this.z;
var e = m.elements;
var w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );
this.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;
this.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;
this.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;
return this;
},
applyQuaternion: function ( q ) {
var x = this.x, y = this.y, z = this.z;
var qx = q.x, qy = q.y, qz = q.z, qw = q.w;
// calculate quat * vector
var ix = qw * x + qy * z - qz * y;
var iy = qw * y + qz * x - qx * z;
var iz = qw * z + qx * y - qy * x;
var iw = - qx * x - qy * y - qz * z;
// calculate result * inverse quat
this.x = ix * qw + iw * - qx + iy * - qz - iz * - qy;
this.y = iy * qw + iw * - qy + iz * - qx - ix * - qz;
this.z = iz * qw + iw * - qz + ix * - qy - iy * - qx;
return this;
},
project: function () {
var matrix = new Matrix4();
return function project( camera ) {
matrix.multiplyMatrices( camera.projectionMatrix, matrix.getInverse( camera.matrixWorld ) );
return this.applyMatrix4( matrix );
};
}(),
unproject: function () {
var matrix = new Matrix4();
return function unproject( camera ) {
matrix.multiplyMatrices( camera.matrixWorld, matrix.getInverse( camera.projectionMatrix ) );
return this.applyMatrix4( matrix );
};
}(),
transformDirection: function ( m ) {
// input: THREE.Matrix4 affine matrix
// vector interpreted as a direction
var x = this.x, y = this.y, z = this.z;
var e = m.elements;
this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;
this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;
this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;
return this.normalize();
},
divide: function ( v ) {
this.x /= v.x;
this.y /= v.y;
this.z /= v.z;
return this;
},
divideScalar: function ( scalar ) {
return this.multiplyScalar( 1 / scalar );
},
min: function ( v ) {
this.x = Math.min( this.x, v.x );
this.y = Math.min( this.y, v.y );
this.z = Math.min( this.z, v.z );
return this;
},
max: function ( v ) {
this.x = Math.max( this.x, v.x );
this.y = Math.max( this.y, v.y );
this.z = Math.max( this.z, v.z );
return this;
},
clamp: function ( min, max ) {
// assumes min < max, componentwise
this.x = Math.max( min.x, Math.min( max.x, this.x ) );
this.y = Math.max( min.y, Math.min( max.y, this.y ) );
this.z = Math.max( min.z, Math.min( max.z, this.z ) );
return this;
},
clampScalar: function () {
var min = new Vector3();
var max = new Vector3();
return function clampScalar( minVal, maxVal ) {
min.set( minVal, minVal, minVal );
max.set( maxVal, maxVal, maxVal );
return this.clamp( min, max );
};
}(),
clampLength: function ( min, max ) {
var length = this.length();
return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );
},
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 = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );
this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );
this.z = ( this.z < 0 ) ? 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 ( v ) {
return this.x * v.x + this.y * v.y + this.z * v.z;
},
// TODO lengthSquared?
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 ( length ) {
return this.normalize().multiplyScalar( length );
},
lerp: function ( v, alpha ) {
this.x += ( v.x - this.x ) * alpha;
this.y += ( v.y - this.y ) * alpha;
this.z += ( v.z - this.z ) * alpha;
return this;
},
lerpVectors: function ( v1, v2, alpha ) {
return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 );
},
cross: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' );
return this.crossVectors( v, w );
}
return this.crossVectors( this, v );
},
crossVectors: function ( a, b ) {
var ax = a.x, ay = a.y, az = a.z;
var bx = b.x, by = b.y, bz = b.z;
this.x = ay * bz - az * by;
this.y = az * bx - ax * bz;
this.z = ax * by - ay * bx;
return this;
},
projectOnVector: function ( vector ) {
var scalar = vector.dot( this ) / vector.lengthSq();
return this.copy( vector ).multiplyScalar( scalar );
},
projectOnPlane: function () {
var v1 = new Vector3();
return function projectOnPlane( planeNormal ) {
v1.copy( this ).projectOnVector( planeNormal );
return this.sub( v1 );
};
}(),
reflect: function () {
// reflect incident vector off plane orthogonal to normal
// normal is assumed to have unit length
var v1 = new Vector3();
return function reflect( normal ) {
return this.sub( v1.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );
};
}(),
angleTo: function ( v ) {
var theta = this.dot( v ) / ( Math.sqrt( this.lengthSq() * v.lengthSq() ) );
// clamp, to handle numerical problems
return Math.acos( _Math.clamp( theta, - 1, 1 ) );
},
distanceTo: function ( v ) {
return Math.sqrt( this.distanceToSquared( v ) );
},
distanceToSquared: function ( v ) {
var dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;
return dx * dx + dy * dy + dz * dz;
},
manhattanDistanceTo: function ( v ) {
return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );
},
setFromSpherical: function ( s ) {
var sinPhiRadius = Math.sin( s.phi ) * s.radius;
this.x = sinPhiRadius * Math.sin( s.theta );
this.y = Math.cos( s.phi ) * s.radius;
this.z = sinPhiRadius * Math.cos( s.theta );
return this;
},
setFromCylindrical: function ( c ) {
this.x = c.radius * Math.sin( c.theta );
this.y = c.y;
this.z = c.radius * Math.cos( c.theta );
return this;
},
setFromMatrixPosition: function ( m ) {
var e = m.elements;
this.x = e[ 12 ];
this.y = e[ 13 ];
this.z = e[ 14 ];
return this;
},
setFromMatrixScale: function ( m ) {
var sx = this.setFromMatrixColumn( m, 0 ).length();
var sy = this.setFromMatrixColumn( m, 1 ).length();
var sz = this.setFromMatrixColumn( m, 2 ).length();
this.x = sx;
this.y = sy;
this.z = sz;
return this;
},
setFromMatrixColumn: function ( m, index ) {
return this.fromArray( m.elements, index * 4 );
},
equals: function ( v ) {
return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );
},
fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
this.x = array[ offset ];
this.y = array[ offset + 1 ];
this.z = array[ offset + 2 ];
return this;
},
toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
array[ offset ] = this.x;
array[ offset + 1 ] = this.y;
array[ offset + 2 ] = this.z;
return array;
},
fromBufferAttribute: function ( attribute, index, offset ) {
if ( offset !== undefined ) {
console.warn( 'THREE.Vector3: offset has been removed from .fromBufferAttribute().' );
}
this.x = attribute.getX( index );
this.y = attribute.getY( index );
this.z = attribute.getZ( index );
return this;
}
} );
/**
* @author alteredq / http://alteredqualia.com/
* @author WestLangley / http://github.com/WestLangley
* @author bhouston / http://clara.io
* @author tschw
*/
function Matrix3() {
this.elements = [
1, 0, 0,
0, 1, 0,
0, 0, 1
];
if ( arguments.length > 0 ) {
console.error( 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' );
}
}
Object.assign( Matrix3.prototype, {
isMatrix3: true,
set: function ( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {
var te = this.elements;
te[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;
te[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;
te[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;
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 ( m ) {
var te = this.elements;
var me = m.elements;
te[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];
te[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];
te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];
return this;
},
setFromMatrix4: function ( m ) {
var me = m.elements;
this.set(
me[ 0 ], me[ 4 ], me[ 8 ],
me[ 1 ], me[ 5 ], me[ 9 ],
me[ 2 ], me[ 6 ], me[ 10 ]
);
return this;
},
applyToBufferAttribute: function () {
var v1 = new Vector3();
return function applyToBufferAttribute( attribute ) {
for ( var i = 0, l = attribute.count; i < l; i ++ ) {
v1.x = attribute.getX( i );
v1.y = attribute.getY( i );
v1.z = attribute.getZ( i );
v1.applyMatrix3( this );
attribute.setXYZ( i, v1.x, v1.y, v1.z );
}
return attribute;
};
}(),
multiply: function ( m ) {
return this.multiplyMatrices( this, m );
},
premultiply: function ( m ) {
return this.multiplyMatrices( m, this );
},
multiplyMatrices: function ( a, b ) {
var ae = a.elements;
var be = b.elements;
var te = this.elements;
var a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];
var a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];
var a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];
var b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];
var b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];
var b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];
te[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;
te[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;
te[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;
te[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;
te[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;
te[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;
te[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;
te[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;
te[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;
return this;
},
multiplyScalar: function ( s ) {
var te = this.elements;
te[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;
te[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;
te[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;
return this;
},
determinant: function () {
var te = this.elements;
var a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],
d = te[ 3 ], e = te[ 4 ], f = te[ 5 ],
g = te[ 6 ], h = te[ 7 ], i = te[ 8 ];
return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;
},
getInverse: function ( matrix, throwOnDegenerate ) {
if ( matrix && matrix.isMatrix4 ) {
console.error( "THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument." );
}
var me = matrix.elements,
te = this.elements,
n11 = me[ 0 ], n21 = me[ 1 ], n31 = me[ 2 ],
n12 = me[ 3 ], n22 = me[ 4 ], n32 = me[ 5 ],
n13 = me[ 6 ], n23 = me[ 7 ], n33 = me[ 8 ],
t11 = n33 * n22 - n32 * n23,
t12 = n32 * n13 - n33 * n12,
t13 = n23 * n12 - n22 * n13,
det = n11 * t11 + n21 * t12 + n31 * t13;
if ( det === 0 ) {
var msg = "THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0";
if ( throwOnDegenerate === true ) {
throw new Error( msg );
} else {
console.warn( msg );
}
return this.identity();
}
var detInv = 1 / det;
te[ 0 ] = t11 * detInv;
te[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;
te[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;
te[ 3 ] = t12 * detInv;
te[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;
te[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;
te[ 6 ] = t13 * detInv;
te[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;
te[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;
return this;
},
transpose: function () {
var tmp, m = this.elements;
tmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;
tmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;
tmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;
return this;
},
getNormalMatrix: function ( matrix4 ) {
return this.setFromMatrix4( matrix4 ).getInverse( this ).transpose();
},
transposeIntoArray: function ( r ) {
var m = this.elements;
r[ 0 ] = m[ 0 ];
r[ 1 ] = m[ 3 ];
r[ 2 ] = m[ 6 ];
r[ 3 ] = m[ 1 ];
r[ 4 ] = m[ 4 ];
r[ 5 ] = m[ 7 ];
r[ 6 ] = m[ 2 ];
r[ 7 ] = m[ 5 ];
r[ 8 ] = m[ 8 ];
return this;
},
setUvTransform: function ( tx, ty, sx, sy, rotation, cx, cy ) {
var c = Math.cos( rotation );
var s = Math.sin( rotation );
this.set(
sx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,
- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,
0, 0, 1
);
},
scale: function ( sx, sy ) {
var te = this.elements;
te[ 0 ] *= sx; te[ 3 ] *= sx; te[ 6 ] *= sx;
te[ 1 ] *= sy; te[ 4 ] *= sy; te[ 7 ] *= sy;
return this;
},
rotate: function ( theta ) {
var c = Math.cos( theta );
var s = Math.sin( theta );
var te = this.elements;
var a11 = te[ 0 ], a12 = te[ 3 ], a13 = te[ 6 ];
var a21 = te[ 1 ], a22 = te[ 4 ], a23 = te[ 7 ];
te[ 0 ] = c * a11 + s * a21;
te[ 3 ] = c * a12 + s * a22;
te[ 6 ] = c * a13 + s * a23;
te[ 1 ] = - s * a11 + c * a21;
te[ 4 ] = - s * a12 + c * a22;
te[ 7 ] = - s * a13 + c * a23;
return this;
},
translate: function ( tx, ty ) {
var te = this.elements;
te[ 0 ] += tx * te[ 2 ]; te[ 3 ] += tx * te[ 5 ]; te[ 6 ] += tx * te[ 8 ];
te[ 1 ] += ty * te[ 2 ]; te[ 4 ] += ty * te[ 5 ]; te[ 7 ] += ty * te[ 8 ];
return this;
},
equals: function ( matrix ) {
var te = this.elements;
var me = matrix.elements;
for ( var i = 0; i < 9; i ++ ) {
if ( te[ i ] !== me[ i ] ) return false;
}
return true;
},
fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
for ( var i = 0; i < 9; i ++ ) {
this.elements[ i ] = array[ i + offset ];
}
return this;
},
toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
var te = this.elements;
array[ offset ] = te[ 0 ];
array[ offset + 1 ] = te[ 1 ];
array[ offset + 2 ] = te[ 2 ];
array[ offset + 3 ] = te[ 3 ];
array[ offset + 4 ] = te[ 4 ];
array[ offset + 5 ] = te[ 5 ];
array[ offset + 6 ] = te[ 6 ];
array[ offset + 7 ] = te[ 7 ];
array[ offset + 8 ] = te[ 8 ];
return array;
}
} );
/**
* @author mrdoob / http://mrdoob.com/
* @author alteredq / http://alteredqualia.com/
* @author szimek / https://github.com/szimek/
*/
var textureId = 0;
function Texture( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) {
Object.defineProperty( this, 'id', { value: textureId ++ } );
this.uuid = _Math.generateUUID();
this.name = '';
this.image = image !== undefined ? image : Texture.DEFAULT_IMAGE;
this.mipmaps = [];
this.mapping = mapping !== undefined ? mapping : Texture.DEFAULT_MAPPING;
this.wrapS = wrapS !== undefined ? wrapS : ClampToEdgeWrapping;
this.wrapT = wrapT !== undefined ? wrapT : ClampToEdgeWrapping;
this.magFilter = magFilter !== undefined ? magFilter : LinearFilter;
this.minFilter = minFilter !== undefined ? minFilter : LinearMipMapLinearFilter;
this.anisotropy = anisotropy !== undefined ? anisotropy : 1;
this.format = format !== undefined ? format : RGBAFormat;
this.type = type !== undefined ? type : UnsignedByteType;
this.offset = new Vector2( 0, 0 );
this.repeat = new Vector2( 1, 1 );
this.center = new Vector2( 0, 0 );
this.rotation = 0;
this.matrixAutoUpdate = true;
this.matrix = new Matrix3();
this.generateMipmaps = true;
this.premultiplyAlpha = false;
this.flipY = true;
this.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)
// Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.
//
// Also changing the encoding after already used by a Material will not automatically make the Material
// update. You need to explicitly call Material.needsUpdate to trigger it to recompile.
this.encoding = encoding !== undefined ? encoding : LinearEncoding;
this.version = 0;
this.onUpdate = null;
}
Texture.DEFAULT_IMAGE = undefined;
Texture.DEFAULT_MAPPING = UVMapping;
Texture.prototype = Object.assign( Object.create( EventDispatcher.prototype ), {
constructor: Texture,
isTexture: true,
clone: function () {
return new this.constructor().copy( this );
},
copy: function ( source ) {
this.name = source.name;
this.image = source.image;
this.mipmaps = source.mipmaps.slice( 0 );
this.mapping = source.mapping;
this.wrapS = source.wrapS;
this.wrapT = source.wrapT;
this.magFilter = source.magFilter;
this.minFilter = source.minFilter;
this.anisotropy = source.anisotropy;
this.format = source.format;
this.type = source.type;
this.offset.copy( source.offset );
this.repeat.copy( source.repeat );
this.center.copy( source.center );
this.rotation = source.rotation;
this.matrixAutoUpdate = source.matrixAutoUpdate;
this.matrix.copy( source.matrix );
this.generateMipmaps = source.generateMipmaps;
this.premultiplyAlpha = source.premultiplyAlpha;
this.flipY = source.flipY;
this.unpackAlignment = source.unpackAlignment;
this.encoding = source.encoding;
return this;
},
toJSON: function ( meta ) {
var isRootObject = ( meta === undefined || typeof meta === 'string' );
if ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {
return meta.textures[ this.uuid ];
}
function getDataURL( image ) {
var canvas;
if ( image instanceof HTMLCanvasElement ) {
canvas = image;
} else {
canvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' );
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext( '2d' );
if ( image instanceof ImageData ) {
context.putImageData( image, 0, 0 );
} else {
context.drawImage( image, 0, 0, image.width, image.height );
}
}
if ( canvas.width > 2048 || canvas.height > 2048 ) {
return canvas.toDataURL( 'image/jpeg', 0.6 );
} else {
return canvas.toDataURL( 'image/png' );
}
}
var output = {
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 ],
minFilter: this.minFilter,
magFilter: this.magFilter,
anisotropy: this.anisotropy,
flipY: this.flipY
};
if ( this.image !== undefined ) {
// TODO: Move to THREE.Image
var image = this.image;
if ( image.uuid === undefined ) {
image.uuid = _Math.generateUUID(); // UGH
}
if ( ! isRootObject && meta.images[ image.uuid ] === undefined ) {
meta.images[ image.uuid ] = {
uuid: image.uuid,
url: getDataURL( image )
};
}
output.image = image.uuid;
}
if ( ! isRootObject ) {
meta.textures[ this.uuid ] = output;
}
return output;
},
dispose: function () {
this.dispatchEvent( { type: 'dispose' } );
},
transformUv: function ( uv ) {
if ( this.mapping !== UVMapping ) return;
uv.applyMatrix3( this.matrix );
if ( uv.x < 0 || uv.x > 1 ) {
switch ( this.wrapS ) {
case RepeatWrapping:
uv.x = uv.x - Math.floor( uv.x );
break;
case ClampToEdgeWrapping:
uv.x = uv.x < 0 ? 0 : 1;
break;
case MirroredRepeatWrapping:
if ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {
uv.x = Math.ceil( uv.x ) - uv.x;
} else {
uv.x = uv.x - Math.floor( uv.x );
}
break;
}
}
if ( uv.y < 0 || uv.y > 1 ) {
switch ( this.wrapT ) {
case RepeatWrapping:
uv.y = uv.y - Math.floor( uv.y );
break;
case ClampToEdgeWrapping:
uv.y = uv.y < 0 ? 0 : 1;
break;
case MirroredRepeatWrapping:
if ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {
uv.y = Math.ceil( uv.y ) - uv.y;
} else {
uv.y = uv.y - Math.floor( uv.y );
}
break;
}
}
if ( this.flipY ) {
uv.y = 1 - uv.y;
}
}
} );
Object.defineProperty( Texture.prototype, "needsUpdate", {
set: function ( value ) {
if ( value === true ) this.version ++;
}
} );
/**
* @author supereggbert / http://www.paulbrunt.co.uk/
* @author philogb / http://blog.thejit.org/
* @author mikael emtinger / http://gomo.se/
* @author egraether / http://egraether.com/
* @author WestLangley / http://github.com/WestLangley
*/
function Vector4( x, y, z, w ) {
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
this.w = ( w !== undefined ) ? w : 1;
}
Object.assign( Vector4.prototype, {
isVector4: true,
set: function ( x, y, z, w ) {
this.x = x;
this.y = y;
this.z = z;
this.w = w;
return this;
},
setScalar: function ( scalar ) {
this.x = scalar;
this.y = scalar;
this.z = scalar;
this.w = scalar;
return this;
},
setX: function ( x ) {
this.x = x;
return this;
},
setY: function ( y ) {
this.y = y;
return this;
},
setZ: function ( z ) {
this.z = z;
return this;
},
setW: function ( w ) {
this.w = w;
return this;
},
setComponent: function ( index, value ) {
switch ( index ) {
case 0: this.x = value; break;
case 1: this.y = value; break;
case 2: this.z = value; break;
case 3: this.w = value; break;
default: throw new Error( 'index is out of range: ' + index );
}
return this;
},
getComponent: function ( index ) {
switch ( index ) {
case 0: return this.x;
case 1: return this.y;
case 2: return this.z;
case 3: return this.w;
default: throw new Error( 'index is out of range: ' + index );
}
},
clone: function () {
return new this.constructor( this.x, this.y, this.z, this.w );
},
copy: function ( v ) {
this.x = v.x;
this.y = v.y;
this.z = v.z;
this.w = ( v.w !== undefined ) ? v.w : 1;
return this;
},
add: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );
return this.addVectors( v, w );
}
this.x += v.x;
this.y += v.y;
this.z += v.z;
this.w += v.w;
return this;
},
addScalar: function ( s ) {
this.x += s;
this.y += s;
this.z += s;
this.w += s;
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 ( v, s ) {
this.x += v.x * s;
this.y += v.y * s;
this.z += v.z * s;
this.w += v.w * s;
return this;
},
sub: function ( v, w ) {
if ( w !== undefined ) {
console.warn( 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );
return this.subVectors( v, w );
}
this.x -= v.x;
this.y -= v.y;
this.z -= v.z;
this.w -= v.w;
return this;
},
subScalar: function ( s ) {
this.x -= s;
this.y -= s;
this.z -= s;
this.w -= s;
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 ( scalar ) {
this.x *= scalar;
this.y *= scalar;
this.z *= scalar;
this.w *= scalar;
return this;
},
applyMatrix4: function ( m ) {
var x = this.x, y = this.y, z = this.z, w = this.w;
var e = m.elements;
this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;
this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;
this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;
this.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;
return this;
},
divideScalar: function ( scalar ) {
return this.multiplyScalar( 1 / scalar );
},
setAxisAngleFromQuaternion: function ( q ) {
// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm
// q is assumed to be normalized
this.w = 2 * Math.acos( q.w );
var s = Math.sqrt( 1 - q.w * q.w );
if ( s < 0.0001 ) {
this.x = 1;
this.y = 0;
this.z = 0;
} else {
this.x = q.x / s;
this.y = q.y / s;
this.z = q.z / s;
}
return this;
},
setAxisAngleFromRotationMatrix: function ( m ) {
// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm
// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)
var angle, x, y, z, // variables for result
epsilon = 0.01, // margin to allow for rounding errors
epsilon2 = 0.1, // margin to distinguish between 0 and 180 degrees
te = m.elements,
m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],
m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],
m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];
if ( ( Math.abs( m12 - m21 ) < epsilon ) &&
( Math.abs( m13 - m31 ) < epsilon ) &&
( Math.abs( m23 - m32 ) < epsilon ) ) {
// singularity found
// first check for identity matrix which must have +1 for all terms
// in leading diagonal and zero in other terms
if ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&
( Math.abs( m13 + m31 ) < epsilon2 ) &&
( Math.abs( m23 + m32 ) < epsilon2 ) &&
( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {
// this singularity is identity matrix so angle = 0
this.set( 1, 0, 0, 0 );
return this; // zero angle, arbitrary axis
}
// otherwise this singularity is angle = 180
angle = Math.PI;
var xx = ( m11 + 1 ) / 2;
var yy = ( m22 + 1 ) / 2;
var zz = ( m33 + 1 ) / 2;
var xy = ( m12 + m21 ) / 4;
var xz = ( m13 + m31 ) / 4;
var yz = ( m23 + m32 ) / 4;
if ( ( xx > yy ) && ( xx > zz ) ) {
// m11 is the largest diagonal term
if ( xx < epsilon ) {
x = 0;
y = 0.707106781;
z = 0.707106781;
} else {
x = Math.sqrt( xx );
y = xy / x;
z = xz / x;
}
} else if ( yy > zz ) {
// m22 is the largest diagonal term
if ( yy < epsilon ) {
x = 0.707106781;
y = 0;
z = 0.707106781;
} else {
y = Math.sqrt( yy );
x = xy / y;
z = yz / y;
}
} else {
// m33 is the largest diagonal term so base result on this
if ( zz < epsilon ) {
x = 0.707106781;
y = 0.707106781;
z = 0;
} else {
z = Math.sqrt( zz );
x = xz / z;
y = yz / z;
}
}
this.set( x, y, z, angle );
return this; // return 180 deg rotation
}
// as we have reached here there are no singularities so we can handle normally
var s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +
( m13 - m31 ) * ( m13 - m31 ) +
( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize
if ( Math.abs( s ) < 0.001 ) s = 1;
// prevent divide by zero, should not happen if matrix is orthogonal and should be
// caught by singularity test above, but I've left it in just in case
this.x = ( m32 - m23 ) / s;
this.y = ( m13 - m31 ) / s;
this.z = ( m21 - m12 ) / s;
this.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );
return this;
},
min: function ( v ) {
this.x = Math.min( this.x, v.x );
this.y = Math.min( this.y, v.y );
this.z = Math.min( this.z, v.z );
this.w = Math.min( this.w, v.w );
return this;
},
max: function ( v ) {
this.x = Math.max( this.x, v.x );
this.y = Math.max( this.y, v.y );
this.z = Math.max( this.z, v.z );
this.w = Math.max( this.w, v.w );
return this;
},
clamp: function ( min, max ) {
// assumes min < max, componentwise
this.x = Math.max( min.x, Math.min( max.x, this.x ) );
this.y = Math.max( min.y, Math.min( max.y, this.y ) );
this.z = Math.max( min.z, Math.min( max.z, this.z ) );
this.w = Math.max( min.w, Math.min( max.w, this.w ) );
return this;
},
clampScalar: function () {
var min, max;
return function clampScalar( minVal, maxVal ) {
if ( min === undefined ) {
min = new Vector4();
max = new Vector4();
}
min.set( minVal, minVal, minVal, minVal );
max.set( maxVal, maxVal, maxVal, maxVal );
return this.clamp( min, max );
};
}(),
clampLength: function ( min, max ) {
var length = this.length();
return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );
},
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 = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );
this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );
this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );
this.w = ( this.w < 0 ) ? 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 ( v ) {
return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.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 ( length ) {
return this.normalize().multiplyScalar( length );
},
lerp: function ( v, alpha ) {
this.x += ( v.x - this.x ) * alpha;
this.y += ( v.y - this.y ) * alpha;
this.z += ( v.z - this.z ) * alpha;
this.w += ( v.w - this.w ) * alpha;
return this;
},
lerpVectors: function ( v1, v2, alpha ) {
return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 );
},
equals: function ( v ) {
return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );
},
fromArray: function ( array, offset ) {
if ( offset === undefined ) offset = 0;
this.x = array[ offset ];
this.y = array[ offset + 1 ];
this.z = array[ offset + 2 ];
this.w = array[ offset + 3 ];
return this;
},
toArray: function ( array, offset ) {
if ( array === undefined ) array = [];
if ( offset === undefined ) offset = 0;
array[ offset ] = this.x;
array[ offset + 1 ] = this.y;
array[ offset + 2 ] = this.z;
array[ offset + 3 ] = this.w;
return array;
},
fromBufferAttribute: function ( attribute, index, offset ) {
if ( offset !== undefined ) {
console.warn( 'THREE.Vector4: offset has been removed from .fromBufferAttribute().' );
}
this.x = attribute.getX( index );
this.y = attribute.getY( index );
this.z = attribute.getZ( index );
this.w = attribute.getW( index );
return this;
}
} );
/**
* @author szimek / https://github.com/szimek/
* @author alteredq / http://alteredqualia.com/
* @author Marius Kintel / https://github.com/kintel
*/
/*
In options, we can specify:
* Texture parameters for an auto-generated target texture
* depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers
*/
function WebGLRenderTarget( width, height, options ) {
this.uuid = _Math.generateUUID();
this.width = width;
this.height = height;
this.scissor = new Vector4( 0, 0, width, height );
this.scissorTest = false;
this.viewport = new Vector4( 0, 0, width, height );
options = options || {};
if ( options.minFilter === undefined ) options.minFilter = LinearFilter;
this.texture = new Texture( undefined, undefined, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );
this.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;
this.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : true;
this.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;
}
WebGLRenderTarget.prototype = Object.assign( Object.create( EventDispatcher.prototype ), {
constructor: WebGLRenderTarget,
isWebGLRenderTarget: true,
setSize: function ( width, height ) {
if ( this.width !== width || this.height !== height ) {
this.width = width;
this.height = height;
this.dispose();
}
this.viewport.set( 0, 0, width, height );
this.scissor.set( 0, 0, width, height );
},
clone: function () {
return new this.constructor().copy( this );
},
copy: function ( source ) {
this.width = source.width;
this.height = source.height;
this.viewport.copy( source.viewport );
this.texture = source.texture.clone();
this.depthBuffer = source.depthBuffer;
this.stencilBuffer = source.stencilBuffer;
this.depthTexture = source.depthTexture;
return this;
},
dispose: function () {
this.dispatchEvent( { type: 'dispose' } );
}
} );
/**
* @author alteredq / http://alteredqualia.com
*/
function WebGLRenderTargetCube( width, height, options ) {
WebGLRenderTarget.call( this, width, height, options );
this.activeCubeFace = 0; // PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5
this.activeMipMapLevel = 0;
}
WebGLRenderTargetCube.prototype = Object.create( WebGLRenderTarget.prototype );
WebGLRenderTargetCube.prototype.constructor = WebGLRenderTargetCube;
WebGLRenderTargetCube.prototype.isWebGLRenderTargetCube = true;
/**
* @author alteredq / http://alteredqualia.com/
*/
function DataTexture( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) {
Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );
this.image = { data: data, width: width, height: height };
this.magFilter = magFilter !== undefined ? magFilter : NearestFilter;
this.minFilter = minFilter !== undefined ? minFilter : NearestFilter;
this.generateMipmaps = false;
this.flipY = false;
this.unpackAlignment = 1;
}
DataTexture.prototype = Object.create( Texture.prototype );
DataTexture.prototype.constructor = DataTexture;
DataTexture.prototype.isDataTexture = true;
/**
* @author bhouston / http://clara.io
* @author WestLangley / http://github.com/WestLangley
*/
function Box3( min, max ) {
this.min = ( min !== undefined ) ? min : new Vector3( + Infinity, + Infinity, + Infinity );
this.max = ( max !== undefined ) ? max : new Vector3( - Infinity, - Infinity, - Infinity );
}
Object.assign( Box3.prototype, {
isBox3: true,
set: function ( min, max ) {
this.min.copy( min );
this.max.copy( max );
return this;
},
setFromArray: function ( array ) {
var minX = + Infinity;
var minY = + Infinity;
var minZ = + Infinity;
var maxX = - Infinity;
var maxY = - Infinity;
var maxZ = - Infinity;
for ( var i = 0, l = array.length; i < l; i += 3 ) {
var x = array[ i ];
var y = array[ i + 1 ];
var z = array[ i + 2 ];
if ( x < minX ) minX = x;
if ( y < minY ) minY = y;
if ( z < minZ ) minZ = z;
if ( x > maxX ) maxX = x;
if ( y > maxY ) maxY = y;
if ( z > maxZ ) maxZ = z;
}
this.min.set( minX, minY, minZ );
this.max.set( maxX, maxY, maxZ );
return this;
},
setFromBufferAttribute: function ( attribute ) {
var minX = + Infinity;
var minY = + Infinity;
var minZ = + Infinity;
var maxX = - Infinity;
var maxY = - Infinity;
var maxZ = - Infinity;
for ( var i = 0, l = attribute.count; i < l; i ++ ) {
var x = attribute.getX( i );
var y = attribute.getY( i );
var z = attribute.getZ( i );
if ( x < minX ) minX = x;
if ( y < minY ) minY = y;
if ( z < minZ ) minZ = z;
if ( x > maxX ) maxX = x;
if ( y > maxY ) maxY = y;
if ( z > maxZ ) maxZ = z;
}
this.min.set( minX, minY, minZ );
this.max.set( maxX, maxY, maxZ );
return this;
},
setFromPoints: function ( points ) {
this.makeEmpty();
for ( var i = 0, il = points.length; i < il; i ++ ) {
this.expandByPoint( points[ i ] );
}
return this;
},
setFromCenterAndSize: function () {
var v1 = new Vector3();
return function setFromCenterAndSize( center, size ) {
var halfSize = v1.copy( size ).multiplyScalar( 0.5 );
this.min.copy( center ).sub( halfSize );
this.max.copy( center ).add( halfSize );
return this;
};
}(),
setFromObject: function ( object ) {
this.makeEmpty();
return this.expandByObject( object );
},
clone: function () {
return new this.constructor().copy( this );
},
copy: function ( box ) {
this.min.copy( box.min );
this.max.copy( box.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 () {
// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes
return ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );
},
getCenter: function ( optionalTarget ) {
var result = optionalTarget || new Vector3();
return this.isEmpty() ? result.set( 0, 0, 0 ) : result.addVectors( this.min, this.max ).multiplyScalar( 0.5 );
},
getSize: function ( optionalTarget ) {
var result = optionalTarget || new Vector3();
return this.isEmpty() ? result.set( 0, 0, 0 ) : result.subVectors( this.max, this.min );
},
expandByPoint: function ( point ) {
this.min.min( point );
this.max.max( point );
return this;
},
expandByVector: function ( vector ) {
this.min.sub( vector );
this.max.add( vector );
return this;
},
expandByScalar: function ( scalar ) {
this.min.addScalar( - scalar );
this.max.addScalar( scalar );
return this;
},
expandByObject: function () {
// Computes the world-axis-aligned bounding box of an object (including its children),
// accounting for both the object's, and children's, world transforms
var scope, i, l;
var v1 = new Vector3();
function traverse( node ) {
var geometry = node.geometry;
if ( geometry !== undefined ) {
if ( geometry.isGeometry ) {
var vertices = geometry.vertices;
for ( i = 0, l = vertices.length; i < l; i ++ ) {
v1.copy( vertices[ i ] );
v1.applyMatrix4( node.matrixWorld );
scope.expandByPoint( v1 );
}
} else if ( geometry.isBufferGeometry ) {
var attribute = geometry.attributes.position;
if ( attribute !== undefined ) {
for ( i = 0, l = attribute.count; i < l; i ++ ) {
v1.fromBufferAttribute( attribute, i ).applyMatrix4( node.matrixWorld );
scope.expandByPoint( v1 );
}
}
}
}
}
return function expandByObject( object ) {
scope = this;
object.updateMatrixWorld( true );
object.traverse( traverse );
return this;
};
}(),
containsPoint: function ( point ) {
return point.x < this.min.x || point.x > this.max.x ||
point.y < this.min.y || point.y > this.max.y ||
point.z < this.min.z || point.z > this.max.z ? false : true;
},
containsBox: function ( box ) {
return this.min.x <= box.min.x && box.max.x <= this.max.x &&
this.min.y <= box.min.y && box.max.y <= this.max.y &&
this.min.z <= box.min.z && box.max.z <= this.max.z;
},
getParameter: function ( point, optionalTarget ) {
// This can potentially have a divide by zero if the box
// has a size dimension of 0.
var result = optionalTarget || new Vector3();
return result.set(
( point.x - this.min.x ) / ( this.max.x - this.min.x ),
( point.y - this.min.y ) / ( this.max.y - this.min.y ),
( point.z - this.min.z ) / ( this.max.z - this.min.z )
);
},
intersectsBox: function ( box ) {
// using 6 splitting planes to rule out intersections.
return box.max.x < this.min.x || box.min.x > this.max.x ||
box.max.y < this.min.y || box.min.y > this.max.y ||
box.max.z < this.min.z || box.min.z > this.max.z ? false : true;
},
intersectsSphere: ( function () {
var closestPoint = new Vector3();
return function intersectsSphere( sphere ) {
// Find the point on the AABB closest to the sphere center.
this.clampPoint( sphere.center, closestPoint );
// If that point is inside the sphere, the AABB and sphere intersect.
return closestPoint.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );
};
} )(),
intersectsPlane: function ( plane ) {
// We compute the minimum and maximum dot product values. If those values
// are on the same side (back or front) of the plane, then there is no intersection.
var min, max;
if ( plane.normal.x > 0 ) {
min = plane.normal.x * this.min.x;
max = plane.normal.x * this.max.x;
} else {
min = plane.normal.x * this.max.x;
max = plane.normal.x * this.min.x;
}
if ( plane.normal.y > 0 ) {
min += plane.normal.y * this.min.y;
max += plane.normal.y * this.max.y;
} else {
min += plane.normal.y * this.max.y;
max += plane.normal.y * this.min.y;
}
if ( plane.normal.z > 0 ) {
min += plane.normal.z * this.min.z;
max += plane.normal.z * this.max.z;
} else {
min += plane.normal.z * this.max.z;
max += plane.normal.z * this.min.z;
}
return ( min <= plane.constant && max >= plane.constant );
},
intersectsTriangle: ( function () {
// triangle centered vertices
var v0 = new Vector3();
var v1 = new Vector3();
var v2 = new Vector3();
// triangle edge vectors
var f0 = new Vector3();
var f1 = new Vector3();
var f2 = new Vector3();
var testAxis = new Vector3();
var center = new Vector3();
var extents = new Vector3();
var triangleNormal = new Vector3();
function satForAxes( axes ) {
var i, j;
for ( i = 0, j = axes.length - 3; i <= j; i += 3 ) {
testAxis.fromArray( axes, i );
// project the aabb onto the seperating axis
var r = extents.x * Math.abs( testAxis.x ) + extents.y * Math.abs( testAxis.y ) + extents.z * Math.abs( testAxis.z );
// project all 3 vertices of the triangle onto the seperating axis
var p0 = v0.dot( testAxis );
var p1 = v1.dot( testAxis );
var p2 = v2.dot( testAxis );
// actual test, basically see if either of the most extreme of the triangle points intersects r
if ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {
// points of the projected triangle are outside the projected half-length of the aabb
// the axis is seperating and we can exit
return false;
}
}
return true;
}
return function intersectsTriangle( triangle ) {
if ( this.isEmpty() ) {
return false;
}
// compute box center and extents
this.getCenter( center );
extents.subVectors( this.max, center );
// translate triangle to aabb origin
v0.subVectors( triangle.a, center );
v1.subVectors( triangle.b, center );
v2.subVectors( triangle.c, center );
// compute edge vectors for triangle
f0.subVectors( v1, v0 );
f1.subVectors( v2, v1 );
f2.subVectors( v0, v2 );
// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb
// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation
// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)
var axes = [
0, - f0.z, f0.y, 0, - f1.z, f1.y, 0, - f2.z, f2.y,
f0.z, 0, - f0.x, f1.z, 0, - f1.x, f2.z, 0, - f2.x,
- f0.y, f0.x, 0, - f1.y, f1.x, 0, - f2.y, f2.x, 0
];
if ( ! satForAxes( axes ) ) {
return false;
}
// test 3 face normals from the aabb
axes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];
if ( ! satForAxes( axes ) ) {
return false;
}
// finally testing the face normal of the triangle
// use already existing triangle edge vectors here
triangleNormal.crossVectors( f0, f1 );
axes = [ triangleNormal.x, triangleNormal.y, triangleNormal.z ];
return satForAxes( axes );
};
} )(),
clampPoint: function ( point, optionalTarget ) {
var result = optionalTarget || new Vector3();
return result.copy( point ).clamp( this.min, this.max );
},
distanceToPoint: function () {
var v1 = new Vector3();
return function distanceToPoint( point ) {
var clampedPoint = v1.copy( point ).clamp( this.min, this.max );
return clampedPoint.sub( point ).length();
};
}(),
getBoundingSphere: function () {
var v1 = new Vector3();
return function getBoundingSphere( optionalTarget ) {
var result = optionalTarget || new Sphere();
this.getCenter( result.center );
result.radius = this.getSize( v1 ).length() * 0.5;
return result;
};
}(),
intersect: function ( box ) {
this.min.max( box.min );
this.max.min( box.max );
// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.
if ( this.isEmpty() ) this.makeEmpty();
return this;
},
union: function ( box ) {
this.min.min( box.min );
this.max.max( box.max );
return this;
},
applyMatrix4: function () {
var points = [
new Vector3(),
new Vector3(),
new Vector3(),
new Vector3(),
new Vector3(),
new Vector3(),
new Vector3(),
new Vector3()
];
return function applyMatrix4( matrix ) {
// transform of empty box is an empty box.
if ( this.isEmpty() ) return this;
// NOTE: I am using a binary pattern to specify all 2^3 combinations below
points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000
points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001
points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010
points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011
points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100
points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101
points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110
points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111
this.setFromPoints( points );
return this;
};
}(),
translate: function ( offset ) {
this.min.add( offset );
this.max.add( offset );
return this;
},
equals: function ( box ) {
return box.min.equals( this.min ) && box.max.equals( this.max );
}
} );
/**
* @author bhouston / http://clara.io
* @author mrdoob / http://mrdoob.com/
*/
function Sphere( center, radius ) {
this.center = ( center !== undefined ) ? center : new Vector3();
this.radius = ( radius !== undefined ) ? radius : 0;
}
Object.assign( Sphere.prototype, {
set: function ( center, radius ) {
this.center.copy( center );
this.radius = radius;
return this;
},
setFromPoints: function () {
var box = new Box3();
return function setFromPoints( points, optionalCenter ) {
var center = this.center;
if ( optionalCenter !== undefined ) {
center.copy( optionalCenter );
} else {
box.setFromPoints( points ).getCenter( center );
}
var maxRadiusSq = 0;
for ( var i = 0, il = points.length; i < il; i ++ ) {
maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );
}
this.radius = Math.sqrt( maxRadiusSq );
return this;
};
}(),
clone: function () {
return new this.constructor().copy( this );
},
copy: function ( sphere ) {
this.center.copy( sphere.center );
this.radius = sphere.radius;
return this;
},
empty: function () {
return ( this.radius <= 0 );
},
containsPoint: function ( point ) {
return ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );
},
distanceToPoint: function ( point ) {
return ( point.distanceTo( this.center ) - this.radius );
},
intersectsSphere: function ( sphere ) {
var radiusSum = this.radius + sphere.radius;
return sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );
},
intersectsBox: function ( box ) {
return box.intersectsSphere( this );
},
intersectsPlane: function ( plane ) {
return Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;
},
clampPoint: function ( point, optionalTarget ) {
var deltaLengthSq = this.center.distanceToSquared( point );
var result = optionalTarget || new Vector3();
result.copy( point );
if ( deltaLengthSq > ( this.radius * this.radius ) ) {
result.sub( this.center ).normalize();
result.multiplyScalar( this.radius ).add( this.center );
}
return result;
},
getBoundingBox: function ( optionalTarget ) {
var box = optionalTarget || new Box3();
box.set( this.center, this.center );
box.expandByScalar( this.radius );
return box;
},
applyMatrix4: function ( matrix ) {
this.center.applyMatrix4( matrix );
this.radius = this.radius * matrix.getMaxScaleOnAxis();
return this;
},
translate: function ( offset ) {
this.center.add( offset );
return this;
},
equals: function ( sphere ) {
return sphere.center.equals( this.center ) && ( sphere.radius === this.radius );
}
} );
/**
* @author bhouston / http://clara.io
*/
function Plane( normal, constant ) {
// normal is assumed to be normalized
this.normal = ( normal !== undefined ) ? normal : new Vector3( 1, 0, 0 );
this.constant = ( constant !== undefined ) ? constant : 0;
}
Object.assign( Plane.prototype, {
set: function ( normal, constant ) {
this.normal.copy( normal );
this.constant = constant;
return this;
},
setComponents: function ( x, y, z, w ) {
this.normal.set( x, y, z );
this.constant = w;
return this;
},
setFromNormalAndCoplanarPoint: function ( normal, point ) {
this.normal.copy( normal );
this.constant = - point.dot( this.normal );
return this;
},
setFromCoplanarPoints: function () {
var v1 = new Vector3();
var v2 = new Vector3();
return function setFromCoplanarPoints( a, b, c ) {
var normal = v1.subVectors( c, b ).cross( v2.subVectors( a, b ) ).normalize();
// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?
this.setFromNormalAndCoplanarPoint( normal, a );
return this;
};
}(),
clone: function () {
return new this.constructor().copy( this );
},
copy: function ( plane ) {
this.normal.copy( plane.normal );
this.constant = plane.constant;
return this;
},
normalize: function () {
// Note: will lead to a divide by zero if the plane is invalid.
var inverseNormalLength = 1.0 / this.normal.length();
this.normal.multiplyScalar( inverseNormalLength );
this.constant *= inverseNormalLength;
return this;
},
negate: function () {
this.constant *= - 1;
this.normal.negate();
return this;
},
distanceToPoint: function ( point ) {
return this.normal.dot( point ) + this.constant;
},
distanceToSphere: function ( sphere ) {
return this.distanceToPoint( sphere.center ) - sphere.radius;
},
projectPoint: function ( point, optionalTarget ) {
var result = optionalTarget || new Vector3();
return result.copy( this.normal ).multiplyScalar( - this.distanceToPoint( point ) ).add( point );
},
intersectLine: function () {
var v1 = new Vector3();
return function intersectLine( line, optionalTarget ) {
var result = optionalTarget || new Vector3();
var direction = line.delta( v1 );
var denominator = this.normal.dot( direction );
if ( denominator === 0 ) {
// line is coplanar, return origin
if ( this.distanceToPoint( line.start ) === 0 ) {
return result.copy( line.start );
}
// Unsure if this is the correct method to handle this case.
return undefined;
}
var t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;
if ( t < 0 || t > 1 ) {
return undefined;
}
return result.copy( direction ).multiplyScalar( t ).add( line.start );
};
}(),
intersectsLine: function ( line ) {
// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.
var startSign = this.distanceToPoint( line.start );
var endSign = this.distanceToPoint( line.end );
return ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );
},
intersectsBox: function ( box ) {
return box.intersectsPlane( this );
},
intersectsSphere: function ( sphere ) {
return sphere.intersectsPlane( this );
},
coplanarPoint: function ( optionalTarget ) {
var result = optionalTarget || new Vector3();
return result.copy( this.normal ).multiplyScalar( - this.constant );
},
applyMatrix4: function () {
var v1 = new Vector3();
var m1 = new Matrix3();
return function applyMatrix4( matrix, optionalNormalMatrix ) {
var normalMatrix = optionalNormalMatrix || m1.getNormalMatrix( matrix );
var referencePoint = this.coplanarPoint( v1 ).applyMatrix4( matrix );
var normal = this.normal.applyMatrix3( normalMatrix ).normalize();
this.constant = - referencePoint.dot( normal );
return this;
};
}(),
translate: function ( offset ) {
this.constant -= offset.dot( this.normal );
return this;
},
equals: function ( plane ) {
return plane.normal.equals( this.normal ) && ( plane.constant === this.constant );
}
} );
/**
* @author mrdoob / http://mrdoob.com/
* @author alteredq / http://alteredqualia.com/
* @author bhouston / http://clara.io
*/
function Frustum( p0, p1, p2, p3, p4, p5 ) {
this.planes = [
( p0 !== undefined ) ? p0 : new Plane(),
( p1 !== undefined ) ? p1 : new Plane(),
( p2 !== undefined ) ? p2 : new Plane(),
( p3 !== undefined ) ? p3 : new Plane(),
( p4 !== undefined ) ? p4 : new Plane(),
( p5 !== undefined ) ? p5 : new Plane()
];
}
Object.assign( Frustum.prototype, {
set: function ( p0, p1, p2, p3, p4, p5 ) {
var planes = this.planes;
planes[ 0 ].copy( p0 );
planes[ 1 ].copy( p1 );
planes[ 2 ].copy( p2 );
planes[ 3 ].copy( p3 );
planes[ 4 ].copy( p4 );
planes[ 5 ].copy( p5 );
return this;
},
clone: function () {
return new this.constructor().copy( this );
},
copy: function ( frustum ) {
var planes = this.planes;
for ( var i = 0; i < 6; i ++ ) {
planes[ i ].copy( frustum.planes[ i ] );
}
return this;
},
setFromMatrix: function ( m ) {
var planes = this.planes;
var me = m.elements;
var me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];
var me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];
var me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];
var me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];
planes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();
planes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();
planes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();
planes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();
planes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();
planes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();
return this;
},
intersectsObject: function () {
var sphere = new Sphere();
return function intersectsObject( object ) {
var geometry = object.geometry;
if ( geometry.boundingSphere === null )
geometry.computeBoundingSphere();
sphere.copy( geometry.boundingSphere )
.applyMatrix4( object.matrixWorld );
return this.intersectsSphere( sphere );
};
}(),
intersectsSprite: function () {
var sphere = new Sphere();
return function intersectsSprite( sprite ) {
sphere.center.set( 0, 0, 0 );
sphere.radius = 0.7071067811865476;
sphere.applyMatrix4( sprite.matrixWorld );
return this.intersectsSphere( sphere );
};
}(),
intersectsSphere: function ( sphere ) {
var planes = this.planes;
var center = sphere.center;
var negRadius = - sphere.radius;
for ( var i = 0; i < 6; i ++ ) {
var distance = planes[ i ].distanceToPoint( center );
if ( distance < negRadius ) {
return false;
}
}
return true;
},
intersectsBox: function () {
var p1 = new Vector3(),
p2 = new Vector3();
return function intersectsBox( box ) {
var planes = this.planes;
for ( var i = 0; i < 6; i ++ ) {
var plane = planes[ i ];
p1.x = plane.normal.x > 0 ? box.min.x : box.max.x;
p2.x = plane.normal.x > 0 ? box.max.x : box.min.x;
p1.y = plane.normal.y > 0 ? box.min.y : box.max.y;
p2.y = plane.normal.y > 0 ? box.max.y : box.min.y;
p1.z = plane.normal.z > 0 ? box.min.z : box.max.z;
p2.z = plane.normal.z > 0 ? box.max.z : box.min.z;
var d1 = plane.distanceToPoint( p1 );
var d2 = plane.distanceToPoint( p2 );
// if both outside plane, no intersection
if ( d1 < 0 && d2 < 0 ) {
return false;
}
}
return true;
};
}(),
containsPoint: function ( point ) {
var planes = this.planes;
for ( var i = 0; i < 6; i ++ ) {
if ( planes[ i ].distanceToPoint( point ) < 0 ) {
return false;
}
}
return true;
}
} );
var alphamap_fragment = "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n";
var alphamap_pars_fragment = "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n";
var alphatest_fragment = "#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n";
var 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";
var aomap_pars_fragment = "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif";
var begin_vertex = "\nvec3 transformed = vec3( position );\n";
var beginnormal_vertex = "\nvec3 objectNormal = vec3( normal );\n";
var 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";
var 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\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n";
var 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";
var 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";
var clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n";
var clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n";
var color_fragment = "#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif";
var color_pars_fragment = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n";
var color_pars_vertex = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif";
var color_vertex = "#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif";
var 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";
var 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";
var defaultnormal_vertex = "vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n";
var displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n";
var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n";
var emissivemap_fragment = "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n";
var emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n";
var encodings_fragment = " gl_FragColor = linearToOutputTexel( gl_FragColor );\n";
var 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";
var 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";
var 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\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";
var 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";
var 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";
var fog_vertex = "\n#ifdef USE_FOG\nfogDepth = -mvPosition.z;\n#endif";
var fog_pars_vertex = "#ifdef USE_FOG\n varying float fogDepth;\n#endif\n";
var 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";
var 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";
var 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";
var lightmap_fragment = "#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n";
var lightmap_pars_fragment = "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif";
var 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";
var 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";
var 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";
var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n";
var 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";
var 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";
var 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";
var 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";
var 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, 8 );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\n\t#ifndef STANDARD\n\t\tclearCoatRadiance += getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\n\t#endif\n#endif\n";
var 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";
var logdepthbuf_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif";
var 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";
var 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";
var 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";
var map_fragment = "#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n";
var map_pars_fragment = "#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n";
var 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";
var map_particle_pars_fragment = "#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n";
var metalnessmap_fragment = "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n";
var metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif";
var 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";
var 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";
var 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";
var 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";
var normal_fragment_maps = "#ifdef USE_NORMALMAP\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n";
var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif\n";
var 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";
var premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n";
var project_vertex = "vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n";
var dithering_fragment = "#if defined( DITHERING )\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n";
var 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";
var roughnessmap_fragment = "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n";
var roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif";
var tonemapping_fragment = "#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n";
var 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";
var 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";
var 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";
var 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";
var uv2_pars_fragment = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif";
var uv2_pars_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif";
var uv2_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif";
var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n";
var 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";
var 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";
var 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( gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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";
var 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 <lights_pars_maps>\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";
var 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 <lights_pars_maps>\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";
var 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_pars_maps>\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";
var 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";
var 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#incl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment