vis-core 0.29.11 → 0.29.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/index.module.js +29 -28
- package/dist/version.d.ts +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document!="undefined"){var t=document.createElement("style");t.appendChild(document.createTextNode(".-translate-x-1\\/2,.-translate-y-1\\/2,.transform{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1 }.shadow{--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000 }.invert,.filter{--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: }.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.left-1\\/2{left:50%}.top-1\\/2{top:50%}.-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.whitespace-nowrap{white-space:nowrap}.text-center{text-align:center}.text-sm{font-size:14px;line-height:20px}.leading-\\[1\\]{line-height:1}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-opacity-80{--tw-text-opacity: .8 }.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}")),document.head.appendChild(t)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
|
|
2
|
-
"use strict";var An=Object.defineProperty,Fn=Object.defineProperties;var Kn=Object.getOwnPropertyDescriptors;var En=Object.getOwnPropertySymbols,Hn=Object.getPrototypeOf,Yn=Object.prototype.hasOwnProperty,Un=Object.prototype.propertyIsEnumerable,Bn=Reflect.get;var Mn=(v,e)=>(e=Symbol[v])?e:Symbol.for("Symbol."+v),On=v=>{throw TypeError(v)},bn=Math.pow,Wn=(v,e,n)=>e in v?An(v,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):v[e]=n,O0=(v,e)=>{for(var n in e||(e={}))Yn.call(e,n)&&Wn(v,n,e[n]);if(En)for(var n of En(e))Un.call(e,n)&&Wn(v,n,e[n]);return v},Ui=(v,e)=>Fn(v,Kn(e));var g0=(v,e,n)=>Wn(v,typeof e!="symbol"?e+"":e,n);var gn=(v,e,n)=>Bn(Hn(v),n,e);var E0=(v,e,n)=>new Promise((r,C)=>{var w=le=>{try{O(n.next(le))}catch(fe){C(fe)}},E=le=>{try{O(n.throw(le))}catch(fe){C(fe)}},O=le=>le.done?r(le.value):Promise.resolve(le.value).then(w,E);O((n=n.apply(v,e)).next())}),Dn=function(v,e){this[0]=v,this[1]=e};var In=v=>{var e=v[Mn("asyncIterator")],n=!1,r,C={};return e==null?(e=v[Mn("iterator")](),r=w=>C[w]=E=>e[w](E)):(e=e.call(v),r=w=>C[w]=E=>{if(n){if(n=!1,w==="throw")throw E;return E}return n=!0,{done:!1,value:new Dn(new Promise(O=>{var le=e[w](E);le instanceof Object||On("Object expected"),O(le)}),1)}}),C[Mn("iterator")]=()=>C,r("next"),"throw"in e?r("throw"):C.throw=w=>{throw w},"return"in e&&r("return"),C},Nn=(v,e,n)=>(e=v[Mn("asyncIterator")])?e.call(v):(v=v[Mn("iterator")](),e={},n=(r,C)=>(C=v[r])&&(e[r]=w=>new Promise((E,O,le)=>(w=C.call(v,w),le=w.done,Promise.resolve(w.value).then(fe=>E({value:fe,done:le}),O)))),n("next"),n("return"),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jsrsasign=require("jsrsasign"),CryptoJS=require("crypto-js"),esusLite=require("esus-lite"),events=require("events"),world$1=require("geojson-cn/json/0.json"),json100000Lite=require("geojson-cn/json-lite/100000.json"),json100000=require("geojson-cn/json/100000.json"),adcodeAll=require("geojson-cn/json-lite/all.json"),turf=require("@turf/turf"),geojsonCn=require("geojson-cn");Array.prototype.at||(Array.prototype.at=function(v){return v<0&&(v=this.length+v),this[v]});const version="0.29.11",publicKeyPEM="LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyTG1aVVQzVG9LZEVRRUdrdUU1QQo3dnlYTzRMM1Z6NDA5RFF2a2xzRHZ2SytNM2M2OGl4ZEVhZDZFcnZGS2FKQ1QrNTZNdU1XSXhUTnlDZDVQSkFGCjVYdzI4cW1iVkVCR3FGdXVIZTltSm5GUmRXN1NpK1Z1cTZvRWxwQkRkeEFIQ0dsWVVpU1R3WmhBbjJaVXJLSUYKd1J2c1k1bi9uWWNhZnl5QW9tRjhmNVRsTkpwS1JtbDU3WlRSWjBMdzdQRDFSeHFIbmJ0YWFETkpiSDV5eFd6cQpaVTBwQWhxMFNkNHdlOW1DUTJWWXc5czhtUERLbW4rU083eGovSUsrR1ZEaEJNOUpaZ3VIcGFZUGt3bWd5UkdwCkx6V0tHMkZULzJRalZUT1dRT09mRFVtVitDSVlsN1hVVlh1Q0toYWFNQ0ZVa1JQOHg4aEZucmNFeklHQ1JpM3IKK3dJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t",accessToken={token:void 0,getInfo(){if(!this.token)return"";const[v,e,n]=this.token.split(":::"),r=jsrsasign.KEYUTIL.getKey(atob(publicKeyPEM)),C=CryptoJS.enc.Base64.parse(e),w=CryptoJS.enc.Base64.parse(n),E=CryptoJS.lib.WordArray.create(C.words.slice(0,4)),O=CryptoJS.lib.WordArray.create(C.words.slice(4)),le=jsrsasign.KJUR.crypto.Util.hashHex(C.toString(),"sha256"),fe=r.verifyWithMessageHashPSS(le,jsrsasign.b64tohex(v),"sha256",32);if(!fe)return this.token=void 0,"";const ze=CryptoJS.AES.decrypt({ciphertext:O},w,{iv:E,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8),ke=JSON.parse(ze),Fe=Date.now();return!ke.s||ke.s>Fe?(this.token=void 0,""):ke.e&&ke.e<Fe?(this.token=void 0,""):(ke.isValid=fe,ke)}};var Easing=Object.freeze({Linear:Object.freeze({None:function(v){return v},In:function(v){return v},Out:function(v){return v},InOut:function(v){return v}}),Quadratic:Object.freeze({In:function(v){return v*v},Out:function(v){return v*(2-v)},InOut:function(v){return(v*=2)<1?.5*v*v:-.5*(--v*(v-2)-1)}}),Cubic:Object.freeze({In:function(v){return v*v*v},Out:function(v){return--v*v*v+1},InOut:function(v){return(v*=2)<1?.5*v*v*v:.5*((v-=2)*v*v+2)}}),Quartic:Object.freeze({In:function(v){return v*v*v*v},Out:function(v){return 1- --v*v*v*v},InOut:function(v){return(v*=2)<1?.5*v*v*v*v:-.5*((v-=2)*v*v*v-2)}}),Quintic:Object.freeze({In:function(v){return v*v*v*v*v},Out:function(v){return--v*v*v*v*v+1},InOut:function(v){return(v*=2)<1?.5*v*v*v*v*v:.5*((v-=2)*v*v*v*v+2)}}),Sinusoidal:Object.freeze({In:function(v){return 1-Math.sin((1-v)*Math.PI/2)},Out:function(v){return Math.sin(v*Math.PI/2)},InOut:function(v){return .5*(1-Math.sin(Math.PI*(.5-v)))}}),Exponential:Object.freeze({In:function(v){return v===0?0:Math.pow(1024,v-1)},Out:function(v){return v===1?1:1-Math.pow(2,-10*v)},InOut:function(v){return v===0?0:v===1?1:(v*=2)<1?.5*Math.pow(1024,v-1):.5*(-Math.pow(2,-10*(v-1))+2)}}),Circular:Object.freeze({In:function(v){return 1-Math.sqrt(1-v*v)},Out:function(v){return Math.sqrt(1- --v*v)},InOut:function(v){return(v*=2)<1?-.5*(Math.sqrt(1-v*v)-1):.5*(Math.sqrt(1-(v-=2)*v)+1)}}),Elastic:Object.freeze({In:function(v){return v===0?0:v===1?1:-Math.pow(2,10*(v-1))*Math.sin((v-1.1)*5*Math.PI)},Out:function(v){return v===0?0:v===1?1:Math.pow(2,-10*v)*Math.sin((v-.1)*5*Math.PI)+1},InOut:function(v){return v===0?0:v===1?1:(v*=2,v<1?-.5*Math.pow(2,10*(v-1))*Math.sin((v-1.1)*5*Math.PI):.5*Math.pow(2,-10*(v-1))*Math.sin((v-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(v){var e=1.70158;return v===1?1:v*v*((e+1)*v-e)},Out:function(v){var e=1.70158;return v===0?0:--v*v*((e+1)*v+e)+1},InOut:function(v){var e=2.5949095;return(v*=2)<1?.5*(v*v*((e+1)*v-e)):.5*((v-=2)*v*((e+1)*v+e)+2)}}),Bounce:Object.freeze({In:function(v){return 1-Easing.Bounce.Out(1-v)},Out:function(v){return v<1/2.75?7.5625*v*v:v<2/2.75?7.5625*(v-=1.5/2.75)*v+.75:v<2.5/2.75?7.5625*(v-=2.25/2.75)*v+.9375:7.5625*(v-=2.625/2.75)*v+.984375},InOut:function(v){return v<.5?Easing.Bounce.In(v*2)*.5:Easing.Bounce.Out(v*2-1)*.5+.5}}),generatePow:function(v){return v===void 0&&(v=4),v=v<Number.EPSILON?Number.EPSILON:v,v=v>1e4?1e4:v,{In:function(e){return Math.pow(e,v)},Out:function(e){return 1-Math.pow(1-e,v)},InOut:function(e){return e<.5?Math.pow(e*2,v)/2:(1-Math.pow(2-e*2,v))/2+.5}}}}),now=function(){return performance.now()},Group$1=function(){function v(){this._tweens={},this._tweensAddedDuringUpdate={}}return v.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map(function(n){return e._tweens[n]})},v.prototype.removeAll=function(){this._tweens={}},v.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},v.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},v.prototype.update=function(e,n){e===void 0&&(e=now()),n===void 0&&(n=!1);var r=Object.keys(this._tweens);if(r.length===0)return!1;for(;r.length>0;){this._tweensAddedDuringUpdate={};for(var C=0;C<r.length;C++){var w=this._tweens[r[C]],E=!n;w&&w.update(e,E)===!1&&!n&&delete this._tweens[r[C]]}r=Object.keys(this._tweensAddedDuringUpdate)}return!0},v}(),Interpolation={Linear:function(v,e){var n=v.length-1,r=n*e,C=Math.floor(r),w=Interpolation.Utils.Linear;return e<0?w(v[0],v[1],r):e>1?w(v[n],v[n-1],n-r):w(v[C],v[C+1>n?n:C+1],r-C)},Bezier:function(v,e){for(var n=0,r=v.length-1,C=Math.pow,w=Interpolation.Utils.Bernstein,E=0;E<=r;E++)n+=C(1-e,r-E)*C(e,E)*v[E]*w(r,E);return n},CatmullRom:function(v,e){var n=v.length-1,r=n*e,C=Math.floor(r),w=Interpolation.Utils.CatmullRom;return v[0]===v[n]?(e<0&&(C=Math.floor(r=n*(1+e))),w(v[(C-1+n)%n],v[C],v[(C+1)%n],v[(C+2)%n],r-C)):e<0?v[0]-(w(v[0],v[0],v[1],v[1],-r)-v[0]):e>1?v[n]-(w(v[n],v[n],v[n-1],v[n-1],r-n)-v[n]):w(v[C?C-1:0],v[C],v[n<C+1?n:C+1],v[n<C+2?n:C+2],r-C)},Utils:{Linear:function(v,e,n){return(e-v)*n+v},Bernstein:function(v,e){var n=Interpolation.Utils.Factorial;return n(v)/n(e)/n(v-e)},Factorial:function(){var v=[1];return function(e){var n=1;if(v[e])return v[e];for(var r=e;r>1;r--)n*=r;return v[e]=n,n}}(),CatmullRom:function(v,e,n,r,C){var w=(n-v)*.5,E=(r-e)*.5,O=C*C,le=C*O;return(2*e-2*n+w+E)*le+(-3*e+3*n-2*w-E)*O+w*C+e}}},Sequence=function(){function v(){}return v.nextId=function(){return v._nextId++},v._nextId=0,v}(),mainGroup=new Group$1,Tween=function(){function v(e,n){n===void 0&&(n=mainGroup),this._object=e,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Easing.Linear.None,this._interpolationFunction=Interpolation.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Sequence.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return v.prototype.getId=function(){return this._id},v.prototype.isPlaying=function(){return this._isPlaying},v.prototype.isPaused=function(){return this._isPaused},v.prototype.getDuration=function(){return this._duration},v.prototype.to=function(e,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=e,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},v.prototype.duration=function(e){return e===void 0&&(e=1e3),this._duration=e<0?0:e,this},v.prototype.dynamic=function(e){return e===void 0&&(e=!1),this._isDynamic=e,this},v.prototype.start=function(e,n){if(e===void 0&&(e=now()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var r in this._valuesStartRepeat)this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=e,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var C={};for(var w in this._valuesEnd)C[w]=this._valuesEnd[w];this._valuesEnd=C}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},v.prototype.startFromCurrentValues=function(e){return this.start(e,!0)},v.prototype._setupProperties=function(e,n,r,C,w){for(var E in r){var O=e[E],le=Array.isArray(O),fe=le?"array":typeof O,Se=!le&&Array.isArray(r[E]);if(!(fe==="undefined"||fe==="function")){if(Se){var ze=r[E];if(ze.length===0)continue;for(var ke=[O],Fe=0,mt=ze.length;Fe<mt;Fe+=1){var Lt=this._handleRelativeValue(O,ze[Fe]);if(isNaN(Lt)){Se=!1,console.warn("Found invalid interpolation list. Skipping.");break}ke.push(Lt)}Se&&(r[E]=ke)}if((fe==="object"||le)&&O&&!Se){n[E]=le?[]:{};var bt=O;for(var Ue in bt)n[E][Ue]=bt[Ue];C[E]=le?[]:{};var ze=r[E];if(!this._isDynamic){var Gt={};for(var Ue in ze)Gt[Ue]=ze[Ue];r[E]=ze=Gt}this._setupProperties(bt,n[E],ze,C[E],w)}else(typeof n[E]=="undefined"||w)&&(n[E]=O),le||(n[E]*=1),Se?C[E]=r[E].slice().reverse():C[E]=n[E]||0}}},v.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},v.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},v.prototype.pause=function(e){return e===void 0&&(e=now()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this),this)},v.prototype.resume=function(e){return e===void 0&&(e=now()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},v.prototype.stopChainedTweens=function(){for(var e=0,n=this._chainedTweens.length;e<n;e++)this._chainedTweens[e].stop();return this},v.prototype.group=function(e){return e===void 0&&(e=mainGroup),this._group=e,this},v.prototype.delay=function(e){return e===void 0&&(e=0),this._delayTime=e,this},v.prototype.repeat=function(e){return e===void 0&&(e=0),this._initialRepeat=e,this._repeat=e,this},v.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},v.prototype.yoyo=function(e){return e===void 0&&(e=!1),this._yoyo=e,this},v.prototype.easing=function(e){return e===void 0&&(e=Easing.Linear.None),this._easingFunction=e,this},v.prototype.interpolation=function(e){return e===void 0&&(e=Interpolation.Linear),this._interpolationFunction=e,this},v.prototype.chain=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return this._chainedTweens=e,this},v.prototype.onStart=function(e){return this._onStartCallback=e,this},v.prototype.onEveryStart=function(e){return this._onEveryStartCallback=e,this},v.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},v.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},v.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},v.prototype.onStop=function(e){return this._onStopCallback=e,this},v.prototype.update=function(e,n){var r;if(e===void 0&&(e=now()),n===void 0&&(n=!0),this._isPaused)return!0;var C=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>C)return!1;n&&this.start(e,!0)}if(this._goToEnd=!1,e<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var w=e-this._startTime,E=this._duration+((r=this._repeatDelayTime)!==null&&r!==void 0?r:this._delayTime),O=this._duration+this._repeat*E,le=this._calculateElapsedPortion(w,E,O),fe=this._easingFunction(le),Se=this._calculateCompletionStatus(w,E);if(Se==="repeat"&&this._processRepetition(w,E),this._updateProperties(this._object,this._valuesStart,this._valuesEnd,fe),Se==="about-to-repeat"&&this._processRepetition(w,E),this._onUpdateCallback&&this._onUpdateCallback(this._object,le),Se==="repeat"||Se==="about-to-repeat")this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1;else if(Se==="completed"){this._isPlaying=!1,this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var ze=0,ke=this._chainedTweens.length;ze<ke;ze++)this._chainedTweens[ze].start(this._startTime+this._duration,!1)}return Se!=="completed"},v.prototype._calculateElapsedPortion=function(e,n,r){if(this._duration===0||e>r)return 1;var C=e%n,w=Math.min(C/this._duration,1);return w===0&&e!==0&&e%this._duration===0?1:w},v.prototype._calculateCompletionStatus=function(e,n){return this._duration!==0&&e<this._duration?"playing":this._repeat<=0?"completed":e===this._duration?"about-to-repeat":"repeat"},v.prototype._processRepetition=function(e,n){var r=Math.min(Math.trunc((e-this._duration)/n)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=r);for(var C in this._valuesStartRepeat){var w=this._valuesEnd[C];!this._yoyo&&typeof w=="string"&&(this._valuesStartRepeat[C]=this._valuesStartRepeat[C]+parseFloat(w)),this._yoyo&&this._swapEndStartRepeatValues(C),this._valuesStart[C]=this._valuesStartRepeat[C]}this._yoyo&&(this._reversed=!this._reversed),this._startTime+=n*r},v.prototype._updateProperties=function(e,n,r,C){for(var w in r)if(n[w]!==void 0){var E=n[w]||0,O=r[w],le=Array.isArray(e[w]),fe=Array.isArray(O),Se=!le&&fe;Se?e[w]=this._interpolationFunction(O,C):typeof O=="object"&&O?this._updateProperties(e[w],E,O,C):(O=this._handleRelativeValue(E,O),typeof O=="number"&&(e[w]=E+(O-E)*C))}},v.prototype._handleRelativeValue=function(e,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?e+parseFloat(n):parseFloat(n)},v.prototype._swapEndStartRepeatValues=function(e){var n=this._valuesStartRepeat[e],r=this._valuesEnd[e];typeof r=="string"?this._valuesStartRepeat[e]=this._valuesStartRepeat[e]+parseFloat(r):this._valuesStartRepeat[e]=this._valuesEnd[e],this._valuesEnd[e]=n},v}(),VERSION$1="23.1.2",nextId=Sequence.nextId,TWEEN=mainGroup,getAll=TWEEN.getAll.bind(TWEEN),removeAll=TWEEN.removeAll.bind(TWEEN),add=TWEEN.add.bind(TWEEN),remove=TWEEN.remove.bind(TWEEN),update=TWEEN.update.bind(TWEEN),exports$1={Easing,Group:Group$1,Interpolation,now,Sequence,nextId,Tween,VERSION:VERSION$1,getAll,removeAll,add,remove,update};const tween_esm=Object.freeze(Object.defineProperty({__proto__:null,Easing,Group:Group$1,Interpolation,Sequence,Tween,VERSION:VERSION$1,add,default:exports$1,getAll,nextId,now,remove,removeAll,update},Symbol.toStringTag,{value:"Module"}));/**
|
|
2
|
+
"use strict";var An=Object.defineProperty,Fn=Object.defineProperties;var Kn=Object.getOwnPropertyDescriptors;var En=Object.getOwnPropertySymbols,Hn=Object.getPrototypeOf,Yn=Object.prototype.hasOwnProperty,Un=Object.prototype.propertyIsEnumerable,Bn=Reflect.get;var Mn=(v,e)=>(e=Symbol[v])?e:Symbol.for("Symbol."+v),On=v=>{throw TypeError(v)},bn=Math.pow,Wn=(v,e,n)=>e in v?An(v,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):v[e]=n,O0=(v,e)=>{for(var n in e||(e={}))Yn.call(e,n)&&Wn(v,n,e[n]);if(En)for(var n of En(e))Un.call(e,n)&&Wn(v,n,e[n]);return v},Ui=(v,e)=>Fn(v,Kn(e));var g0=(v,e,n)=>Wn(v,typeof e!="symbol"?e+"":e,n);var gn=(v,e,n)=>Bn(Hn(v),n,e);var E0=(v,e,n)=>new Promise((r,C)=>{var w=le=>{try{O(n.next(le))}catch(fe){C(fe)}},E=le=>{try{O(n.throw(le))}catch(fe){C(fe)}},O=le=>le.done?r(le.value):Promise.resolve(le.value).then(w,E);O((n=n.apply(v,e)).next())}),Dn=function(v,e){this[0]=v,this[1]=e};var In=v=>{var e=v[Mn("asyncIterator")],n=!1,r,C={};return e==null?(e=v[Mn("iterator")](),r=w=>C[w]=E=>e[w](E)):(e=e.call(v),r=w=>C[w]=E=>{if(n){if(n=!1,w==="throw")throw E;return E}return n=!0,{done:!1,value:new Dn(new Promise(O=>{var le=e[w](E);le instanceof Object||On("Object expected"),O(le)}),1)}}),C[Mn("iterator")]=()=>C,r("next"),"throw"in e?r("throw"):C.throw=w=>{throw w},"return"in e&&r("return"),C},Nn=(v,e,n)=>(e=v[Mn("asyncIterator")])?e.call(v):(v=v[Mn("iterator")](),e={},n=(r,C)=>(C=v[r])&&(e[r]=w=>new Promise((E,O,le)=>(w=C.call(v,w),le=w.done,Promise.resolve(w.value).then(fe=>E({value:fe,done:le}),O)))),n("next"),n("return"),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jsrsasign=require("jsrsasign"),CryptoJS=require("crypto-js"),esusLite=require("esus-lite"),events=require("events"),world$1=require("geojson-cn/json/0.json"),json100000Lite=require("geojson-cn/json-lite/100000.json"),json100000=require("geojson-cn/json/100000.json"),adcodeAll=require("geojson-cn/json-lite/all.json"),turf=require("@turf/turf"),geojsonCn=require("geojson-cn");Array.prototype.at||(Array.prototype.at=function(v){return v<0&&(v=this.length+v),this[v]});const version="0.29.12",publicKeyPEM="LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyTG1aVVQzVG9LZEVRRUdrdUU1QQo3dnlYTzRMM1Z6NDA5RFF2a2xzRHZ2SytNM2M2OGl4ZEVhZDZFcnZGS2FKQ1QrNTZNdU1XSXhUTnlDZDVQSkFGCjVYdzI4cW1iVkVCR3FGdXVIZTltSm5GUmRXN1NpK1Z1cTZvRWxwQkRkeEFIQ0dsWVVpU1R3WmhBbjJaVXJLSUYKd1J2c1k1bi9uWWNhZnl5QW9tRjhmNVRsTkpwS1JtbDU3WlRSWjBMdzdQRDFSeHFIbmJ0YWFETkpiSDV5eFd6cQpaVTBwQWhxMFNkNHdlOW1DUTJWWXc5czhtUERLbW4rU083eGovSUsrR1ZEaEJNOUpaZ3VIcGFZUGt3bWd5UkdwCkx6V0tHMkZULzJRalZUT1dRT09mRFVtVitDSVlsN1hVVlh1Q0toYWFNQ0ZVa1JQOHg4aEZucmNFeklHQ1JpM3IKK3dJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t",accessToken={token:void 0,getInfo(){if(!this.token)return"";const[v,e,n]=this.token.split(":::"),r=jsrsasign.KEYUTIL.getKey(atob(publicKeyPEM)),C=CryptoJS.enc.Base64.parse(e),w=CryptoJS.enc.Base64.parse(n),E=CryptoJS.lib.WordArray.create(C.words.slice(0,4)),O=CryptoJS.lib.WordArray.create(C.words.slice(4)),le=jsrsasign.KJUR.crypto.Util.hashHex(C.toString(),"sha256"),fe=r.verifyWithMessageHashPSS(le,jsrsasign.b64tohex(v),"sha256",32);if(!fe)return this.token=void 0,"";const ze=CryptoJS.AES.decrypt({ciphertext:O},w,{iv:E,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8),ke=JSON.parse(ze),Fe=Date.now();return!ke.s||ke.s>Fe?(this.token=void 0,""):ke.e&&ke.e<Fe?(this.token=void 0,""):(ke.isValid=fe,ke)}};var Easing=Object.freeze({Linear:Object.freeze({None:function(v){return v},In:function(v){return v},Out:function(v){return v},InOut:function(v){return v}}),Quadratic:Object.freeze({In:function(v){return v*v},Out:function(v){return v*(2-v)},InOut:function(v){return(v*=2)<1?.5*v*v:-.5*(--v*(v-2)-1)}}),Cubic:Object.freeze({In:function(v){return v*v*v},Out:function(v){return--v*v*v+1},InOut:function(v){return(v*=2)<1?.5*v*v*v:.5*((v-=2)*v*v+2)}}),Quartic:Object.freeze({In:function(v){return v*v*v*v},Out:function(v){return 1- --v*v*v*v},InOut:function(v){return(v*=2)<1?.5*v*v*v*v:-.5*((v-=2)*v*v*v-2)}}),Quintic:Object.freeze({In:function(v){return v*v*v*v*v},Out:function(v){return--v*v*v*v*v+1},InOut:function(v){return(v*=2)<1?.5*v*v*v*v*v:.5*((v-=2)*v*v*v*v+2)}}),Sinusoidal:Object.freeze({In:function(v){return 1-Math.sin((1-v)*Math.PI/2)},Out:function(v){return Math.sin(v*Math.PI/2)},InOut:function(v){return .5*(1-Math.sin(Math.PI*(.5-v)))}}),Exponential:Object.freeze({In:function(v){return v===0?0:Math.pow(1024,v-1)},Out:function(v){return v===1?1:1-Math.pow(2,-10*v)},InOut:function(v){return v===0?0:v===1?1:(v*=2)<1?.5*Math.pow(1024,v-1):.5*(-Math.pow(2,-10*(v-1))+2)}}),Circular:Object.freeze({In:function(v){return 1-Math.sqrt(1-v*v)},Out:function(v){return Math.sqrt(1- --v*v)},InOut:function(v){return(v*=2)<1?-.5*(Math.sqrt(1-v*v)-1):.5*(Math.sqrt(1-(v-=2)*v)+1)}}),Elastic:Object.freeze({In:function(v){return v===0?0:v===1?1:-Math.pow(2,10*(v-1))*Math.sin((v-1.1)*5*Math.PI)},Out:function(v){return v===0?0:v===1?1:Math.pow(2,-10*v)*Math.sin((v-.1)*5*Math.PI)+1},InOut:function(v){return v===0?0:v===1?1:(v*=2,v<1?-.5*Math.pow(2,10*(v-1))*Math.sin((v-1.1)*5*Math.PI):.5*Math.pow(2,-10*(v-1))*Math.sin((v-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(v){var e=1.70158;return v===1?1:v*v*((e+1)*v-e)},Out:function(v){var e=1.70158;return v===0?0:--v*v*((e+1)*v+e)+1},InOut:function(v){var e=2.5949095;return(v*=2)<1?.5*(v*v*((e+1)*v-e)):.5*((v-=2)*v*((e+1)*v+e)+2)}}),Bounce:Object.freeze({In:function(v){return 1-Easing.Bounce.Out(1-v)},Out:function(v){return v<1/2.75?7.5625*v*v:v<2/2.75?7.5625*(v-=1.5/2.75)*v+.75:v<2.5/2.75?7.5625*(v-=2.25/2.75)*v+.9375:7.5625*(v-=2.625/2.75)*v+.984375},InOut:function(v){return v<.5?Easing.Bounce.In(v*2)*.5:Easing.Bounce.Out(v*2-1)*.5+.5}}),generatePow:function(v){return v===void 0&&(v=4),v=v<Number.EPSILON?Number.EPSILON:v,v=v>1e4?1e4:v,{In:function(e){return Math.pow(e,v)},Out:function(e){return 1-Math.pow(1-e,v)},InOut:function(e){return e<.5?Math.pow(e*2,v)/2:(1-Math.pow(2-e*2,v))/2+.5}}}}),now=function(){return performance.now()},Group$1=function(){function v(){this._tweens={},this._tweensAddedDuringUpdate={}}return v.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map(function(n){return e._tweens[n]})},v.prototype.removeAll=function(){this._tweens={}},v.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},v.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},v.prototype.update=function(e,n){e===void 0&&(e=now()),n===void 0&&(n=!1);var r=Object.keys(this._tweens);if(r.length===0)return!1;for(;r.length>0;){this._tweensAddedDuringUpdate={};for(var C=0;C<r.length;C++){var w=this._tweens[r[C]],E=!n;w&&w.update(e,E)===!1&&!n&&delete this._tweens[r[C]]}r=Object.keys(this._tweensAddedDuringUpdate)}return!0},v}(),Interpolation={Linear:function(v,e){var n=v.length-1,r=n*e,C=Math.floor(r),w=Interpolation.Utils.Linear;return e<0?w(v[0],v[1],r):e>1?w(v[n],v[n-1],n-r):w(v[C],v[C+1>n?n:C+1],r-C)},Bezier:function(v,e){for(var n=0,r=v.length-1,C=Math.pow,w=Interpolation.Utils.Bernstein,E=0;E<=r;E++)n+=C(1-e,r-E)*C(e,E)*v[E]*w(r,E);return n},CatmullRom:function(v,e){var n=v.length-1,r=n*e,C=Math.floor(r),w=Interpolation.Utils.CatmullRom;return v[0]===v[n]?(e<0&&(C=Math.floor(r=n*(1+e))),w(v[(C-1+n)%n],v[C],v[(C+1)%n],v[(C+2)%n],r-C)):e<0?v[0]-(w(v[0],v[0],v[1],v[1],-r)-v[0]):e>1?v[n]-(w(v[n],v[n],v[n-1],v[n-1],r-n)-v[n]):w(v[C?C-1:0],v[C],v[n<C+1?n:C+1],v[n<C+2?n:C+2],r-C)},Utils:{Linear:function(v,e,n){return(e-v)*n+v},Bernstein:function(v,e){var n=Interpolation.Utils.Factorial;return n(v)/n(e)/n(v-e)},Factorial:function(){var v=[1];return function(e){var n=1;if(v[e])return v[e];for(var r=e;r>1;r--)n*=r;return v[e]=n,n}}(),CatmullRom:function(v,e,n,r,C){var w=(n-v)*.5,E=(r-e)*.5,O=C*C,le=C*O;return(2*e-2*n+w+E)*le+(-3*e+3*n-2*w-E)*O+w*C+e}}},Sequence=function(){function v(){}return v.nextId=function(){return v._nextId++},v._nextId=0,v}(),mainGroup=new Group$1,Tween=function(){function v(e,n){n===void 0&&(n=mainGroup),this._object=e,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Easing.Linear.None,this._interpolationFunction=Interpolation.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Sequence.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return v.prototype.getId=function(){return this._id},v.prototype.isPlaying=function(){return this._isPlaying},v.prototype.isPaused=function(){return this._isPaused},v.prototype.getDuration=function(){return this._duration},v.prototype.to=function(e,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=e,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},v.prototype.duration=function(e){return e===void 0&&(e=1e3),this._duration=e<0?0:e,this},v.prototype.dynamic=function(e){return e===void 0&&(e=!1),this._isDynamic=e,this},v.prototype.start=function(e,n){if(e===void 0&&(e=now()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var r in this._valuesStartRepeat)this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=e,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var C={};for(var w in this._valuesEnd)C[w]=this._valuesEnd[w];this._valuesEnd=C}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},v.prototype.startFromCurrentValues=function(e){return this.start(e,!0)},v.prototype._setupProperties=function(e,n,r,C,w){for(var E in r){var O=e[E],le=Array.isArray(O),fe=le?"array":typeof O,Se=!le&&Array.isArray(r[E]);if(!(fe==="undefined"||fe==="function")){if(Se){var ze=r[E];if(ze.length===0)continue;for(var ke=[O],Fe=0,mt=ze.length;Fe<mt;Fe+=1){var Lt=this._handleRelativeValue(O,ze[Fe]);if(isNaN(Lt)){Se=!1,console.warn("Found invalid interpolation list. Skipping.");break}ke.push(Lt)}Se&&(r[E]=ke)}if((fe==="object"||le)&&O&&!Se){n[E]=le?[]:{};var bt=O;for(var Ue in bt)n[E][Ue]=bt[Ue];C[E]=le?[]:{};var ze=r[E];if(!this._isDynamic){var Gt={};for(var Ue in ze)Gt[Ue]=ze[Ue];r[E]=ze=Gt}this._setupProperties(bt,n[E],ze,C[E],w)}else(typeof n[E]=="undefined"||w)&&(n[E]=O),le||(n[E]*=1),Se?C[E]=r[E].slice().reverse():C[E]=n[E]||0}}},v.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},v.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},v.prototype.pause=function(e){return e===void 0&&(e=now()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this),this)},v.prototype.resume=function(e){return e===void 0&&(e=now()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},v.prototype.stopChainedTweens=function(){for(var e=0,n=this._chainedTweens.length;e<n;e++)this._chainedTweens[e].stop();return this},v.prototype.group=function(e){return e===void 0&&(e=mainGroup),this._group=e,this},v.prototype.delay=function(e){return e===void 0&&(e=0),this._delayTime=e,this},v.prototype.repeat=function(e){return e===void 0&&(e=0),this._initialRepeat=e,this._repeat=e,this},v.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},v.prototype.yoyo=function(e){return e===void 0&&(e=!1),this._yoyo=e,this},v.prototype.easing=function(e){return e===void 0&&(e=Easing.Linear.None),this._easingFunction=e,this},v.prototype.interpolation=function(e){return e===void 0&&(e=Interpolation.Linear),this._interpolationFunction=e,this},v.prototype.chain=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return this._chainedTweens=e,this},v.prototype.onStart=function(e){return this._onStartCallback=e,this},v.prototype.onEveryStart=function(e){return this._onEveryStartCallback=e,this},v.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},v.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},v.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},v.prototype.onStop=function(e){return this._onStopCallback=e,this},v.prototype.update=function(e,n){var r;if(e===void 0&&(e=now()),n===void 0&&(n=!0),this._isPaused)return!0;var C=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>C)return!1;n&&this.start(e,!0)}if(this._goToEnd=!1,e<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var w=e-this._startTime,E=this._duration+((r=this._repeatDelayTime)!==null&&r!==void 0?r:this._delayTime),O=this._duration+this._repeat*E,le=this._calculateElapsedPortion(w,E,O),fe=this._easingFunction(le),Se=this._calculateCompletionStatus(w,E);if(Se==="repeat"&&this._processRepetition(w,E),this._updateProperties(this._object,this._valuesStart,this._valuesEnd,fe),Se==="about-to-repeat"&&this._processRepetition(w,E),this._onUpdateCallback&&this._onUpdateCallback(this._object,le),Se==="repeat"||Se==="about-to-repeat")this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1;else if(Se==="completed"){this._isPlaying=!1,this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var ze=0,ke=this._chainedTweens.length;ze<ke;ze++)this._chainedTweens[ze].start(this._startTime+this._duration,!1)}return Se!=="completed"},v.prototype._calculateElapsedPortion=function(e,n,r){if(this._duration===0||e>r)return 1;var C=e%n,w=Math.min(C/this._duration,1);return w===0&&e!==0&&e%this._duration===0?1:w},v.prototype._calculateCompletionStatus=function(e,n){return this._duration!==0&&e<this._duration?"playing":this._repeat<=0?"completed":e===this._duration?"about-to-repeat":"repeat"},v.prototype._processRepetition=function(e,n){var r=Math.min(Math.trunc((e-this._duration)/n)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=r);for(var C in this._valuesStartRepeat){var w=this._valuesEnd[C];!this._yoyo&&typeof w=="string"&&(this._valuesStartRepeat[C]=this._valuesStartRepeat[C]+parseFloat(w)),this._yoyo&&this._swapEndStartRepeatValues(C),this._valuesStart[C]=this._valuesStartRepeat[C]}this._yoyo&&(this._reversed=!this._reversed),this._startTime+=n*r},v.prototype._updateProperties=function(e,n,r,C){for(var w in r)if(n[w]!==void 0){var E=n[w]||0,O=r[w],le=Array.isArray(e[w]),fe=Array.isArray(O),Se=!le&&fe;Se?e[w]=this._interpolationFunction(O,C):typeof O=="object"&&O?this._updateProperties(e[w],E,O,C):(O=this._handleRelativeValue(E,O),typeof O=="number"&&(e[w]=E+(O-E)*C))}},v.prototype._handleRelativeValue=function(e,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?e+parseFloat(n):parseFloat(n)},v.prototype._swapEndStartRepeatValues=function(e){var n=this._valuesStartRepeat[e],r=this._valuesEnd[e];typeof r=="string"?this._valuesStartRepeat[e]=this._valuesStartRepeat[e]+parseFloat(r):this._valuesStartRepeat[e]=this._valuesEnd[e],this._valuesEnd[e]=n},v}(),VERSION$1="23.1.2",nextId=Sequence.nextId,TWEEN=mainGroup,getAll=TWEEN.getAll.bind(TWEEN),removeAll=TWEEN.removeAll.bind(TWEEN),add=TWEEN.add.bind(TWEEN),remove=TWEEN.remove.bind(TWEEN),update=TWEEN.update.bind(TWEEN),exports$1={Easing,Group:Group$1,Interpolation,now,Sequence,nextId,Tween,VERSION:VERSION$1,getAll,removeAll,add,remove,update};const tween_esm=Object.freeze(Object.defineProperty({__proto__:null,Easing,Group:Group$1,Interpolation,Sequence,Tween,VERSION:VERSION$1,add,default:exports$1,getAll,nextId,now,remove,removeAll,update},Symbol.toStringTag,{value:"Module"}));/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2010-2025 Three.js Authors
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
@@ -4207,10 +4207,10 @@ void main() {
|
|
|
4207
4207
|
#include <premultiplied_alpha_fragment>
|
|
4208
4208
|
|
|
4209
4209
|
}
|
|
4210
|
-
`};class LineMaterial extends ShaderMaterial{constructor(e){super({type:"LineMaterial",uniforms:UniformsUtils.clone(ShaderLib.line.uniforms),vertexShader:ShaderLib.line.vertexShader,fragmentShader:ShaderLib.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?this.defines.USE_ALPHA_TO_COVERAGE="":delete this.defines.USE_ALPHA_TO_COVERAGE)}}const _box$1=new Box3,_vector=new Vector3;class LineSegmentsGeometry extends InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],n=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],r=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(r),this.setAttribute("position",new Float32BufferAttribute(e,3)),this.setAttribute("uv",new Float32BufferAttribute(n,2))}applyMatrix4(e){const n=this.attributes.instanceStart,r=this.attributes.instanceEnd;return n!==void 0&&(n.applyMatrix4(e),r.applyMatrix4(e),n.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const r=new InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceStart",new InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new InterleavedBufferAttribute(r,3,3)),this.instanceCount=this.attributes.instanceStart.count,this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const r=new InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceColorStart",new InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceColorEnd",new InterleavedBufferAttribute(r,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new WireframeGeometry(e.geometry)),this}fromLineSegments(e){const n=e.geometry;return this.setPositions(n.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;e!==void 0&&n!==void 0&&(this.boundingBox.setFromBufferAttribute(e),_box$1.setFromBufferAttribute(n),this.boundingBox.union(_box$1))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere$1),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(e!==void 0&&n!==void 0){const r=this.boundingSphere.center;this.boundingBox.getCenter(r);let C=0;for(let w=0,E=e.count;w<E;w++)_vector.fromBufferAttribute(e,w),C=Math.max(C,r.distanceToSquared(_vector)),_vector.fromBufferAttribute(n,w),C=Math.max(C,r.distanceToSquared(_vector));this.boundingSphere.radius=Math.sqrt(C),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}}class CSS2DObject extends Object3D{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new Vector2(.5,.5),this.addEventListener("removed",function(){this.traverse(function(n){n.element instanceof n.element.ownerDocument.defaultView.Element&&n.element.parentNode!==null&&n.element.remove()})})}copy(e,n){return super.copy(e,n),this.element=e.element.cloneNode(!0),this.center=e.center,this}}new Vector3;new Matrix4;new Matrix4;new Vector3;new Vector3;new Vector3;new Vector3;class CSS3DObject extends Object3D{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(n){n.element instanceof n.element.ownerDocument.defaultView.Element&&n.element.parentNode!==null&&n.element.remove()})})}copy(e,n){return super.copy(e,n),this.element=e.element.cloneNode(!0),this}}class CSS3DSprite extends CSS3DObject{constructor(e){super(e),this.isCSS3DSprite=!0,this.rotation2D=0}copy(e,n){return super.copy(e,n),this.rotation2D=e.rotation2D,this}}new Matrix4;new Matrix4;function ascending(v,e){return v==null||e==null?NaN:v<e?-1:v>e?1:v>=e?0:NaN}function descending(v,e){return v==null||e==null?NaN:e<v?-1:e>v?1:e>=v?0:NaN}function bisector(v){let e,n,r;v.length!==2?(e=ascending,n=(O,le)=>ascending(v(O),le),r=(O,le)=>v(O)-le):(e=v===ascending||v===descending?v:zero$1,n=v,r=v);function C(O,le,fe=0,Se=O.length){if(fe<Se){if(e(le,le)!==0)return Se;do{const ze=fe+Se>>>1;n(O[ze],le)<0?fe=ze+1:Se=ze}while(fe<Se)}return fe}function w(O,le,fe=0,Se=O.length){if(fe<Se){if(e(le,le)!==0)return Se;do{const ze=fe+Se>>>1;n(O[ze],le)<=0?fe=ze+1:Se=ze}while(fe<Se)}return fe}function E(O,le,fe=0,Se=O.length){const ze=C(O,le,fe,Se-1);return ze>fe&&r(O[ze-1],le)>-r(O[ze],le)?ze-1:ze}return{left:C,center:E,right:w}}function zero$1(){return 0}function number$1(v){return v===null?NaN:+v}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$1).center;function extent(v,e){let n,r;if(e===void 0)for(const C of v)C!=null&&(n===void 0?C>=C&&(n=r=C):(n>C&&(n=C),r<C&&(r=C)));else{let C=-1;for(let w of v)(w=e(w,++C,v))!=null&&(n===void 0?w>=w&&(n=r=w):(n>w&&(n=w),r<w&&(r=w)))}return[n,r]}class Adder{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let r=0;for(let C=0;C<this._n&&C<32;C++){const w=n[C],E=e+w,O=Math.abs(e)<Math.abs(w)?e-(E-w):w-(E-e);O&&(n[r++]=O),e=E}return n[r]=e,this._n=r+1,this}valueOf(){const e=this._partials;let n=this._n,r,C,w,E=0;if(n>0){for(E=e[--n];n>0&&(r=E,C=e[--n],E=r+C,w=C-(E-r),!w););n>0&&(w<0&&e[n-1]<0||w>0&&e[n-1]>0)&&(C=w*2,r=E+C,C==r-E&&(E=r))}return E}}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(v,e,n){const r=(e-v)/Math.max(0,n),C=Math.floor(Math.log10(r)),w=r/Math.pow(10,C),E=w>=e10?10:w>=e5?5:w>=e2?2:1;let O,le,fe;return C<0?(fe=Math.pow(10,-C)/E,O=Math.round(v*fe),le=Math.round(e*fe),O/fe<v&&++O,le/fe>e&&--le,fe=-fe):(fe=Math.pow(10,C)*E,O=Math.round(v/fe),le=Math.round(e/fe),O*fe<v&&++O,le*fe>e&&--le),le<O&&.5<=n&&n<2?tickSpec(v,e,n*2):[O,le,fe]}function ticks(v,e,n){if(e=+e,v=+v,n=+n,!(n>0))return[];if(v===e)return[v];const r=e<v,[C,w,E]=r?tickSpec(e,v,n):tickSpec(v,e,n);if(!(w>=C))return[];const O=w-C+1,le=new Array(O);if(r)if(E<0)for(let fe=0;fe<O;++fe)le[fe]=(w-fe)/-E;else for(let fe=0;fe<O;++fe)le[fe]=(w-fe)*E;else if(E<0)for(let fe=0;fe<O;++fe)le[fe]=(C+fe)/-E;else for(let fe=0;fe<O;++fe)le[fe]=(C+fe)*E;return le}function tickIncrement(v,e,n){return e=+e,v=+v,n=+n,tickSpec(v,e,n)[2]}function tickStep(v,e,n){e=+e,v=+v,n=+n;const r=e<v,C=r?tickIncrement(e,v,n):tickIncrement(v,e,n);return(r?-1:1)*(C<0?1/-C:C)}function mean(v,e){let n=0,r=0;if(e===void 0)for(let C of v)C!=null&&(C=+C)>=C&&(++n,r+=C);else{let C=-1;for(let w of v)(w=e(w,++C,v))!=null&&(w=+w)>=w&&(++n,r+=w)}if(n)return r/n}function*flatten$1(v){for(const e of v)yield*In(e)}function merge(v){return Array.from(flatten$1(v))}var epsilon$3=1e-6,epsilon2=1e-12,pi$3=Math.PI,halfPi$2=pi$3/2,quarterPi=pi$3/4,tau$1=pi$3*2,degrees$1=180/pi$3,radians$1=pi$3/180,abs$1=Math.abs,atan=Math.atan,atan2$1=Math.atan2,cos$2=Math.cos,exp=Math.exp,hypot=Math.hypot,log=Math.log,sin$2=Math.sin,sign$2=Math.sign||function(v){return v>0?1:v<0?-1:0},sqrt$2=Math.sqrt,tan=Math.tan;function acos$1(v){return v>1?0:v<-1?pi$3:Math.acos(v)}function asin$1(v){return v>1?halfPi$2:v<-1?-halfPi$2:Math.asin(v)}function haversin(v){return(v=sin$2(v/2))*v}function noop(){}function streamGeometry(v,e){v&&streamGeometryType.hasOwnProperty(v.type)&&streamGeometryType[v.type](v,e)}var streamObjectType={Feature:function(v,e){streamGeometry(v.geometry,e)},FeatureCollection:function(v,e){for(var n=v.features,r=-1,C=n.length;++r<C;)streamGeometry(n[r].geometry,e)}},streamGeometryType={Sphere:function(v,e){e.sphere()},Point:function(v,e){v=v.coordinates,e.point(v[0],v[1],v[2])},MultiPoint:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)v=n[r],e.point(v[0],v[1],v[2])},LineString:function(v,e){streamLine(v.coordinates,e,0)},MultiLineString:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)streamLine(n[r],e,0)},Polygon:function(v,e){streamPolygon(v.coordinates,e)},MultiPolygon:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)streamPolygon(n[r],e)},GeometryCollection:function(v,e){for(var n=v.geometries,r=-1,C=n.length;++r<C;)streamGeometry(n[r],e)}};function streamLine(v,e,n){var r=-1,C=v.length-n,w;for(e.lineStart();++r<C;)w=v[r],e.point(w[0],w[1],w[2]);e.lineEnd()}function streamPolygon(v,e){var n=-1,r=v.length;for(e.polygonStart();++n<r;)streamLine(v[n],e,1);e.polygonEnd()}function geoStream(v,e){v&&streamObjectType.hasOwnProperty(v.type)?streamObjectType[v.type](v,e):streamGeometry(v,e)}var areaRingSum=new Adder,areaSum=new Adder,lambda00$2,phi00$2,lambda0$2,cosPhi0$1,sinPhi0$1,areaStream={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){areaRingSum=new Adder,areaStream.lineStart=areaRingStart,areaStream.lineEnd=areaRingEnd},polygonEnd:function(){var v=+areaRingSum;areaSum.add(v<0?tau$1+v:v),this.lineStart=this.lineEnd=this.point=noop},sphere:function(){areaSum.add(tau$1)}};function areaRingStart(){areaStream.point=areaPointFirst}function areaRingEnd(){areaPoint(lambda00$2,phi00$2)}function areaPointFirst(v,e){areaStream.point=areaPoint,lambda00$2=v,phi00$2=e,v*=radians$1,e*=radians$1,lambda0$2=v,cosPhi0$1=cos$2(e=e/2+quarterPi),sinPhi0$1=sin$2(e)}function areaPoint(v,e){v*=radians$1,e*=radians$1,e=e/2+quarterPi;var n=v-lambda0$2,r=n>=0?1:-1,C=r*n,w=cos$2(e),E=sin$2(e),O=sinPhi0$1*E,le=cosPhi0$1*w+O*cos$2(C),fe=O*r*sin$2(C);areaRingSum.add(atan2$1(fe,le)),lambda0$2=v,cosPhi0$1=w,sinPhi0$1=E}function spherical$1(v){return[atan2$1(v[1],v[0]),asin$1(v[2])]}function cartesian$1(v){var e=v[0],n=v[1],r=cos$2(n);return[r*cos$2(e),r*sin$2(e),sin$2(n)]}function cartesianDot$1(v,e){return v[0]*e[0]+v[1]*e[1]+v[2]*e[2]}function cartesianCross$1(v,e){return[v[1]*e[2]-v[2]*e[1],v[2]*e[0]-v[0]*e[2],v[0]*e[1]-v[1]*e[0]]}function cartesianAddInPlace(v,e){v[0]+=e[0],v[1]+=e[1],v[2]+=e[2]}function cartesianScale(v,e){return[v[0]*e,v[1]*e,v[2]*e]}function cartesianNormalizeInPlace(v){var e=sqrt$2(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);v[0]/=e,v[1]/=e,v[2]/=e}var lambda0$1,phi0,lambda1,phi1,lambda2,lambda00$1,phi00$1,p0,deltaSum,ranges,range,boundsStream$1={point:boundsPoint$1,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){boundsStream$1.point=boundsRingPoint,boundsStream$1.lineStart=boundsRingStart,boundsStream$1.lineEnd=boundsRingEnd,deltaSum=new Adder,areaStream.polygonStart()},polygonEnd:function(){areaStream.polygonEnd(),boundsStream$1.point=boundsPoint$1,boundsStream$1.lineStart=boundsLineStart,boundsStream$1.lineEnd=boundsLineEnd,areaRingSum<0?(lambda0$1=-(lambda1=180),phi0=-(phi1=90)):deltaSum>epsilon$3?phi1=90:deltaSum<-epsilon$3&&(phi0=-90),range[0]=lambda0$1,range[1]=lambda1},sphere:function(){lambda0$1=-(lambda1=180),phi0=-(phi1=90)}};function boundsPoint$1(v,e){ranges.push(range=[lambda0$1=v,lambda1=v]),e<phi0&&(phi0=e),e>phi1&&(phi1=e)}function linePoint(v,e){var n=cartesian$1([v*radians$1,e*radians$1]);if(p0){var r=cartesianCross$1(p0,n),C=[r[1],-r[0],0],w=cartesianCross$1(C,r);cartesianNormalizeInPlace(w),w=spherical$1(w);var E=v-lambda2,O=E>0?1:-1,le=w[0]*degrees$1*O,fe,Se=abs$1(E)>180;Se^(O*lambda2<le&&le<O*v)?(fe=w[1]*degrees$1,fe>phi1&&(phi1=fe)):(le=(le+360)%360-180,Se^(O*lambda2<le&&le<O*v)?(fe=-w[1]*degrees$1,fe<phi0&&(phi0=fe)):(e<phi0&&(phi0=e),e>phi1&&(phi1=e))),Se?v<lambda2?angle(lambda0$1,v)>angle(lambda0$1,lambda1)&&(lambda1=v):angle(v,lambda1)>angle(lambda0$1,lambda1)&&(lambda0$1=v):lambda1>=lambda0$1?(v<lambda0$1&&(lambda0$1=v),v>lambda1&&(lambda1=v)):v>lambda2?angle(lambda0$1,v)>angle(lambda0$1,lambda1)&&(lambda1=v):angle(v,lambda1)>angle(lambda0$1,lambda1)&&(lambda0$1=v)}else ranges.push(range=[lambda0$1=v,lambda1=v]);e<phi0&&(phi0=e),e>phi1&&(phi1=e),p0=n,lambda2=v}function boundsLineStart(){boundsStream$1.point=linePoint}function boundsLineEnd(){range[0]=lambda0$1,range[1]=lambda1,boundsStream$1.point=boundsPoint$1,p0=null}function boundsRingPoint(v,e){if(p0){var n=v-lambda2;deltaSum.add(abs$1(n)>180?n+(n>0?360:-360):n)}else lambda00$1=v,phi00$1=e;areaStream.point(v,e),linePoint(v,e)}function boundsRingStart(){areaStream.lineStart()}function boundsRingEnd(){boundsRingPoint(lambda00$1,phi00$1),areaStream.lineEnd(),abs$1(deltaSum)>epsilon$3&&(lambda0$1=-(lambda1=180)),range[0]=lambda0$1,range[1]=lambda1,p0=null}function angle(v,e){return(e-=v)<0?e+360:e}function rangeCompare(v,e){return v[0]-e[0]}function rangeContains(v,e){return v[0]<=v[1]?v[0]<=e&&e<=v[1]:e<v[0]||v[1]<e}function je$1(v){var e,n,r,C,w,E,O;if(phi1=lambda1=-(lambda0$1=phi0=1/0),ranges=[],geoStream(v,boundsStream$1),n=ranges.length){for(ranges.sort(rangeCompare),e=1,r=ranges[0],w=[r];e<n;++e)C=ranges[e],rangeContains(r,C[0])||rangeContains(r,C[1])?(angle(r[0],C[1])>angle(r[0],r[1])&&(r[1]=C[1]),angle(C[0],r[1])>angle(r[0],r[1])&&(r[0]=C[0])):w.push(r=C);for(E=-1/0,n=w.length-1,e=0,r=w[n];e<=n;r=C,++e)C=w[e],(O=angle(r[1],C[0]))>E&&(E=O,lambda0$1=C[0],lambda1=r[1])}return ranges=range=null,lambda0$1===1/0||phi0===1/0?[[NaN,NaN],[NaN,NaN]]:[[lambda0$1,phi0],[lambda1,phi1]]}var W0,W1,X0,Y0,Z0,X1,Y1,Z1,X2,Y2,Z2,lambda00,phi00,x0$1,y0$1,z0,centroidStream={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){centroidStream.lineStart=centroidRingStart,centroidStream.lineEnd=centroidRingEnd},polygonEnd:function(){centroidStream.lineStart=centroidLineStart,centroidStream.lineEnd=centroidLineEnd}};function centroidPoint(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e);centroidPointCartesian(n*cos$2(v),n*sin$2(v),sin$2(e))}function centroidPointCartesian(v,e,n){++W0,X0+=(v-X0)/W0,Y0+=(e-Y0)/W0,Z0+=(n-Z0)/W0}function centroidLineStart(){centroidStream.point=centroidLinePointFirst}function centroidLinePointFirst(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e);x0$1=n*cos$2(v),y0$1=n*sin$2(v),z0=sin$2(e),centroidStream.point=centroidLinePoint,centroidPointCartesian(x0$1,y0$1,z0)}function centroidLinePoint(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e),r=n*cos$2(v),C=n*sin$2(v),w=sin$2(e),E=atan2$1(sqrt$2((E=y0$1*w-z0*C)*E+(E=z0*r-x0$1*w)*E+(E=x0$1*C-y0$1*r)*E),x0$1*r+y0$1*C+z0*w);W1+=E,X1+=E*(x0$1+(x0$1=r)),Y1+=E*(y0$1+(y0$1=C)),Z1+=E*(z0+(z0=w)),centroidPointCartesian(x0$1,y0$1,z0)}function centroidLineEnd(){centroidStream.point=centroidPoint}function centroidRingStart(){centroidStream.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(lambda00,phi00),centroidStream.point=centroidPoint}function centroidRingPointFirst(v,e){lambda00=v,phi00=e,v*=radians$1,e*=radians$1,centroidStream.point=centroidRingPoint;var n=cos$2(e);x0$1=n*cos$2(v),y0$1=n*sin$2(v),z0=sin$2(e),centroidPointCartesian(x0$1,y0$1,z0)}function centroidRingPoint(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e),r=n*cos$2(v),C=n*sin$2(v),w=sin$2(e),E=y0$1*w-z0*C,O=z0*r-x0$1*w,le=x0$1*C-y0$1*r,fe=hypot(E,O,le),Se=asin$1(fe),ze=fe&&-Se/fe;X2.add(ze*E),Y2.add(ze*O),Z2.add(ze*le),W1+=Se,X1+=Se*(x0$1+(x0$1=r)),Y1+=Se*(y0$1+(y0$1=C)),Z1+=Se*(z0+(z0=w)),centroidPointCartesian(x0$1,y0$1,z0)}function geoCentroid(v){W0=W1=X0=Y0=Z0=X1=Y1=Z1=0,X2=new Adder,Y2=new Adder,Z2=new Adder,geoStream(v,centroidStream);var e=+X2,n=+Y2,r=+Z2,C=hypot(e,n,r);return C<epsilon2&&(e=X1,n=Y1,r=Z1,W1<epsilon$3&&(e=X0,n=Y0,r=Z0),C=hypot(e,n,r),C<epsilon2)?[NaN,NaN]:[atan2$1(n,e)*degrees$1,asin$1(r/C)*degrees$1]}function compose(v,e){function n(r,C){return r=v(r,C),e(r[0],r[1])}return v.invert&&e.invert&&(n.invert=function(r,C){return r=e.invert(r,C),r&&v.invert(r[0],r[1])}),n}function rotationIdentity(v,e){return abs$1(v)>pi$3&&(v-=Math.round(v/tau$1)*tau$1),[v,e]}rotationIdentity.invert=rotationIdentity;function rotateRadians(v,e,n){return(v%=tau$1)?e||n?compose(rotationLambda(v),rotationPhiGamma(e,n)):rotationLambda(v):e||n?rotationPhiGamma(e,n):rotationIdentity}function forwardRotationLambda(v){return function(e,n){return e+=v,abs$1(e)>pi$3&&(e-=Math.round(e/tau$1)*tau$1),[e,n]}}function rotationLambda(v){var e=forwardRotationLambda(v);return e.invert=forwardRotationLambda(-v),e}function rotationPhiGamma(v,e){var n=cos$2(v),r=sin$2(v),C=cos$2(e),w=sin$2(e);function E(O,le){var fe=cos$2(le),Se=cos$2(O)*fe,ze=sin$2(O)*fe,ke=sin$2(le),Fe=ke*n+Se*r;return[atan2$1(ze*C-Fe*w,Se*n-ke*r),asin$1(Fe*C+ze*w)]}return E.invert=function(O,le){var fe=cos$2(le),Se=cos$2(O)*fe,ze=sin$2(O)*fe,ke=sin$2(le),Fe=ke*C-ze*w;return[atan2$1(ze*C+ke*w,Se*n+Fe*r),asin$1(Fe*n-Se*r)]},E}function geoRotation(v){v=rotateRadians(v[0]*radians$1,v[1]*radians$1,v.length>2?v[2]*radians$1:0);function e(n){return n=v(n[0]*radians$1,n[1]*radians$1),n[0]*=degrees$1,n[1]*=degrees$1,n}return e.invert=function(n){return n=v.invert(n[0]*radians$1,n[1]*radians$1),n[0]*=degrees$1,n[1]*=degrees$1,n},e}function circleStream(v,e,n,r,C,w){if(n){var E=cos$2(e),O=sin$2(e),le=r*n;C==null?(C=e+r*tau$1,w=e-le/2):(C=circleRadius(E,C),w=circleRadius(E,w),(r>0?C<w:C>w)&&(C+=r*tau$1));for(var fe,Se=C;r>0?Se>w:Se<w;Se-=le)fe=spherical$1([E,-O*cos$2(Se),-O*sin$2(Se)]),v.point(fe[0],fe[1])}}function circleRadius(v,e){e=cartesian$1(e),e[0]-=v,cartesianNormalizeInPlace(e);var n=acos$1(-e[1]);return((-e[2]<0?-n:n)+tau$1-epsilon$3)%tau$1}function clipBuffer(){var v=[],e;return{point:function(n,r,C){e.push([n,r,C])},lineStart:function(){v.push(e=[])},lineEnd:noop,rejoin:function(){v.length>1&&v.push(v.pop().concat(v.shift()))},result:function(){var n=v;return v=[],e=null,n}}}function pointEqual(v,e){return abs$1(v[0]-e[0])<epsilon$3&&abs$1(v[1]-e[1])<epsilon$3}function Intersection(v,e,n,r){this.x=v,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function clipRejoin(v,e,n,r,C){var w=[],E=[],O,le;if(v.forEach(function(mt){if(!((Lt=mt.length-1)<=0)){var Lt,bt=mt[0],Ue=mt[Lt],Gt;if(pointEqual(bt,Ue)){if(!bt[2]&&!Ue[2]){for(C.lineStart(),O=0;O<Lt;++O)C.point((bt=mt[O])[0],bt[1]);C.lineEnd();return}Ue[0]+=2*epsilon$3}w.push(Gt=new Intersection(bt,mt,null,!0)),E.push(Gt.o=new Intersection(bt,null,Gt,!1)),w.push(Gt=new Intersection(Ue,mt,null,!1)),E.push(Gt.o=new Intersection(Ue,null,Gt,!0))}}),!!w.length){for(E.sort(e),link(w),link(E),O=0,le=E.length;O<le;++O)E[O].e=n=!n;for(var fe=w[0],Se,ze;;){for(var ke=fe,Fe=!0;ke.v;)if((ke=ke.n)===fe)return;Se=ke.z,C.lineStart();do{if(ke.v=ke.o.v=!0,ke.e){if(Fe)for(O=0,le=Se.length;O<le;++O)C.point((ze=Se[O])[0],ze[1]);else r(ke.x,ke.n.x,1,C);ke=ke.n}else{if(Fe)for(Se=ke.p.z,O=Se.length-1;O>=0;--O)C.point((ze=Se[O])[0],ze[1]);else r(ke.x,ke.p.x,-1,C);ke=ke.p}ke=ke.o,Se=ke.z,Fe=!Fe}while(!ke.v);C.lineEnd()}}}function link(v){if(e=v.length){for(var e,n=0,r=v[0],C;++n<e;)r.n=C=v[n],C.p=r,r=C;r.n=C=v[0],C.p=r}}function longitude(v){return abs$1(v[0])<=pi$3?v[0]:sign$2(v[0])*((abs$1(v[0])+pi$3)%tau$1-pi$3)}function polygonContains(v,e){var n=longitude(e),r=e[1],C=sin$2(r),w=[sin$2(n),-cos$2(n),0],E=0,O=0,le=new Adder;C===1?r=halfPi$2+epsilon$3:C===-1&&(r=-halfPi$2-epsilon$3);for(var fe=0,Se=v.length;fe<Se;++fe)if(ke=(ze=v[fe]).length)for(var ze,ke,Fe=ze[ke-1],mt=longitude(Fe),Lt=Fe[1]/2+quarterPi,bt=sin$2(Lt),Ue=cos$2(Lt),Gt=0;Gt<ke;++Gt,mt=Xt,bt=wt,Ue=Vt,Fe=xt){var xt=ze[Gt],Xt=longitude(xt),Zt=xt[1]/2+quarterPi,wt=sin$2(Zt),Vt=cos$2(Zt),Wt=Xt-mt,It=Wt>=0?1:-1,Nt=It*Wt,Ft=Nt>pi$3,jt=bt*wt;if(le.add(atan2$1(jt*It*sin$2(Nt),Ue*Vt+jt*cos$2(Nt))),E+=Ft?Wt+It*tau$1:Wt,Ft^mt>=n^Xt>=n){var n0=cartesianCross$1(cartesian$1(Fe),cartesian$1(xt));cartesianNormalizeInPlace(n0);var s0=cartesianCross$1(w,n0);cartesianNormalizeInPlace(s0);var qt=(Ft^Wt>=0?-1:1)*asin$1(s0[2]);(r>qt||r===qt&&(n0[0]||n0[1]))&&(O+=Ft^Wt>=0?1:-1)}}return(E<-epsilon$3||E<epsilon$3&&le<-epsilon2)^O&1}function clip(v,e,n,r){return function(C){var w=e(C),E=clipBuffer(),O=e(E),le=!1,fe,Se,ze,ke={point:Fe,lineStart:Lt,lineEnd:bt,polygonStart:function(){ke.point=Ue,ke.lineStart=Gt,ke.lineEnd=xt,Se=[],fe=[]},polygonEnd:function(){ke.point=Fe,ke.lineStart=Lt,ke.lineEnd=bt,Se=merge(Se);var Xt=polygonContains(fe,r);Se.length?(le||(C.polygonStart(),le=!0),clipRejoin(Se,compareIntersection,Xt,n,C)):Xt&&(le||(C.polygonStart(),le=!0),C.lineStart(),n(null,null,1,C),C.lineEnd()),le&&(C.polygonEnd(),le=!1),Se=fe=null},sphere:function(){C.polygonStart(),C.lineStart(),n(null,null,1,C),C.lineEnd(),C.polygonEnd()}};function Fe(Xt,Zt){v(Xt,Zt)&&C.point(Xt,Zt)}function mt(Xt,Zt){w.point(Xt,Zt)}function Lt(){ke.point=mt,w.lineStart()}function bt(){ke.point=Fe,w.lineEnd()}function Ue(Xt,Zt){ze.push([Xt,Zt]),O.point(Xt,Zt)}function Gt(){O.lineStart(),ze=[]}function xt(){Ue(ze[0][0],ze[0][1]),O.lineEnd();var Xt=O.clean(),Zt=E.result(),wt,Vt=Zt.length,Wt,It,Nt;if(ze.pop(),fe.push(ze),ze=null,!!Vt){if(Xt&1){if(It=Zt[0],(Wt=It.length-1)>0){for(le||(C.polygonStart(),le=!0),C.lineStart(),wt=0;wt<Wt;++wt)C.point((Nt=It[wt])[0],Nt[1]);C.lineEnd()}return}Vt>1&&Xt&2&&Zt.push(Zt.pop().concat(Zt.shift())),Se.push(Zt.filter(validSegment))}}return ke}}function validSegment(v){return v.length>1}function compareIntersection(v,e){return((v=v.x)[0]<0?v[1]-halfPi$2-epsilon$3:halfPi$2-v[1])-((e=e.x)[0]<0?e[1]-halfPi$2-epsilon$3:halfPi$2-e[1])}const clipAntimeridian=clip(function(){return!0},clipAntimeridianLine,clipAntimeridianInterpolate,[-pi$3,-halfPi$2]);function clipAntimeridianLine(v){var e=NaN,n=NaN,r=NaN,C;return{lineStart:function(){v.lineStart(),C=1},point:function(w,E){var O=w>0?pi$3:-pi$3,le=abs$1(w-e);abs$1(le-pi$3)<epsilon$3?(v.point(e,n=(n+E)/2>0?halfPi$2:-halfPi$2),v.point(r,n),v.lineEnd(),v.lineStart(),v.point(O,n),v.point(w,n),C=0):r!==O&&le>=pi$3&&(abs$1(e-r)<epsilon$3&&(e-=r*epsilon$3),abs$1(w-O)<epsilon$3&&(w-=O*epsilon$3),n=clipAntimeridianIntersect(e,n,w,E),v.point(r,n),v.lineEnd(),v.lineStart(),v.point(O,n),C=0),v.point(e=w,n=E),r=O},lineEnd:function(){v.lineEnd(),e=n=NaN},clean:function(){return 2-C}}}function clipAntimeridianIntersect(v,e,n,r){var C,w,E=sin$2(v-n);return abs$1(E)>epsilon$3?atan((sin$2(e)*(w=cos$2(r))*sin$2(n)-sin$2(r)*(C=cos$2(e))*sin$2(v))/(C*w*E)):(e+r)/2}function clipAntimeridianInterpolate(v,e,n,r){var C;if(v==null)C=n*halfPi$2,r.point(-pi$3,C),r.point(0,C),r.point(pi$3,C),r.point(pi$3,0),r.point(pi$3,-C),r.point(0,-C),r.point(-pi$3,-C),r.point(-pi$3,0),r.point(-pi$3,C);else if(abs$1(v[0]-e[0])>epsilon$3){var w=v[0]<e[0]?pi$3:-pi$3;C=n*w/2,r.point(-w,C),r.point(0,C),r.point(w,C)}else r.point(e[0],e[1])}function clipCircle(v){var e=cos$2(v),n=2*radians$1,r=e>0,C=abs$1(e)>epsilon$3;function w(Se,ze,ke,Fe){circleStream(Fe,v,n,ke,Se,ze)}function E(Se,ze){return cos$2(Se)*cos$2(ze)>e}function O(Se){var ze,ke,Fe,mt,Lt;return{lineStart:function(){mt=Fe=!1,Lt=1},point:function(bt,Ue){var Gt=[bt,Ue],xt,Xt=E(bt,Ue),Zt=r?Xt?0:fe(bt,Ue):Xt?fe(bt+(bt<0?pi$3:-pi$3),Ue):0;if(!ze&&(mt=Fe=Xt)&&Se.lineStart(),Xt!==Fe&&(xt=le(ze,Gt),(!xt||pointEqual(ze,xt)||pointEqual(Gt,xt))&&(Gt[2]=1)),Xt!==Fe)Lt=0,Xt?(Se.lineStart(),xt=le(Gt,ze),Se.point(xt[0],xt[1])):(xt=le(ze,Gt),Se.point(xt[0],xt[1],2),Se.lineEnd()),ze=xt;else if(C&&ze&&r^Xt){var wt;!(Zt&ke)&&(wt=le(Gt,ze,!0))&&(Lt=0,r?(Se.lineStart(),Se.point(wt[0][0],wt[0][1]),Se.point(wt[1][0],wt[1][1]),Se.lineEnd()):(Se.point(wt[1][0],wt[1][1]),Se.lineEnd(),Se.lineStart(),Se.point(wt[0][0],wt[0][1],3)))}Xt&&(!ze||!pointEqual(ze,Gt))&&Se.point(Gt[0],Gt[1]),ze=Gt,Fe=Xt,ke=Zt},lineEnd:function(){Fe&&Se.lineEnd(),ze=null},clean:function(){return Lt|(mt&&Fe)<<1}}}function le(Se,ze,ke){var Fe=cartesian$1(Se),mt=cartesian$1(ze),Lt=[1,0,0],bt=cartesianCross$1(Fe,mt),Ue=cartesianDot$1(bt,bt),Gt=bt[0],xt=Ue-Gt*Gt;if(!xt)return!ke&&Se;var Xt=e*Ue/xt,Zt=-e*Gt/xt,wt=cartesianCross$1(Lt,bt),Vt=cartesianScale(Lt,Xt),Wt=cartesianScale(bt,Zt);cartesianAddInPlace(Vt,Wt);var It=wt,Nt=cartesianDot$1(Vt,It),Ft=cartesianDot$1(It,It),jt=Nt*Nt-Ft*(cartesianDot$1(Vt,Vt)-1);if(!(jt<0)){var n0=sqrt$2(jt),s0=cartesianScale(It,(-Nt-n0)/Ft);if(cartesianAddInPlace(s0,Vt),s0=spherical$1(s0),!ke)return s0;var qt=Se[0],Ht=ze[0],$t=Se[1],Kt=ze[1],e0;Ht<qt&&(e0=qt,qt=Ht,Ht=e0);var u0=Ht-qt,d0=abs$1(u0-pi$3)<epsilon$3,_0=d0||u0<epsilon$3;if(!d0&&Kt<$t&&(e0=$t,$t=Kt,Kt=e0),_0?d0?$t+Kt>0^s0[1]<(abs$1(s0[0]-qt)<epsilon$3?$t:Kt):$t<=s0[1]&&s0[1]<=Kt:u0>pi$3^(qt<=s0[0]&&s0[0]<=Ht)){var J0=cartesianScale(It,(-Nt+n0)/Ft);return cartesianAddInPlace(J0,Vt),[s0,spherical$1(J0)]}}}function fe(Se,ze){var ke=r?v:pi$3-v,Fe=0;return Se<-ke?Fe|=1:Se>ke&&(Fe|=2),ze<-ke?Fe|=4:ze>ke&&(Fe|=8),Fe}return clip(E,O,w,r?[0,-v]:[-pi$3,v-pi$3])}function clipLine(v,e,n,r,C,w){var E=v[0],O=v[1],le=e[0],fe=e[1],Se=0,ze=1,ke=le-E,Fe=fe-O,mt;if(mt=n-E,!(!ke&&mt>0)){if(mt/=ke,ke<0){if(mt<Se)return;mt<ze&&(ze=mt)}else if(ke>0){if(mt>ze)return;mt>Se&&(Se=mt)}if(mt=C-E,!(!ke&&mt<0)){if(mt/=ke,ke<0){if(mt>ze)return;mt>Se&&(Se=mt)}else if(ke>0){if(mt<Se)return;mt<ze&&(ze=mt)}if(mt=r-O,!(!Fe&&mt>0)){if(mt/=Fe,Fe<0){if(mt<Se)return;mt<ze&&(ze=mt)}else if(Fe>0){if(mt>ze)return;mt>Se&&(Se=mt)}if(mt=w-O,!(!Fe&&mt<0)){if(mt/=Fe,Fe<0){if(mt>ze)return;mt>Se&&(Se=mt)}else if(Fe>0){if(mt<Se)return;mt<ze&&(ze=mt)}return Se>0&&(v[0]=E+Se*ke,v[1]=O+Se*Fe),ze<1&&(e[0]=E+ze*ke,e[1]=O+ze*Fe),!0}}}}}var clipMax=1e9,clipMin=-clipMax;function clipRectangle(v,e,n,r){function C(fe,Se){return v<=fe&&fe<=n&&e<=Se&&Se<=r}function w(fe,Se,ze,ke){var Fe=0,mt=0;if(fe==null||(Fe=E(fe,ze))!==(mt=E(Se,ze))||le(fe,Se)<0^ze>0)do ke.point(Fe===0||Fe===3?v:n,Fe>1?r:e);while((Fe=(Fe+ze+4)%4)!==mt);else ke.point(Se[0],Se[1])}function E(fe,Se){return abs$1(fe[0]-v)<epsilon$3?Se>0?0:3:abs$1(fe[0]-n)<epsilon$3?Se>0?2:1:abs$1(fe[1]-e)<epsilon$3?Se>0?1:0:Se>0?3:2}function O(fe,Se){return le(fe.x,Se.x)}function le(fe,Se){var ze=E(fe,1),ke=E(Se,1);return ze!==ke?ze-ke:ze===0?Se[1]-fe[1]:ze===1?fe[0]-Se[0]:ze===2?fe[1]-Se[1]:Se[0]-fe[0]}return function(fe){var Se=fe,ze=clipBuffer(),ke,Fe,mt,Lt,bt,Ue,Gt,xt,Xt,Zt,wt,Vt={point:Wt,lineStart:jt,lineEnd:n0,polygonStart:Nt,polygonEnd:Ft};function Wt(qt,Ht){C(qt,Ht)&&Se.point(qt,Ht)}function It(){for(var qt=0,Ht=0,$t=Fe.length;Ht<$t;++Ht)for(var Kt=Fe[Ht],e0=1,u0=Kt.length,d0=Kt[0],_0,J0,H0=d0[0],bi=d0[1];e0<u0;++e0)_0=H0,J0=bi,d0=Kt[e0],H0=d0[0],bi=d0[1],J0<=r?bi>r&&(H0-_0)*(r-J0)>(bi-J0)*(v-_0)&&++qt:bi<=r&&(H0-_0)*(r-J0)<(bi-J0)*(v-_0)&&--qt;return qt}function Nt(){Se=ze,ke=[],Fe=[],wt=!0}function Ft(){var qt=It(),Ht=wt&&qt,$t=(ke=merge(ke)).length;(Ht||$t)&&(fe.polygonStart(),Ht&&(fe.lineStart(),w(null,null,1,fe),fe.lineEnd()),$t&&clipRejoin(ke,O,qt,w,fe),fe.polygonEnd()),Se=fe,ke=Fe=mt=null}function jt(){Vt.point=s0,Fe&&Fe.push(mt=[]),Zt=!0,Xt=!1,Gt=xt=NaN}function n0(){ke&&(s0(Lt,bt),Ue&&Xt&&ze.rejoin(),ke.push(ze.result())),Vt.point=Wt,Xt&&Se.lineEnd()}function s0(qt,Ht){var $t=C(qt,Ht);if(Fe&&mt.push([qt,Ht]),Zt)Lt=qt,bt=Ht,Ue=$t,Zt=!1,$t&&(Se.lineStart(),Se.point(qt,Ht));else if($t&&Xt)Se.point(qt,Ht);else{var Kt=[Gt=Math.max(clipMin,Math.min(clipMax,Gt)),xt=Math.max(clipMin,Math.min(clipMax,xt))],e0=[qt=Math.max(clipMin,Math.min(clipMax,qt)),Ht=Math.max(clipMin,Math.min(clipMax,Ht))];clipLine(Kt,e0,v,e,n,r)?(Xt||(Se.lineStart(),Se.point(Kt[0],Kt[1])),Se.point(e0[0],e0[1]),$t||Se.lineEnd(),wt=!1):$t&&(Se.lineStart(),Se.point(qt,Ht),wt=!1)}Gt=qt,xt=Ht,Xt=$t}return Vt}}var lengthSum,lambda0,sinPhi0,cosPhi0,lengthStream={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){lengthStream.point=lengthPointFirst,lengthStream.lineEnd=lengthLineEnd}function lengthLineEnd(){lengthStream.point=lengthStream.lineEnd=noop}function lengthPointFirst(v,e){v*=radians$1,e*=radians$1,lambda0=v,sinPhi0=sin$2(e),cosPhi0=cos$2(e),lengthStream.point=lengthPoint}function lengthPoint(v,e){v*=radians$1,e*=radians$1;var n=sin$2(e),r=cos$2(e),C=abs$1(v-lambda0),w=cos$2(C),E=sin$2(C),O=r*E,le=cosPhi0*n-sinPhi0*r*w,fe=sinPhi0*n+cosPhi0*r*w;lengthSum.add(atan2$1(sqrt$2(O*O+le*le),fe)),lambda0=v,sinPhi0=n,cosPhi0=r}function length(v){return lengthSum=new Adder,geoStream(v,lengthStream),+lengthSum}var coordinates=[null,null],object$1={type:"LineString",coordinates};function Re$1(v,e){return coordinates[0]=v,coordinates[1]=e,length(object$1)}var containsObjectType={Feature:function(v,e){return containsGeometry(v.geometry,e)},FeatureCollection:function(v,e){for(var n=v.features,r=-1,C=n.length;++r<C;)if(containsGeometry(n[r].geometry,e))return!0;return!1}},containsGeometryType={Sphere:function(){return!0},Point:function(v,e){return containsPoint(v.coordinates,e)},MultiPoint:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)if(containsPoint(n[r],e))return!0;return!1},LineString:function(v,e){return containsLine(v.coordinates,e)},MultiLineString:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)if(containsLine(n[r],e))return!0;return!1},Polygon:function(v,e){return containsPolygon(v.coordinates,e)},MultiPolygon:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)if(containsPolygon(n[r],e))return!0;return!1},GeometryCollection:function(v,e){for(var n=v.geometries,r=-1,C=n.length;++r<C;)if(containsGeometry(n[r],e))return!0;return!1}};function containsGeometry(v,e){return v&&containsGeometryType.hasOwnProperty(v.type)?containsGeometryType[v.type](v,e):!1}function containsPoint(v,e){return Re$1(v,e)===0}function containsLine(v,e){for(var n,r,C,w=0,E=v.length;w<E;w++){if(r=Re$1(v[w],e),r===0||w>0&&(C=Re$1(v[w],v[w-1]),C>0&&n<=C&&r<=C&&(n+r-C)*(1-Math.pow((n-r)/C,2))<epsilon2*C))return!0;n=r}return!1}function containsPolygon(v,e){return!!polygonContains(v.map(ringRadians),pointRadians(e))}function ringRadians(v){return v=v.map(pointRadians),v.pop(),v}function pointRadians(v){return[v[0]*radians$1,v[1]*radians$1]}function Ne(v,e){return(v&&containsObjectType.hasOwnProperty(v.type)?containsObjectType[v.type]:containsGeometry)(v,e)}function Ge$1(v,e){var n=v[0]*radians$1,r=v[1]*radians$1,C=e[0]*radians$1,w=e[1]*radians$1,E=cos$2(r),O=sin$2(r),le=cos$2(w),fe=sin$2(w),Se=E*cos$2(n),ze=E*sin$2(n),ke=le*cos$2(C),Fe=le*sin$2(C),mt=2*asin$1(sqrt$2(haversin(w-r)+E*le*haversin(C-n))),Lt=sin$2(mt),bt=mt?function(Ue){var Gt=sin$2(Ue*=mt)/Lt,xt=sin$2(mt-Ue)/Lt,Xt=xt*Se+Gt*ke,Zt=xt*ze+Gt*Fe,wt=xt*O+Gt*fe;return[atan2$1(Zt,Xt)*degrees$1,atan2$1(wt,sqrt$2(Xt*Xt+Zt*Zt))*degrees$1]}:function(){return[n*degrees$1,r*degrees$1]};return bt.distance=mt,bt}const identity$2=v=>v;var x0=1/0,y0=x0,x1=-x0,y1=x1,boundsStream={point:boundsPoint,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var v=[[x0,y0],[x1,y1]];return x1=y1=-(y0=x0=1/0),v}};function boundsPoint(v,e){v<x0&&(x0=v),v>x1&&(x1=v),e<y0&&(y0=e),e>y1&&(y1=e)}function transformer$1(v){return function(e){var n=new TransformStream;for(var r in v)n[r]=v[r];return n.stream=e,n}}function TransformStream(){}TransformStream.prototype={constructor:TransformStream,point:function(v,e){this.stream.point(v,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function fit(v,e,n){var r=v.clipExtent&&v.clipExtent();return v.scale(150).translate([0,0]),r!=null&&v.clipExtent(null),geoStream(n,v.stream(boundsStream)),e(boundsStream.result()),r!=null&&v.clipExtent(r),v}function fitExtent(v,e,n){return fit(v,function(r){var C=e[1][0]-e[0][0],w=e[1][1]-e[0][1],E=Math.min(C/(r[1][0]-r[0][0]),w/(r[1][1]-r[0][1])),O=+e[0][0]+(C-E*(r[1][0]+r[0][0]))/2,le=+e[0][1]+(w-E*(r[1][1]+r[0][1]))/2;v.scale(150*E).translate([O,le])},n)}function fitSize(v,e,n){return fitExtent(v,[[0,0],e],n)}function fitWidth(v,e,n){return fit(v,function(r){var C=+e,w=C/(r[1][0]-r[0][0]),E=(C-w*(r[1][0]+r[0][0]))/2,O=-w*r[0][1];v.scale(150*w).translate([E,O])},n)}function fitHeight(v,e,n){return fit(v,function(r){var C=+e,w=C/(r[1][1]-r[0][1]),E=-w*r[0][0],O=(C-w*(r[1][1]+r[0][1]))/2;v.scale(150*w).translate([E,O])},n)}var maxDepth=16,cosMinDistance=cos$2(30*radians$1);function resample(v,e){return+e?resample$1(v,e):resampleNone(v)}function resampleNone(v){return transformer$1({point:function(e,n){e=v(e,n),this.stream.point(e[0],e[1])}})}function resample$1(v,e){function n(r,C,w,E,O,le,fe,Se,ze,ke,Fe,mt,Lt,bt){var Ue=fe-r,Gt=Se-C,xt=Ue*Ue+Gt*Gt;if(xt>4*e&&Lt--){var Xt=E+ke,Zt=O+Fe,wt=le+mt,Vt=sqrt$2(Xt*Xt+Zt*Zt+wt*wt),Wt=asin$1(wt/=Vt),It=abs$1(abs$1(wt)-1)<epsilon$3||abs$1(w-ze)<epsilon$3?(w+ze)/2:atan2$1(Zt,Xt),Nt=v(It,Wt),Ft=Nt[0],jt=Nt[1],n0=Ft-r,s0=jt-C,qt=Gt*n0-Ue*s0;(qt*qt/xt>e||abs$1((Ue*n0+Gt*s0)/xt-.5)>.3||E*ke+O*Fe+le*mt<cosMinDistance)&&(n(r,C,w,E,O,le,Ft,jt,It,Xt/=Vt,Zt/=Vt,wt,Lt,bt),bt.point(Ft,jt),n(Ft,jt,It,Xt,Zt,wt,fe,Se,ze,ke,Fe,mt,Lt,bt))}}return function(r){var C,w,E,O,le,fe,Se,ze,ke,Fe,mt,Lt,bt={point:Ue,lineStart:Gt,lineEnd:Xt,polygonStart:function(){r.polygonStart(),bt.lineStart=Zt},polygonEnd:function(){r.polygonEnd(),bt.lineStart=Gt}};function Ue(Wt,It){Wt=v(Wt,It),r.point(Wt[0],Wt[1])}function Gt(){ze=NaN,bt.point=xt,r.lineStart()}function xt(Wt,It){var Nt=cartesian$1([Wt,It]),Ft=v(Wt,It);n(ze,ke,Se,Fe,mt,Lt,ze=Ft[0],ke=Ft[1],Se=Wt,Fe=Nt[0],mt=Nt[1],Lt=Nt[2],maxDepth,r),r.point(ze,ke)}function Xt(){bt.point=Ue,r.lineEnd()}function Zt(){Gt(),bt.point=wt,bt.lineEnd=Vt}function wt(Wt,It){xt(C=Wt,It),w=ze,E=ke,O=Fe,le=mt,fe=Lt,bt.point=xt}function Vt(){n(ze,ke,Se,Fe,mt,Lt,w,E,C,O,le,fe,maxDepth,r),bt.lineEnd=Xt,Xt()}return bt}}var transformRadians=transformer$1({point:function(v,e){this.stream.point(v*radians$1,e*radians$1)}});function transformRotate(v){return transformer$1({point:function(e,n){var r=v(e,n);return this.stream.point(r[0],r[1])}})}function scaleTranslate(v,e,n,r,C){function w(E,O){return E*=r,O*=C,[e+v*E,n-v*O]}return w.invert=function(E,O){return[(E-e)/v*r,(n-O)/v*C]},w}function scaleTranslateRotate(v,e,n,r,C,w){if(!w)return scaleTranslate(v,e,n,r,C);var E=cos$2(w),O=sin$2(w),le=E*v,fe=O*v,Se=E/v,ze=O/v,ke=(O*n-E*e)/v,Fe=(O*e+E*n)/v;function mt(Lt,bt){return Lt*=r,bt*=C,[le*Lt-fe*bt+e,n-fe*Lt-le*bt]}return mt.invert=function(Lt,bt){return[r*(Se*Lt-ze*bt+ke),C*(Fe-ze*Lt-Se*bt)]},mt}function projection(v){return projectionMutator(function(){return v})()}function projectionMutator(v){var e,n=150,r=480,C=250,w=0,E=0,O=0,le=0,fe=0,Se,ze=0,ke=1,Fe=1,mt=null,Lt=clipAntimeridian,bt=null,Ue,Gt,xt,Xt=identity$2,Zt=.5,wt,Vt,Wt,It,Nt;function Ft(qt){return Wt(qt[0]*radians$1,qt[1]*radians$1)}function jt(qt){return qt=Wt.invert(qt[0],qt[1]),qt&&[qt[0]*degrees$1,qt[1]*degrees$1]}Ft.stream=function(qt){return It&&Nt===qt?It:It=transformRadians(transformRotate(Se)(Lt(wt(Xt(Nt=qt)))))},Ft.preclip=function(qt){return arguments.length?(Lt=qt,mt=void 0,s0()):Lt},Ft.postclip=function(qt){return arguments.length?(Xt=qt,bt=Ue=Gt=xt=null,s0()):Xt},Ft.clipAngle=function(qt){return arguments.length?(Lt=+qt?clipCircle(mt=qt*radians$1):(mt=null,clipAntimeridian),s0()):mt*degrees$1},Ft.clipExtent=function(qt){return arguments.length?(Xt=qt==null?(bt=Ue=Gt=xt=null,identity$2):clipRectangle(bt=+qt[0][0],Ue=+qt[0][1],Gt=+qt[1][0],xt=+qt[1][1]),s0()):bt==null?null:[[bt,Ue],[Gt,xt]]},Ft.scale=function(qt){return arguments.length?(n=+qt,n0()):n},Ft.translate=function(qt){return arguments.length?(r=+qt[0],C=+qt[1],n0()):[r,C]},Ft.center=function(qt){return arguments.length?(w=qt[0]%360*radians$1,E=qt[1]%360*radians$1,n0()):[w*degrees$1,E*degrees$1]},Ft.rotate=function(qt){return arguments.length?(O=qt[0]%360*radians$1,le=qt[1]%360*radians$1,fe=qt.length>2?qt[2]%360*radians$1:0,n0()):[O*degrees$1,le*degrees$1,fe*degrees$1]},Ft.angle=function(qt){return arguments.length?(ze=qt%360*radians$1,n0()):ze*degrees$1},Ft.reflectX=function(qt){return arguments.length?(ke=qt?-1:1,n0()):ke<0},Ft.reflectY=function(qt){return arguments.length?(Fe=qt?-1:1,n0()):Fe<0},Ft.precision=function(qt){return arguments.length?(wt=resample(Vt,Zt=qt*qt),s0()):sqrt$2(Zt)},Ft.fitExtent=function(qt,Ht){return fitExtent(Ft,qt,Ht)},Ft.fitSize=function(qt,Ht){return fitSize(Ft,qt,Ht)},Ft.fitWidth=function(qt,Ht){return fitWidth(Ft,qt,Ht)},Ft.fitHeight=function(qt,Ht){return fitHeight(Ft,qt,Ht)};function n0(){var qt=scaleTranslateRotate(n,0,0,ke,Fe,ze).apply(null,e(w,E)),Ht=scaleTranslateRotate(n,r-qt[0],C-qt[1],ke,Fe,ze);return Se=rotateRadians(O,le,fe),Vt=compose(e,Ht),Wt=compose(Se,Vt),wt=resample(Vt,Zt),s0()}function s0(){return It=Nt=null,Ft}return function(){return e=v.apply(this,arguments),Ft.invert=e.invert&&jt,n0()}}function azimuthalInvert(v){return function(e,n){var r=sqrt$2(e*e+n*n),C=v(r),w=sin$2(C),E=cos$2(C);return[atan2$1(e*w,r*E),asin$1(r&&n*w/r)]}}function mercatorRaw(v,e){return[v,log(tan((halfPi$2+e)/2))]}mercatorRaw.invert=function(v,e){return[v,2*atan(exp(e))-halfPi$2]};function i$2(){return mercatorProjection(mercatorRaw).scale(961/tau$1)}function mercatorProjection(v){var e=projection(v),n=e.center,r=e.scale,C=e.translate,w=e.clipExtent,E=null,O,le,fe;e.scale=function(ze){return arguments.length?(r(ze),Se()):r()},e.translate=function(ze){return arguments.length?(C(ze),Se()):C()},e.center=function(ze){return arguments.length?(n(ze),Se()):n()},e.clipExtent=function(ze){return arguments.length?(ze==null?E=O=le=fe=null:(E=+ze[0][0],O=+ze[0][1],le=+ze[1][0],fe=+ze[1][1]),Se()):E==null?null:[[E,O],[le,fe]]};function Se(){var ze=pi$3*r(),ke=e(geoRotation(e.rotate()).invert([0,0]));return w(E==null?[[ke[0]-ze,ke[1]-ze],[ke[0]+ze,ke[1]+ze]]:v===mercatorRaw?[[Math.max(ke[0]-ze,E),O],[Math.min(ke[0]+ze,le),fe]]:[[E,Math.max(ke[1]-ze,O)],[le,Math.min(ke[1]+ze,fe)]])}return Se()}function equirectangularRaw(v,e){return[v,e]}equirectangularRaw.invert=equirectangularRaw;function s$1(){return projection(equirectangularRaw).scale(152.63)}function stereographicRaw(v,e){var n=cos$2(e),r=1+cos$2(v)*n;return[n*sin$2(v)/r,sin$2(e)/r]}stereographicRaw.invert=azimuthalInvert(function(v){return 2*atan(v)});function geoStereographic(){return projection(stereographicRaw).scale(250).clipAngle(142)}var abs=Math.abs,cos$1=Math.cos,sin$1=Math.sin,epsilon$2=1e-6,pi$2=Math.PI,halfPi$1=pi$2/2;function sinci(v){return v?v/Math.sin(v):1}function acos(v){return v>1?0:v<-1?pi$2:Math.acos(v)}function sqrt$1(v){return v>0?Math.sqrt(v):0}function aitoffRaw(v,e){var n=cos$1(e),r=sinci(acos(n*cos$1(v/=2)));return[2*n*sin$1(v)*r,sin$1(e)*r]}aitoffRaw.invert=function(v,e){if(!(v*v+4*e*e>pi$2*pi$2+epsilon$2)){var n=v,r=e,C=25;do{var w=sin$1(n),E=sin$1(n/2),O=cos$1(n/2),le=sin$1(r),fe=cos$1(r),Se=sin$1(2*r),ze=le*le,ke=fe*fe,Fe=E*E,mt=1-ke*O*O,Lt=mt?acos(fe*O)*sqrt$1(bt=1/mt):bt=0,bt,Ue=2*Lt*fe*E-v,Gt=Lt*le-e,xt=bt*(ke*Fe+Lt*fe*O*ze),Xt=bt*(.5*w*Se-Lt*2*le*E),Zt=bt*.25*(Se*E-Lt*le*ke*w),wt=bt*(ze*O+Lt*Fe*fe),Vt=Xt*Zt-wt*xt;if(!Vt)break;var Wt=(Gt*Xt-Ue*wt)/Vt,It=(Ue*Zt-Gt*xt)/Vt;n-=Wt,r-=It}while((abs(Wt)>epsilon$2||abs(It)>epsilon$2)&&--C>0);return[n,r]}};function winkel3Raw(v,e){var n=aitoffRaw(v,e);return[(n[0]+v/halfPi$1)/2,(n[1]+e)/2]}winkel3Raw.invert=function(v,e){var n=v,r=e,C=25;do{var w=cos$1(r),E=sin$1(r),O=sin$1(2*r),le=E*E,fe=w*w,Se=sin$1(n),ze=cos$1(n/2),ke=sin$1(n/2),Fe=ke*ke,mt=1-fe*ze*ze,Lt=mt?acos(w*ze)*sqrt$1(bt=1/mt):bt=0,bt,Ue=.5*(2*Lt*w*ke+n/halfPi$1)-v,Gt=.5*(Lt*E+r)-e,xt=.5*bt*(fe*Fe+Lt*w*ze*le)+.5/halfPi$1,Xt=bt*(Se*O/4-Lt*E*ke),Zt=.125*bt*(O*ke-Lt*E*fe*Se),wt=.5*bt*(le*ze+Lt*Fe*w)+.5,Vt=Xt*Zt-wt*xt,Wt=(Gt*Xt-Ue*wt)/Vt,It=(Ue*Zt-Gt*xt)/Vt;n-=Wt,r-=It}while((abs(Wt)>epsilon$2||abs(It)>epsilon$2)&&--C>0);return[n,r]};function p$1(){return projection(winkel3Raw).scale(158.837)}const i$1=v=>v instanceof Vector3?v:new Vector3(...v);function p(v,e,n=0){const r=(90-e)*Math.PI/180,C=(90-v)*Math.PI/180;return[n*Math.sin(r)*Math.cos(C),n*Math.cos(r),n*Math.sin(r)*Math.sin(C)]}function earcut(v,e,n=2){const r=e&&e.length,C=r?e[0]*n:v.length;let w=linkedList(v,0,C,n,!0);const E=[];if(!w||w.next===w.prev)return E;let O,le,fe;if(r&&(w=eliminateHoles(v,e,w,n)),v.length>80*n){O=v[0],le=v[1];let Se=O,ze=le;for(let ke=n;ke<C;ke+=n){const Fe=v[ke],mt=v[ke+1];Fe<O&&(O=Fe),mt<le&&(le=mt),Fe>Se&&(Se=Fe),mt>ze&&(ze=mt)}fe=Math.max(Se-O,ze-le),fe=fe!==0?32767/fe:0}return earcutLinked(w,E,n,O,le,fe,0),E}function linkedList(v,e,n,r,C){let w;if(C===signedArea(v,e,n,r)>0)for(let E=e;E<n;E+=r)w=insertNode(E/r|0,v[E],v[E+1],w);else for(let E=n-r;E>=e;E-=r)w=insertNode(E/r|0,v[E],v[E+1],w);return w&&equals(w,w.next)&&(removeNode(w),w=w.next),w}function filterPoints(v,e){if(!v)return v;e||(e=v);let n=v,r;do if(r=!1,!n.steiner&&(equals(n,n.next)||area(n.prev,n,n.next)===0)){if(removeNode(n),n=e=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==e);return e}function earcutLinked(v,e,n,r,C,w,E){if(!v)return;!E&&w&&indexCurve(v,r,C,w);let O=v;for(;v.prev!==v.next;){const le=v.prev,fe=v.next;if(w?isEarHashed(v,r,C,w):isEar(v)){e.push(le.i,v.i,fe.i),removeNode(v),v=fe.next,O=fe.next;continue}if(v=fe,v===O){E?E===1?(v=cureLocalIntersections(filterPoints(v),e),earcutLinked(v,e,n,r,C,w,2)):E===2&&splitEarcut(v,e,n,r,C,w):earcutLinked(filterPoints(v),e,n,r,C,w,1);break}}}function isEar(v){const e=v.prev,n=v,r=v.next;if(area(e,n,r)>=0)return!1;const C=e.x,w=n.x,E=r.x,O=e.y,le=n.y,fe=r.y,Se=Math.min(C,w,E),ze=Math.min(O,le,fe),ke=Math.max(C,w,E),Fe=Math.max(O,le,fe);let mt=r.next;for(;mt!==e;){if(mt.x>=Se&&mt.x<=ke&&mt.y>=ze&&mt.y<=Fe&&pointInTriangleExceptFirst(C,O,w,le,E,fe,mt.x,mt.y)&&area(mt.prev,mt,mt.next)>=0)return!1;mt=mt.next}return!0}function isEarHashed(v,e,n,r){const C=v.prev,w=v,E=v.next;if(area(C,w,E)>=0)return!1;const O=C.x,le=w.x,fe=E.x,Se=C.y,ze=w.y,ke=E.y,Fe=Math.min(O,le,fe),mt=Math.min(Se,ze,ke),Lt=Math.max(O,le,fe),bt=Math.max(Se,ze,ke),Ue=zOrder(Fe,mt,e,n,r),Gt=zOrder(Lt,bt,e,n,r);let xt=v.prevZ,Xt=v.nextZ;for(;xt&&xt.z>=Ue&&Xt&&Xt.z<=Gt;){if(xt.x>=Fe&&xt.x<=Lt&&xt.y>=mt&&xt.y<=bt&&xt!==C&&xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,xt.x,xt.y)&&area(xt.prev,xt,xt.next)>=0||(xt=xt.prevZ,Xt.x>=Fe&&Xt.x<=Lt&&Xt.y>=mt&&Xt.y<=bt&&Xt!==C&&Xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,Xt.x,Xt.y)&&area(Xt.prev,Xt,Xt.next)>=0))return!1;Xt=Xt.nextZ}for(;xt&&xt.z>=Ue;){if(xt.x>=Fe&&xt.x<=Lt&&xt.y>=mt&&xt.y<=bt&&xt!==C&&xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,xt.x,xt.y)&&area(xt.prev,xt,xt.next)>=0)return!1;xt=xt.prevZ}for(;Xt&&Xt.z<=Gt;){if(Xt.x>=Fe&&Xt.x<=Lt&&Xt.y>=mt&&Xt.y<=bt&&Xt!==C&&Xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,Xt.x,Xt.y)&&area(Xt.prev,Xt,Xt.next)>=0)return!1;Xt=Xt.nextZ}return!0}function cureLocalIntersections(v,e){let n=v;do{const r=n.prev,C=n.next.next;!equals(r,C)&&intersects(r,n,n.next,C)&&locallyInside(r,C)&&locallyInside(C,r)&&(e.push(r.i,n.i,C.i),removeNode(n),removeNode(n.next),n=v=C),n=n.next}while(n!==v);return filterPoints(n)}function splitEarcut(v,e,n,r,C,w){let E=v;do{let O=E.next.next;for(;O!==E.prev;){if(E.i!==O.i&&isValidDiagonal(E,O)){let le=splitPolygon(E,O);E=filterPoints(E,E.next),le=filterPoints(le,le.next),earcutLinked(E,e,n,r,C,w,0),earcutLinked(le,e,n,r,C,w,0);return}O=O.next}E=E.next}while(E!==v)}function eliminateHoles(v,e,n,r){const C=[];for(let w=0,E=e.length;w<E;w++){const O=e[w]*r,le=w<E-1?e[w+1]*r:v.length,fe=linkedList(v,O,le,r,!1);fe===fe.next&&(fe.steiner=!0),C.push(getLeftmost(fe))}C.sort(compareXYSlope);for(let w=0;w<C.length;w++)n=eliminateHole(C[w],n);return n}function compareXYSlope(v,e){let n=v.x-e.x;if(n===0&&(n=v.y-e.y,n===0)){const r=(v.next.y-v.y)/(v.next.x-v.x),C=(e.next.y-e.y)/(e.next.x-e.x);n=r-C}return n}function eliminateHole(v,e){const n=findHoleBridge(v,e);if(!n)return e;const r=splitPolygon(n,v);return filterPoints(r,r.next),filterPoints(n,n.next)}function findHoleBridge(v,e){let n=e;const r=v.x,C=v.y;let w=-1/0,E;if(equals(v,n))return n;do{if(equals(v,n.next))return n.next;if(C<=n.y&&C>=n.next.y&&n.next.y!==n.y){const ze=n.x+(C-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(ze<=r&&ze>w&&(w=ze,E=n.x<n.next.x?n:n.next,ze===r))return E}n=n.next}while(n!==e);if(!E)return null;const O=E,le=E.x,fe=E.y;let Se=1/0;n=E;do{if(r>=n.x&&n.x>=le&&r!==n.x&&pointInTriangle(C<fe?r:w,C,le,fe,C<fe?w:r,C,n.x,n.y)){const ze=Math.abs(C-n.y)/(r-n.x);locallyInside(n,v)&&(ze<Se||ze===Se&&(n.x>E.x||n.x===E.x&§orContainsSector(E,n)))&&(E=n,Se=ze)}n=n.next}while(n!==O);return E}function sectorContainsSector(v,e){return area(v.prev,v,e.prev)<0&&area(e.next,v,v.next)<0}function indexCurve(v,e,n,r){let C=v;do C.z===0&&(C.z=zOrder(C.x,C.y,e,n,r)),C.prevZ=C.prev,C.nextZ=C.next,C=C.next;while(C!==v);C.prevZ.nextZ=null,C.prevZ=null,sortLinked(C)}function sortLinked(v){let e,n=1;do{let r=v,C;v=null;let w=null;for(e=0;r;){e++;let E=r,O=0;for(let fe=0;fe<n&&(O++,E=E.nextZ,!!E);fe++);let le=n;for(;O>0||le>0&&E;)O!==0&&(le===0||!E||r.z<=E.z)?(C=r,r=r.nextZ,O--):(C=E,E=E.nextZ,le--),w?w.nextZ=C:v=C,C.prevZ=w,w=C;r=E}w.nextZ=null,n*=2}while(e>1);return v}function zOrder(v,e,n,r,C){return v=(v-n)*C|0,e=(e-r)*C|0,v=(v|v<<8)&16711935,v=(v|v<<4)&252645135,v=(v|v<<2)&858993459,v=(v|v<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,v|e<<1}function getLeftmost(v){let e=v,n=v;do(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next;while(e!==v);return n}function pointInTriangle(v,e,n,r,C,w,E,O){return(C-E)*(e-O)>=(v-E)*(w-O)&&(v-E)*(r-O)>=(n-E)*(e-O)&&(n-E)*(w-O)>=(C-E)*(r-O)}function pointInTriangleExceptFirst(v,e,n,r,C,w,E,O){return!(v===E&&e===O)&&pointInTriangle(v,e,n,r,C,w,E,O)}function isValidDiagonal(v,e){return v.next.i!==e.i&&v.prev.i!==e.i&&!intersectsPolygon(v,e)&&(locallyInside(v,e)&&locallyInside(e,v)&&middleInside(v,e)&&(area(v.prev,v,e.prev)||area(v,e.prev,e))||equals(v,e)&&area(v.prev,v,v.next)>0&&area(e.prev,e,e.next)>0)}function area(v,e,n){return(e.y-v.y)*(n.x-e.x)-(e.x-v.x)*(n.y-e.y)}function equals(v,e){return v.x===e.x&&v.y===e.y}function intersects(v,e,n,r){const C=sign$1(area(v,e,n)),w=sign$1(area(v,e,r)),E=sign$1(area(n,r,v)),O=sign$1(area(n,r,e));return!!(C!==w&&E!==O||C===0&&onSegment(v,n,e)||w===0&&onSegment(v,r,e)||E===0&&onSegment(n,v,r)||O===0&&onSegment(n,e,r))}function onSegment(v,e,n){return e.x<=Math.max(v.x,n.x)&&e.x>=Math.min(v.x,n.x)&&e.y<=Math.max(v.y,n.y)&&e.y>=Math.min(v.y,n.y)}function sign$1(v){return v>0?1:v<0?-1:0}function intersectsPolygon(v,e){let n=v;do{if(n.i!==v.i&&n.next.i!==v.i&&n.i!==e.i&&n.next.i!==e.i&&intersects(n,n.next,v,e))return!0;n=n.next}while(n!==v);return!1}function locallyInside(v,e){return area(v.prev,v,v.next)<0?area(v,e,v.next)>=0&&area(v,v.prev,e)>=0:area(v,e,v.prev)<0||area(v,v.next,e)<0}function middleInside(v,e){let n=v,r=!1;const C=(v.x+e.x)/2,w=(v.y+e.y)/2;do n.y>w!=n.next.y>w&&n.next.y!==n.y&&C<(n.next.x-n.x)*(w-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==v);return r}function splitPolygon(v,e){const n=createNode(v.i,v.x,v.y),r=createNode(e.i,e.x,e.y),C=v.next,w=e.prev;return v.next=e,e.prev=v,n.next=C,C.prev=n,r.next=n,n.prev=r,w.next=r,r.prev=w,r}function insertNode(v,e,n,r){const C=createNode(v,e,n);return r?(C.next=r.next,C.prev=r,r.next.prev=C,r.next=C):(C.prev=C,C.next=C),C}function removeNode(v){v.next.prev=v.prev,v.prev.next=v.next,v.prevZ&&(v.prevZ.nextZ=v.nextZ),v.nextZ&&(v.nextZ.prevZ=v.prevZ)}function createNode(v,e,n){return{i:v,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function signedArea(v,e,n,r){let C=0;for(let w=e,E=n-r;w<n;w+=r)C+=(v[E]-v[w])*(v[w+1]+v[E+1]),E=w;return C}function flatten(v){const e=[],n=[],r=v[0][0].length;let C=0,w=0;for(const E of v){for(const O of E)for(let le=0;le<r;le++)e.push(O[le]);w&&(C+=w,n.push(C)),w=E.length}return{vertices:e,holes:n,dimensions:r}}function getCoord(v){if(!v)throw new Error("coord is required");if(!Array.isArray(v)){if(v.type==="Feature"&&v.geometry!==null&&v.geometry.type==="Point")return[...v.geometry.coordinates];if(v.type==="Point")return[...v.coordinates]}if(Array.isArray(v)&&v.length>=2&&!Array.isArray(v[0])&&!Array.isArray(v[1]))return[...v];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function getCoords(v){if(Array.isArray(v))return v;if(v.type==="Feature"){if(v.geometry!==null)return v.geometry.coordinates}else if(v.coordinates)return v.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function getGeom(v){return v.type==="Feature"?v.geometry:v}function booleanClockwise(v){const e=getCoords(v);let n=0,r=1,C,w;for(;r<e.length;)C=w||e[0],w=e[r],n+=(w[0]-C[0])*(w[1]+C[1]),r++;return n>0}var turf_boolean_clockwise_default=booleanClockwise;const epsilon$1=11102230246251565e-32,splitter=134217729,resulterrbound=(3+8*epsilon$1)*epsilon$1;function sum(v,e,n,r,C){let w,E,O,le,fe=e[0],Se=r[0],ze=0,ke=0;Se>fe==Se>-fe?(w=fe,fe=e[++ze]):(w=Se,Se=r[++ke]);let Fe=0;if(ze<v&&ke<n)for(Se>fe==Se>-fe?(E=fe+w,O=w-(E-fe),fe=e[++ze]):(E=Se+w,O=w-(E-Se),Se=r[++ke]),w=E,O!==0&&(C[Fe++]=O);ze<v&&ke<n;)Se>fe==Se>-fe?(E=w+fe,le=E-w,O=w-(E-le)+(fe-le),fe=e[++ze]):(E=w+Se,le=E-w,O=w-(E-le)+(Se-le),Se=r[++ke]),w=E,O!==0&&(C[Fe++]=O);for(;ze<v;)E=w+fe,le=E-w,O=w-(E-le)+(fe-le),fe=e[++ze],w=E,O!==0&&(C[Fe++]=O);for(;ke<n;)E=w+Se,le=E-w,O=w-(E-le)+(Se-le),Se=r[++ke],w=E,O!==0&&(C[Fe++]=O);return(w!==0||Fe===0)&&(C[Fe++]=w),Fe}function estimate(v,e){let n=e[0];for(let r=1;r<v;r++)n+=e[r];return n}function vec(v){return new Float64Array(v)}const ccwerrboundA=(3+16*epsilon$1)*epsilon$1,ccwerrboundB=(2+12*epsilon$1)*epsilon$1,ccwerrboundC=(9+64*epsilon$1)*epsilon$1*epsilon$1,B=vec(4),C1=vec(8),C2=vec(12),D$2=vec(16),u$2=vec(4);function orient2dadapt(v,e,n,r,C,w,E){let O,le,fe,Se,ze,ke,Fe,mt,Lt,bt,Ue,Gt,xt,Xt,Zt,wt,Vt,Wt;const It=v-C,Nt=n-C,Ft=e-w,jt=r-w;Xt=It*jt,ke=splitter*It,Fe=ke-(ke-It),mt=It-Fe,ke=splitter*jt,Lt=ke-(ke-jt),bt=jt-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=Ft*Nt,ke=splitter*Ft,Fe=ke-(ke-Ft),mt=Ft-Fe,ke=splitter*Nt,Lt=ke-(ke-Nt),bt=Nt-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,B[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,B[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,B[2]=Gt-(Wt-ze)+(Ue-ze),B[3]=Wt;let n0=estimate(4,B),s0=ccwerrboundB*E;if(n0>=s0||-n0>=s0||(ze=v-It,O=v-(It+ze)+(ze-C),ze=n-Nt,fe=n-(Nt+ze)+(ze-C),ze=e-Ft,le=e-(Ft+ze)+(ze-w),ze=r-jt,Se=r-(jt+ze)+(ze-w),O===0&&le===0&&fe===0&&Se===0)||(s0=ccwerrboundC*E+resulterrbound*Math.abs(n0),n0+=It*Se+jt*O-(Ft*fe+Nt*le),n0>=s0||-n0>=s0))return n0;Xt=O*jt,ke=splitter*O,Fe=ke-(ke-O),mt=O-Fe,ke=splitter*jt,Lt=ke-(ke-jt),bt=jt-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=le*Nt,ke=splitter*le,Fe=ke-(ke-le),mt=le-Fe,ke=splitter*Nt,Lt=ke-(ke-Nt),bt=Nt-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,u$2[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,u$2[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,u$2[2]=Gt-(Wt-ze)+(Ue-ze),u$2[3]=Wt;const qt=sum(4,B,4,u$2,C1);Xt=It*Se,ke=splitter*It,Fe=ke-(ke-It),mt=It-Fe,ke=splitter*Se,Lt=ke-(ke-Se),bt=Se-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=Ft*fe,ke=splitter*Ft,Fe=ke-(ke-Ft),mt=Ft-Fe,ke=splitter*fe,Lt=ke-(ke-fe),bt=fe-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,u$2[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,u$2[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,u$2[2]=Gt-(Wt-ze)+(Ue-ze),u$2[3]=Wt;const Ht=sum(qt,C1,4,u$2,C2);Xt=O*Se,ke=splitter*O,Fe=ke-(ke-O),mt=O-Fe,ke=splitter*Se,Lt=ke-(ke-Se),bt=Se-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=le*fe,ke=splitter*le,Fe=ke-(ke-le),mt=le-Fe,ke=splitter*fe,Lt=ke-(ke-fe),bt=fe-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,u$2[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,u$2[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,u$2[2]=Gt-(Wt-ze)+(Ue-ze),u$2[3]=Wt;const $t=sum(Ht,C2,4,u$2,D$2);return D$2[$t-1]}function orient2d(v,e,n,r,C,w){const E=(e-w)*(n-C),O=(v-C)*(r-w),le=E-O,fe=Math.abs(E+O);return Math.abs(le)>=ccwerrboundA*fe?le:-orient2dadapt(v,e,n,r,C,w,fe)}const EPSILON$2=Math.pow(2,-52),EDGE_STACK=new Uint32Array(512);class Delaunator{static from(e,n=defaultGetX,r=defaultGetY){const C=e.length,w=new Float64Array(C*2);for(let E=0;E<C;E++){const O=e[E];w[2*E]=n(O),w[2*E+1]=r(O)}return new Delaunator(w)}constructor(e){const n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:e,_hullPrev:n,_hullNext:r,_hullTri:C,_hullHash:w}=this,E=e.length>>1;let O=1/0,le=1/0,fe=-1/0,Se=-1/0;for(let It=0;It<E;It++){const Nt=e[2*It],Ft=e[2*It+1];Nt<O&&(O=Nt),Ft<le&&(le=Ft),Nt>fe&&(fe=Nt),Ft>Se&&(Se=Ft),this._ids[It]=It}const ze=(O+fe)/2,ke=(le+Se)/2;let Fe,mt,Lt;for(let It=0,Nt=1/0;It<E;It++){const Ft=dist(ze,ke,e[2*It],e[2*It+1]);Ft<Nt&&(Fe=It,Nt=Ft)}const bt=e[2*Fe],Ue=e[2*Fe+1];for(let It=0,Nt=1/0;It<E;It++){if(It===Fe)continue;const Ft=dist(bt,Ue,e[2*It],e[2*It+1]);Ft<Nt&&Ft>0&&(mt=It,Nt=Ft)}let Gt=e[2*mt],xt=e[2*mt+1],Xt=1/0;for(let It=0;It<E;It++){if(It===Fe||It===mt)continue;const Nt=circumradius(bt,Ue,Gt,xt,e[2*It],e[2*It+1]);Nt<Xt&&(Lt=It,Xt=Nt)}let Zt=e[2*Lt],wt=e[2*Lt+1];if(Xt===1/0){for(let Ft=0;Ft<E;Ft++)this._dists[Ft]=e[2*Ft]-e[0]||e[2*Ft+1]-e[1];quicksort(this._ids,this._dists,0,E-1);const It=new Uint32Array(E);let Nt=0;for(let Ft=0,jt=-1/0;Ft<E;Ft++){const n0=this._ids[Ft],s0=this._dists[n0];s0>jt&&(It[Nt++]=n0,jt=s0)}this.hull=It.subarray(0,Nt),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(orient2d(bt,Ue,Gt,xt,Zt,wt)<0){const It=mt,Nt=Gt,Ft=xt;mt=Lt,Gt=Zt,xt=wt,Lt=It,Zt=Nt,wt=Ft}const Vt=circumcenter(bt,Ue,Gt,xt,Zt,wt);this._cx=Vt.x,this._cy=Vt.y;for(let It=0;It<E;It++)this._dists[It]=dist(e[2*It],e[2*It+1],Vt.x,Vt.y);quicksort(this._ids,this._dists,0,E-1),this._hullStart=Fe;let Wt=3;r[Fe]=n[Lt]=mt,r[mt]=n[Fe]=Lt,r[Lt]=n[mt]=Fe,C[Fe]=0,C[mt]=1,C[Lt]=2,w.fill(-1),w[this._hashKey(bt,Ue)]=Fe,w[this._hashKey(Gt,xt)]=mt,w[this._hashKey(Zt,wt)]=Lt,this.trianglesLen=0,this._addTriangle(Fe,mt,Lt,-1,-1,-1);for(let It=0,Nt,Ft;It<this._ids.length;It++){const jt=this._ids[It],n0=e[2*jt],s0=e[2*jt+1];if(It>0&&Math.abs(n0-Nt)<=EPSILON$2&&Math.abs(s0-Ft)<=EPSILON$2||(Nt=n0,Ft=s0,jt===Fe||jt===mt||jt===Lt))continue;let qt=0;for(let u0=0,d0=this._hashKey(n0,s0);u0<this._hashSize&&(qt=w[(d0+u0)%this._hashSize],!(qt!==-1&&qt!==r[qt]));u0++);qt=n[qt];let Ht=qt,$t;for(;$t=r[Ht],orient2d(n0,s0,e[2*Ht],e[2*Ht+1],e[2*$t],e[2*$t+1])>=0;)if(Ht=$t,Ht===qt){Ht=-1;break}if(Ht===-1)continue;let Kt=this._addTriangle(Ht,jt,r[Ht],-1,-1,C[Ht]);C[jt]=this._legalize(Kt+2),C[Ht]=Kt,Wt++;let e0=r[Ht];for(;$t=r[e0],orient2d(n0,s0,e[2*e0],e[2*e0+1],e[2*$t],e[2*$t+1])<0;)Kt=this._addTriangle(e0,jt,$t,C[jt],-1,C[e0]),C[jt]=this._legalize(Kt+2),r[e0]=e0,Wt--,e0=$t;if(Ht===qt)for(;$t=n[Ht],orient2d(n0,s0,e[2*$t],e[2*$t+1],e[2*Ht],e[2*Ht+1])<0;)Kt=this._addTriangle($t,jt,Ht,-1,C[Ht],C[$t]),this._legalize(Kt+2),C[$t]=Kt,r[Ht]=Ht,Wt--,Ht=$t;this._hullStart=n[jt]=Ht,r[Ht]=n[e0]=jt,r[jt]=e0,w[this._hashKey(n0,s0)]=jt,w[this._hashKey(e[2*Ht],e[2*Ht+1])]=Ht}this.hull=new Uint32Array(Wt);for(let It=0,Nt=this._hullStart;It<Wt;It++)this.hull[It]=Nt,Nt=r[Nt];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(pseudoAngle(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:n,_halfedges:r,coords:C}=this;let w=0,E=0;for(;;){const O=r[e],le=e-e%3;if(E=le+(e+2)%3,O===-1){if(w===0)break;e=EDGE_STACK[--w];continue}const fe=O-O%3,Se=le+(e+1)%3,ze=fe+(O+2)%3,ke=n[E],Fe=n[e],mt=n[Se],Lt=n[ze];if(inCircle(C[2*ke],C[2*ke+1],C[2*Fe],C[2*Fe+1],C[2*mt],C[2*mt+1],C[2*Lt],C[2*Lt+1])){n[e]=Lt,n[O]=ke;const Ue=r[ze];if(Ue===-1){let xt=this._hullStart;do{if(this._hullTri[xt]===ze){this._hullTri[xt]=e;break}xt=this._hullPrev[xt]}while(xt!==this._hullStart)}this._link(e,Ue),this._link(O,r[E]),this._link(E,ze);const Gt=fe+(O+1)%3;w<EDGE_STACK.length&&(EDGE_STACK[w++]=Gt)}else{if(w===0)break;e=EDGE_STACK[--w]}}return E}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,C,w,E){const O=this.trianglesLen;return this._triangles[O]=e,this._triangles[O+1]=n,this._triangles[O+2]=r,this._link(O,C),this._link(O+1,w),this._link(O+2,E),this.trianglesLen+=3,O}}function pseudoAngle(v,e){const n=v/(Math.abs(v)+Math.abs(e));return(e>0?3-n:1+n)/4}function dist(v,e,n,r){const C=v-n,w=e-r;return C*C+w*w}function inCircle(v,e,n,r,C,w,E,O){const le=v-E,fe=e-O,Se=n-E,ze=r-O,ke=C-E,Fe=w-O,mt=le*le+fe*fe,Lt=Se*Se+ze*ze,bt=ke*ke+Fe*Fe;return le*(ze*bt-Lt*Fe)-fe*(Se*bt-Lt*ke)+mt*(Se*Fe-ze*ke)<0}function circumradius(v,e,n,r,C,w){const E=n-v,O=r-e,le=C-v,fe=w-e,Se=E*E+O*O,ze=le*le+fe*fe,ke=.5/(E*fe-O*le),Fe=(fe*Se-O*ze)*ke,mt=(E*ze-le*Se)*ke;return Fe*Fe+mt*mt}function circumcenter(v,e,n,r,C,w){const E=n-v,O=r-e,le=C-v,fe=w-e,Se=E*E+O*O,ze=le*le+fe*fe,ke=.5/(E*fe-O*le),Fe=v+(fe*Se-O*ze)*ke,mt=e+(E*ze-le*Se)*ke;return{x:Fe,y:mt}}function quicksort(v,e,n,r){if(r-n<=20)for(let C=n+1;C<=r;C++){const w=v[C],E=e[w];let O=C-1;for(;O>=n&&e[v[O]]>E;)v[O+1]=v[O--];v[O+1]=w}else{const C=n+r>>1;let w=n+1,E=r;swap(v,C,w),e[v[n]]>e[v[r]]&&swap(v,n,r),e[v[w]]>e[v[r]]&&swap(v,w,r),e[v[n]]>e[v[w]]&&swap(v,n,w);const O=v[w],le=e[O];for(;;){do w++;while(e[v[w]]<le);do E--;while(e[v[E]]>le);if(E<w)break;swap(v,w,E)}v[n+1]=v[E],v[E]=O,r-w+1>=E-n?(quicksort(v,e,w,r),quicksort(v,e,n,E-1)):(quicksort(v,e,n,E-1),quicksort(v,e,w,r))}}function swap(v,e,n){const r=v[e];v[e]=v[n],v[n]=r}function defaultGetX(v){return v[0]}function defaultGetY(v){return v[1]}function pointInPolygon(v,e){var n=0,r=0,C=0,w=0,E=0,O=0,le=0,fe=0,Se=null,ze=null,ke=v[0],Fe=v[1],mt=e.length;for(n;n<mt;n++){r=0;var Lt=e[n].length-1,bt=e[n];if(Se=bt[0],Se[0]!==bt[Lt][0]&&Se[1]!==bt[Lt][1])throw new Error("First and last coordinates in a ring must be the same");for(E=Se[0]-ke,O=Se[1]-Fe,r;r<Lt;r++){if(ze=bt[r+1],fe=ze[1]-Fe,O<0&&fe<0||O>0&&fe>0){Se=ze,O=fe,E=Se[0]-ke;continue}if(le=ze[0]-v[0],fe>0&&O<=0){if(w=E*fe-le*O,w>0)C=C+1;else if(w===0)return 0}else if(O>0&&fe<=0){if(w=E*fe-le*O,w<0)C=C+1;else if(w===0)return 0}else if(fe===0&&O<0){if(w=E*fe-le*O,w===0)return 0}else if(O===0&&fe<0){if(w=E*fe-le*O,w===0)return 0}else if(O===0&&fe===0){if(le<=0&&E>=0)return 0;if(E<=0&&le>=0)return 0}Se=ze,O=fe,E=le}}return C%2!==0}function booleanPointInPolygon(v,e,n={}){if(!v)throw new Error("point is required");if(!e)throw new Error("polygon is required");const r=getCoord(v),C=getGeom(e),w=C.type,E=e.bbox;let O=C.coordinates;if(E&&inBBox(r,E)===!1)return!1;w==="Polygon"&&(O=[O]);let le=!1;for(var fe=0;fe<O.length;++fe){const Se=pointInPolygon(r,O[fe]);if(Se===0)return!n.ignoreBoundary;Se&&(le=!0)}return le}function inBBox(v,e){return e[0]<=v[0]&&e[1]<=v[1]&&e[2]>=v[0]&&e[3]>=v[1]}var turf_boolean_point_in_polygon_default=booleanPointInPolygon;const epsilon=1e-6;class Path{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;const C=e+r,w=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${C},${w}`:(Math.abs(this._x1-C)>epsilon||Math.abs(this._y1-w)>epsilon)&&(this._+="L"+C+","+w),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=C},${this._y1=w}`)}rect(e,n,r,C){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+C}h${-r}Z`}value(){return this._||null}}class Polygon{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}}class Voronoi{constructor(e,[n,r,C,w]=[0,0,960,500]){if(!((C=+C)>=(n=+n))||!((w=+w)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=C,this.xmin=n,this.ymax=w,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:n,triangles:r},vectors:C}=this;let w,E;const O=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let Lt=0,bt=0,Ue=r.length,Gt,xt;Lt<Ue;Lt+=3,bt+=2){const Xt=r[Lt]*2,Zt=r[Lt+1]*2,wt=r[Lt+2]*2,Vt=e[Xt],Wt=e[Xt+1],It=e[Zt],Nt=e[Zt+1],Ft=e[wt],jt=e[wt+1],n0=It-Vt,s0=Nt-Wt,qt=Ft-Vt,Ht=jt-Wt,$t=(n0*Ht-s0*qt)*2;if(Math.abs($t)<1e-9){if(w===void 0){w=E=0;for(const e0 of n)w+=e[e0*2],E+=e[e0*2+1];w/=n.length,E/=n.length}const Kt=1e9*Math.sign((w-Vt)*Ht-(E-Wt)*qt);Gt=(Vt+Ft)/2-Kt*Ht,xt=(Wt+jt)/2+Kt*qt}else{const Kt=1/$t,e0=n0*n0+s0*s0,u0=qt*qt+Ht*Ht;Gt=Vt+(Ht*e0-s0*u0)*Kt,xt=Wt+(n0*u0-qt*e0)*Kt}O[bt]=Gt,O[bt+1]=xt}let le=n[n.length-1],fe,Se=le*4,ze,ke=e[2*le],Fe,mt=e[2*le+1];C.fill(0);for(let Lt=0;Lt<n.length;++Lt)le=n[Lt],fe=Se,ze=ke,Fe=mt,Se=le*4,ke=e[2*le],mt=e[2*le+1],C[fe+2]=C[Se]=Fe-mt,C[fe+3]=C[Se+1]=ke-ze}render(e){const n=e==null?e=new Path:void 0,{delaunay:{halfedges:r,inedges:C,hull:w},circumcenters:E,vectors:O}=this;if(w.length<=1)return null;for(let Se=0,ze=r.length;Se<ze;++Se){const ke=r[Se];if(ke<Se)continue;const Fe=Math.floor(Se/3)*2,mt=Math.floor(ke/3)*2,Lt=E[Fe],bt=E[Fe+1],Ue=E[mt],Gt=E[mt+1];this._renderSegment(Lt,bt,Ue,Gt,e)}let le,fe=w[w.length-1];for(let Se=0;Se<w.length;++Se){le=fe,fe=w[Se];const ze=Math.floor(C[fe]/3)*2,ke=E[ze],Fe=E[ze+1],mt=le*4,Lt=this._project(ke,Fe,O[mt+2],O[mt+3]);Lt&&this._renderSegment(ke,Fe,Lt[0],Lt[1],e)}return n&&n.value()}renderBounds(e){const n=e==null?e=new Path:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){const r=n==null?n=new Path:void 0,C=this._clip(e);if(C===null||!C.length)return;n.moveTo(C[0],C[1]);let w=C.length;for(;C[0]===C[w-2]&&C[1]===C[w-1]&&w>1;)w-=2;for(let E=2;E<w;E+=2)(C[E]!==C[E-2]||C[E+1]!==C[E-1])&&n.lineTo(C[E],C[E+1]);return n.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){const C=this.cellPolygon(n);C&&(C.index=n,yield C)}}cellPolygon(e){const n=new Polygon;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,C,w){let E;const O=this._regioncode(e,n),le=this._regioncode(r,C);O===0&&le===0?(w.moveTo(e,n),w.lineTo(r,C)):(E=this._clipSegment(e,n,r,C,O,le))&&(w.moveTo(E[0],E[1]),w.lineTo(E[2],E[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){const n=this._clip(e);if(n)for(const r of this.delaunay.neighbors(e)){const C=this._clip(r);if(C){e:for(let w=0,E=n.length;w<E;w+=2)for(let O=0,le=C.length;O<le;O+=2)if(n[w]===C[O]&&n[w+1]===C[O+1]&&n[(w+2)%E]===C[(O+le-2)%le]&&n[(w+3)%E]===C[(O+le-1)%le]){yield r;break e}}}}_cell(e){const{circumcenters:n,delaunay:{inedges:r,halfedges:C,triangles:w}}=this,E=r[e];if(E===-1)return null;const O=[];let le=E;do{const fe=Math.floor(le/3);if(O.push(n[fe*2],n[fe*2+1]),le=le%3===2?le-2:le+1,w[le]!==e)break;le=C[le]}while(le!==E&&le!==-1);return O}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(e);if(n===null)return null;const{vectors:r}=this,C=e*4;return this._simplify(r[C]||r[C+1]?this._clipInfinite(e,n,r[C],r[C+1],r[C+2],r[C+3]):this._clipFinite(e,n))}_clipFinite(e,n){const r=n.length;let C=null,w,E,O=n[r-2],le=n[r-1],fe,Se=this._regioncode(O,le),ze,ke=0;for(let Fe=0;Fe<r;Fe+=2)if(w=O,E=le,O=n[Fe],le=n[Fe+1],fe=Se,Se=this._regioncode(O,le),fe===0&&Se===0)ze=ke,ke=0,C?C.push(O,le):C=[O,le];else{let mt,Lt,bt,Ue,Gt;if(fe===0){if((mt=this._clipSegment(w,E,O,le,fe,Se))===null)continue;[Lt,bt,Ue,Gt]=mt}else{if((mt=this._clipSegment(O,le,w,E,Se,fe))===null)continue;[Ue,Gt,Lt,bt]=mt,ze=ke,ke=this._edgecode(Lt,bt),ze&&ke&&this._edge(e,ze,ke,C,C.length),C?C.push(Lt,bt):C=[Lt,bt]}ze=ke,ke=this._edgecode(Ue,Gt),ze&&ke&&this._edge(e,ze,ke,C,C.length),C?C.push(Ue,Gt):C=[Ue,Gt]}if(C)ze=ke,ke=this._edgecode(C[0],C[1]),ze&&ke&&this._edge(e,ze,ke,C,C.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return C}_clipSegment(e,n,r,C,w,E){const O=w<E;for(O&&([e,n,r,C,w,E]=[r,C,e,n,E,w]);;){if(w===0&&E===0)return O?[r,C,e,n]:[e,n,r,C];if(w&E)return null;let le,fe,Se=w||E;Se&8?(le=e+(r-e)*(this.ymax-n)/(C-n),fe=this.ymax):Se&4?(le=e+(r-e)*(this.ymin-n)/(C-n),fe=this.ymin):Se&2?(fe=n+(C-n)*(this.xmax-e)/(r-e),le=this.xmax):(fe=n+(C-n)*(this.xmin-e)/(r-e),le=this.xmin),w?(e=le,n=fe,w=this._regioncode(e,n)):(r=le,C=fe,E=this._regioncode(r,C))}}_clipInfinite(e,n,r,C,w,E){let O=Array.from(n),le;if((le=this._project(O[0],O[1],r,C))&&O.unshift(le[0],le[1]),(le=this._project(O[O.length-2],O[O.length-1],w,E))&&O.push(le[0],le[1]),O=this._clipFinite(e,O))for(let fe=0,Se=O.length,ze,ke=this._edgecode(O[Se-2],O[Se-1]);fe<Se;fe+=2)ze=ke,ke=this._edgecode(O[fe],O[fe+1]),ze&&ke&&(fe=this._edge(e,ze,ke,O,fe),Se=O.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(O=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return O}_edge(e,n,r,C,w){for(;n!==r;){let E,O;switch(n){case 5:n=4;continue;case 4:n=6,E=this.xmax,O=this.ymin;break;case 6:n=2;continue;case 2:n=10,E=this.xmax,O=this.ymax;break;case 10:n=8;continue;case 8:n=9,E=this.xmin,O=this.ymax;break;case 9:n=1;continue;case 1:n=5,E=this.xmin,O=this.ymin;break}(C[w]!==E||C[w+1]!==O)&&this.contains(e,E,O)&&(C.splice(w,0,E,O),w+=2)}return w}_project(e,n,r,C){let w=1/0,E,O,le;if(C<0){if(n<=this.ymin)return null;(E=(this.ymin-n)/C)<w&&(le=this.ymin,O=e+(w=E)*r)}else if(C>0){if(n>=this.ymax)return null;(E=(this.ymax-n)/C)<w&&(le=this.ymax,O=e+(w=E)*r)}if(r>0){if(e>=this.xmax)return null;(E=(this.xmax-e)/r)<w&&(O=this.xmax,le=n+(w=E)*C)}else if(r<0){if(e<=this.xmin)return null;(E=(this.xmin-e)/r)<w&&(O=this.xmin,le=n+(w=E)*C)}return[O,le]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){const r=(n+2)%e.length,C=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[C]||e[n+1]===e[r+1]&&e[r+1]===e[C+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}}const tau=2*Math.PI,pow=Math.pow;function pointX(v){return v[0]}function pointY(v){return v[1]}function collinear(v){const{triangles:e,coords:n}=v;for(let r=0;r<e.length;r+=3){const C=2*e[r],w=2*e[r+1],E=2*e[r+2];if((n[E]-n[C])*(n[w+1]-n[C+1])-(n[w]-n[C])*(n[E+1]-n[C+1])>1e-10)return!1}return!0}function jitter(v,e,n){return[v+Math.sin(v+e)*n,e+Math.cos(v-e)*n]}class Delaunay{static from(e,n=pointX,r=pointY,C){return new Delaunay("length"in e?flatArray(e,n,r,C):Float64Array.from(flatIterable(e,n,r,C)))}constructor(e){this._delaunator=new Delaunator(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&collinear(e)){this.collinear=Int32Array.from({length:n.length/2},(ke,Fe)=>Fe).sort((ke,Fe)=>n[2*ke]-n[2*Fe]||n[2*ke+1]-n[2*Fe+1]);const le=this.collinear[0],fe=this.collinear[this.collinear.length-1],Se=[n[2*le],n[2*le+1],n[2*fe],n[2*fe+1]],ze=1e-8*Math.hypot(Se[3]-Se[1],Se[2]-Se[0]);for(let ke=0,Fe=n.length/2;ke<Fe;++ke){const mt=jitter(n[2*ke],n[2*ke+1],ze);n[2*ke]=mt[0],n[2*ke+1]=mt[1]}this._delaunator=new Delaunator(n)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,C=this.hull=this._delaunator.hull,w=this.triangles=this._delaunator.triangles,E=this.inedges.fill(-1),O=this._hullIndex.fill(-1);for(let le=0,fe=r.length;le<fe;++le){const Se=w[le%3===2?le-2:le+1];(r[le]===-1||E[Se]===-1)&&(E[Se]=le)}for(let le=0,fe=C.length;le<fe;++le)O[C[le]]=le;C.length<=2&&C.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=C[0],E[C[0]]=1,C.length===2&&(E[C[1]]=0,this.triangles[1]=C[1],this.triangles[2]=C[1]))}voronoi(e){return new Voronoi(this,e)}*neighbors(e){const{inedges:n,hull:r,_hullIndex:C,halfedges:w,triangles:E,collinear:O}=this;if(O){const ze=O.indexOf(e);ze>0&&(yield O[ze-1]),ze<O.length-1&&(yield O[ze+1]);return}const le=n[e];if(le===-1)return;let fe=le,Se=-1;do{if(yield Se=E[fe],fe=fe%3===2?fe-2:fe+1,E[fe]!==e)return;if(fe=w[fe],fe===-1){const ze=r[(C[e]+1)%r.length];ze!==Se&&(yield ze);return}}while(fe!==le)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;const C=r;let w;for(;(w=this._step(r,e,n))>=0&&w!==r&&w!==C;)r=w;return w}_step(e,n,r){const{inedges:C,hull:w,_hullIndex:E,halfedges:O,triangles:le,points:fe}=this;if(C[e]===-1||!fe.length)return(e+1)%(fe.length>>1);let Se=e,ze=pow(n-fe[e*2],2)+pow(r-fe[e*2+1],2);const ke=C[e];let Fe=ke;do{let mt=le[Fe];const Lt=pow(n-fe[mt*2],2)+pow(r-fe[mt*2+1],2);if(Lt<ze&&(ze=Lt,Se=mt),Fe=Fe%3===2?Fe-2:Fe+1,le[Fe]!==e)break;if(Fe=O[Fe],Fe===-1){if(Fe=w[(E[e]+1)%w.length],Fe!==mt&&pow(n-fe[Fe*2],2)+pow(r-fe[Fe*2+1],2)<ze)return Fe;break}}while(Fe!==ke);return Se}render(e){const n=e==null?e=new Path:void 0,{points:r,halfedges:C,triangles:w}=this;for(let E=0,O=C.length;E<O;++E){const le=C[E];if(le<E)continue;const fe=w[E]*2,Se=w[le]*2;e.moveTo(r[fe],r[fe+1]),e.lineTo(r[Se],r[Se+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;const r=e==null?e=new Path:void 0,{points:C}=this;for(let w=0,E=C.length;w<E;w+=2){const O=C[w],le=C[w+1];e.moveTo(O+n,le),e.arc(O,le,n,0,tau)}return r&&r.value()}renderHull(e){const n=e==null?e=new Path:void 0,{hull:r,points:C}=this,w=r[0]*2,E=r.length;e.moveTo(C[w],C[w+1]);for(let O=1;O<E;++O){const le=2*r[O];e.lineTo(C[le],C[le+1])}return e.closePath(),n&&n.value()}hullPolygon(){const e=new Polygon;return this.renderHull(e),e.value()}renderTriangle(e,n){const r=n==null?n=new Path:void 0,{points:C,triangles:w}=this,E=w[e*=3]*2,O=w[e+1]*2,le=w[e+2]*2;return n.moveTo(C[E],C[E+1]),n.lineTo(C[O],C[O+1]),n.lineTo(C[le],C[le+1]),n.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){const n=new Polygon;return this.renderTriangle(e,n),n.value()}}function flatArray(v,e,n,r){const C=v.length,w=new Float64Array(C*2);for(let E=0;E<C;++E){const O=v[E];w[E*2]=e.call(r,O,E,v),w[E*2+1]=n.call(r,O,E,v)}return w}function*flatIterable(v,e,n,r){let C=0;for(const w of v)yield e.call(r,w,C,v),yield n.call(r,w,C,v),++C}const pi$1=Math.PI,halfPi=pi$1/2,degrees=180/pi$1,radians=pi$1/180,atan2=Math.atan2,cos=Math.cos,max$1=Math.max,min=Math.min,sin=Math.sin,sign=Math.sign||function(v){return v>0?1:v<0?-1:0},sqrt=Math.sqrt;function asin(v){return v>1?halfPi:v<-1?-halfPi:Math.asin(v)}function cartesianDot(v,e){return v[0]*e[0]+v[1]*e[1]+v[2]*e[2]}function cartesianCross(v,e){return[v[1]*e[2]-v[2]*e[1],v[2]*e[0]-v[0]*e[2],v[0]*e[1]-v[1]*e[0]]}function cartesianAdd(v,e){return[v[0]+e[0],v[1]+e[1],v[2]+e[2]]}function cartesianNormalize(v){var e=sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);return[v[0]/e,v[1]/e,v[2]/e]}function spherical(v){return[atan2(v[1],v[0])*degrees,asin(max$1(-1,min(1,v[2])))*degrees]}function cartesian(v){const e=v[0]*radians,n=v[1]*radians,r=cos(n);return[r*cos(e),r*sin(e),sin(n)]}function excess(v){return v=v.map(e=>cartesian(e)),cartesianDot(v[0],cartesianCross(v[2],v[1]))}function geoDelaunay(v){const e=geo_delaunay_from(v),n=geo_triangles(e),r=geo_edges(n,v),C=geo_neighbors(n,v.length),w=geo_find(C,v),E=geo_circumcenters(n,v),{polygons:O,centers:le}=geo_polygons(E,n,v),fe=geo_mesh(O),Se=geo_hull(n,v),ze=geo_urquhart(r,n);return{delaunay:e,edges:r,triangles:n,centers:le,neighbors:C,polygons:O,mesh:fe,hull:Se,urquhart:ze,find:w}}function geo_find(v,e){function n(r,C){let w=r[0]-C[0],E=r[1]-C[1],O=r[2]-C[2];return w*w+E*E+O*O}return function(C,w,E){E===void 0&&(E=0);let O,le,fe=E;const Se=cartesian([C,w]);do O=E,E=null,le=n(Se,cartesian(e[O])),v[O].forEach(ze=>{let ke=n(Se,cartesian(e[ze]));if(ke<le){le=ke,E=ze,fe=ze;return}});while(E!==null);return fe}}function geo_delaunay_from(v){if(v.length<2)return{};let e=0;for(;isNaN(v[e][0]+v[e][1])&&e++<v.length;);const n=geoRotation(v[e]),r=geoStereographic().translate([0,0]).scale(1).rotate(n.invert([180,0]));v=v.map(r);const C=[];let w=1;for(let ze=0,ke=v.length;ze<ke;ze++){let Fe=bn(v[ze][0],2)+bn(v[ze][1],2);!isFinite(Fe)||Fe>1e32?C.push(ze):Fe>w&&(w=Fe)}const E=1e6*sqrt(w);C.forEach(ze=>v[ze]=[E,0]),v.push([0,E]),v.push([-E,0]),v.push([0,-E]);const O=Delaunay.from(v);O.projection=r;const{triangles:le,halfedges:fe,inedges:Se}=O;for(let ze=0,ke=fe.length;ze<ke;ze++)if(fe[ze]<0){const Fe=ze%3==2?ze-2:ze+1,mt=ze%3==0?ze+2:ze-1,Lt=fe[Fe],bt=fe[mt];fe[Lt]=bt,fe[bt]=Lt,fe[Fe]=fe[mt]=-1,le[ze]=le[Fe]=le[mt]=e,Se[le[Lt]]=Lt%3==0?Lt+2:Lt-1,Se[le[bt]]=bt%3==0?bt+2:bt-1,ze+=2-ze%3}else le[ze]>v.length-3-1&&(le[ze]=e);return O}function geo_edges(v,e){const n=new Set;return e.length===2?[[0,1]]:(v.forEach(r=>{if(r[0]!==r[1]&&!(excess(r.map(C=>e[C]))<0))for(let C=0,w;C<3;C++)w=(C+1)%3,n.add(extent([r[C],r[w]]).join("-"))}),Array.from(n,r=>r.split("-").map(Number)))}function geo_triangles(v){const{triangles:e}=v;if(!e)return[];const n=[];for(let r=0,C=e.length/3;r<C;r++){const w=e[3*r],E=e[3*r+1],O=e[3*r+2];w!==E&&E!==O&&n.push([w,O,E])}return n}function geo_circumcenters(v,e){return v.map(n=>{const r=n.map(w=>e[w]).map(cartesian),C=cartesianAdd(cartesianAdd(cartesianCross(r[1],r[0]),cartesianCross(r[2],r[1])),cartesianCross(r[0],r[2]));return spherical(cartesianNormalize(C))})}function geo_neighbors(v,e){const n=[];return v.forEach(r=>{for(let C=0;C<3;C++){const w=r[C],E=r[(C+1)%3];n[w]=n[w]||[],n[w].push(E)}}),v.length===0&&(e===2?(n[0]=[1],n[1]=[0]):e===1&&(n[0]=[])),n}function geo_polygons(v,e,n){const r=[],C=v.slice();if(e.length===0){if(n.length<2)return{polygons:r,centers:C};if(n.length===2){const O=cartesian(n[0]),le=cartesian(n[1]),fe=cartesianNormalize(cartesianAdd(O,le)),Se=cartesianNormalize(cartesianCross(O,le)),ze=cartesianCross(fe,Se),ke=[fe,cartesianCross(fe,ze),cartesianCross(cartesianCross(fe,ze),ze),cartesianCross(cartesianCross(cartesianCross(fe,ze),ze),ze)].map(spherical).map(E);return r.push(ke),r.push(ke.slice().reverse()),{polygons:r,centers:C}}}e.forEach((O,le)=>{for(let fe=0;fe<3;fe++){const Se=O[fe],ze=O[(fe+1)%3],ke=O[(fe+2)%3];r[Se]=r[Se]||[],r[Se].push([ze,ke,le,[Se,ze,ke]])}});const w=r.map(O=>{const le=[O[0][2]];let fe=O[0][1];for(let Se=1;Se<O.length;Se++)for(let ze=0;ze<O.length;ze++)if(O[ze][0]==fe){fe=O[ze][1],le.push(O[ze][2]);break}if(le.length>2)return le;if(le.length==2){const Se=o_midpoint(n[O[0][3][0]],n[O[0][3][1]],C[le[0]]),ze=o_midpoint(n[O[0][3][2]],n[O[0][3][0]],C[le[0]]),ke=E(Se),Fe=E(ze);return[le[0],Fe,le[1],ke]}});function E(O){let le=-1;return C.slice(e.length,1/0).forEach((fe,Se)=>{fe[0]===O[0]&&fe[1]===O[1]&&(le=Se+e.length)}),le<0&&(le=C.length,C.push(O)),le}return{polygons:w,centers:C}}function o_midpoint(v,e,n){v=cartesian(v),e=cartesian(e),n=cartesian(n);const r=sign(cartesianDot(cartesianCross(e,v),n));return spherical(cartesianNormalize(cartesianAdd(v,e)).map(C=>r*C))}function geo_mesh(v){const e=[];return v.forEach(n=>{if(!n)return;let r=n[n.length-1];for(let C of n)C>r&&e.push([r,C]),r=C}),e}function geo_urquhart(v,e){return function(n){const r=new Map,C=new Map;return v.forEach((w,E)=>{const O=w.join("-");r.set(O,n[E]),C.set(O,!0)}),e.forEach(w=>{let E=0,O=-1;for(let le=0;le<3;le++){let fe=extent([w[le],w[(le+1)%3]]).join("-");r.get(fe)>E&&(E=r.get(fe),O=fe)}C.set(O,!1)}),v.map(w=>C.get(w.join("-")))}}function geo_hull(v,e){const n=new Set,r=[];v.map(O=>{if(!(excess(O.map(le=>e[le>e.length?0:le]))>1e-12))for(let le=0;le<3;le++){let fe=[O[le],O[(le+1)%3]],Se=`${fe[0]}-${fe[1]}`;n.has(Se)?n.delete(Se):n.add(`${fe[1]}-${fe[0]}`)}});const C=new Map;let w;if(n.forEach(O=>{O=O.split("-").map(Number),C.set(O[0],O[1]),w=O[0]}),w===void 0)return r;let E=w;do{r.push(E);let O=C.get(E);C.set(E,-1),E=O}while(E>-1&&E!==w);return r}function geoVoronoi(v){const e=function(n){if(e.delaunay=null,e._data=n,typeof e._data=="object"&&e._data.type==="FeatureCollection"&&(e._data=e._data.features),typeof e._data=="object"){const r=e._data.map(C=>[e._vx(C),e._vy(C),C]).filter(C=>isFinite(C[0]+C[1]));e.points=r.map(C=>[C[0],C[1]]),e.valid=r.map(C=>C[2]),e.delaunay=geoDelaunay(e.points)}return e};return e._vx=function(n){if(typeof n=="object"&&"type"in n)return geoCentroid(n)[0];if(0 in n)return n[0]},e._vy=function(n){if(typeof n=="object"&&"type"in n)return geoCentroid(n)[1];if(1 in n)return n[1]},e.x=function(n){return n?(e._vx=n,e):e._vx},e.y=function(n){return n?(e._vy=n,e):e._vy},e.polygons=function(n){if(n!==void 0&&e(n),!e.delaunay)return!1;const r={type:"FeatureCollection",features:[]};return e.valid.length===0||(e.delaunay.polygons.forEach((C,w)=>r.features.push({type:"Feature",geometry:C?{type:"Polygon",coordinates:[[...C,C[0]].map(E=>e.delaunay.centers[E])]}:null,properties:{site:e.valid[w],sitecoordinates:e.points[w],neighbours:e.delaunay.neighbors[w]}})),e.valid.length===1&&r.features.push({type:"Feature",geometry:{type:"Sphere"},properties:{site:e.valid[0],sitecoordinates:e.points[0],neighbours:[]}})),r},e.triangles=function(n){return n!==void 0&&e(n),e.delaunay?{type:"FeatureCollection",features:e.delaunay.triangles.map((r,C)=>(r=r.map(w=>e.points[w]),r.center=e.delaunay.centers[C],r)).filter(r=>excess(r)>0).map(r=>({type:"Feature",properties:{circumcenter:r.center},geometry:{type:"Polygon",coordinates:[[...r,r[0]]]}}))}:!1},e.links=function(n){if(n!==void 0&&e(n),!e.delaunay)return!1;const r=e.delaunay.edges.map(w=>Re$1(e.points[w[0]],e.points[w[1]])),C=e.delaunay.urquhart(r);return{type:"FeatureCollection",features:e.delaunay.edges.map((w,E)=>({type:"Feature",properties:{source:e.valid[w[0]],target:e.valid[w[1]],length:r[E],urquhart:!!C[E]},geometry:{type:"LineString",coordinates:[e.points[w[0]],e.points[w[1]]]}}))}},e.mesh=function(n){return n!==void 0&&e(n),e.delaunay?{type:"MultiLineString",coordinates:e.delaunay.edges.map(r=>[e.points[r[0]],e.points[r[1]]])}:!1},e.cellMesh=function(n){if(n!==void 0&&e(n),!e.delaunay)return!1;const{centers:r,polygons:C}=e.delaunay,w=[];for(const E of C)if(E)for(let O=E.length,le=E[O-1],fe=E[0],Se=0;Se<O;le=fe,fe=E[++Se])fe>le&&w.push([r[le],r[fe]]);return{type:"MultiLineString",coordinates:w}},e._found=void 0,e.find=function(n,r,C){if(e._found=e.delaunay.find(n,r,e._found),!C||Re$1([n,r],e.points[e._found])<C)return e._found},e.hull=function(n){n!==void 0&&e(n);const r=e.delaunay.hull,C=e.points;return r.length===0?null:{type:"Polygon",coordinates:[[...r.map(w=>C[w]),C[r[0]]]]}},v?e(v):e}function initRange(v,e){switch(arguments.length){case 0:break;case 1:this.range(v);break;default:this.range(e).domain(v);break}return this}function define$1(v,e,n){v.prototype=e.prototype=n,n.constructor=v}function extend(v,e){var n=Object.create(v.prototype);for(var r in e)n[r]=e[r];return n}function Color(){}var darker=.7,brighter=1/darker,reI="\\s*([+-]?\\d+)\\s*",reN="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",reP="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",reHex=/^#([0-9a-f]{3,8})$/,reRgbInteger=new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),reRgbPercent=new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),reRgbaInteger=new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),reRgbaPercent=new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),reHslPercent=new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),reHslaPercent=new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`),named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define$1(Color,color,{copy(v){return Object.assign(new this.constructor,this,v)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb});function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color(v){var e,n;return v=(v+"").trim().toLowerCase(),(e=reHex.exec(v))?(n=e[1].length,e=parseInt(e[1],16),n===6?rgbn(e):n===3?new Rgb(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?rgba(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?rgba(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=reRgbInteger.exec(v))?new Rgb(e[1],e[2],e[3],1):(e=reRgbPercent.exec(v))?new Rgb(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=reRgbaInteger.exec(v))?rgba(e[1],e[2],e[3],e[4]):(e=reRgbaPercent.exec(v))?rgba(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=reHslPercent.exec(v))?hsla(e[1],e[2]/100,e[3]/100,1):(e=reHslaPercent.exec(v))?hsla(e[1],e[2]/100,e[3]/100,e[4]):named.hasOwnProperty(v)?rgbn(named[v]):v==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(v){return new Rgb(v>>16&255,v>>8&255,v&255,1)}function rgba(v,e,n,r){return r<=0&&(v=e=n=NaN),new Rgb(v,e,n,r)}function rgbConvert(v){return v instanceof Color||(v=color(v)),v?(v=v.rgb(),new Rgb(v.r,v.g,v.b,v.opacity)):new Rgb}function rgb$1(v,e,n,r){return arguments.length===1?rgbConvert(v):new Rgb(v,e,n,r==null?1:r)}function Rgb(v,e,n,r){this.r=+v,this.g=+e,this.b=+n,this.opacity=+r}define$1(Rgb,rgb$1,extend(Color,{brighter(v){return v=v==null?brighter:Math.pow(brighter,v),new Rgb(this.r*v,this.g*v,this.b*v,this.opacity)},darker(v){return v=v==null?darker:Math.pow(darker,v),new Rgb(this.r*v,this.g*v,this.b*v,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const v=clampa(this.opacity);return`${v===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${v===1?")":`, ${v})`}`}function clampa(v){return isNaN(v)?1:Math.max(0,Math.min(1,v))}function clampi(v){return Math.max(0,Math.min(255,Math.round(v)||0))}function hex(v){return v=clampi(v),(v<16?"0":"")+v.toString(16)}function hsla(v,e,n,r){return r<=0?v=e=n=NaN:n<=0||n>=1?v=e=NaN:e<=0&&(v=NaN),new Hsl(v,e,n,r)}function hslConvert(v){if(v instanceof Hsl)return new Hsl(v.h,v.s,v.l,v.opacity);if(v instanceof Color||(v=color(v)),!v)return new Hsl;if(v instanceof Hsl)return v;v=v.rgb();var e=v.r/255,n=v.g/255,r=v.b/255,C=Math.min(e,n,r),w=Math.max(e,n,r),E=NaN,O=w-C,le=(w+C)/2;return O?(e===w?E=(n-r)/O+(n<r)*6:n===w?E=(r-e)/O+2:E=(e-n)/O+4,O/=le<.5?w+C:2-w-C,E*=60):O=le>0&&le<1?0:E,new Hsl(E,O,le,v.opacity)}function hsl(v,e,n,r){return arguments.length===1?hslConvert(v):new Hsl(v,e,n,r==null?1:r)}function Hsl(v,e,n,r){this.h=+v,this.s=+e,this.l=+n,this.opacity=+r}define$1(Hsl,hsl,extend(Color,{brighter(v){return v=v==null?brighter:Math.pow(brighter,v),new Hsl(this.h,this.s,this.l*v,this.opacity)},darker(v){return v=v==null?darker:Math.pow(darker,v),new Hsl(this.h,this.s,this.l*v,this.opacity)},rgb(){var v=this.h%360+(this.h<0)*360,e=isNaN(v)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,C=2*n-r;return new Rgb(hsl2rgb(v>=240?v-240:v+120,C,r),hsl2rgb(v,C,r),hsl2rgb(v<120?v+240:v-120,C,r),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const v=clampa(this.opacity);return`${v===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${v===1?")":`, ${v})`}`}}));function clamph(v){return v=(v||0)%360,v<0?v+360:v}function clampt(v){return Math.max(0,Math.min(1,v||0))}function hsl2rgb(v,e,n){return(v<60?e+(n-e)*v/60:v<180?n:v<240?e+(n-e)*(240-v)/60:e)*255}const constant=v=>()=>v;function linear$1(v,e){return function(n){return v+n*e}}function exponential(v,e,n){return v=Math.pow(v,n),e=Math.pow(e,n)-v,n=1/n,function(r){return Math.pow(v+r*e,n)}}function gamma(v){return(v=+v)==1?nogamma:function(e,n){return n-e?exponential(e,n,v):constant(isNaN(e)?n:e)}}function nogamma(v,e){var n=e-v;return n?linear$1(v,n):constant(isNaN(v)?e:v)}const rgb=function v(e){var n=gamma(e);function r(C,w){var E=n((C=rgb$1(C)).r,(w=rgb$1(w)).r),O=n(C.g,w.g),le=n(C.b,w.b),fe=nogamma(C.opacity,w.opacity);return function(Se){return C.r=E(Se),C.g=O(Se),C.b=le(Se),C.opacity=fe(Se),C+""}}return r.gamma=v,r}(1);function numberArray(v,e){e||(e=[]);var n=v?Math.min(e.length,v.length):0,r=e.slice(),C;return function(w){for(C=0;C<n;++C)r[C]=v[C]*(1-w)+e[C]*w;return r}}function isNumberArray(v){return ArrayBuffer.isView(v)&&!(v instanceof DataView)}function genericArray(v,e){var n=e?e.length:0,r=v?Math.min(n,v.length):0,C=new Array(r),w=new Array(n),E;for(E=0;E<r;++E)C[E]=interpolate(v[E],e[E]);for(;E<n;++E)w[E]=e[E];return function(O){for(E=0;E<r;++E)w[E]=C[E](O);return w}}function date(v,e){var n=new Date;return v=+v,e=+e,function(r){return n.setTime(v*(1-r)+e*r),n}}function interpolateNumber(v,e){return v=+v,e=+e,function(n){return v*(1-n)+e*n}}function object(v,e){var n={},r={},C;(v===null||typeof v!="object")&&(v={}),(e===null||typeof e!="object")&&(e={});for(C in e)C in v?n[C]=interpolate(v[C],e[C]):r[C]=e[C];return function(w){for(C in n)r[C]=n[C](w);return r}}var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,reB=new RegExp(reA.source,"g");function zero(v){return function(){return v}}function one(v){return function(e){return v(e)+""}}function string(v,e){var n=reA.lastIndex=reB.lastIndex=0,r,C,w,E=-1,O=[],le=[];for(v=v+"",e=e+"";(r=reA.exec(v))&&(C=reB.exec(e));)(w=C.index)>n&&(w=e.slice(n,w),O[E]?O[E]+=w:O[++E]=w),(r=r[0])===(C=C[0])?O[E]?O[E]+=C:O[++E]=C:(O[++E]=null,le.push({i:E,x:interpolateNumber(r,C)})),n=reB.lastIndex;return n<e.length&&(w=e.slice(n),O[E]?O[E]+=w:O[++E]=w),O.length<2?le[0]?one(le[0].x):zero(e):(e=le.length,function(fe){for(var Se=0,ze;Se<e;++Se)O[(ze=le[Se]).i]=ze.x(fe);return O.join("")})}function interpolate(v,e){var n=typeof e,r;return e==null||n==="boolean"?constant(e):(n==="number"?interpolateNumber:n==="string"?(r=color(e))?(e=r,rgb):string:e instanceof color?rgb:e instanceof Date?date:isNumberArray(e)?numberArray:Array.isArray(e)?genericArray:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?object:interpolateNumber)(v,e)}function interpolateRound(v,e){return v=+v,e=+e,function(n){return Math.round(v*(1-n)+e*n)}}function constants(v){return function(){return v}}function number(v){return+v}var unit=[0,1];function identity$1(v){return v}function normalize(v,e){return(e-=v=+v)?function(n){return(n-v)/e}:constants(isNaN(e)?NaN:.5)}function clamper(v,e){var n;return v>e&&(n=v,v=e,e=n),function(r){return Math.max(v,Math.min(e,r))}}function bimap(v,e,n){var r=v[0],C=v[1],w=e[0],E=e[1];return C<r?(r=normalize(C,r),w=n(E,w)):(r=normalize(r,C),w=n(w,E)),function(O){return w(r(O))}}function polymap(v,e,n){var r=Math.min(v.length,e.length)-1,C=new Array(r),w=new Array(r),E=-1;for(v[r]<v[0]&&(v=v.slice().reverse(),e=e.slice().reverse());++E<r;)C[E]=normalize(v[E],v[E+1]),w[E]=n(e[E],e[E+1]);return function(O){var le=bisectRight(v,O,1,r)-1;return w[le](C[le](O))}}function copy(v,e){return e.domain(v.domain()).range(v.range()).interpolate(v.interpolate()).clamp(v.clamp()).unknown(v.unknown())}function transformer(){var v=unit,e=unit,n=interpolate,r,C,w,E=identity$1,O,le,fe;function Se(){var ke=Math.min(v.length,e.length);return E!==identity$1&&(E=clamper(v[0],v[ke-1])),O=ke>2?polymap:bimap,le=fe=null,ze}function ze(ke){return ke==null||isNaN(ke=+ke)?w:(le||(le=O(v.map(r),e,n)))(r(E(ke)))}return ze.invert=function(ke){return E(C((fe||(fe=O(e,v.map(r),interpolateNumber)))(ke)))},ze.domain=function(ke){return arguments.length?(v=Array.from(ke,number),Se()):v.slice()},ze.range=function(ke){return arguments.length?(e=Array.from(ke),Se()):e.slice()},ze.rangeRound=function(ke){return e=Array.from(ke),n=interpolateRound,Se()},ze.clamp=function(ke){return arguments.length?(E=ke?!0:identity$1,Se()):E!==identity$1},ze.interpolate=function(ke){return arguments.length?(n=ke,Se()):n},ze.unknown=function(ke){return arguments.length?(w=ke,ze):w},function(ke,Fe){return r=ke,C=Fe,Se()}}function continuous(){return transformer()(identity$1,identity$1)}function formatDecimal(v){return Math.abs(v=Math.round(v))>=1e21?v.toLocaleString("en").replace(/,/g,""):v.toString(10)}function formatDecimalParts(v,e){if((n=(v=e?v.toExponential(e-1):v.toExponential()).indexOf("e"))<0)return null;var n,r=v.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+v.slice(n+1)]}function exponent(v){return v=formatDecimalParts(Math.abs(v)),v?v[1]:NaN}function formatGroup(v,e){return function(n,r){for(var C=n.length,w=[],E=0,O=v[0],le=0;C>0&&O>0&&(le+O+1>r&&(O=Math.max(1,r-le)),w.push(n.substring(C-=O,C+O)),!((le+=O+1)>r));)O=v[E=(E+1)%v.length];return w.reverse().join(e)}}function formatNumerals(v){return function(e){return e.replace(/[0-9]/g,function(n){return v[+n]})}}var re$2=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(v){if(!(e=re$2.exec(v)))throw new Error("invalid format: "+v);var e;return new FormatSpecifier({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(v){this.fill=v.fill===void 0?" ":v.fill+"",this.align=v.align===void 0?">":v.align+"",this.sign=v.sign===void 0?"-":v.sign+"",this.symbol=v.symbol===void 0?"":v.symbol+"",this.zero=!!v.zero,this.width=v.width===void 0?void 0:+v.width,this.comma=!!v.comma,this.precision=v.precision===void 0?void 0:+v.precision,this.trim=!!v.trim,this.type=v.type===void 0?"":v.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(v){e:for(var e=v.length,n=1,r=-1,C;n<e;++n)switch(v[n]){case".":r=C=n;break;case"0":r===0&&(r=n),C=n;break;default:if(!+v[n])break e;r>0&&(r=0);break}return r>0?v.slice(0,r)+v.slice(C+1):v}var prefixExponent;function formatPrefixAuto(v,e){var n=formatDecimalParts(v,e);if(!n)return v+"";var r=n[0],C=n[1],w=C-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(C/3)))*3)+1,E=r.length;return w===E?r:w>E?r+new Array(w-E+1).join("0"):w>0?r.slice(0,w)+"."+r.slice(w):"0."+new Array(1-w).join("0")+formatDecimalParts(v,Math.max(0,e+w-1))[0]}function formatRounded(v,e){var n=formatDecimalParts(v,e);if(!n)return v+"";var r=n[0],C=n[1];return C<0?"0."+new Array(-C).join("0")+r:r.length>C+1?r.slice(0,C+1)+"."+r.slice(C+1):r+new Array(C-r.length+2).join("0")}const formatTypes={"%":(v,e)=>(v*100).toFixed(e),b:v=>Math.round(v).toString(2),c:v=>v+"",d:formatDecimal,e:(v,e)=>v.toExponential(e),f:(v,e)=>v.toFixed(e),g:(v,e)=>v.toPrecision(e),o:v=>Math.round(v).toString(8),p:(v,e)=>formatRounded(v*100,e),r:formatRounded,s:formatPrefixAuto,X:v=>Math.round(v).toString(16).toUpperCase(),x:v=>Math.round(v).toString(16)};function identity(v){return v}var map$1=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale(v){var e=v.grouping===void 0||v.thousands===void 0?identity:formatGroup(map$1.call(v.grouping,Number),v.thousands+""),n=v.currency===void 0?"":v.currency[0]+"",r=v.currency===void 0?"":v.currency[1]+"",C=v.decimal===void 0?".":v.decimal+"",w=v.numerals===void 0?identity:formatNumerals(map$1.call(v.numerals,String)),E=v.percent===void 0?"%":v.percent+"",O=v.minus===void 0?"−":v.minus+"",le=v.nan===void 0?"NaN":v.nan+"";function fe(ze){ze=formatSpecifier(ze);var ke=ze.fill,Fe=ze.align,mt=ze.sign,Lt=ze.symbol,bt=ze.zero,Ue=ze.width,Gt=ze.comma,xt=ze.precision,Xt=ze.trim,Zt=ze.type;Zt==="n"?(Gt=!0,Zt="g"):formatTypes[Zt]||(xt===void 0&&(xt=12),Xt=!0,Zt="g"),(bt||ke==="0"&&Fe==="=")&&(bt=!0,ke="0",Fe="=");var wt=Lt==="$"?n:Lt==="#"&&/[boxX]/.test(Zt)?"0"+Zt.toLowerCase():"",Vt=Lt==="$"?r:/[%p]/.test(Zt)?E:"",Wt=formatTypes[Zt],It=/[defgprs%]/.test(Zt);xt=xt===void 0?6:/[gprs]/.test(Zt)?Math.max(1,Math.min(21,xt)):Math.max(0,Math.min(20,xt));function Nt(Ft){var jt=wt,n0=Vt,s0,qt,Ht;if(Zt==="c")n0=Wt(Ft)+n0,Ft="";else{Ft=+Ft;var $t=Ft<0||1/Ft<0;if(Ft=isNaN(Ft)?le:Wt(Math.abs(Ft),xt),Xt&&(Ft=formatTrim(Ft)),$t&&+Ft==0&&mt!=="+"&&($t=!1),jt=($t?mt==="("?mt:O:mt==="-"||mt==="("?"":mt)+jt,n0=(Zt==="s"?prefixes[8+prefixExponent/3]:"")+n0+($t&&mt==="("?")":""),It){for(s0=-1,qt=Ft.length;++s0<qt;)if(Ht=Ft.charCodeAt(s0),48>Ht||Ht>57){n0=(Ht===46?C+Ft.slice(s0+1):Ft.slice(s0))+n0,Ft=Ft.slice(0,s0);break}}}Gt&&!bt&&(Ft=e(Ft,1/0));var Kt=jt.length+Ft.length+n0.length,e0=Kt<Ue?new Array(Ue-Kt+1).join(ke):"";switch(Gt&&bt&&(Ft=e(e0+Ft,e0.length?Ue-n0.length:1/0),e0=""),Fe){case"<":Ft=jt+Ft+n0+e0;break;case"=":Ft=jt+e0+Ft+n0;break;case"^":Ft=e0.slice(0,Kt=e0.length>>1)+jt+Ft+n0+e0.slice(Kt);break;default:Ft=e0+jt+Ft+n0;break}return w(Ft)}return Nt.toString=function(){return ze+""},Nt}function Se(ze,ke){var Fe=fe((ze=formatSpecifier(ze),ze.type="f",ze)),mt=Math.max(-8,Math.min(8,Math.floor(exponent(ke)/3)))*3,Lt=Math.pow(10,-mt),bt=prefixes[8+mt/3];return function(Ue){return Fe(Lt*Ue)+bt}}return{format:fe,formatPrefix:Se}}var locale,format,formatPrefix;defaultLocale({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale(v){return locale=formatLocale(v),format=locale.format,formatPrefix=locale.formatPrefix,locale}function precisionFixed(v){return Math.max(0,-exponent(Math.abs(v)))}function precisionPrefix(v,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(e)/3)))*3-exponent(Math.abs(v)))}function precisionRound(v,e){return v=Math.abs(v),e=Math.abs(e)-v,Math.max(0,exponent(e)-exponent(v))+1}function tickFormat(v,e,n,r){var C=tickStep(v,e,n),w;switch(r=formatSpecifier(r==null?",f":r),r.type){case"s":{var E=Math.max(Math.abs(v),Math.abs(e));return r.precision==null&&!isNaN(w=precisionPrefix(C,E))&&(r.precision=w),formatPrefix(r,E)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(w=precisionRound(C,Math.max(Math.abs(v),Math.abs(e))))&&(r.precision=w-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(w=precisionFixed(C))&&(r.precision=w-(r.type==="%")*2);break}}return format(r)}function linearish(v){var e=v.domain;return v.ticks=function(n){var r=e();return ticks(r[0],r[r.length-1],n==null?10:n)},v.tickFormat=function(n,r){var C=e();return tickFormat(C[0],C[C.length-1],n==null?10:n,r)},v.nice=function(n){n==null&&(n=10);var r=e(),C=0,w=r.length-1,E=r[C],O=r[w],le,fe,Se=10;for(O<E&&(fe=E,E=O,O=fe,fe=C,C=w,w=fe);Se-- >0;){if(fe=tickIncrement(E,O,n),fe===le)return r[C]=E,r[w]=O,e(r);if(fe>0)E=Math.floor(E/fe)*fe,O=Math.ceil(O/fe)*fe;else if(fe<0)E=Math.ceil(E*fe)/fe,O=Math.floor(O*fe)/fe;else break;le=fe}return v},v}function linear(){var v=continuous();return v.copy=function(){return copy(v,linear())},initRange.apply(v,arguments),linearish(v)}var Ce=Object.defineProperty,Ie$2=Object.defineProperties,Pe=Object.getOwnPropertyDescriptors,V$2=Object.getOwnPropertySymbols,te$1=Object.prototype.hasOwnProperty,ie$1=Object.prototype.propertyIsEnumerable,ne$1=Math.pow,ee$1=(v,e,n)=>e in v?Ce(v,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):v[e]=n,k$1=(v,e)=>{for(var n in e||(e={}))te$1.call(e,n)&&ee$1(v,n,e[n]);if(V$2)for(var n of V$2(e))ie$1.call(e,n)&&ee$1(v,n,e[n]);return v},$$1=(v,e)=>Ie$2(v,Pe(e)),se$1=(v,e)=>{var n={};for(var r in v)te$1.call(v,r)&&e.indexOf(r)<0&&(n[r]=v[r]);if(v!=null&&V$2)for(var r of V$2(v))e.indexOf(r)<0&&ie$1.call(v,r)&&(n[r]=v[r]);return n},re$1=(v,e,n)=>new Promise((r,C)=>{var w=le=>{try{O(n.next(le))}catch(fe){C(fe)}},E=le=>{try{O(n.throw(le))}catch(fe){C(fe)}},O=le=>le.done?r(le.value):Promise.resolve(le.value).then(w,E);O((n=n.apply(v,e)).next())});const Je$2=0,Dt$2=1,He$2=2,Tt$1=!1;let et$2=class{constructor(){this.resources=new Set,this.disposeMaterial=!0,this.disposeVideo=!0}track(e){if(!e)return e;if(Array.isArray(e))return e.forEach(n=>this.track(n)),e;if(!this.disposeMaterial&&e instanceof Material)return e;if(e instanceof pe$1?(e.disposeTrack&&e.object3d?this.track(e.object3d):this.resources.add(e),Object.values(e.materialList).map(n=>this.track(n))):(e instanceof Object3D||Reflect.has(e,"dispose"))&&this.resources.add(e),e instanceof pe$1)e.children.forEach(n=>{n.disposeTrack=!1}),this.track(e.children);else if(e instanceof Object3D){const n=e;this.track(n.geometry),this.track(n.material),this.track(n.children)}else if(e instanceof Material){for(const r of Object.values(e))r instanceof Texture&&this.track(r);const n=e;if(n.uniforms){for(const r of Object.values(n.uniforms))if(r){const C=r.value;(C instanceof Texture||Array.isArray(C))&&this.track(C)}}}else this.disposeVideo&&e.isVideoTexture&&e.source.data&&this.resources.add(e.source.data);return e}dispose(){const e=[];for(const n of this.resources)n instanceof Object3D?e.push(n):n instanceof HTMLVideoElement&&n.pause(),Reflect.has(n,"dispose")&&n.dispose();e.forEach(n=>{n.removeFromParent()}),e.length=0,this.resources.clear()}};const tt$1=(v,e=1)=>{const n=new BufferGeometry;n.setAttribute("position",new Float32BufferAttribute(new Array(e*3).fill(0),3)),n.setAttribute("scaleAtt",new Float32BufferAttribute(new Array(e).fill(1),1));const r=v.material,C=new PointsMaterial({size:10,map:r.map,alphaMap:r.alphaMap,color:r.color,blending:r.blending,depthTest:r.depthTest,depthWrite:!1,opacity:r.opacity,transparent:!0,alphaTest:r.alphaTest,sizeAttenuation:!1});return C.onBeforeCompile=w=>{w.vertexShader=`
|
|
4210
|
+
`};class LineMaterial extends ShaderMaterial{constructor(e){super({type:"LineMaterial",uniforms:UniformsUtils.clone(ShaderLib.line.uniforms),vertexShader:ShaderLib.line.vertexShader,fragmentShader:ShaderLib.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?this.defines.USE_ALPHA_TO_COVERAGE="":delete this.defines.USE_ALPHA_TO_COVERAGE)}}const _box$1=new Box3,_vector=new Vector3;class LineSegmentsGeometry extends InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],n=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],r=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(r),this.setAttribute("position",new Float32BufferAttribute(e,3)),this.setAttribute("uv",new Float32BufferAttribute(n,2))}applyMatrix4(e){const n=this.attributes.instanceStart,r=this.attributes.instanceEnd;return n!==void 0&&(n.applyMatrix4(e),r.applyMatrix4(e),n.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const r=new InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceStart",new InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new InterleavedBufferAttribute(r,3,3)),this.instanceCount=this.attributes.instanceStart.count,this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const r=new InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceColorStart",new InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceColorEnd",new InterleavedBufferAttribute(r,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new WireframeGeometry(e.geometry)),this}fromLineSegments(e){const n=e.geometry;return this.setPositions(n.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;e!==void 0&&n!==void 0&&(this.boundingBox.setFromBufferAttribute(e),_box$1.setFromBufferAttribute(n),this.boundingBox.union(_box$1))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere$1),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(e!==void 0&&n!==void 0){const r=this.boundingSphere.center;this.boundingBox.getCenter(r);let C=0;for(let w=0,E=e.count;w<E;w++)_vector.fromBufferAttribute(e,w),C=Math.max(C,r.distanceToSquared(_vector)),_vector.fromBufferAttribute(n,w),C=Math.max(C,r.distanceToSquared(_vector));this.boundingSphere.radius=Math.sqrt(C),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}}class CSS2DObject extends Object3D{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new Vector2(.5,.5),this.addEventListener("removed",function(){this.traverse(function(n){n.element instanceof n.element.ownerDocument.defaultView.Element&&n.element.parentNode!==null&&n.element.remove()})})}copy(e,n){return super.copy(e,n),this.element=e.element.cloneNode(!0),this.center=e.center,this}}new Vector3;new Matrix4;new Matrix4;new Vector3;new Vector3;new Vector3;new Vector3;class CSS3DObject extends Object3D{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(n){n.element instanceof n.element.ownerDocument.defaultView.Element&&n.element.parentNode!==null&&n.element.remove()})})}copy(e,n){return super.copy(e,n),this.element=e.element.cloneNode(!0),this}}class CSS3DSprite extends CSS3DObject{constructor(e){super(e),this.isCSS3DSprite=!0,this.rotation2D=0}copy(e,n){return super.copy(e,n),this.rotation2D=e.rotation2D,this}}new Matrix4;new Matrix4;function ascending(v,e){return v==null||e==null?NaN:v<e?-1:v>e?1:v>=e?0:NaN}function descending(v,e){return v==null||e==null?NaN:e<v?-1:e>v?1:e>=v?0:NaN}function bisector(v){let e,n,r;v.length!==2?(e=ascending,n=(O,le)=>ascending(v(O),le),r=(O,le)=>v(O)-le):(e=v===ascending||v===descending?v:zero$1,n=v,r=v);function C(O,le,fe=0,Se=O.length){if(fe<Se){if(e(le,le)!==0)return Se;do{const ze=fe+Se>>>1;n(O[ze],le)<0?fe=ze+1:Se=ze}while(fe<Se)}return fe}function w(O,le,fe=0,Se=O.length){if(fe<Se){if(e(le,le)!==0)return Se;do{const ze=fe+Se>>>1;n(O[ze],le)<=0?fe=ze+1:Se=ze}while(fe<Se)}return fe}function E(O,le,fe=0,Se=O.length){const ze=C(O,le,fe,Se-1);return ze>fe&&r(O[ze-1],le)>-r(O[ze],le)?ze-1:ze}return{left:C,center:E,right:w}}function zero$1(){return 0}function number$1(v){return v===null?NaN:+v}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$1).center;function extent(v,e){let n,r;if(e===void 0)for(const C of v)C!=null&&(n===void 0?C>=C&&(n=r=C):(n>C&&(n=C),r<C&&(r=C)));else{let C=-1;for(let w of v)(w=e(w,++C,v))!=null&&(n===void 0?w>=w&&(n=r=w):(n>w&&(n=w),r<w&&(r=w)))}return[n,r]}class Adder{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let r=0;for(let C=0;C<this._n&&C<32;C++){const w=n[C],E=e+w,O=Math.abs(e)<Math.abs(w)?e-(E-w):w-(E-e);O&&(n[r++]=O),e=E}return n[r]=e,this._n=r+1,this}valueOf(){const e=this._partials;let n=this._n,r,C,w,E=0;if(n>0){for(E=e[--n];n>0&&(r=E,C=e[--n],E=r+C,w=C-(E-r),!w););n>0&&(w<0&&e[n-1]<0||w>0&&e[n-1]>0)&&(C=w*2,r=E+C,C==r-E&&(E=r))}return E}}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(v,e,n){const r=(e-v)/Math.max(0,n),C=Math.floor(Math.log10(r)),w=r/Math.pow(10,C),E=w>=e10?10:w>=e5?5:w>=e2?2:1;let O,le,fe;return C<0?(fe=Math.pow(10,-C)/E,O=Math.round(v*fe),le=Math.round(e*fe),O/fe<v&&++O,le/fe>e&&--le,fe=-fe):(fe=Math.pow(10,C)*E,O=Math.round(v/fe),le=Math.round(e/fe),O*fe<v&&++O,le*fe>e&&--le),le<O&&.5<=n&&n<2?tickSpec(v,e,n*2):[O,le,fe]}function ticks(v,e,n){if(e=+e,v=+v,n=+n,!(n>0))return[];if(v===e)return[v];const r=e<v,[C,w,E]=r?tickSpec(e,v,n):tickSpec(v,e,n);if(!(w>=C))return[];const O=w-C+1,le=new Array(O);if(r)if(E<0)for(let fe=0;fe<O;++fe)le[fe]=(w-fe)/-E;else for(let fe=0;fe<O;++fe)le[fe]=(w-fe)*E;else if(E<0)for(let fe=0;fe<O;++fe)le[fe]=(C+fe)/-E;else for(let fe=0;fe<O;++fe)le[fe]=(C+fe)*E;return le}function tickIncrement(v,e,n){return e=+e,v=+v,n=+n,tickSpec(v,e,n)[2]}function tickStep(v,e,n){e=+e,v=+v,n=+n;const r=e<v,C=r?tickIncrement(e,v,n):tickIncrement(v,e,n);return(r?-1:1)*(C<0?1/-C:C)}function mean(v,e){let n=0,r=0;if(e===void 0)for(let C of v)C!=null&&(C=+C)>=C&&(++n,r+=C);else{let C=-1;for(let w of v)(w=e(w,++C,v))!=null&&(w=+w)>=w&&(++n,r+=w)}if(n)return r/n}function*flatten$1(v){for(const e of v)yield*In(e)}function merge(v){return Array.from(flatten$1(v))}var epsilon$3=1e-6,epsilon2=1e-12,pi$3=Math.PI,halfPi$2=pi$3/2,quarterPi=pi$3/4,tau$1=pi$3*2,degrees$1=180/pi$3,radians$1=pi$3/180,abs$1=Math.abs,atan=Math.atan,atan2$1=Math.atan2,cos$2=Math.cos,exp=Math.exp,hypot=Math.hypot,log=Math.log,sin$2=Math.sin,sign$2=Math.sign||function(v){return v>0?1:v<0?-1:0},sqrt$2=Math.sqrt,tan=Math.tan;function acos$1(v){return v>1?0:v<-1?pi$3:Math.acos(v)}function asin$1(v){return v>1?halfPi$2:v<-1?-halfPi$2:Math.asin(v)}function haversin(v){return(v=sin$2(v/2))*v}function noop(){}function streamGeometry(v,e){v&&streamGeometryType.hasOwnProperty(v.type)&&streamGeometryType[v.type](v,e)}var streamObjectType={Feature:function(v,e){streamGeometry(v.geometry,e)},FeatureCollection:function(v,e){for(var n=v.features,r=-1,C=n.length;++r<C;)streamGeometry(n[r].geometry,e)}},streamGeometryType={Sphere:function(v,e){e.sphere()},Point:function(v,e){v=v.coordinates,e.point(v[0],v[1],v[2])},MultiPoint:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)v=n[r],e.point(v[0],v[1],v[2])},LineString:function(v,e){streamLine(v.coordinates,e,0)},MultiLineString:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)streamLine(n[r],e,0)},Polygon:function(v,e){streamPolygon(v.coordinates,e)},MultiPolygon:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)streamPolygon(n[r],e)},GeometryCollection:function(v,e){for(var n=v.geometries,r=-1,C=n.length;++r<C;)streamGeometry(n[r],e)}};function streamLine(v,e,n){var r=-1,C=v.length-n,w;for(e.lineStart();++r<C;)w=v[r],e.point(w[0],w[1],w[2]);e.lineEnd()}function streamPolygon(v,e){var n=-1,r=v.length;for(e.polygonStart();++n<r;)streamLine(v[n],e,1);e.polygonEnd()}function geoStream(v,e){v&&streamObjectType.hasOwnProperty(v.type)?streamObjectType[v.type](v,e):streamGeometry(v,e)}var areaRingSum=new Adder,areaSum=new Adder,lambda00$2,phi00$2,lambda0$2,cosPhi0$1,sinPhi0$1,areaStream={point:noop,lineStart:noop,lineEnd:noop,polygonStart:function(){areaRingSum=new Adder,areaStream.lineStart=areaRingStart,areaStream.lineEnd=areaRingEnd},polygonEnd:function(){var v=+areaRingSum;areaSum.add(v<0?tau$1+v:v),this.lineStart=this.lineEnd=this.point=noop},sphere:function(){areaSum.add(tau$1)}};function areaRingStart(){areaStream.point=areaPointFirst}function areaRingEnd(){areaPoint(lambda00$2,phi00$2)}function areaPointFirst(v,e){areaStream.point=areaPoint,lambda00$2=v,phi00$2=e,v*=radians$1,e*=radians$1,lambda0$2=v,cosPhi0$1=cos$2(e=e/2+quarterPi),sinPhi0$1=sin$2(e)}function areaPoint(v,e){v*=radians$1,e*=radians$1,e=e/2+quarterPi;var n=v-lambda0$2,r=n>=0?1:-1,C=r*n,w=cos$2(e),E=sin$2(e),O=sinPhi0$1*E,le=cosPhi0$1*w+O*cos$2(C),fe=O*r*sin$2(C);areaRingSum.add(atan2$1(fe,le)),lambda0$2=v,cosPhi0$1=w,sinPhi0$1=E}function spherical$1(v){return[atan2$1(v[1],v[0]),asin$1(v[2])]}function cartesian$1(v){var e=v[0],n=v[1],r=cos$2(n);return[r*cos$2(e),r*sin$2(e),sin$2(n)]}function cartesianDot$1(v,e){return v[0]*e[0]+v[1]*e[1]+v[2]*e[2]}function cartesianCross$1(v,e){return[v[1]*e[2]-v[2]*e[1],v[2]*e[0]-v[0]*e[2],v[0]*e[1]-v[1]*e[0]]}function cartesianAddInPlace(v,e){v[0]+=e[0],v[1]+=e[1],v[2]+=e[2]}function cartesianScale(v,e){return[v[0]*e,v[1]*e,v[2]*e]}function cartesianNormalizeInPlace(v){var e=sqrt$2(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);v[0]/=e,v[1]/=e,v[2]/=e}var lambda0$1,phi0,lambda1,phi1,lambda2,lambda00$1,phi00$1,p0,deltaSum,ranges,range,boundsStream$1={point:boundsPoint$1,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){boundsStream$1.point=boundsRingPoint,boundsStream$1.lineStart=boundsRingStart,boundsStream$1.lineEnd=boundsRingEnd,deltaSum=new Adder,areaStream.polygonStart()},polygonEnd:function(){areaStream.polygonEnd(),boundsStream$1.point=boundsPoint$1,boundsStream$1.lineStart=boundsLineStart,boundsStream$1.lineEnd=boundsLineEnd,areaRingSum<0?(lambda0$1=-(lambda1=180),phi0=-(phi1=90)):deltaSum>epsilon$3?phi1=90:deltaSum<-epsilon$3&&(phi0=-90),range[0]=lambda0$1,range[1]=lambda1},sphere:function(){lambda0$1=-(lambda1=180),phi0=-(phi1=90)}};function boundsPoint$1(v,e){ranges.push(range=[lambda0$1=v,lambda1=v]),e<phi0&&(phi0=e),e>phi1&&(phi1=e)}function linePoint(v,e){var n=cartesian$1([v*radians$1,e*radians$1]);if(p0){var r=cartesianCross$1(p0,n),C=[r[1],-r[0],0],w=cartesianCross$1(C,r);cartesianNormalizeInPlace(w),w=spherical$1(w);var E=v-lambda2,O=E>0?1:-1,le=w[0]*degrees$1*O,fe,Se=abs$1(E)>180;Se^(O*lambda2<le&&le<O*v)?(fe=w[1]*degrees$1,fe>phi1&&(phi1=fe)):(le=(le+360)%360-180,Se^(O*lambda2<le&&le<O*v)?(fe=-w[1]*degrees$1,fe<phi0&&(phi0=fe)):(e<phi0&&(phi0=e),e>phi1&&(phi1=e))),Se?v<lambda2?angle(lambda0$1,v)>angle(lambda0$1,lambda1)&&(lambda1=v):angle(v,lambda1)>angle(lambda0$1,lambda1)&&(lambda0$1=v):lambda1>=lambda0$1?(v<lambda0$1&&(lambda0$1=v),v>lambda1&&(lambda1=v)):v>lambda2?angle(lambda0$1,v)>angle(lambda0$1,lambda1)&&(lambda1=v):angle(v,lambda1)>angle(lambda0$1,lambda1)&&(lambda0$1=v)}else ranges.push(range=[lambda0$1=v,lambda1=v]);e<phi0&&(phi0=e),e>phi1&&(phi1=e),p0=n,lambda2=v}function boundsLineStart(){boundsStream$1.point=linePoint}function boundsLineEnd(){range[0]=lambda0$1,range[1]=lambda1,boundsStream$1.point=boundsPoint$1,p0=null}function boundsRingPoint(v,e){if(p0){var n=v-lambda2;deltaSum.add(abs$1(n)>180?n+(n>0?360:-360):n)}else lambda00$1=v,phi00$1=e;areaStream.point(v,e),linePoint(v,e)}function boundsRingStart(){areaStream.lineStart()}function boundsRingEnd(){boundsRingPoint(lambda00$1,phi00$1),areaStream.lineEnd(),abs$1(deltaSum)>epsilon$3&&(lambda0$1=-(lambda1=180)),range[0]=lambda0$1,range[1]=lambda1,p0=null}function angle(v,e){return(e-=v)<0?e+360:e}function rangeCompare(v,e){return v[0]-e[0]}function rangeContains(v,e){return v[0]<=v[1]?v[0]<=e&&e<=v[1]:e<v[0]||v[1]<e}function je$1(v){var e,n,r,C,w,E,O;if(phi1=lambda1=-(lambda0$1=phi0=1/0),ranges=[],geoStream(v,boundsStream$1),n=ranges.length){for(ranges.sort(rangeCompare),e=1,r=ranges[0],w=[r];e<n;++e)C=ranges[e],rangeContains(r,C[0])||rangeContains(r,C[1])?(angle(r[0],C[1])>angle(r[0],r[1])&&(r[1]=C[1]),angle(C[0],r[1])>angle(r[0],r[1])&&(r[0]=C[0])):w.push(r=C);for(E=-1/0,n=w.length-1,e=0,r=w[n];e<=n;r=C,++e)C=w[e],(O=angle(r[1],C[0]))>E&&(E=O,lambda0$1=C[0],lambda1=r[1])}return ranges=range=null,lambda0$1===1/0||phi0===1/0?[[NaN,NaN],[NaN,NaN]]:[[lambda0$1,phi0],[lambda1,phi1]]}var W0,W1,X0,Y0,Z0,X1,Y1,Z1,X2,Y2,Z2,lambda00,phi00,x0$1,y0$1,z0,centroidStream={sphere:noop,point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){centroidStream.lineStart=centroidRingStart,centroidStream.lineEnd=centroidRingEnd},polygonEnd:function(){centroidStream.lineStart=centroidLineStart,centroidStream.lineEnd=centroidLineEnd}};function centroidPoint(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e);centroidPointCartesian(n*cos$2(v),n*sin$2(v),sin$2(e))}function centroidPointCartesian(v,e,n){++W0,X0+=(v-X0)/W0,Y0+=(e-Y0)/W0,Z0+=(n-Z0)/W0}function centroidLineStart(){centroidStream.point=centroidLinePointFirst}function centroidLinePointFirst(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e);x0$1=n*cos$2(v),y0$1=n*sin$2(v),z0=sin$2(e),centroidStream.point=centroidLinePoint,centroidPointCartesian(x0$1,y0$1,z0)}function centroidLinePoint(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e),r=n*cos$2(v),C=n*sin$2(v),w=sin$2(e),E=atan2$1(sqrt$2((E=y0$1*w-z0*C)*E+(E=z0*r-x0$1*w)*E+(E=x0$1*C-y0$1*r)*E),x0$1*r+y0$1*C+z0*w);W1+=E,X1+=E*(x0$1+(x0$1=r)),Y1+=E*(y0$1+(y0$1=C)),Z1+=E*(z0+(z0=w)),centroidPointCartesian(x0$1,y0$1,z0)}function centroidLineEnd(){centroidStream.point=centroidPoint}function centroidRingStart(){centroidStream.point=centroidRingPointFirst}function centroidRingEnd(){centroidRingPoint(lambda00,phi00),centroidStream.point=centroidPoint}function centroidRingPointFirst(v,e){lambda00=v,phi00=e,v*=radians$1,e*=radians$1,centroidStream.point=centroidRingPoint;var n=cos$2(e);x0$1=n*cos$2(v),y0$1=n*sin$2(v),z0=sin$2(e),centroidPointCartesian(x0$1,y0$1,z0)}function centroidRingPoint(v,e){v*=radians$1,e*=radians$1;var n=cos$2(e),r=n*cos$2(v),C=n*sin$2(v),w=sin$2(e),E=y0$1*w-z0*C,O=z0*r-x0$1*w,le=x0$1*C-y0$1*r,fe=hypot(E,O,le),Se=asin$1(fe),ze=fe&&-Se/fe;X2.add(ze*E),Y2.add(ze*O),Z2.add(ze*le),W1+=Se,X1+=Se*(x0$1+(x0$1=r)),Y1+=Se*(y0$1+(y0$1=C)),Z1+=Se*(z0+(z0=w)),centroidPointCartesian(x0$1,y0$1,z0)}function geoCentroid(v){W0=W1=X0=Y0=Z0=X1=Y1=Z1=0,X2=new Adder,Y2=new Adder,Z2=new Adder,geoStream(v,centroidStream);var e=+X2,n=+Y2,r=+Z2,C=hypot(e,n,r);return C<epsilon2&&(e=X1,n=Y1,r=Z1,W1<epsilon$3&&(e=X0,n=Y0,r=Z0),C=hypot(e,n,r),C<epsilon2)?[NaN,NaN]:[atan2$1(n,e)*degrees$1,asin$1(r/C)*degrees$1]}function compose(v,e){function n(r,C){return r=v(r,C),e(r[0],r[1])}return v.invert&&e.invert&&(n.invert=function(r,C){return r=e.invert(r,C),r&&v.invert(r[0],r[1])}),n}function rotationIdentity(v,e){return abs$1(v)>pi$3&&(v-=Math.round(v/tau$1)*tau$1),[v,e]}rotationIdentity.invert=rotationIdentity;function rotateRadians(v,e,n){return(v%=tau$1)?e||n?compose(rotationLambda(v),rotationPhiGamma(e,n)):rotationLambda(v):e||n?rotationPhiGamma(e,n):rotationIdentity}function forwardRotationLambda(v){return function(e,n){return e+=v,abs$1(e)>pi$3&&(e-=Math.round(e/tau$1)*tau$1),[e,n]}}function rotationLambda(v){var e=forwardRotationLambda(v);return e.invert=forwardRotationLambda(-v),e}function rotationPhiGamma(v,e){var n=cos$2(v),r=sin$2(v),C=cos$2(e),w=sin$2(e);function E(O,le){var fe=cos$2(le),Se=cos$2(O)*fe,ze=sin$2(O)*fe,ke=sin$2(le),Fe=ke*n+Se*r;return[atan2$1(ze*C-Fe*w,Se*n-ke*r),asin$1(Fe*C+ze*w)]}return E.invert=function(O,le){var fe=cos$2(le),Se=cos$2(O)*fe,ze=sin$2(O)*fe,ke=sin$2(le),Fe=ke*C-ze*w;return[atan2$1(ze*C+ke*w,Se*n+Fe*r),asin$1(Fe*n-Se*r)]},E}function geoRotation(v){v=rotateRadians(v[0]*radians$1,v[1]*radians$1,v.length>2?v[2]*radians$1:0);function e(n){return n=v(n[0]*radians$1,n[1]*radians$1),n[0]*=degrees$1,n[1]*=degrees$1,n}return e.invert=function(n){return n=v.invert(n[0]*radians$1,n[1]*radians$1),n[0]*=degrees$1,n[1]*=degrees$1,n},e}function circleStream(v,e,n,r,C,w){if(n){var E=cos$2(e),O=sin$2(e),le=r*n;C==null?(C=e+r*tau$1,w=e-le/2):(C=circleRadius(E,C),w=circleRadius(E,w),(r>0?C<w:C>w)&&(C+=r*tau$1));for(var fe,Se=C;r>0?Se>w:Se<w;Se-=le)fe=spherical$1([E,-O*cos$2(Se),-O*sin$2(Se)]),v.point(fe[0],fe[1])}}function circleRadius(v,e){e=cartesian$1(e),e[0]-=v,cartesianNormalizeInPlace(e);var n=acos$1(-e[1]);return((-e[2]<0?-n:n)+tau$1-epsilon$3)%tau$1}function clipBuffer(){var v=[],e;return{point:function(n,r,C){e.push([n,r,C])},lineStart:function(){v.push(e=[])},lineEnd:noop,rejoin:function(){v.length>1&&v.push(v.pop().concat(v.shift()))},result:function(){var n=v;return v=[],e=null,n}}}function pointEqual(v,e){return abs$1(v[0]-e[0])<epsilon$3&&abs$1(v[1]-e[1])<epsilon$3}function Intersection(v,e,n,r){this.x=v,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function clipRejoin(v,e,n,r,C){var w=[],E=[],O,le;if(v.forEach(function(mt){if(!((Lt=mt.length-1)<=0)){var Lt,bt=mt[0],Ue=mt[Lt],Gt;if(pointEqual(bt,Ue)){if(!bt[2]&&!Ue[2]){for(C.lineStart(),O=0;O<Lt;++O)C.point((bt=mt[O])[0],bt[1]);C.lineEnd();return}Ue[0]+=2*epsilon$3}w.push(Gt=new Intersection(bt,mt,null,!0)),E.push(Gt.o=new Intersection(bt,null,Gt,!1)),w.push(Gt=new Intersection(Ue,mt,null,!1)),E.push(Gt.o=new Intersection(Ue,null,Gt,!0))}}),!!w.length){for(E.sort(e),link(w),link(E),O=0,le=E.length;O<le;++O)E[O].e=n=!n;for(var fe=w[0],Se,ze;;){for(var ke=fe,Fe=!0;ke.v;)if((ke=ke.n)===fe)return;Se=ke.z,C.lineStart();do{if(ke.v=ke.o.v=!0,ke.e){if(Fe)for(O=0,le=Se.length;O<le;++O)C.point((ze=Se[O])[0],ze[1]);else r(ke.x,ke.n.x,1,C);ke=ke.n}else{if(Fe)for(Se=ke.p.z,O=Se.length-1;O>=0;--O)C.point((ze=Se[O])[0],ze[1]);else r(ke.x,ke.p.x,-1,C);ke=ke.p}ke=ke.o,Se=ke.z,Fe=!Fe}while(!ke.v);C.lineEnd()}}}function link(v){if(e=v.length){for(var e,n=0,r=v[0],C;++n<e;)r.n=C=v[n],C.p=r,r=C;r.n=C=v[0],C.p=r}}function longitude(v){return abs$1(v[0])<=pi$3?v[0]:sign$2(v[0])*((abs$1(v[0])+pi$3)%tau$1-pi$3)}function polygonContains(v,e){var n=longitude(e),r=e[1],C=sin$2(r),w=[sin$2(n),-cos$2(n),0],E=0,O=0,le=new Adder;C===1?r=halfPi$2+epsilon$3:C===-1&&(r=-halfPi$2-epsilon$3);for(var fe=0,Se=v.length;fe<Se;++fe)if(ke=(ze=v[fe]).length)for(var ze,ke,Fe=ze[ke-1],mt=longitude(Fe),Lt=Fe[1]/2+quarterPi,bt=sin$2(Lt),Ue=cos$2(Lt),Gt=0;Gt<ke;++Gt,mt=Xt,bt=wt,Ue=Vt,Fe=xt){var xt=ze[Gt],Xt=longitude(xt),Zt=xt[1]/2+quarterPi,wt=sin$2(Zt),Vt=cos$2(Zt),Wt=Xt-mt,It=Wt>=0?1:-1,Nt=It*Wt,Ft=Nt>pi$3,jt=bt*wt;if(le.add(atan2$1(jt*It*sin$2(Nt),Ue*Vt+jt*cos$2(Nt))),E+=Ft?Wt+It*tau$1:Wt,Ft^mt>=n^Xt>=n){var n0=cartesianCross$1(cartesian$1(Fe),cartesian$1(xt));cartesianNormalizeInPlace(n0);var s0=cartesianCross$1(w,n0);cartesianNormalizeInPlace(s0);var qt=(Ft^Wt>=0?-1:1)*asin$1(s0[2]);(r>qt||r===qt&&(n0[0]||n0[1]))&&(O+=Ft^Wt>=0?1:-1)}}return(E<-epsilon$3||E<epsilon$3&&le<-epsilon2)^O&1}function clip(v,e,n,r){return function(C){var w=e(C),E=clipBuffer(),O=e(E),le=!1,fe,Se,ze,ke={point:Fe,lineStart:Lt,lineEnd:bt,polygonStart:function(){ke.point=Ue,ke.lineStart=Gt,ke.lineEnd=xt,Se=[],fe=[]},polygonEnd:function(){ke.point=Fe,ke.lineStart=Lt,ke.lineEnd=bt,Se=merge(Se);var Xt=polygonContains(fe,r);Se.length?(le||(C.polygonStart(),le=!0),clipRejoin(Se,compareIntersection,Xt,n,C)):Xt&&(le||(C.polygonStart(),le=!0),C.lineStart(),n(null,null,1,C),C.lineEnd()),le&&(C.polygonEnd(),le=!1),Se=fe=null},sphere:function(){C.polygonStart(),C.lineStart(),n(null,null,1,C),C.lineEnd(),C.polygonEnd()}};function Fe(Xt,Zt){v(Xt,Zt)&&C.point(Xt,Zt)}function mt(Xt,Zt){w.point(Xt,Zt)}function Lt(){ke.point=mt,w.lineStart()}function bt(){ke.point=Fe,w.lineEnd()}function Ue(Xt,Zt){ze.push([Xt,Zt]),O.point(Xt,Zt)}function Gt(){O.lineStart(),ze=[]}function xt(){Ue(ze[0][0],ze[0][1]),O.lineEnd();var Xt=O.clean(),Zt=E.result(),wt,Vt=Zt.length,Wt,It,Nt;if(ze.pop(),fe.push(ze),ze=null,!!Vt){if(Xt&1){if(It=Zt[0],(Wt=It.length-1)>0){for(le||(C.polygonStart(),le=!0),C.lineStart(),wt=0;wt<Wt;++wt)C.point((Nt=It[wt])[0],Nt[1]);C.lineEnd()}return}Vt>1&&Xt&2&&Zt.push(Zt.pop().concat(Zt.shift())),Se.push(Zt.filter(validSegment))}}return ke}}function validSegment(v){return v.length>1}function compareIntersection(v,e){return((v=v.x)[0]<0?v[1]-halfPi$2-epsilon$3:halfPi$2-v[1])-((e=e.x)[0]<0?e[1]-halfPi$2-epsilon$3:halfPi$2-e[1])}const clipAntimeridian=clip(function(){return!0},clipAntimeridianLine,clipAntimeridianInterpolate,[-pi$3,-halfPi$2]);function clipAntimeridianLine(v){var e=NaN,n=NaN,r=NaN,C;return{lineStart:function(){v.lineStart(),C=1},point:function(w,E){var O=w>0?pi$3:-pi$3,le=abs$1(w-e);abs$1(le-pi$3)<epsilon$3?(v.point(e,n=(n+E)/2>0?halfPi$2:-halfPi$2),v.point(r,n),v.lineEnd(),v.lineStart(),v.point(O,n),v.point(w,n),C=0):r!==O&&le>=pi$3&&(abs$1(e-r)<epsilon$3&&(e-=r*epsilon$3),abs$1(w-O)<epsilon$3&&(w-=O*epsilon$3),n=clipAntimeridianIntersect(e,n,w,E),v.point(r,n),v.lineEnd(),v.lineStart(),v.point(O,n),C=0),v.point(e=w,n=E),r=O},lineEnd:function(){v.lineEnd(),e=n=NaN},clean:function(){return 2-C}}}function clipAntimeridianIntersect(v,e,n,r){var C,w,E=sin$2(v-n);return abs$1(E)>epsilon$3?atan((sin$2(e)*(w=cos$2(r))*sin$2(n)-sin$2(r)*(C=cos$2(e))*sin$2(v))/(C*w*E)):(e+r)/2}function clipAntimeridianInterpolate(v,e,n,r){var C;if(v==null)C=n*halfPi$2,r.point(-pi$3,C),r.point(0,C),r.point(pi$3,C),r.point(pi$3,0),r.point(pi$3,-C),r.point(0,-C),r.point(-pi$3,-C),r.point(-pi$3,0),r.point(-pi$3,C);else if(abs$1(v[0]-e[0])>epsilon$3){var w=v[0]<e[0]?pi$3:-pi$3;C=n*w/2,r.point(-w,C),r.point(0,C),r.point(w,C)}else r.point(e[0],e[1])}function clipCircle(v){var e=cos$2(v),n=2*radians$1,r=e>0,C=abs$1(e)>epsilon$3;function w(Se,ze,ke,Fe){circleStream(Fe,v,n,ke,Se,ze)}function E(Se,ze){return cos$2(Se)*cos$2(ze)>e}function O(Se){var ze,ke,Fe,mt,Lt;return{lineStart:function(){mt=Fe=!1,Lt=1},point:function(bt,Ue){var Gt=[bt,Ue],xt,Xt=E(bt,Ue),Zt=r?Xt?0:fe(bt,Ue):Xt?fe(bt+(bt<0?pi$3:-pi$3),Ue):0;if(!ze&&(mt=Fe=Xt)&&Se.lineStart(),Xt!==Fe&&(xt=le(ze,Gt),(!xt||pointEqual(ze,xt)||pointEqual(Gt,xt))&&(Gt[2]=1)),Xt!==Fe)Lt=0,Xt?(Se.lineStart(),xt=le(Gt,ze),Se.point(xt[0],xt[1])):(xt=le(ze,Gt),Se.point(xt[0],xt[1],2),Se.lineEnd()),ze=xt;else if(C&&ze&&r^Xt){var wt;!(Zt&ke)&&(wt=le(Gt,ze,!0))&&(Lt=0,r?(Se.lineStart(),Se.point(wt[0][0],wt[0][1]),Se.point(wt[1][0],wt[1][1]),Se.lineEnd()):(Se.point(wt[1][0],wt[1][1]),Se.lineEnd(),Se.lineStart(),Se.point(wt[0][0],wt[0][1],3)))}Xt&&(!ze||!pointEqual(ze,Gt))&&Se.point(Gt[0],Gt[1]),ze=Gt,Fe=Xt,ke=Zt},lineEnd:function(){Fe&&Se.lineEnd(),ze=null},clean:function(){return Lt|(mt&&Fe)<<1}}}function le(Se,ze,ke){var Fe=cartesian$1(Se),mt=cartesian$1(ze),Lt=[1,0,0],bt=cartesianCross$1(Fe,mt),Ue=cartesianDot$1(bt,bt),Gt=bt[0],xt=Ue-Gt*Gt;if(!xt)return!ke&&Se;var Xt=e*Ue/xt,Zt=-e*Gt/xt,wt=cartesianCross$1(Lt,bt),Vt=cartesianScale(Lt,Xt),Wt=cartesianScale(bt,Zt);cartesianAddInPlace(Vt,Wt);var It=wt,Nt=cartesianDot$1(Vt,It),Ft=cartesianDot$1(It,It),jt=Nt*Nt-Ft*(cartesianDot$1(Vt,Vt)-1);if(!(jt<0)){var n0=sqrt$2(jt),s0=cartesianScale(It,(-Nt-n0)/Ft);if(cartesianAddInPlace(s0,Vt),s0=spherical$1(s0),!ke)return s0;var qt=Se[0],Ht=ze[0],$t=Se[1],Kt=ze[1],e0;Ht<qt&&(e0=qt,qt=Ht,Ht=e0);var u0=Ht-qt,d0=abs$1(u0-pi$3)<epsilon$3,_0=d0||u0<epsilon$3;if(!d0&&Kt<$t&&(e0=$t,$t=Kt,Kt=e0),_0?d0?$t+Kt>0^s0[1]<(abs$1(s0[0]-qt)<epsilon$3?$t:Kt):$t<=s0[1]&&s0[1]<=Kt:u0>pi$3^(qt<=s0[0]&&s0[0]<=Ht)){var J0=cartesianScale(It,(-Nt+n0)/Ft);return cartesianAddInPlace(J0,Vt),[s0,spherical$1(J0)]}}}function fe(Se,ze){var ke=r?v:pi$3-v,Fe=0;return Se<-ke?Fe|=1:Se>ke&&(Fe|=2),ze<-ke?Fe|=4:ze>ke&&(Fe|=8),Fe}return clip(E,O,w,r?[0,-v]:[-pi$3,v-pi$3])}function clipLine(v,e,n,r,C,w){var E=v[0],O=v[1],le=e[0],fe=e[1],Se=0,ze=1,ke=le-E,Fe=fe-O,mt;if(mt=n-E,!(!ke&&mt>0)){if(mt/=ke,ke<0){if(mt<Se)return;mt<ze&&(ze=mt)}else if(ke>0){if(mt>ze)return;mt>Se&&(Se=mt)}if(mt=C-E,!(!ke&&mt<0)){if(mt/=ke,ke<0){if(mt>ze)return;mt>Se&&(Se=mt)}else if(ke>0){if(mt<Se)return;mt<ze&&(ze=mt)}if(mt=r-O,!(!Fe&&mt>0)){if(mt/=Fe,Fe<0){if(mt<Se)return;mt<ze&&(ze=mt)}else if(Fe>0){if(mt>ze)return;mt>Se&&(Se=mt)}if(mt=w-O,!(!Fe&&mt<0)){if(mt/=Fe,Fe<0){if(mt>ze)return;mt>Se&&(Se=mt)}else if(Fe>0){if(mt<Se)return;mt<ze&&(ze=mt)}return Se>0&&(v[0]=E+Se*ke,v[1]=O+Se*Fe),ze<1&&(e[0]=E+ze*ke,e[1]=O+ze*Fe),!0}}}}}var clipMax=1e9,clipMin=-clipMax;function clipRectangle(v,e,n,r){function C(fe,Se){return v<=fe&&fe<=n&&e<=Se&&Se<=r}function w(fe,Se,ze,ke){var Fe=0,mt=0;if(fe==null||(Fe=E(fe,ze))!==(mt=E(Se,ze))||le(fe,Se)<0^ze>0)do ke.point(Fe===0||Fe===3?v:n,Fe>1?r:e);while((Fe=(Fe+ze+4)%4)!==mt);else ke.point(Se[0],Se[1])}function E(fe,Se){return abs$1(fe[0]-v)<epsilon$3?Se>0?0:3:abs$1(fe[0]-n)<epsilon$3?Se>0?2:1:abs$1(fe[1]-e)<epsilon$3?Se>0?1:0:Se>0?3:2}function O(fe,Se){return le(fe.x,Se.x)}function le(fe,Se){var ze=E(fe,1),ke=E(Se,1);return ze!==ke?ze-ke:ze===0?Se[1]-fe[1]:ze===1?fe[0]-Se[0]:ze===2?fe[1]-Se[1]:Se[0]-fe[0]}return function(fe){var Se=fe,ze=clipBuffer(),ke,Fe,mt,Lt,bt,Ue,Gt,xt,Xt,Zt,wt,Vt={point:Wt,lineStart:jt,lineEnd:n0,polygonStart:Nt,polygonEnd:Ft};function Wt(qt,Ht){C(qt,Ht)&&Se.point(qt,Ht)}function It(){for(var qt=0,Ht=0,$t=Fe.length;Ht<$t;++Ht)for(var Kt=Fe[Ht],e0=1,u0=Kt.length,d0=Kt[0],_0,J0,H0=d0[0],bi=d0[1];e0<u0;++e0)_0=H0,J0=bi,d0=Kt[e0],H0=d0[0],bi=d0[1],J0<=r?bi>r&&(H0-_0)*(r-J0)>(bi-J0)*(v-_0)&&++qt:bi<=r&&(H0-_0)*(r-J0)<(bi-J0)*(v-_0)&&--qt;return qt}function Nt(){Se=ze,ke=[],Fe=[],wt=!0}function Ft(){var qt=It(),Ht=wt&&qt,$t=(ke=merge(ke)).length;(Ht||$t)&&(fe.polygonStart(),Ht&&(fe.lineStart(),w(null,null,1,fe),fe.lineEnd()),$t&&clipRejoin(ke,O,qt,w,fe),fe.polygonEnd()),Se=fe,ke=Fe=mt=null}function jt(){Vt.point=s0,Fe&&Fe.push(mt=[]),Zt=!0,Xt=!1,Gt=xt=NaN}function n0(){ke&&(s0(Lt,bt),Ue&&Xt&&ze.rejoin(),ke.push(ze.result())),Vt.point=Wt,Xt&&Se.lineEnd()}function s0(qt,Ht){var $t=C(qt,Ht);if(Fe&&mt.push([qt,Ht]),Zt)Lt=qt,bt=Ht,Ue=$t,Zt=!1,$t&&(Se.lineStart(),Se.point(qt,Ht));else if($t&&Xt)Se.point(qt,Ht);else{var Kt=[Gt=Math.max(clipMin,Math.min(clipMax,Gt)),xt=Math.max(clipMin,Math.min(clipMax,xt))],e0=[qt=Math.max(clipMin,Math.min(clipMax,qt)),Ht=Math.max(clipMin,Math.min(clipMax,Ht))];clipLine(Kt,e0,v,e,n,r)?(Xt||(Se.lineStart(),Se.point(Kt[0],Kt[1])),Se.point(e0[0],e0[1]),$t||Se.lineEnd(),wt=!1):$t&&(Se.lineStart(),Se.point(qt,Ht),wt=!1)}Gt=qt,xt=Ht,Xt=$t}return Vt}}var lengthSum,lambda0,sinPhi0,cosPhi0,lengthStream={sphere:noop,point:noop,lineStart:lengthLineStart,lineEnd:noop,polygonStart:noop,polygonEnd:noop};function lengthLineStart(){lengthStream.point=lengthPointFirst,lengthStream.lineEnd=lengthLineEnd}function lengthLineEnd(){lengthStream.point=lengthStream.lineEnd=noop}function lengthPointFirst(v,e){v*=radians$1,e*=radians$1,lambda0=v,sinPhi0=sin$2(e),cosPhi0=cos$2(e),lengthStream.point=lengthPoint}function lengthPoint(v,e){v*=radians$1,e*=radians$1;var n=sin$2(e),r=cos$2(e),C=abs$1(v-lambda0),w=cos$2(C),E=sin$2(C),O=r*E,le=cosPhi0*n-sinPhi0*r*w,fe=sinPhi0*n+cosPhi0*r*w;lengthSum.add(atan2$1(sqrt$2(O*O+le*le),fe)),lambda0=v,sinPhi0=n,cosPhi0=r}function length(v){return lengthSum=new Adder,geoStream(v,lengthStream),+lengthSum}var coordinates=[null,null],object$1={type:"LineString",coordinates};function Re$1(v,e){return coordinates[0]=v,coordinates[1]=e,length(object$1)}var containsObjectType={Feature:function(v,e){return containsGeometry(v.geometry,e)},FeatureCollection:function(v,e){for(var n=v.features,r=-1,C=n.length;++r<C;)if(containsGeometry(n[r].geometry,e))return!0;return!1}},containsGeometryType={Sphere:function(){return!0},Point:function(v,e){return containsPoint(v.coordinates,e)},MultiPoint:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)if(containsPoint(n[r],e))return!0;return!1},LineString:function(v,e){return containsLine(v.coordinates,e)},MultiLineString:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)if(containsLine(n[r],e))return!0;return!1},Polygon:function(v,e){return containsPolygon(v.coordinates,e)},MultiPolygon:function(v,e){for(var n=v.coordinates,r=-1,C=n.length;++r<C;)if(containsPolygon(n[r],e))return!0;return!1},GeometryCollection:function(v,e){for(var n=v.geometries,r=-1,C=n.length;++r<C;)if(containsGeometry(n[r],e))return!0;return!1}};function containsGeometry(v,e){return v&&containsGeometryType.hasOwnProperty(v.type)?containsGeometryType[v.type](v,e):!1}function containsPoint(v,e){return Re$1(v,e)===0}function containsLine(v,e){for(var n,r,C,w=0,E=v.length;w<E;w++){if(r=Re$1(v[w],e),r===0||w>0&&(C=Re$1(v[w],v[w-1]),C>0&&n<=C&&r<=C&&(n+r-C)*(1-Math.pow((n-r)/C,2))<epsilon2*C))return!0;n=r}return!1}function containsPolygon(v,e){return!!polygonContains(v.map(ringRadians),pointRadians(e))}function ringRadians(v){return v=v.map(pointRadians),v.pop(),v}function pointRadians(v){return[v[0]*radians$1,v[1]*radians$1]}function Ne(v,e){return(v&&containsObjectType.hasOwnProperty(v.type)?containsObjectType[v.type]:containsGeometry)(v,e)}function Ge$1(v,e){var n=v[0]*radians$1,r=v[1]*radians$1,C=e[0]*radians$1,w=e[1]*radians$1,E=cos$2(r),O=sin$2(r),le=cos$2(w),fe=sin$2(w),Se=E*cos$2(n),ze=E*sin$2(n),ke=le*cos$2(C),Fe=le*sin$2(C),mt=2*asin$1(sqrt$2(haversin(w-r)+E*le*haversin(C-n))),Lt=sin$2(mt),bt=mt?function(Ue){var Gt=sin$2(Ue*=mt)/Lt,xt=sin$2(mt-Ue)/Lt,Xt=xt*Se+Gt*ke,Zt=xt*ze+Gt*Fe,wt=xt*O+Gt*fe;return[atan2$1(Zt,Xt)*degrees$1,atan2$1(wt,sqrt$2(Xt*Xt+Zt*Zt))*degrees$1]}:function(){return[n*degrees$1,r*degrees$1]};return bt.distance=mt,bt}const identity$2=v=>v;var x0=1/0,y0=x0,x1=-x0,y1=x1,boundsStream={point:boundsPoint,lineStart:noop,lineEnd:noop,polygonStart:noop,polygonEnd:noop,result:function(){var v=[[x0,y0],[x1,y1]];return x1=y1=-(y0=x0=1/0),v}};function boundsPoint(v,e){v<x0&&(x0=v),v>x1&&(x1=v),e<y0&&(y0=e),e>y1&&(y1=e)}function transformer$1(v){return function(e){var n=new TransformStream;for(var r in v)n[r]=v[r];return n.stream=e,n}}function TransformStream(){}TransformStream.prototype={constructor:TransformStream,point:function(v,e){this.stream.point(v,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function fit(v,e,n){var r=v.clipExtent&&v.clipExtent();return v.scale(150).translate([0,0]),r!=null&&v.clipExtent(null),geoStream(n,v.stream(boundsStream)),e(boundsStream.result()),r!=null&&v.clipExtent(r),v}function fitExtent(v,e,n){return fit(v,function(r){var C=e[1][0]-e[0][0],w=e[1][1]-e[0][1],E=Math.min(C/(r[1][0]-r[0][0]),w/(r[1][1]-r[0][1])),O=+e[0][0]+(C-E*(r[1][0]+r[0][0]))/2,le=+e[0][1]+(w-E*(r[1][1]+r[0][1]))/2;v.scale(150*E).translate([O,le])},n)}function fitSize(v,e,n){return fitExtent(v,[[0,0],e],n)}function fitWidth(v,e,n){return fit(v,function(r){var C=+e,w=C/(r[1][0]-r[0][0]),E=(C-w*(r[1][0]+r[0][0]))/2,O=-w*r[0][1];v.scale(150*w).translate([E,O])},n)}function fitHeight(v,e,n){return fit(v,function(r){var C=+e,w=C/(r[1][1]-r[0][1]),E=-w*r[0][0],O=(C-w*(r[1][1]+r[0][1]))/2;v.scale(150*w).translate([E,O])},n)}var maxDepth=16,cosMinDistance=cos$2(30*radians$1);function resample(v,e){return+e?resample$1(v,e):resampleNone(v)}function resampleNone(v){return transformer$1({point:function(e,n){e=v(e,n),this.stream.point(e[0],e[1])}})}function resample$1(v,e){function n(r,C,w,E,O,le,fe,Se,ze,ke,Fe,mt,Lt,bt){var Ue=fe-r,Gt=Se-C,xt=Ue*Ue+Gt*Gt;if(xt>4*e&&Lt--){var Xt=E+ke,Zt=O+Fe,wt=le+mt,Vt=sqrt$2(Xt*Xt+Zt*Zt+wt*wt),Wt=asin$1(wt/=Vt),It=abs$1(abs$1(wt)-1)<epsilon$3||abs$1(w-ze)<epsilon$3?(w+ze)/2:atan2$1(Zt,Xt),Nt=v(It,Wt),Ft=Nt[0],jt=Nt[1],n0=Ft-r,s0=jt-C,qt=Gt*n0-Ue*s0;(qt*qt/xt>e||abs$1((Ue*n0+Gt*s0)/xt-.5)>.3||E*ke+O*Fe+le*mt<cosMinDistance)&&(n(r,C,w,E,O,le,Ft,jt,It,Xt/=Vt,Zt/=Vt,wt,Lt,bt),bt.point(Ft,jt),n(Ft,jt,It,Xt,Zt,wt,fe,Se,ze,ke,Fe,mt,Lt,bt))}}return function(r){var C,w,E,O,le,fe,Se,ze,ke,Fe,mt,Lt,bt={point:Ue,lineStart:Gt,lineEnd:Xt,polygonStart:function(){r.polygonStart(),bt.lineStart=Zt},polygonEnd:function(){r.polygonEnd(),bt.lineStart=Gt}};function Ue(Wt,It){Wt=v(Wt,It),r.point(Wt[0],Wt[1])}function Gt(){ze=NaN,bt.point=xt,r.lineStart()}function xt(Wt,It){var Nt=cartesian$1([Wt,It]),Ft=v(Wt,It);n(ze,ke,Se,Fe,mt,Lt,ze=Ft[0],ke=Ft[1],Se=Wt,Fe=Nt[0],mt=Nt[1],Lt=Nt[2],maxDepth,r),r.point(ze,ke)}function Xt(){bt.point=Ue,r.lineEnd()}function Zt(){Gt(),bt.point=wt,bt.lineEnd=Vt}function wt(Wt,It){xt(C=Wt,It),w=ze,E=ke,O=Fe,le=mt,fe=Lt,bt.point=xt}function Vt(){n(ze,ke,Se,Fe,mt,Lt,w,E,C,O,le,fe,maxDepth,r),bt.lineEnd=Xt,Xt()}return bt}}var transformRadians=transformer$1({point:function(v,e){this.stream.point(v*radians$1,e*radians$1)}});function transformRotate(v){return transformer$1({point:function(e,n){var r=v(e,n);return this.stream.point(r[0],r[1])}})}function scaleTranslate(v,e,n,r,C){function w(E,O){return E*=r,O*=C,[e+v*E,n-v*O]}return w.invert=function(E,O){return[(E-e)/v*r,(n-O)/v*C]},w}function scaleTranslateRotate(v,e,n,r,C,w){if(!w)return scaleTranslate(v,e,n,r,C);var E=cos$2(w),O=sin$2(w),le=E*v,fe=O*v,Se=E/v,ze=O/v,ke=(O*n-E*e)/v,Fe=(O*e+E*n)/v;function mt(Lt,bt){return Lt*=r,bt*=C,[le*Lt-fe*bt+e,n-fe*Lt-le*bt]}return mt.invert=function(Lt,bt){return[r*(Se*Lt-ze*bt+ke),C*(Fe-ze*Lt-Se*bt)]},mt}function projection(v){return projectionMutator(function(){return v})()}function projectionMutator(v){var e,n=150,r=480,C=250,w=0,E=0,O=0,le=0,fe=0,Se,ze=0,ke=1,Fe=1,mt=null,Lt=clipAntimeridian,bt=null,Ue,Gt,xt,Xt=identity$2,Zt=.5,wt,Vt,Wt,It,Nt;function Ft(qt){return Wt(qt[0]*radians$1,qt[1]*radians$1)}function jt(qt){return qt=Wt.invert(qt[0],qt[1]),qt&&[qt[0]*degrees$1,qt[1]*degrees$1]}Ft.stream=function(qt){return It&&Nt===qt?It:It=transformRadians(transformRotate(Se)(Lt(wt(Xt(Nt=qt)))))},Ft.preclip=function(qt){return arguments.length?(Lt=qt,mt=void 0,s0()):Lt},Ft.postclip=function(qt){return arguments.length?(Xt=qt,bt=Ue=Gt=xt=null,s0()):Xt},Ft.clipAngle=function(qt){return arguments.length?(Lt=+qt?clipCircle(mt=qt*radians$1):(mt=null,clipAntimeridian),s0()):mt*degrees$1},Ft.clipExtent=function(qt){return arguments.length?(Xt=qt==null?(bt=Ue=Gt=xt=null,identity$2):clipRectangle(bt=+qt[0][0],Ue=+qt[0][1],Gt=+qt[1][0],xt=+qt[1][1]),s0()):bt==null?null:[[bt,Ue],[Gt,xt]]},Ft.scale=function(qt){return arguments.length?(n=+qt,n0()):n},Ft.translate=function(qt){return arguments.length?(r=+qt[0],C=+qt[1],n0()):[r,C]},Ft.center=function(qt){return arguments.length?(w=qt[0]%360*radians$1,E=qt[1]%360*radians$1,n0()):[w*degrees$1,E*degrees$1]},Ft.rotate=function(qt){return arguments.length?(O=qt[0]%360*radians$1,le=qt[1]%360*radians$1,fe=qt.length>2?qt[2]%360*radians$1:0,n0()):[O*degrees$1,le*degrees$1,fe*degrees$1]},Ft.angle=function(qt){return arguments.length?(ze=qt%360*radians$1,n0()):ze*degrees$1},Ft.reflectX=function(qt){return arguments.length?(ke=qt?-1:1,n0()):ke<0},Ft.reflectY=function(qt){return arguments.length?(Fe=qt?-1:1,n0()):Fe<0},Ft.precision=function(qt){return arguments.length?(wt=resample(Vt,Zt=qt*qt),s0()):sqrt$2(Zt)},Ft.fitExtent=function(qt,Ht){return fitExtent(Ft,qt,Ht)},Ft.fitSize=function(qt,Ht){return fitSize(Ft,qt,Ht)},Ft.fitWidth=function(qt,Ht){return fitWidth(Ft,qt,Ht)},Ft.fitHeight=function(qt,Ht){return fitHeight(Ft,qt,Ht)};function n0(){var qt=scaleTranslateRotate(n,0,0,ke,Fe,ze).apply(null,e(w,E)),Ht=scaleTranslateRotate(n,r-qt[0],C-qt[1],ke,Fe,ze);return Se=rotateRadians(O,le,fe),Vt=compose(e,Ht),Wt=compose(Se,Vt),wt=resample(Vt,Zt),s0()}function s0(){return It=Nt=null,Ft}return function(){return e=v.apply(this,arguments),Ft.invert=e.invert&&jt,n0()}}function azimuthalInvert(v){return function(e,n){var r=sqrt$2(e*e+n*n),C=v(r),w=sin$2(C),E=cos$2(C);return[atan2$1(e*w,r*E),asin$1(r&&n*w/r)]}}function mercatorRaw(v,e){return[v,log(tan((halfPi$2+e)/2))]}mercatorRaw.invert=function(v,e){return[v,2*atan(exp(e))-halfPi$2]};function i$2(){return mercatorProjection(mercatorRaw).scale(961/tau$1)}function mercatorProjection(v){var e=projection(v),n=e.center,r=e.scale,C=e.translate,w=e.clipExtent,E=null,O,le,fe;e.scale=function(ze){return arguments.length?(r(ze),Se()):r()},e.translate=function(ze){return arguments.length?(C(ze),Se()):C()},e.center=function(ze){return arguments.length?(n(ze),Se()):n()},e.clipExtent=function(ze){return arguments.length?(ze==null?E=O=le=fe=null:(E=+ze[0][0],O=+ze[0][1],le=+ze[1][0],fe=+ze[1][1]),Se()):E==null?null:[[E,O],[le,fe]]};function Se(){var ze=pi$3*r(),ke=e(geoRotation(e.rotate()).invert([0,0]));return w(E==null?[[ke[0]-ze,ke[1]-ze],[ke[0]+ze,ke[1]+ze]]:v===mercatorRaw?[[Math.max(ke[0]-ze,E),O],[Math.min(ke[0]+ze,le),fe]]:[[E,Math.max(ke[1]-ze,O)],[le,Math.min(ke[1]+ze,fe)]])}return Se()}function equirectangularRaw(v,e){return[v,e]}equirectangularRaw.invert=equirectangularRaw;function s$1(){return projection(equirectangularRaw).scale(152.63)}function stereographicRaw(v,e){var n=cos$2(e),r=1+cos$2(v)*n;return[n*sin$2(v)/r,sin$2(e)/r]}stereographicRaw.invert=azimuthalInvert(function(v){return 2*atan(v)});function geoStereographic(){return projection(stereographicRaw).scale(250).clipAngle(142)}var abs=Math.abs,cos$1=Math.cos,sin$1=Math.sin,epsilon$2=1e-6,pi$2=Math.PI,halfPi$1=pi$2/2;function sinci(v){return v?v/Math.sin(v):1}function acos(v){return v>1?0:v<-1?pi$2:Math.acos(v)}function sqrt$1(v){return v>0?Math.sqrt(v):0}function aitoffRaw(v,e){var n=cos$1(e),r=sinci(acos(n*cos$1(v/=2)));return[2*n*sin$1(v)*r,sin$1(e)*r]}aitoffRaw.invert=function(v,e){if(!(v*v+4*e*e>pi$2*pi$2+epsilon$2)){var n=v,r=e,C=25;do{var w=sin$1(n),E=sin$1(n/2),O=cos$1(n/2),le=sin$1(r),fe=cos$1(r),Se=sin$1(2*r),ze=le*le,ke=fe*fe,Fe=E*E,mt=1-ke*O*O,Lt=mt?acos(fe*O)*sqrt$1(bt=1/mt):bt=0,bt,Ue=2*Lt*fe*E-v,Gt=Lt*le-e,xt=bt*(ke*Fe+Lt*fe*O*ze),Xt=bt*(.5*w*Se-Lt*2*le*E),Zt=bt*.25*(Se*E-Lt*le*ke*w),wt=bt*(ze*O+Lt*Fe*fe),Vt=Xt*Zt-wt*xt;if(!Vt)break;var Wt=(Gt*Xt-Ue*wt)/Vt,It=(Ue*Zt-Gt*xt)/Vt;n-=Wt,r-=It}while((abs(Wt)>epsilon$2||abs(It)>epsilon$2)&&--C>0);return[n,r]}};function winkel3Raw(v,e){var n=aitoffRaw(v,e);return[(n[0]+v/halfPi$1)/2,(n[1]+e)/2]}winkel3Raw.invert=function(v,e){var n=v,r=e,C=25;do{var w=cos$1(r),E=sin$1(r),O=sin$1(2*r),le=E*E,fe=w*w,Se=sin$1(n),ze=cos$1(n/2),ke=sin$1(n/2),Fe=ke*ke,mt=1-fe*ze*ze,Lt=mt?acos(w*ze)*sqrt$1(bt=1/mt):bt=0,bt,Ue=.5*(2*Lt*w*ke+n/halfPi$1)-v,Gt=.5*(Lt*E+r)-e,xt=.5*bt*(fe*Fe+Lt*w*ze*le)+.5/halfPi$1,Xt=bt*(Se*O/4-Lt*E*ke),Zt=.125*bt*(O*ke-Lt*E*fe*Se),wt=.5*bt*(le*ze+Lt*Fe*w)+.5,Vt=Xt*Zt-wt*xt,Wt=(Gt*Xt-Ue*wt)/Vt,It=(Ue*Zt-Gt*xt)/Vt;n-=Wt,r-=It}while((abs(Wt)>epsilon$2||abs(It)>epsilon$2)&&--C>0);return[n,r]};function p$1(){return projection(winkel3Raw).scale(158.837)}const i$1=v=>v instanceof Vector3?v:new Vector3(...v);function p(v,e,n=0){const r=(90-e)*Math.PI/180,C=(90-v)*Math.PI/180;return[n*Math.sin(r)*Math.cos(C),n*Math.cos(r),n*Math.sin(r)*Math.sin(C)]}function earcut(v,e,n=2){const r=e&&e.length,C=r?e[0]*n:v.length;let w=linkedList(v,0,C,n,!0);const E=[];if(!w||w.next===w.prev)return E;let O,le,fe;if(r&&(w=eliminateHoles(v,e,w,n)),v.length>80*n){O=v[0],le=v[1];let Se=O,ze=le;for(let ke=n;ke<C;ke+=n){const Fe=v[ke],mt=v[ke+1];Fe<O&&(O=Fe),mt<le&&(le=mt),Fe>Se&&(Se=Fe),mt>ze&&(ze=mt)}fe=Math.max(Se-O,ze-le),fe=fe!==0?32767/fe:0}return earcutLinked(w,E,n,O,le,fe,0),E}function linkedList(v,e,n,r,C){let w;if(C===signedArea(v,e,n,r)>0)for(let E=e;E<n;E+=r)w=insertNode(E/r|0,v[E],v[E+1],w);else for(let E=n-r;E>=e;E-=r)w=insertNode(E/r|0,v[E],v[E+1],w);return w&&equals(w,w.next)&&(removeNode(w),w=w.next),w}function filterPoints(v,e){if(!v)return v;e||(e=v);let n=v,r;do if(r=!1,!n.steiner&&(equals(n,n.next)||area(n.prev,n,n.next)===0)){if(removeNode(n),n=e=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==e);return e}function earcutLinked(v,e,n,r,C,w,E){if(!v)return;!E&&w&&indexCurve(v,r,C,w);let O=v;for(;v.prev!==v.next;){const le=v.prev,fe=v.next;if(w?isEarHashed(v,r,C,w):isEar(v)){e.push(le.i,v.i,fe.i),removeNode(v),v=fe.next,O=fe.next;continue}if(v=fe,v===O){E?E===1?(v=cureLocalIntersections(filterPoints(v),e),earcutLinked(v,e,n,r,C,w,2)):E===2&&splitEarcut(v,e,n,r,C,w):earcutLinked(filterPoints(v),e,n,r,C,w,1);break}}}function isEar(v){const e=v.prev,n=v,r=v.next;if(area(e,n,r)>=0)return!1;const C=e.x,w=n.x,E=r.x,O=e.y,le=n.y,fe=r.y,Se=Math.min(C,w,E),ze=Math.min(O,le,fe),ke=Math.max(C,w,E),Fe=Math.max(O,le,fe);let mt=r.next;for(;mt!==e;){if(mt.x>=Se&&mt.x<=ke&&mt.y>=ze&&mt.y<=Fe&&pointInTriangleExceptFirst(C,O,w,le,E,fe,mt.x,mt.y)&&area(mt.prev,mt,mt.next)>=0)return!1;mt=mt.next}return!0}function isEarHashed(v,e,n,r){const C=v.prev,w=v,E=v.next;if(area(C,w,E)>=0)return!1;const O=C.x,le=w.x,fe=E.x,Se=C.y,ze=w.y,ke=E.y,Fe=Math.min(O,le,fe),mt=Math.min(Se,ze,ke),Lt=Math.max(O,le,fe),bt=Math.max(Se,ze,ke),Ue=zOrder(Fe,mt,e,n,r),Gt=zOrder(Lt,bt,e,n,r);let xt=v.prevZ,Xt=v.nextZ;for(;xt&&xt.z>=Ue&&Xt&&Xt.z<=Gt;){if(xt.x>=Fe&&xt.x<=Lt&&xt.y>=mt&&xt.y<=bt&&xt!==C&&xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,xt.x,xt.y)&&area(xt.prev,xt,xt.next)>=0||(xt=xt.prevZ,Xt.x>=Fe&&Xt.x<=Lt&&Xt.y>=mt&&Xt.y<=bt&&Xt!==C&&Xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,Xt.x,Xt.y)&&area(Xt.prev,Xt,Xt.next)>=0))return!1;Xt=Xt.nextZ}for(;xt&&xt.z>=Ue;){if(xt.x>=Fe&&xt.x<=Lt&&xt.y>=mt&&xt.y<=bt&&xt!==C&&xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,xt.x,xt.y)&&area(xt.prev,xt,xt.next)>=0)return!1;xt=xt.prevZ}for(;Xt&&Xt.z<=Gt;){if(Xt.x>=Fe&&Xt.x<=Lt&&Xt.y>=mt&&Xt.y<=bt&&Xt!==C&&Xt!==E&&pointInTriangleExceptFirst(O,Se,le,ze,fe,ke,Xt.x,Xt.y)&&area(Xt.prev,Xt,Xt.next)>=0)return!1;Xt=Xt.nextZ}return!0}function cureLocalIntersections(v,e){let n=v;do{const r=n.prev,C=n.next.next;!equals(r,C)&&intersects(r,n,n.next,C)&&locallyInside(r,C)&&locallyInside(C,r)&&(e.push(r.i,n.i,C.i),removeNode(n),removeNode(n.next),n=v=C),n=n.next}while(n!==v);return filterPoints(n)}function splitEarcut(v,e,n,r,C,w){let E=v;do{let O=E.next.next;for(;O!==E.prev;){if(E.i!==O.i&&isValidDiagonal(E,O)){let le=splitPolygon(E,O);E=filterPoints(E,E.next),le=filterPoints(le,le.next),earcutLinked(E,e,n,r,C,w,0),earcutLinked(le,e,n,r,C,w,0);return}O=O.next}E=E.next}while(E!==v)}function eliminateHoles(v,e,n,r){const C=[];for(let w=0,E=e.length;w<E;w++){const O=e[w]*r,le=w<E-1?e[w+1]*r:v.length,fe=linkedList(v,O,le,r,!1);fe===fe.next&&(fe.steiner=!0),C.push(getLeftmost(fe))}C.sort(compareXYSlope);for(let w=0;w<C.length;w++)n=eliminateHole(C[w],n);return n}function compareXYSlope(v,e){let n=v.x-e.x;if(n===0&&(n=v.y-e.y,n===0)){const r=(v.next.y-v.y)/(v.next.x-v.x),C=(e.next.y-e.y)/(e.next.x-e.x);n=r-C}return n}function eliminateHole(v,e){const n=findHoleBridge(v,e);if(!n)return e;const r=splitPolygon(n,v);return filterPoints(r,r.next),filterPoints(n,n.next)}function findHoleBridge(v,e){let n=e;const r=v.x,C=v.y;let w=-1/0,E;if(equals(v,n))return n;do{if(equals(v,n.next))return n.next;if(C<=n.y&&C>=n.next.y&&n.next.y!==n.y){const ze=n.x+(C-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(ze<=r&&ze>w&&(w=ze,E=n.x<n.next.x?n:n.next,ze===r))return E}n=n.next}while(n!==e);if(!E)return null;const O=E,le=E.x,fe=E.y;let Se=1/0;n=E;do{if(r>=n.x&&n.x>=le&&r!==n.x&&pointInTriangle(C<fe?r:w,C,le,fe,C<fe?w:r,C,n.x,n.y)){const ze=Math.abs(C-n.y)/(r-n.x);locallyInside(n,v)&&(ze<Se||ze===Se&&(n.x>E.x||n.x===E.x&§orContainsSector(E,n)))&&(E=n,Se=ze)}n=n.next}while(n!==O);return E}function sectorContainsSector(v,e){return area(v.prev,v,e.prev)<0&&area(e.next,v,v.next)<0}function indexCurve(v,e,n,r){let C=v;do C.z===0&&(C.z=zOrder(C.x,C.y,e,n,r)),C.prevZ=C.prev,C.nextZ=C.next,C=C.next;while(C!==v);C.prevZ.nextZ=null,C.prevZ=null,sortLinked(C)}function sortLinked(v){let e,n=1;do{let r=v,C;v=null;let w=null;for(e=0;r;){e++;let E=r,O=0;for(let fe=0;fe<n&&(O++,E=E.nextZ,!!E);fe++);let le=n;for(;O>0||le>0&&E;)O!==0&&(le===0||!E||r.z<=E.z)?(C=r,r=r.nextZ,O--):(C=E,E=E.nextZ,le--),w?w.nextZ=C:v=C,C.prevZ=w,w=C;r=E}w.nextZ=null,n*=2}while(e>1);return v}function zOrder(v,e,n,r,C){return v=(v-n)*C|0,e=(e-r)*C|0,v=(v|v<<8)&16711935,v=(v|v<<4)&252645135,v=(v|v<<2)&858993459,v=(v|v<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,v|e<<1}function getLeftmost(v){let e=v,n=v;do(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next;while(e!==v);return n}function pointInTriangle(v,e,n,r,C,w,E,O){return(C-E)*(e-O)>=(v-E)*(w-O)&&(v-E)*(r-O)>=(n-E)*(e-O)&&(n-E)*(w-O)>=(C-E)*(r-O)}function pointInTriangleExceptFirst(v,e,n,r,C,w,E,O){return!(v===E&&e===O)&&pointInTriangle(v,e,n,r,C,w,E,O)}function isValidDiagonal(v,e){return v.next.i!==e.i&&v.prev.i!==e.i&&!intersectsPolygon(v,e)&&(locallyInside(v,e)&&locallyInside(e,v)&&middleInside(v,e)&&(area(v.prev,v,e.prev)||area(v,e.prev,e))||equals(v,e)&&area(v.prev,v,v.next)>0&&area(e.prev,e,e.next)>0)}function area(v,e,n){return(e.y-v.y)*(n.x-e.x)-(e.x-v.x)*(n.y-e.y)}function equals(v,e){return v.x===e.x&&v.y===e.y}function intersects(v,e,n,r){const C=sign$1(area(v,e,n)),w=sign$1(area(v,e,r)),E=sign$1(area(n,r,v)),O=sign$1(area(n,r,e));return!!(C!==w&&E!==O||C===0&&onSegment(v,n,e)||w===0&&onSegment(v,r,e)||E===0&&onSegment(n,v,r)||O===0&&onSegment(n,e,r))}function onSegment(v,e,n){return e.x<=Math.max(v.x,n.x)&&e.x>=Math.min(v.x,n.x)&&e.y<=Math.max(v.y,n.y)&&e.y>=Math.min(v.y,n.y)}function sign$1(v){return v>0?1:v<0?-1:0}function intersectsPolygon(v,e){let n=v;do{if(n.i!==v.i&&n.next.i!==v.i&&n.i!==e.i&&n.next.i!==e.i&&intersects(n,n.next,v,e))return!0;n=n.next}while(n!==v);return!1}function locallyInside(v,e){return area(v.prev,v,v.next)<0?area(v,e,v.next)>=0&&area(v,v.prev,e)>=0:area(v,e,v.prev)<0||area(v,v.next,e)<0}function middleInside(v,e){let n=v,r=!1;const C=(v.x+e.x)/2,w=(v.y+e.y)/2;do n.y>w!=n.next.y>w&&n.next.y!==n.y&&C<(n.next.x-n.x)*(w-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==v);return r}function splitPolygon(v,e){const n=createNode(v.i,v.x,v.y),r=createNode(e.i,e.x,e.y),C=v.next,w=e.prev;return v.next=e,e.prev=v,n.next=C,C.prev=n,r.next=n,n.prev=r,w.next=r,r.prev=w,r}function insertNode(v,e,n,r){const C=createNode(v,e,n);return r?(C.next=r.next,C.prev=r,r.next.prev=C,r.next=C):(C.prev=C,C.next=C),C}function removeNode(v){v.next.prev=v.prev,v.prev.next=v.next,v.prevZ&&(v.prevZ.nextZ=v.nextZ),v.nextZ&&(v.nextZ.prevZ=v.prevZ)}function createNode(v,e,n){return{i:v,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function signedArea(v,e,n,r){let C=0;for(let w=e,E=n-r;w<n;w+=r)C+=(v[E]-v[w])*(v[w+1]+v[E+1]),E=w;return C}function flatten(v){const e=[],n=[],r=v[0][0].length;let C=0,w=0;for(const E of v){for(const O of E)for(let le=0;le<r;le++)e.push(O[le]);w&&(C+=w,n.push(C)),w=E.length}return{vertices:e,holes:n,dimensions:r}}function getCoord(v){if(!v)throw new Error("coord is required");if(!Array.isArray(v)){if(v.type==="Feature"&&v.geometry!==null&&v.geometry.type==="Point")return[...v.geometry.coordinates];if(v.type==="Point")return[...v.coordinates]}if(Array.isArray(v)&&v.length>=2&&!Array.isArray(v[0])&&!Array.isArray(v[1]))return[...v];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function getCoords(v){if(Array.isArray(v))return v;if(v.type==="Feature"){if(v.geometry!==null)return v.geometry.coordinates}else if(v.coordinates)return v.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function getGeom(v){return v.type==="Feature"?v.geometry:v}function booleanClockwise(v){const e=getCoords(v);let n=0,r=1,C,w;for(;r<e.length;)C=w||e[0],w=e[r],n+=(w[0]-C[0])*(w[1]+C[1]),r++;return n>0}var turf_boolean_clockwise_default=booleanClockwise;const epsilon$1=11102230246251565e-32,splitter=134217729,resulterrbound=(3+8*epsilon$1)*epsilon$1;function sum(v,e,n,r,C){let w,E,O,le,fe=e[0],Se=r[0],ze=0,ke=0;Se>fe==Se>-fe?(w=fe,fe=e[++ze]):(w=Se,Se=r[++ke]);let Fe=0;if(ze<v&&ke<n)for(Se>fe==Se>-fe?(E=fe+w,O=w-(E-fe),fe=e[++ze]):(E=Se+w,O=w-(E-Se),Se=r[++ke]),w=E,O!==0&&(C[Fe++]=O);ze<v&&ke<n;)Se>fe==Se>-fe?(E=w+fe,le=E-w,O=w-(E-le)+(fe-le),fe=e[++ze]):(E=w+Se,le=E-w,O=w-(E-le)+(Se-le),Se=r[++ke]),w=E,O!==0&&(C[Fe++]=O);for(;ze<v;)E=w+fe,le=E-w,O=w-(E-le)+(fe-le),fe=e[++ze],w=E,O!==0&&(C[Fe++]=O);for(;ke<n;)E=w+Se,le=E-w,O=w-(E-le)+(Se-le),Se=r[++ke],w=E,O!==0&&(C[Fe++]=O);return(w!==0||Fe===0)&&(C[Fe++]=w),Fe}function estimate(v,e){let n=e[0];for(let r=1;r<v;r++)n+=e[r];return n}function vec(v){return new Float64Array(v)}const ccwerrboundA=(3+16*epsilon$1)*epsilon$1,ccwerrboundB=(2+12*epsilon$1)*epsilon$1,ccwerrboundC=(9+64*epsilon$1)*epsilon$1*epsilon$1,B=vec(4),C1=vec(8),C2=vec(12),D$2=vec(16),u$2=vec(4);function orient2dadapt(v,e,n,r,C,w,E){let O,le,fe,Se,ze,ke,Fe,mt,Lt,bt,Ue,Gt,xt,Xt,Zt,wt,Vt,Wt;const It=v-C,Nt=n-C,Ft=e-w,jt=r-w;Xt=It*jt,ke=splitter*It,Fe=ke-(ke-It),mt=It-Fe,ke=splitter*jt,Lt=ke-(ke-jt),bt=jt-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=Ft*Nt,ke=splitter*Ft,Fe=ke-(ke-Ft),mt=Ft-Fe,ke=splitter*Nt,Lt=ke-(ke-Nt),bt=Nt-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,B[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,B[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,B[2]=Gt-(Wt-ze)+(Ue-ze),B[3]=Wt;let n0=estimate(4,B),s0=ccwerrboundB*E;if(n0>=s0||-n0>=s0||(ze=v-It,O=v-(It+ze)+(ze-C),ze=n-Nt,fe=n-(Nt+ze)+(ze-C),ze=e-Ft,le=e-(Ft+ze)+(ze-w),ze=r-jt,Se=r-(jt+ze)+(ze-w),O===0&&le===0&&fe===0&&Se===0)||(s0=ccwerrboundC*E+resulterrbound*Math.abs(n0),n0+=It*Se+jt*O-(Ft*fe+Nt*le),n0>=s0||-n0>=s0))return n0;Xt=O*jt,ke=splitter*O,Fe=ke-(ke-O),mt=O-Fe,ke=splitter*jt,Lt=ke-(ke-jt),bt=jt-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=le*Nt,ke=splitter*le,Fe=ke-(ke-le),mt=le-Fe,ke=splitter*Nt,Lt=ke-(ke-Nt),bt=Nt-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,u$2[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,u$2[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,u$2[2]=Gt-(Wt-ze)+(Ue-ze),u$2[3]=Wt;const qt=sum(4,B,4,u$2,C1);Xt=It*Se,ke=splitter*It,Fe=ke-(ke-It),mt=It-Fe,ke=splitter*Se,Lt=ke-(ke-Se),bt=Se-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=Ft*fe,ke=splitter*Ft,Fe=ke-(ke-Ft),mt=Ft-Fe,ke=splitter*fe,Lt=ke-(ke-fe),bt=fe-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,u$2[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,u$2[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,u$2[2]=Gt-(Wt-ze)+(Ue-ze),u$2[3]=Wt;const Ht=sum(qt,C1,4,u$2,C2);Xt=O*Se,ke=splitter*O,Fe=ke-(ke-O),mt=O-Fe,ke=splitter*Se,Lt=ke-(ke-Se),bt=Se-Lt,Zt=mt*bt-(Xt-Fe*Lt-mt*Lt-Fe*bt),wt=le*fe,ke=splitter*le,Fe=ke-(ke-le),mt=le-Fe,ke=splitter*fe,Lt=ke-(ke-fe),bt=fe-Lt,Vt=mt*bt-(wt-Fe*Lt-mt*Lt-Fe*bt),Ue=Zt-Vt,ze=Zt-Ue,u$2[0]=Zt-(Ue+ze)+(ze-Vt),Gt=Xt+Ue,ze=Gt-Xt,xt=Xt-(Gt-ze)+(Ue-ze),Ue=xt-wt,ze=xt-Ue,u$2[1]=xt-(Ue+ze)+(ze-wt),Wt=Gt+Ue,ze=Wt-Gt,u$2[2]=Gt-(Wt-ze)+(Ue-ze),u$2[3]=Wt;const $t=sum(Ht,C2,4,u$2,D$2);return D$2[$t-1]}function orient2d(v,e,n,r,C,w){const E=(e-w)*(n-C),O=(v-C)*(r-w),le=E-O,fe=Math.abs(E+O);return Math.abs(le)>=ccwerrboundA*fe?le:-orient2dadapt(v,e,n,r,C,w,fe)}const EPSILON$2=Math.pow(2,-52),EDGE_STACK=new Uint32Array(512);class Delaunator{static from(e,n=defaultGetX,r=defaultGetY){const C=e.length,w=new Float64Array(C*2);for(let E=0;E<C;E++){const O=e[E];w[2*E]=n(O),w[2*E+1]=r(O)}return new Delaunator(w)}constructor(e){const n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:e,_hullPrev:n,_hullNext:r,_hullTri:C,_hullHash:w}=this,E=e.length>>1;let O=1/0,le=1/0,fe=-1/0,Se=-1/0;for(let It=0;It<E;It++){const Nt=e[2*It],Ft=e[2*It+1];Nt<O&&(O=Nt),Ft<le&&(le=Ft),Nt>fe&&(fe=Nt),Ft>Se&&(Se=Ft),this._ids[It]=It}const ze=(O+fe)/2,ke=(le+Se)/2;let Fe,mt,Lt;for(let It=0,Nt=1/0;It<E;It++){const Ft=dist(ze,ke,e[2*It],e[2*It+1]);Ft<Nt&&(Fe=It,Nt=Ft)}const bt=e[2*Fe],Ue=e[2*Fe+1];for(let It=0,Nt=1/0;It<E;It++){if(It===Fe)continue;const Ft=dist(bt,Ue,e[2*It],e[2*It+1]);Ft<Nt&&Ft>0&&(mt=It,Nt=Ft)}let Gt=e[2*mt],xt=e[2*mt+1],Xt=1/0;for(let It=0;It<E;It++){if(It===Fe||It===mt)continue;const Nt=circumradius(bt,Ue,Gt,xt,e[2*It],e[2*It+1]);Nt<Xt&&(Lt=It,Xt=Nt)}let Zt=e[2*Lt],wt=e[2*Lt+1];if(Xt===1/0){for(let Ft=0;Ft<E;Ft++)this._dists[Ft]=e[2*Ft]-e[0]||e[2*Ft+1]-e[1];quicksort(this._ids,this._dists,0,E-1);const It=new Uint32Array(E);let Nt=0;for(let Ft=0,jt=-1/0;Ft<E;Ft++){const n0=this._ids[Ft],s0=this._dists[n0];s0>jt&&(It[Nt++]=n0,jt=s0)}this.hull=It.subarray(0,Nt),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(orient2d(bt,Ue,Gt,xt,Zt,wt)<0){const It=mt,Nt=Gt,Ft=xt;mt=Lt,Gt=Zt,xt=wt,Lt=It,Zt=Nt,wt=Ft}const Vt=circumcenter(bt,Ue,Gt,xt,Zt,wt);this._cx=Vt.x,this._cy=Vt.y;for(let It=0;It<E;It++)this._dists[It]=dist(e[2*It],e[2*It+1],Vt.x,Vt.y);quicksort(this._ids,this._dists,0,E-1),this._hullStart=Fe;let Wt=3;r[Fe]=n[Lt]=mt,r[mt]=n[Fe]=Lt,r[Lt]=n[mt]=Fe,C[Fe]=0,C[mt]=1,C[Lt]=2,w.fill(-1),w[this._hashKey(bt,Ue)]=Fe,w[this._hashKey(Gt,xt)]=mt,w[this._hashKey(Zt,wt)]=Lt,this.trianglesLen=0,this._addTriangle(Fe,mt,Lt,-1,-1,-1);for(let It=0,Nt,Ft;It<this._ids.length;It++){const jt=this._ids[It],n0=e[2*jt],s0=e[2*jt+1];if(It>0&&Math.abs(n0-Nt)<=EPSILON$2&&Math.abs(s0-Ft)<=EPSILON$2||(Nt=n0,Ft=s0,jt===Fe||jt===mt||jt===Lt))continue;let qt=0;for(let u0=0,d0=this._hashKey(n0,s0);u0<this._hashSize&&(qt=w[(d0+u0)%this._hashSize],!(qt!==-1&&qt!==r[qt]));u0++);qt=n[qt];let Ht=qt,$t;for(;$t=r[Ht],orient2d(n0,s0,e[2*Ht],e[2*Ht+1],e[2*$t],e[2*$t+1])>=0;)if(Ht=$t,Ht===qt){Ht=-1;break}if(Ht===-1)continue;let Kt=this._addTriangle(Ht,jt,r[Ht],-1,-1,C[Ht]);C[jt]=this._legalize(Kt+2),C[Ht]=Kt,Wt++;let e0=r[Ht];for(;$t=r[e0],orient2d(n0,s0,e[2*e0],e[2*e0+1],e[2*$t],e[2*$t+1])<0;)Kt=this._addTriangle(e0,jt,$t,C[jt],-1,C[e0]),C[jt]=this._legalize(Kt+2),r[e0]=e0,Wt--,e0=$t;if(Ht===qt)for(;$t=n[Ht],orient2d(n0,s0,e[2*$t],e[2*$t+1],e[2*Ht],e[2*Ht+1])<0;)Kt=this._addTriangle($t,jt,Ht,-1,C[Ht],C[$t]),this._legalize(Kt+2),C[$t]=Kt,r[Ht]=Ht,Wt--,Ht=$t;this._hullStart=n[jt]=Ht,r[Ht]=n[e0]=jt,r[jt]=e0,w[this._hashKey(n0,s0)]=jt,w[this._hashKey(e[2*Ht],e[2*Ht+1])]=Ht}this.hull=new Uint32Array(Wt);for(let It=0,Nt=this._hullStart;It<Wt;It++)this.hull[It]=Nt,Nt=r[Nt];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(pseudoAngle(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:n,_halfedges:r,coords:C}=this;let w=0,E=0;for(;;){const O=r[e],le=e-e%3;if(E=le+(e+2)%3,O===-1){if(w===0)break;e=EDGE_STACK[--w];continue}const fe=O-O%3,Se=le+(e+1)%3,ze=fe+(O+2)%3,ke=n[E],Fe=n[e],mt=n[Se],Lt=n[ze];if(inCircle(C[2*ke],C[2*ke+1],C[2*Fe],C[2*Fe+1],C[2*mt],C[2*mt+1],C[2*Lt],C[2*Lt+1])){n[e]=Lt,n[O]=ke;const Ue=r[ze];if(Ue===-1){let xt=this._hullStart;do{if(this._hullTri[xt]===ze){this._hullTri[xt]=e;break}xt=this._hullPrev[xt]}while(xt!==this._hullStart)}this._link(e,Ue),this._link(O,r[E]),this._link(E,ze);const Gt=fe+(O+1)%3;w<EDGE_STACK.length&&(EDGE_STACK[w++]=Gt)}else{if(w===0)break;e=EDGE_STACK[--w]}}return E}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,C,w,E){const O=this.trianglesLen;return this._triangles[O]=e,this._triangles[O+1]=n,this._triangles[O+2]=r,this._link(O,C),this._link(O+1,w),this._link(O+2,E),this.trianglesLen+=3,O}}function pseudoAngle(v,e){const n=v/(Math.abs(v)+Math.abs(e));return(e>0?3-n:1+n)/4}function dist(v,e,n,r){const C=v-n,w=e-r;return C*C+w*w}function inCircle(v,e,n,r,C,w,E,O){const le=v-E,fe=e-O,Se=n-E,ze=r-O,ke=C-E,Fe=w-O,mt=le*le+fe*fe,Lt=Se*Se+ze*ze,bt=ke*ke+Fe*Fe;return le*(ze*bt-Lt*Fe)-fe*(Se*bt-Lt*ke)+mt*(Se*Fe-ze*ke)<0}function circumradius(v,e,n,r,C,w){const E=n-v,O=r-e,le=C-v,fe=w-e,Se=E*E+O*O,ze=le*le+fe*fe,ke=.5/(E*fe-O*le),Fe=(fe*Se-O*ze)*ke,mt=(E*ze-le*Se)*ke;return Fe*Fe+mt*mt}function circumcenter(v,e,n,r,C,w){const E=n-v,O=r-e,le=C-v,fe=w-e,Se=E*E+O*O,ze=le*le+fe*fe,ke=.5/(E*fe-O*le),Fe=v+(fe*Se-O*ze)*ke,mt=e+(E*ze-le*Se)*ke;return{x:Fe,y:mt}}function quicksort(v,e,n,r){if(r-n<=20)for(let C=n+1;C<=r;C++){const w=v[C],E=e[w];let O=C-1;for(;O>=n&&e[v[O]]>E;)v[O+1]=v[O--];v[O+1]=w}else{const C=n+r>>1;let w=n+1,E=r;swap(v,C,w),e[v[n]]>e[v[r]]&&swap(v,n,r),e[v[w]]>e[v[r]]&&swap(v,w,r),e[v[n]]>e[v[w]]&&swap(v,n,w);const O=v[w],le=e[O];for(;;){do w++;while(e[v[w]]<le);do E--;while(e[v[E]]>le);if(E<w)break;swap(v,w,E)}v[n+1]=v[E],v[E]=O,r-w+1>=E-n?(quicksort(v,e,w,r),quicksort(v,e,n,E-1)):(quicksort(v,e,n,E-1),quicksort(v,e,w,r))}}function swap(v,e,n){const r=v[e];v[e]=v[n],v[n]=r}function defaultGetX(v){return v[0]}function defaultGetY(v){return v[1]}function pointInPolygon(v,e){var n=0,r=0,C=0,w=0,E=0,O=0,le=0,fe=0,Se=null,ze=null,ke=v[0],Fe=v[1],mt=e.length;for(n;n<mt;n++){r=0;var Lt=e[n].length-1,bt=e[n];if(Se=bt[0],Se[0]!==bt[Lt][0]&&Se[1]!==bt[Lt][1])throw new Error("First and last coordinates in a ring must be the same");for(E=Se[0]-ke,O=Se[1]-Fe,r;r<Lt;r++){if(ze=bt[r+1],fe=ze[1]-Fe,O<0&&fe<0||O>0&&fe>0){Se=ze,O=fe,E=Se[0]-ke;continue}if(le=ze[0]-v[0],fe>0&&O<=0){if(w=E*fe-le*O,w>0)C=C+1;else if(w===0)return 0}else if(O>0&&fe<=0){if(w=E*fe-le*O,w<0)C=C+1;else if(w===0)return 0}else if(fe===0&&O<0){if(w=E*fe-le*O,w===0)return 0}else if(O===0&&fe<0){if(w=E*fe-le*O,w===0)return 0}else if(O===0&&fe===0){if(le<=0&&E>=0)return 0;if(E<=0&&le>=0)return 0}Se=ze,O=fe,E=le}}return C%2!==0}function booleanPointInPolygon(v,e,n={}){if(!v)throw new Error("point is required");if(!e)throw new Error("polygon is required");const r=getCoord(v),C=getGeom(e),w=C.type,E=e.bbox;let O=C.coordinates;if(E&&inBBox(r,E)===!1)return!1;w==="Polygon"&&(O=[O]);let le=!1;for(var fe=0;fe<O.length;++fe){const Se=pointInPolygon(r,O[fe]);if(Se===0)return!n.ignoreBoundary;Se&&(le=!0)}return le}function inBBox(v,e){return e[0]<=v[0]&&e[1]<=v[1]&&e[2]>=v[0]&&e[3]>=v[1]}var turf_boolean_point_in_polygon_default=booleanPointInPolygon;const epsilon=1e-6;class Path{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;const C=e+r,w=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${C},${w}`:(Math.abs(this._x1-C)>epsilon||Math.abs(this._y1-w)>epsilon)&&(this._+="L"+C+","+w),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=C},${this._y1=w}`)}rect(e,n,r,C){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+C}h${-r}Z`}value(){return this._||null}}class Polygon{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}}class Voronoi{constructor(e,[n,r,C,w]=[0,0,960,500]){if(!((C=+C)>=(n=+n))||!((w=+w)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=C,this.xmin=n,this.ymax=w,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:n,triangles:r},vectors:C}=this;let w,E;const O=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let Lt=0,bt=0,Ue=r.length,Gt,xt;Lt<Ue;Lt+=3,bt+=2){const Xt=r[Lt]*2,Zt=r[Lt+1]*2,wt=r[Lt+2]*2,Vt=e[Xt],Wt=e[Xt+1],It=e[Zt],Nt=e[Zt+1],Ft=e[wt],jt=e[wt+1],n0=It-Vt,s0=Nt-Wt,qt=Ft-Vt,Ht=jt-Wt,$t=(n0*Ht-s0*qt)*2;if(Math.abs($t)<1e-9){if(w===void 0){w=E=0;for(const e0 of n)w+=e[e0*2],E+=e[e0*2+1];w/=n.length,E/=n.length}const Kt=1e9*Math.sign((w-Vt)*Ht-(E-Wt)*qt);Gt=(Vt+Ft)/2-Kt*Ht,xt=(Wt+jt)/2+Kt*qt}else{const Kt=1/$t,e0=n0*n0+s0*s0,u0=qt*qt+Ht*Ht;Gt=Vt+(Ht*e0-s0*u0)*Kt,xt=Wt+(n0*u0-qt*e0)*Kt}O[bt]=Gt,O[bt+1]=xt}let le=n[n.length-1],fe,Se=le*4,ze,ke=e[2*le],Fe,mt=e[2*le+1];C.fill(0);for(let Lt=0;Lt<n.length;++Lt)le=n[Lt],fe=Se,ze=ke,Fe=mt,Se=le*4,ke=e[2*le],mt=e[2*le+1],C[fe+2]=C[Se]=Fe-mt,C[fe+3]=C[Se+1]=ke-ze}render(e){const n=e==null?e=new Path:void 0,{delaunay:{halfedges:r,inedges:C,hull:w},circumcenters:E,vectors:O}=this;if(w.length<=1)return null;for(let Se=0,ze=r.length;Se<ze;++Se){const ke=r[Se];if(ke<Se)continue;const Fe=Math.floor(Se/3)*2,mt=Math.floor(ke/3)*2,Lt=E[Fe],bt=E[Fe+1],Ue=E[mt],Gt=E[mt+1];this._renderSegment(Lt,bt,Ue,Gt,e)}let le,fe=w[w.length-1];for(let Se=0;Se<w.length;++Se){le=fe,fe=w[Se];const ze=Math.floor(C[fe]/3)*2,ke=E[ze],Fe=E[ze+1],mt=le*4,Lt=this._project(ke,Fe,O[mt+2],O[mt+3]);Lt&&this._renderSegment(ke,Fe,Lt[0],Lt[1],e)}return n&&n.value()}renderBounds(e){const n=e==null?e=new Path:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){const r=n==null?n=new Path:void 0,C=this._clip(e);if(C===null||!C.length)return;n.moveTo(C[0],C[1]);let w=C.length;for(;C[0]===C[w-2]&&C[1]===C[w-1]&&w>1;)w-=2;for(let E=2;E<w;E+=2)(C[E]!==C[E-2]||C[E+1]!==C[E-1])&&n.lineTo(C[E],C[E+1]);return n.closePath(),r&&r.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){const C=this.cellPolygon(n);C&&(C.index=n,yield C)}}cellPolygon(e){const n=new Polygon;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,C,w){let E;const O=this._regioncode(e,n),le=this._regioncode(r,C);O===0&&le===0?(w.moveTo(e,n),w.lineTo(r,C)):(E=this._clipSegment(e,n,r,C,O,le))&&(w.moveTo(E[0],E[1]),w.lineTo(E[2],E[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){const n=this._clip(e);if(n)for(const r of this.delaunay.neighbors(e)){const C=this._clip(r);if(C){e:for(let w=0,E=n.length;w<E;w+=2)for(let O=0,le=C.length;O<le;O+=2)if(n[w]===C[O]&&n[w+1]===C[O+1]&&n[(w+2)%E]===C[(O+le-2)%le]&&n[(w+3)%E]===C[(O+le-1)%le]){yield r;break e}}}}_cell(e){const{circumcenters:n,delaunay:{inedges:r,halfedges:C,triangles:w}}=this,E=r[e];if(E===-1)return null;const O=[];let le=E;do{const fe=Math.floor(le/3);if(O.push(n[fe*2],n[fe*2+1]),le=le%3===2?le-2:le+1,w[le]!==e)break;le=C[le]}while(le!==E&&le!==-1);return O}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(e);if(n===null)return null;const{vectors:r}=this,C=e*4;return this._simplify(r[C]||r[C+1]?this._clipInfinite(e,n,r[C],r[C+1],r[C+2],r[C+3]):this._clipFinite(e,n))}_clipFinite(e,n){const r=n.length;let C=null,w,E,O=n[r-2],le=n[r-1],fe,Se=this._regioncode(O,le),ze,ke=0;for(let Fe=0;Fe<r;Fe+=2)if(w=O,E=le,O=n[Fe],le=n[Fe+1],fe=Se,Se=this._regioncode(O,le),fe===0&&Se===0)ze=ke,ke=0,C?C.push(O,le):C=[O,le];else{let mt,Lt,bt,Ue,Gt;if(fe===0){if((mt=this._clipSegment(w,E,O,le,fe,Se))===null)continue;[Lt,bt,Ue,Gt]=mt}else{if((mt=this._clipSegment(O,le,w,E,Se,fe))===null)continue;[Ue,Gt,Lt,bt]=mt,ze=ke,ke=this._edgecode(Lt,bt),ze&&ke&&this._edge(e,ze,ke,C,C.length),C?C.push(Lt,bt):C=[Lt,bt]}ze=ke,ke=this._edgecode(Ue,Gt),ze&&ke&&this._edge(e,ze,ke,C,C.length),C?C.push(Ue,Gt):C=[Ue,Gt]}if(C)ze=ke,ke=this._edgecode(C[0],C[1]),ze&&ke&&this._edge(e,ze,ke,C,C.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return C}_clipSegment(e,n,r,C,w,E){const O=w<E;for(O&&([e,n,r,C,w,E]=[r,C,e,n,E,w]);;){if(w===0&&E===0)return O?[r,C,e,n]:[e,n,r,C];if(w&E)return null;let le,fe,Se=w||E;Se&8?(le=e+(r-e)*(this.ymax-n)/(C-n),fe=this.ymax):Se&4?(le=e+(r-e)*(this.ymin-n)/(C-n),fe=this.ymin):Se&2?(fe=n+(C-n)*(this.xmax-e)/(r-e),le=this.xmax):(fe=n+(C-n)*(this.xmin-e)/(r-e),le=this.xmin),w?(e=le,n=fe,w=this._regioncode(e,n)):(r=le,C=fe,E=this._regioncode(r,C))}}_clipInfinite(e,n,r,C,w,E){let O=Array.from(n),le;if((le=this._project(O[0],O[1],r,C))&&O.unshift(le[0],le[1]),(le=this._project(O[O.length-2],O[O.length-1],w,E))&&O.push(le[0],le[1]),O=this._clipFinite(e,O))for(let fe=0,Se=O.length,ze,ke=this._edgecode(O[Se-2],O[Se-1]);fe<Se;fe+=2)ze=ke,ke=this._edgecode(O[fe],O[fe+1]),ze&&ke&&(fe=this._edge(e,ze,ke,O,fe),Se=O.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(O=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return O}_edge(e,n,r,C,w){for(;n!==r;){let E,O;switch(n){case 5:n=4;continue;case 4:n=6,E=this.xmax,O=this.ymin;break;case 6:n=2;continue;case 2:n=10,E=this.xmax,O=this.ymax;break;case 10:n=8;continue;case 8:n=9,E=this.xmin,O=this.ymax;break;case 9:n=1;continue;case 1:n=5,E=this.xmin,O=this.ymin;break}(C[w]!==E||C[w+1]!==O)&&this.contains(e,E,O)&&(C.splice(w,0,E,O),w+=2)}return w}_project(e,n,r,C){let w=1/0,E,O,le;if(C<0){if(n<=this.ymin)return null;(E=(this.ymin-n)/C)<w&&(le=this.ymin,O=e+(w=E)*r)}else if(C>0){if(n>=this.ymax)return null;(E=(this.ymax-n)/C)<w&&(le=this.ymax,O=e+(w=E)*r)}if(r>0){if(e>=this.xmax)return null;(E=(this.xmax-e)/r)<w&&(O=this.xmax,le=n+(w=E)*C)}else if(r<0){if(e<=this.xmin)return null;(E=(this.xmin-e)/r)<w&&(O=this.xmin,le=n+(w=E)*C)}return[O,le]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){const r=(n+2)%e.length,C=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[C]||e[n+1]===e[r+1]&&e[r+1]===e[C+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}}const tau=2*Math.PI,pow=Math.pow;function pointX(v){return v[0]}function pointY(v){return v[1]}function collinear(v){const{triangles:e,coords:n}=v;for(let r=0;r<e.length;r+=3){const C=2*e[r],w=2*e[r+1],E=2*e[r+2];if((n[E]-n[C])*(n[w+1]-n[C+1])-(n[w]-n[C])*(n[E+1]-n[C+1])>1e-10)return!1}return!0}function jitter(v,e,n){return[v+Math.sin(v+e)*n,e+Math.cos(v-e)*n]}class Delaunay{static from(e,n=pointX,r=pointY,C){return new Delaunay("length"in e?flatArray(e,n,r,C):Float64Array.from(flatIterable(e,n,r,C)))}constructor(e){this._delaunator=new Delaunator(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&collinear(e)){this.collinear=Int32Array.from({length:n.length/2},(ke,Fe)=>Fe).sort((ke,Fe)=>n[2*ke]-n[2*Fe]||n[2*ke+1]-n[2*Fe+1]);const le=this.collinear[0],fe=this.collinear[this.collinear.length-1],Se=[n[2*le],n[2*le+1],n[2*fe],n[2*fe+1]],ze=1e-8*Math.hypot(Se[3]-Se[1],Se[2]-Se[0]);for(let ke=0,Fe=n.length/2;ke<Fe;++ke){const mt=jitter(n[2*ke],n[2*ke+1],ze);n[2*ke]=mt[0],n[2*ke+1]=mt[1]}this._delaunator=new Delaunator(n)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,C=this.hull=this._delaunator.hull,w=this.triangles=this._delaunator.triangles,E=this.inedges.fill(-1),O=this._hullIndex.fill(-1);for(let le=0,fe=r.length;le<fe;++le){const Se=w[le%3===2?le-2:le+1];(r[le]===-1||E[Se]===-1)&&(E[Se]=le)}for(let le=0,fe=C.length;le<fe;++le)O[C[le]]=le;C.length<=2&&C.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=C[0],E[C[0]]=1,C.length===2&&(E[C[1]]=0,this.triangles[1]=C[1],this.triangles[2]=C[1]))}voronoi(e){return new Voronoi(this,e)}*neighbors(e){const{inedges:n,hull:r,_hullIndex:C,halfedges:w,triangles:E,collinear:O}=this;if(O){const ze=O.indexOf(e);ze>0&&(yield O[ze-1]),ze<O.length-1&&(yield O[ze+1]);return}const le=n[e];if(le===-1)return;let fe=le,Se=-1;do{if(yield Se=E[fe],fe=fe%3===2?fe-2:fe+1,E[fe]!==e)return;if(fe=w[fe],fe===-1){const ze=r[(C[e]+1)%r.length];ze!==Se&&(yield ze);return}}while(fe!==le)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;const C=r;let w;for(;(w=this._step(r,e,n))>=0&&w!==r&&w!==C;)r=w;return w}_step(e,n,r){const{inedges:C,hull:w,_hullIndex:E,halfedges:O,triangles:le,points:fe}=this;if(C[e]===-1||!fe.length)return(e+1)%(fe.length>>1);let Se=e,ze=pow(n-fe[e*2],2)+pow(r-fe[e*2+1],2);const ke=C[e];let Fe=ke;do{let mt=le[Fe];const Lt=pow(n-fe[mt*2],2)+pow(r-fe[mt*2+1],2);if(Lt<ze&&(ze=Lt,Se=mt),Fe=Fe%3===2?Fe-2:Fe+1,le[Fe]!==e)break;if(Fe=O[Fe],Fe===-1){if(Fe=w[(E[e]+1)%w.length],Fe!==mt&&pow(n-fe[Fe*2],2)+pow(r-fe[Fe*2+1],2)<ze)return Fe;break}}while(Fe!==ke);return Se}render(e){const n=e==null?e=new Path:void 0,{points:r,halfedges:C,triangles:w}=this;for(let E=0,O=C.length;E<O;++E){const le=C[E];if(le<E)continue;const fe=w[E]*2,Se=w[le]*2;e.moveTo(r[fe],r[fe+1]),e.lineTo(r[Se],r[Se+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;const r=e==null?e=new Path:void 0,{points:C}=this;for(let w=0,E=C.length;w<E;w+=2){const O=C[w],le=C[w+1];e.moveTo(O+n,le),e.arc(O,le,n,0,tau)}return r&&r.value()}renderHull(e){const n=e==null?e=new Path:void 0,{hull:r,points:C}=this,w=r[0]*2,E=r.length;e.moveTo(C[w],C[w+1]);for(let O=1;O<E;++O){const le=2*r[O];e.lineTo(C[le],C[le+1])}return e.closePath(),n&&n.value()}hullPolygon(){const e=new Polygon;return this.renderHull(e),e.value()}renderTriangle(e,n){const r=n==null?n=new Path:void 0,{points:C,triangles:w}=this,E=w[e*=3]*2,O=w[e+1]*2,le=w[e+2]*2;return n.moveTo(C[E],C[E+1]),n.lineTo(C[O],C[O+1]),n.lineTo(C[le],C[le+1]),n.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){const n=new Polygon;return this.renderTriangle(e,n),n.value()}}function flatArray(v,e,n,r){const C=v.length,w=new Float64Array(C*2);for(let E=0;E<C;++E){const O=v[E];w[E*2]=e.call(r,O,E,v),w[E*2+1]=n.call(r,O,E,v)}return w}function*flatIterable(v,e,n,r){let C=0;for(const w of v)yield e.call(r,w,C,v),yield n.call(r,w,C,v),++C}const pi$1=Math.PI,halfPi=pi$1/2,degrees=180/pi$1,radians=pi$1/180,atan2=Math.atan2,cos=Math.cos,max$1=Math.max,min=Math.min,sin=Math.sin,sign=Math.sign||function(v){return v>0?1:v<0?-1:0},sqrt=Math.sqrt;function asin(v){return v>1?halfPi:v<-1?-halfPi:Math.asin(v)}function cartesianDot(v,e){return v[0]*e[0]+v[1]*e[1]+v[2]*e[2]}function cartesianCross(v,e){return[v[1]*e[2]-v[2]*e[1],v[2]*e[0]-v[0]*e[2],v[0]*e[1]-v[1]*e[0]]}function cartesianAdd(v,e){return[v[0]+e[0],v[1]+e[1],v[2]+e[2]]}function cartesianNormalize(v){var e=sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);return[v[0]/e,v[1]/e,v[2]/e]}function spherical(v){return[atan2(v[1],v[0])*degrees,asin(max$1(-1,min(1,v[2])))*degrees]}function cartesian(v){const e=v[0]*radians,n=v[1]*radians,r=cos(n);return[r*cos(e),r*sin(e),sin(n)]}function excess(v){return v=v.map(e=>cartesian(e)),cartesianDot(v[0],cartesianCross(v[2],v[1]))}function geoDelaunay(v){const e=geo_delaunay_from(v),n=geo_triangles(e),r=geo_edges(n,v),C=geo_neighbors(n,v.length),w=geo_find(C,v),E=geo_circumcenters(n,v),{polygons:O,centers:le}=geo_polygons(E,n,v),fe=geo_mesh(O),Se=geo_hull(n,v),ze=geo_urquhart(r,n);return{delaunay:e,edges:r,triangles:n,centers:le,neighbors:C,polygons:O,mesh:fe,hull:Se,urquhart:ze,find:w}}function geo_find(v,e){function n(r,C){let w=r[0]-C[0],E=r[1]-C[1],O=r[2]-C[2];return w*w+E*E+O*O}return function(C,w,E){E===void 0&&(E=0);let O,le,fe=E;const Se=cartesian([C,w]);do O=E,E=null,le=n(Se,cartesian(e[O])),v[O].forEach(ze=>{let ke=n(Se,cartesian(e[ze]));if(ke<le){le=ke,E=ze,fe=ze;return}});while(E!==null);return fe}}function geo_delaunay_from(v){if(v.length<2)return{};let e=0;for(;isNaN(v[e][0]+v[e][1])&&e++<v.length;);const n=geoRotation(v[e]),r=geoStereographic().translate([0,0]).scale(1).rotate(n.invert([180,0]));v=v.map(r);const C=[];let w=1;for(let ze=0,ke=v.length;ze<ke;ze++){let Fe=bn(v[ze][0],2)+bn(v[ze][1],2);!isFinite(Fe)||Fe>1e32?C.push(ze):Fe>w&&(w=Fe)}const E=1e6*sqrt(w);C.forEach(ze=>v[ze]=[E,0]),v.push([0,E]),v.push([-E,0]),v.push([0,-E]);const O=Delaunay.from(v);O.projection=r;const{triangles:le,halfedges:fe,inedges:Se}=O;for(let ze=0,ke=fe.length;ze<ke;ze++)if(fe[ze]<0){const Fe=ze%3==2?ze-2:ze+1,mt=ze%3==0?ze+2:ze-1,Lt=fe[Fe],bt=fe[mt];fe[Lt]=bt,fe[bt]=Lt,fe[Fe]=fe[mt]=-1,le[ze]=le[Fe]=le[mt]=e,Se[le[Lt]]=Lt%3==0?Lt+2:Lt-1,Se[le[bt]]=bt%3==0?bt+2:bt-1,ze+=2-ze%3}else le[ze]>v.length-3-1&&(le[ze]=e);return O}function geo_edges(v,e){const n=new Set;return e.length===2?[[0,1]]:(v.forEach(r=>{if(r[0]!==r[1]&&!(excess(r.map(C=>e[C]))<0))for(let C=0,w;C<3;C++)w=(C+1)%3,n.add(extent([r[C],r[w]]).join("-"))}),Array.from(n,r=>r.split("-").map(Number)))}function geo_triangles(v){const{triangles:e}=v;if(!e)return[];const n=[];for(let r=0,C=e.length/3;r<C;r++){const w=e[3*r],E=e[3*r+1],O=e[3*r+2];w!==E&&E!==O&&n.push([w,O,E])}return n}function geo_circumcenters(v,e){return v.map(n=>{const r=n.map(w=>e[w]).map(cartesian),C=cartesianAdd(cartesianAdd(cartesianCross(r[1],r[0]),cartesianCross(r[2],r[1])),cartesianCross(r[0],r[2]));return spherical(cartesianNormalize(C))})}function geo_neighbors(v,e){const n=[];return v.forEach(r=>{for(let C=0;C<3;C++){const w=r[C],E=r[(C+1)%3];n[w]=n[w]||[],n[w].push(E)}}),v.length===0&&(e===2?(n[0]=[1],n[1]=[0]):e===1&&(n[0]=[])),n}function geo_polygons(v,e,n){const r=[],C=v.slice();if(e.length===0){if(n.length<2)return{polygons:r,centers:C};if(n.length===2){const O=cartesian(n[0]),le=cartesian(n[1]),fe=cartesianNormalize(cartesianAdd(O,le)),Se=cartesianNormalize(cartesianCross(O,le)),ze=cartesianCross(fe,Se),ke=[fe,cartesianCross(fe,ze),cartesianCross(cartesianCross(fe,ze),ze),cartesianCross(cartesianCross(cartesianCross(fe,ze),ze),ze)].map(spherical).map(E);return r.push(ke),r.push(ke.slice().reverse()),{polygons:r,centers:C}}}e.forEach((O,le)=>{for(let fe=0;fe<3;fe++){const Se=O[fe],ze=O[(fe+1)%3],ke=O[(fe+2)%3];r[Se]=r[Se]||[],r[Se].push([ze,ke,le,[Se,ze,ke]])}});const w=r.map(O=>{const le=[O[0][2]];let fe=O[0][1];for(let Se=1;Se<O.length;Se++)for(let ze=0;ze<O.length;ze++)if(O[ze][0]==fe){fe=O[ze][1],le.push(O[ze][2]);break}if(le.length>2)return le;if(le.length==2){const Se=o_midpoint(n[O[0][3][0]],n[O[0][3][1]],C[le[0]]),ze=o_midpoint(n[O[0][3][2]],n[O[0][3][0]],C[le[0]]),ke=E(Se),Fe=E(ze);return[le[0],Fe,le[1],ke]}});function E(O){let le=-1;return C.slice(e.length,1/0).forEach((fe,Se)=>{fe[0]===O[0]&&fe[1]===O[1]&&(le=Se+e.length)}),le<0&&(le=C.length,C.push(O)),le}return{polygons:w,centers:C}}function o_midpoint(v,e,n){v=cartesian(v),e=cartesian(e),n=cartesian(n);const r=sign(cartesianDot(cartesianCross(e,v),n));return spherical(cartesianNormalize(cartesianAdd(v,e)).map(C=>r*C))}function geo_mesh(v){const e=[];return v.forEach(n=>{if(!n)return;let r=n[n.length-1];for(let C of n)C>r&&e.push([r,C]),r=C}),e}function geo_urquhart(v,e){return function(n){const r=new Map,C=new Map;return v.forEach((w,E)=>{const O=w.join("-");r.set(O,n[E]),C.set(O,!0)}),e.forEach(w=>{let E=0,O=-1;for(let le=0;le<3;le++){let fe=extent([w[le],w[(le+1)%3]]).join("-");r.get(fe)>E&&(E=r.get(fe),O=fe)}C.set(O,!1)}),v.map(w=>C.get(w.join("-")))}}function geo_hull(v,e){const n=new Set,r=[];v.map(O=>{if(!(excess(O.map(le=>e[le>e.length?0:le]))>1e-12))for(let le=0;le<3;le++){let fe=[O[le],O[(le+1)%3]],Se=`${fe[0]}-${fe[1]}`;n.has(Se)?n.delete(Se):n.add(`${fe[1]}-${fe[0]}`)}});const C=new Map;let w;if(n.forEach(O=>{O=O.split("-").map(Number),C.set(O[0],O[1]),w=O[0]}),w===void 0)return r;let E=w;do{r.push(E);let O=C.get(E);C.set(E,-1),E=O}while(E>-1&&E!==w);return r}function geoVoronoi(v){const e=function(n){if(e.delaunay=null,e._data=n,typeof e._data=="object"&&e._data.type==="FeatureCollection"&&(e._data=e._data.features),typeof e._data=="object"){const r=e._data.map(C=>[e._vx(C),e._vy(C),C]).filter(C=>isFinite(C[0]+C[1]));e.points=r.map(C=>[C[0],C[1]]),e.valid=r.map(C=>C[2]),e.delaunay=geoDelaunay(e.points)}return e};return e._vx=function(n){if(typeof n=="object"&&"type"in n)return geoCentroid(n)[0];if(0 in n)return n[0]},e._vy=function(n){if(typeof n=="object"&&"type"in n)return geoCentroid(n)[1];if(1 in n)return n[1]},e.x=function(n){return n?(e._vx=n,e):e._vx},e.y=function(n){return n?(e._vy=n,e):e._vy},e.polygons=function(n){if(n!==void 0&&e(n),!e.delaunay)return!1;const r={type:"FeatureCollection",features:[]};return e.valid.length===0||(e.delaunay.polygons.forEach((C,w)=>r.features.push({type:"Feature",geometry:C?{type:"Polygon",coordinates:[[...C,C[0]].map(E=>e.delaunay.centers[E])]}:null,properties:{site:e.valid[w],sitecoordinates:e.points[w],neighbours:e.delaunay.neighbors[w]}})),e.valid.length===1&&r.features.push({type:"Feature",geometry:{type:"Sphere"},properties:{site:e.valid[0],sitecoordinates:e.points[0],neighbours:[]}})),r},e.triangles=function(n){return n!==void 0&&e(n),e.delaunay?{type:"FeatureCollection",features:e.delaunay.triangles.map((r,C)=>(r=r.map(w=>e.points[w]),r.center=e.delaunay.centers[C],r)).filter(r=>excess(r)>0).map(r=>({type:"Feature",properties:{circumcenter:r.center},geometry:{type:"Polygon",coordinates:[[...r,r[0]]]}}))}:!1},e.links=function(n){if(n!==void 0&&e(n),!e.delaunay)return!1;const r=e.delaunay.edges.map(w=>Re$1(e.points[w[0]],e.points[w[1]])),C=e.delaunay.urquhart(r);return{type:"FeatureCollection",features:e.delaunay.edges.map((w,E)=>({type:"Feature",properties:{source:e.valid[w[0]],target:e.valid[w[1]],length:r[E],urquhart:!!C[E]},geometry:{type:"LineString",coordinates:[e.points[w[0]],e.points[w[1]]]}}))}},e.mesh=function(n){return n!==void 0&&e(n),e.delaunay?{type:"MultiLineString",coordinates:e.delaunay.edges.map(r=>[e.points[r[0]],e.points[r[1]]])}:!1},e.cellMesh=function(n){if(n!==void 0&&e(n),!e.delaunay)return!1;const{centers:r,polygons:C}=e.delaunay,w=[];for(const E of C)if(E)for(let O=E.length,le=E[O-1],fe=E[0],Se=0;Se<O;le=fe,fe=E[++Se])fe>le&&w.push([r[le],r[fe]]);return{type:"MultiLineString",coordinates:w}},e._found=void 0,e.find=function(n,r,C){if(e._found=e.delaunay.find(n,r,e._found),!C||Re$1([n,r],e.points[e._found])<C)return e._found},e.hull=function(n){n!==void 0&&e(n);const r=e.delaunay.hull,C=e.points;return r.length===0?null:{type:"Polygon",coordinates:[[...r.map(w=>C[w]),C[r[0]]]]}},v?e(v):e}function initRange(v,e){switch(arguments.length){case 0:break;case 1:this.range(v);break;default:this.range(e).domain(v);break}return this}function define$1(v,e,n){v.prototype=e.prototype=n,n.constructor=v}function extend(v,e){var n=Object.create(v.prototype);for(var r in e)n[r]=e[r];return n}function Color(){}var darker=.7,brighter=1/darker,reI="\\s*([+-]?\\d+)\\s*",reN="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",reP="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",reHex=/^#([0-9a-f]{3,8})$/,reRgbInteger=new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),reRgbPercent=new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),reRgbaInteger=new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),reRgbaPercent=new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),reHslPercent=new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),reHslaPercent=new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`),named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define$1(Color,color,{copy(v){return Object.assign(new this.constructor,this,v)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb});function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color(v){var e,n;return v=(v+"").trim().toLowerCase(),(e=reHex.exec(v))?(n=e[1].length,e=parseInt(e[1],16),n===6?rgbn(e):n===3?new Rgb(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?rgba(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?rgba(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=reRgbInteger.exec(v))?new Rgb(e[1],e[2],e[3],1):(e=reRgbPercent.exec(v))?new Rgb(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=reRgbaInteger.exec(v))?rgba(e[1],e[2],e[3],e[4]):(e=reRgbaPercent.exec(v))?rgba(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=reHslPercent.exec(v))?hsla(e[1],e[2]/100,e[3]/100,1):(e=reHslaPercent.exec(v))?hsla(e[1],e[2]/100,e[3]/100,e[4]):named.hasOwnProperty(v)?rgbn(named[v]):v==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(v){return new Rgb(v>>16&255,v>>8&255,v&255,1)}function rgba(v,e,n,r){return r<=0&&(v=e=n=NaN),new Rgb(v,e,n,r)}function rgbConvert(v){return v instanceof Color||(v=color(v)),v?(v=v.rgb(),new Rgb(v.r,v.g,v.b,v.opacity)):new Rgb}function rgb$1(v,e,n,r){return arguments.length===1?rgbConvert(v):new Rgb(v,e,n,r==null?1:r)}function Rgb(v,e,n,r){this.r=+v,this.g=+e,this.b=+n,this.opacity=+r}define$1(Rgb,rgb$1,extend(Color,{brighter(v){return v=v==null?brighter:Math.pow(brighter,v),new Rgb(this.r*v,this.g*v,this.b*v,this.opacity)},darker(v){return v=v==null?darker:Math.pow(darker,v),new Rgb(this.r*v,this.g*v,this.b*v,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const v=clampa(this.opacity);return`${v===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${v===1?")":`, ${v})`}`}function clampa(v){return isNaN(v)?1:Math.max(0,Math.min(1,v))}function clampi(v){return Math.max(0,Math.min(255,Math.round(v)||0))}function hex(v){return v=clampi(v),(v<16?"0":"")+v.toString(16)}function hsla(v,e,n,r){return r<=0?v=e=n=NaN:n<=0||n>=1?v=e=NaN:e<=0&&(v=NaN),new Hsl(v,e,n,r)}function hslConvert(v){if(v instanceof Hsl)return new Hsl(v.h,v.s,v.l,v.opacity);if(v instanceof Color||(v=color(v)),!v)return new Hsl;if(v instanceof Hsl)return v;v=v.rgb();var e=v.r/255,n=v.g/255,r=v.b/255,C=Math.min(e,n,r),w=Math.max(e,n,r),E=NaN,O=w-C,le=(w+C)/2;return O?(e===w?E=(n-r)/O+(n<r)*6:n===w?E=(r-e)/O+2:E=(e-n)/O+4,O/=le<.5?w+C:2-w-C,E*=60):O=le>0&&le<1?0:E,new Hsl(E,O,le,v.opacity)}function hsl(v,e,n,r){return arguments.length===1?hslConvert(v):new Hsl(v,e,n,r==null?1:r)}function Hsl(v,e,n,r){this.h=+v,this.s=+e,this.l=+n,this.opacity=+r}define$1(Hsl,hsl,extend(Color,{brighter(v){return v=v==null?brighter:Math.pow(brighter,v),new Hsl(this.h,this.s,this.l*v,this.opacity)},darker(v){return v=v==null?darker:Math.pow(darker,v),new Hsl(this.h,this.s,this.l*v,this.opacity)},rgb(){var v=this.h%360+(this.h<0)*360,e=isNaN(v)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,C=2*n-r;return new Rgb(hsl2rgb(v>=240?v-240:v+120,C,r),hsl2rgb(v,C,r),hsl2rgb(v<120?v+240:v-120,C,r),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const v=clampa(this.opacity);return`${v===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${v===1?")":`, ${v})`}`}}));function clamph(v){return v=(v||0)%360,v<0?v+360:v}function clampt(v){return Math.max(0,Math.min(1,v||0))}function hsl2rgb(v,e,n){return(v<60?e+(n-e)*v/60:v<180?n:v<240?e+(n-e)*(240-v)/60:e)*255}const constant=v=>()=>v;function linear$1(v,e){return function(n){return v+n*e}}function exponential(v,e,n){return v=Math.pow(v,n),e=Math.pow(e,n)-v,n=1/n,function(r){return Math.pow(v+r*e,n)}}function gamma(v){return(v=+v)==1?nogamma:function(e,n){return n-e?exponential(e,n,v):constant(isNaN(e)?n:e)}}function nogamma(v,e){var n=e-v;return n?linear$1(v,n):constant(isNaN(v)?e:v)}const rgb=function v(e){var n=gamma(e);function r(C,w){var E=n((C=rgb$1(C)).r,(w=rgb$1(w)).r),O=n(C.g,w.g),le=n(C.b,w.b),fe=nogamma(C.opacity,w.opacity);return function(Se){return C.r=E(Se),C.g=O(Se),C.b=le(Se),C.opacity=fe(Se),C+""}}return r.gamma=v,r}(1);function numberArray(v,e){e||(e=[]);var n=v?Math.min(e.length,v.length):0,r=e.slice(),C;return function(w){for(C=0;C<n;++C)r[C]=v[C]*(1-w)+e[C]*w;return r}}function isNumberArray(v){return ArrayBuffer.isView(v)&&!(v instanceof DataView)}function genericArray(v,e){var n=e?e.length:0,r=v?Math.min(n,v.length):0,C=new Array(r),w=new Array(n),E;for(E=0;E<r;++E)C[E]=interpolate(v[E],e[E]);for(;E<n;++E)w[E]=e[E];return function(O){for(E=0;E<r;++E)w[E]=C[E](O);return w}}function date(v,e){var n=new Date;return v=+v,e=+e,function(r){return n.setTime(v*(1-r)+e*r),n}}function interpolateNumber(v,e){return v=+v,e=+e,function(n){return v*(1-n)+e*n}}function object(v,e){var n={},r={},C;(v===null||typeof v!="object")&&(v={}),(e===null||typeof e!="object")&&(e={});for(C in e)C in v?n[C]=interpolate(v[C],e[C]):r[C]=e[C];return function(w){for(C in n)r[C]=n[C](w);return r}}var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,reB=new RegExp(reA.source,"g");function zero(v){return function(){return v}}function one(v){return function(e){return v(e)+""}}function string(v,e){var n=reA.lastIndex=reB.lastIndex=0,r,C,w,E=-1,O=[],le=[];for(v=v+"",e=e+"";(r=reA.exec(v))&&(C=reB.exec(e));)(w=C.index)>n&&(w=e.slice(n,w),O[E]?O[E]+=w:O[++E]=w),(r=r[0])===(C=C[0])?O[E]?O[E]+=C:O[++E]=C:(O[++E]=null,le.push({i:E,x:interpolateNumber(r,C)})),n=reB.lastIndex;return n<e.length&&(w=e.slice(n),O[E]?O[E]+=w:O[++E]=w),O.length<2?le[0]?one(le[0].x):zero(e):(e=le.length,function(fe){for(var Se=0,ze;Se<e;++Se)O[(ze=le[Se]).i]=ze.x(fe);return O.join("")})}function interpolate(v,e){var n=typeof e,r;return e==null||n==="boolean"?constant(e):(n==="number"?interpolateNumber:n==="string"?(r=color(e))?(e=r,rgb):string:e instanceof color?rgb:e instanceof Date?date:isNumberArray(e)?numberArray:Array.isArray(e)?genericArray:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?object:interpolateNumber)(v,e)}function interpolateRound(v,e){return v=+v,e=+e,function(n){return Math.round(v*(1-n)+e*n)}}function constants(v){return function(){return v}}function number(v){return+v}var unit=[0,1];function identity$1(v){return v}function normalize(v,e){return(e-=v=+v)?function(n){return(n-v)/e}:constants(isNaN(e)?NaN:.5)}function clamper(v,e){var n;return v>e&&(n=v,v=e,e=n),function(r){return Math.max(v,Math.min(e,r))}}function bimap(v,e,n){var r=v[0],C=v[1],w=e[0],E=e[1];return C<r?(r=normalize(C,r),w=n(E,w)):(r=normalize(r,C),w=n(w,E)),function(O){return w(r(O))}}function polymap(v,e,n){var r=Math.min(v.length,e.length)-1,C=new Array(r),w=new Array(r),E=-1;for(v[r]<v[0]&&(v=v.slice().reverse(),e=e.slice().reverse());++E<r;)C[E]=normalize(v[E],v[E+1]),w[E]=n(e[E],e[E+1]);return function(O){var le=bisectRight(v,O,1,r)-1;return w[le](C[le](O))}}function copy(v,e){return e.domain(v.domain()).range(v.range()).interpolate(v.interpolate()).clamp(v.clamp()).unknown(v.unknown())}function transformer(){var v=unit,e=unit,n=interpolate,r,C,w,E=identity$1,O,le,fe;function Se(){var ke=Math.min(v.length,e.length);return E!==identity$1&&(E=clamper(v[0],v[ke-1])),O=ke>2?polymap:bimap,le=fe=null,ze}function ze(ke){return ke==null||isNaN(ke=+ke)?w:(le||(le=O(v.map(r),e,n)))(r(E(ke)))}return ze.invert=function(ke){return E(C((fe||(fe=O(e,v.map(r),interpolateNumber)))(ke)))},ze.domain=function(ke){return arguments.length?(v=Array.from(ke,number),Se()):v.slice()},ze.range=function(ke){return arguments.length?(e=Array.from(ke),Se()):e.slice()},ze.rangeRound=function(ke){return e=Array.from(ke),n=interpolateRound,Se()},ze.clamp=function(ke){return arguments.length?(E=ke?!0:identity$1,Se()):E!==identity$1},ze.interpolate=function(ke){return arguments.length?(n=ke,Se()):n},ze.unknown=function(ke){return arguments.length?(w=ke,ze):w},function(ke,Fe){return r=ke,C=Fe,Se()}}function continuous(){return transformer()(identity$1,identity$1)}function formatDecimal(v){return Math.abs(v=Math.round(v))>=1e21?v.toLocaleString("en").replace(/,/g,""):v.toString(10)}function formatDecimalParts(v,e){if((n=(v=e?v.toExponential(e-1):v.toExponential()).indexOf("e"))<0)return null;var n,r=v.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+v.slice(n+1)]}function exponent(v){return v=formatDecimalParts(Math.abs(v)),v?v[1]:NaN}function formatGroup(v,e){return function(n,r){for(var C=n.length,w=[],E=0,O=v[0],le=0;C>0&&O>0&&(le+O+1>r&&(O=Math.max(1,r-le)),w.push(n.substring(C-=O,C+O)),!((le+=O+1)>r));)O=v[E=(E+1)%v.length];return w.reverse().join(e)}}function formatNumerals(v){return function(e){return e.replace(/[0-9]/g,function(n){return v[+n]})}}var re$2=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(v){if(!(e=re$2.exec(v)))throw new Error("invalid format: "+v);var e;return new FormatSpecifier({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(v){this.fill=v.fill===void 0?" ":v.fill+"",this.align=v.align===void 0?">":v.align+"",this.sign=v.sign===void 0?"-":v.sign+"",this.symbol=v.symbol===void 0?"":v.symbol+"",this.zero=!!v.zero,this.width=v.width===void 0?void 0:+v.width,this.comma=!!v.comma,this.precision=v.precision===void 0?void 0:+v.precision,this.trim=!!v.trim,this.type=v.type===void 0?"":v.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(v){e:for(var e=v.length,n=1,r=-1,C;n<e;++n)switch(v[n]){case".":r=C=n;break;case"0":r===0&&(r=n),C=n;break;default:if(!+v[n])break e;r>0&&(r=0);break}return r>0?v.slice(0,r)+v.slice(C+1):v}var prefixExponent;function formatPrefixAuto(v,e){var n=formatDecimalParts(v,e);if(!n)return v+"";var r=n[0],C=n[1],w=C-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(C/3)))*3)+1,E=r.length;return w===E?r:w>E?r+new Array(w-E+1).join("0"):w>0?r.slice(0,w)+"."+r.slice(w):"0."+new Array(1-w).join("0")+formatDecimalParts(v,Math.max(0,e+w-1))[0]}function formatRounded(v,e){var n=formatDecimalParts(v,e);if(!n)return v+"";var r=n[0],C=n[1];return C<0?"0."+new Array(-C).join("0")+r:r.length>C+1?r.slice(0,C+1)+"."+r.slice(C+1):r+new Array(C-r.length+2).join("0")}const formatTypes={"%":(v,e)=>(v*100).toFixed(e),b:v=>Math.round(v).toString(2),c:v=>v+"",d:formatDecimal,e:(v,e)=>v.toExponential(e),f:(v,e)=>v.toFixed(e),g:(v,e)=>v.toPrecision(e),o:v=>Math.round(v).toString(8),p:(v,e)=>formatRounded(v*100,e),r:formatRounded,s:formatPrefixAuto,X:v=>Math.round(v).toString(16).toUpperCase(),x:v=>Math.round(v).toString(16)};function identity(v){return v}var map$1=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale(v){var e=v.grouping===void 0||v.thousands===void 0?identity:formatGroup(map$1.call(v.grouping,Number),v.thousands+""),n=v.currency===void 0?"":v.currency[0]+"",r=v.currency===void 0?"":v.currency[1]+"",C=v.decimal===void 0?".":v.decimal+"",w=v.numerals===void 0?identity:formatNumerals(map$1.call(v.numerals,String)),E=v.percent===void 0?"%":v.percent+"",O=v.minus===void 0?"−":v.minus+"",le=v.nan===void 0?"NaN":v.nan+"";function fe(ze){ze=formatSpecifier(ze);var ke=ze.fill,Fe=ze.align,mt=ze.sign,Lt=ze.symbol,bt=ze.zero,Ue=ze.width,Gt=ze.comma,xt=ze.precision,Xt=ze.trim,Zt=ze.type;Zt==="n"?(Gt=!0,Zt="g"):formatTypes[Zt]||(xt===void 0&&(xt=12),Xt=!0,Zt="g"),(bt||ke==="0"&&Fe==="=")&&(bt=!0,ke="0",Fe="=");var wt=Lt==="$"?n:Lt==="#"&&/[boxX]/.test(Zt)?"0"+Zt.toLowerCase():"",Vt=Lt==="$"?r:/[%p]/.test(Zt)?E:"",Wt=formatTypes[Zt],It=/[defgprs%]/.test(Zt);xt=xt===void 0?6:/[gprs]/.test(Zt)?Math.max(1,Math.min(21,xt)):Math.max(0,Math.min(20,xt));function Nt(Ft){var jt=wt,n0=Vt,s0,qt,Ht;if(Zt==="c")n0=Wt(Ft)+n0,Ft="";else{Ft=+Ft;var $t=Ft<0||1/Ft<0;if(Ft=isNaN(Ft)?le:Wt(Math.abs(Ft),xt),Xt&&(Ft=formatTrim(Ft)),$t&&+Ft==0&&mt!=="+"&&($t=!1),jt=($t?mt==="("?mt:O:mt==="-"||mt==="("?"":mt)+jt,n0=(Zt==="s"?prefixes[8+prefixExponent/3]:"")+n0+($t&&mt==="("?")":""),It){for(s0=-1,qt=Ft.length;++s0<qt;)if(Ht=Ft.charCodeAt(s0),48>Ht||Ht>57){n0=(Ht===46?C+Ft.slice(s0+1):Ft.slice(s0))+n0,Ft=Ft.slice(0,s0);break}}}Gt&&!bt&&(Ft=e(Ft,1/0));var Kt=jt.length+Ft.length+n0.length,e0=Kt<Ue?new Array(Ue-Kt+1).join(ke):"";switch(Gt&&bt&&(Ft=e(e0+Ft,e0.length?Ue-n0.length:1/0),e0=""),Fe){case"<":Ft=jt+Ft+n0+e0;break;case"=":Ft=jt+e0+Ft+n0;break;case"^":Ft=e0.slice(0,Kt=e0.length>>1)+jt+Ft+n0+e0.slice(Kt);break;default:Ft=e0+jt+Ft+n0;break}return w(Ft)}return Nt.toString=function(){return ze+""},Nt}function Se(ze,ke){var Fe=fe((ze=formatSpecifier(ze),ze.type="f",ze)),mt=Math.max(-8,Math.min(8,Math.floor(exponent(ke)/3)))*3,Lt=Math.pow(10,-mt),bt=prefixes[8+mt/3];return function(Ue){return Fe(Lt*Ue)+bt}}return{format:fe,formatPrefix:Se}}var locale,format,formatPrefix;defaultLocale({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale(v){return locale=formatLocale(v),format=locale.format,formatPrefix=locale.formatPrefix,locale}function precisionFixed(v){return Math.max(0,-exponent(Math.abs(v)))}function precisionPrefix(v,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(e)/3)))*3-exponent(Math.abs(v)))}function precisionRound(v,e){return v=Math.abs(v),e=Math.abs(e)-v,Math.max(0,exponent(e)-exponent(v))+1}function tickFormat(v,e,n,r){var C=tickStep(v,e,n),w;switch(r=formatSpecifier(r==null?",f":r),r.type){case"s":{var E=Math.max(Math.abs(v),Math.abs(e));return r.precision==null&&!isNaN(w=precisionPrefix(C,E))&&(r.precision=w),formatPrefix(r,E)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(w=precisionRound(C,Math.max(Math.abs(v),Math.abs(e))))&&(r.precision=w-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(w=precisionFixed(C))&&(r.precision=w-(r.type==="%")*2);break}}return format(r)}function linearish(v){var e=v.domain;return v.ticks=function(n){var r=e();return ticks(r[0],r[r.length-1],n==null?10:n)},v.tickFormat=function(n,r){var C=e();return tickFormat(C[0],C[C.length-1],n==null?10:n,r)},v.nice=function(n){n==null&&(n=10);var r=e(),C=0,w=r.length-1,E=r[C],O=r[w],le,fe,Se=10;for(O<E&&(fe=E,E=O,O=fe,fe=C,C=w,w=fe);Se-- >0;){if(fe=tickIncrement(E,O,n),fe===le)return r[C]=E,r[w]=O,e(r);if(fe>0)E=Math.floor(E/fe)*fe,O=Math.ceil(O/fe)*fe;else if(fe<0)E=Math.ceil(E*fe)/fe,O=Math.floor(O*fe)/fe;else break;le=fe}return v},v}function linear(){var v=continuous();return v.copy=function(){return copy(v,linear())},initRange.apply(v,arguments),linearish(v)}var Ce=Object.defineProperty,Ie$2=Object.defineProperties,Pe=Object.getOwnPropertyDescriptors,V$2=Object.getOwnPropertySymbols,te$1=Object.prototype.hasOwnProperty,ie$1=Object.prototype.propertyIsEnumerable,se$1=Math.pow,ee$1=(v,e,n)=>e in v?Ce(v,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):v[e]=n,k$1=(v,e)=>{for(var n in e||(e={}))te$1.call(e,n)&&ee$1(v,n,e[n]);if(V$2)for(var n of V$2(e))ie$1.call(e,n)&&ee$1(v,n,e[n]);return v},$$1=(v,e)=>Ie$2(v,Pe(e)),ne$1=(v,e)=>{var n={};for(var r in v)te$1.call(v,r)&&e.indexOf(r)<0&&(n[r]=v[r]);if(v!=null&&V$2)for(var r of V$2(v))e.indexOf(r)<0&&ie$1.call(v,r)&&(n[r]=v[r]);return n},re$1=(v,e,n)=>new Promise((r,C)=>{var w=le=>{try{O(n.next(le))}catch(fe){C(fe)}},E=le=>{try{O(n.throw(le))}catch(fe){C(fe)}},O=le=>le.done?r(le.value):Promise.resolve(le.value).then(w,E);O((n=n.apply(v,e)).next())});const Je$2=0,Dt$2=1,He$2=2,Tt$1=!1;let et$2=class{constructor(){this.resources=new Set,this.disposeMaterial=!0,this.disposeVideo=!0}track(e){if(!e)return e;if(Array.isArray(e))return e.forEach(n=>this.track(n)),e;if(!this.disposeMaterial&&e instanceof Material)return e;if(e instanceof pe$1?(e.disposeTrack&&e.object3d?this.track(e.object3d):this.resources.add(e),Object.values(e.materialList).map(n=>this.track(n))):(e instanceof Object3D||Reflect.has(e,"dispose"))&&this.resources.add(e),e instanceof pe$1)e.children.forEach(n=>{n.disposeTrack=!1}),this.track(e.children);else if(e instanceof Object3D){const n=e;this.track(n.geometry),this.track(n.material),this.track(n.children)}else if(e instanceof Material){for(const r of Object.values(e))r instanceof Texture&&this.track(r);const n=e;if(n.uniforms){for(const r of Object.values(n.uniforms))if(r){const C=r.value;(C instanceof Texture||Array.isArray(C))&&this.track(C)}}}else this.disposeVideo&&e.isVideoTexture&&e.source.data&&this.resources.add(e.source.data);return e}dispose(){const e=[];for(const n of this.resources)n instanceof Object3D?e.push(n):n instanceof HTMLVideoElement&&n.pause(),Reflect.has(n,"dispose")&&n.dispose();e.forEach(n=>{n.removeFromParent()}),e.length=0,this.resources.clear()}};const tt$1=(v,e=1)=>{const n=new BufferGeometry;n.setAttribute("position",new Float32BufferAttribute(new Array(e*3).fill(0),3)),n.setAttribute("scaleAtt",new Float32BufferAttribute(new Array(e).fill(1),1));const r=v.material,C=new PointsMaterial({size:10,map:r.map,alphaMap:r.alphaMap,color:r.color,blending:r.blending,depthTest:r.depthTest,depthWrite:!1,opacity:r.opacity,transparent:!0,alphaTest:r.alphaTest,sizeAttenuation:!1});return C.onBeforeCompile=w=>{w.vertexShader=`
|
|
4211
4211
|
attribute float scaleAtt;
|
|
4212
4212
|
${w.vertexShader.replace("gl_PointSize = size;","gl_PointSize = size * scaleAtt;")}
|
|
4213
|
-
`},new Points(n,C)},it$1=(v,e)=>{const n=new Object3D;e.forEach((r,C)=>{const w=i$1(r.position),E=i$1(r.scale||[1,1,1]);n.position.copy(w),n.scale.copy(E),n.updateMatrix();const O=n.matrix.clone();if(v instanceof InstancedMesh||v.isInstantiate)v.setMatrixAt(C,O);else if(v instanceof Points||v.type==="Points"){const le=v.geometry,fe=le.attributes.position.array,Se=le.attributes.scaleAtt.array,ze=new Vector3,ke=new Vector3,Fe=new Quaternion,mt=C*3,Lt=C*1;O.decompose(ze,Fe,ke),fe[mt]=ze.x,fe[mt+1]=ze.y,fe[mt+2]=ze.z,Se[Lt]=Math.max(ke.x,ke.y,ke.z),le.attributes.position.needsUpdate=!0,le.attributes.scaleAtt.needsUpdate=!0}})};class nt{constructor(){this.onPointerIndex=[]}onPointerEvent(e,n){const r=this.lead.handlePick([this],e,n);this.onPointerIndex.push(r)}onClick(e){this.onPointerEvent("click",e)}onPointerEnter(e){this.onPointerEvent("enter",e)}onPointerLeave(e){this.onPointerEvent("leave",e)}onPointerMove(e){this.onPointerEvent("move",e)}onPointerDown(e){this.onPointerEvent("down",e)}dispose(){this.onPointerIndex.forEach(e=>{this.lead.removePick(e)})}}let st$1=class extends nt{constructor(){super(...arguments),this.userData={},this.materialList={},this.useMaterialType="origin",this.disposeMaterialIfNotUsed=!0}cloneMaterial(){const e=this.object3d;if(!e||!e.material)return;const n=e.material;if(Array.isArray(n))return n.map(r=>{const C=r.userData;r.userData={};const w=r.clone();return r.userData=C,w});{const r=n.userData;n.userData={};const C=n.clone();return n.userData=r,C}}setMaterialList(e,n){const r=this.object3d;if(!r||!r.material)return;this.materialList.origin||(this.materialList.origin=r.material);const C=n==="clone"?this.cloneMaterial():Array.isArray(n)?n.slice():n;return this.materialList[e]=C,C}useMaterial(e){const n=this.object3d;!n||!n.material||this.useMaterialType===e||!this.materialList[e]||(this.useMaterialType=e,n.material=this.materialList[e])}useMListById(e,n){if(!this.mList)return;const r=this.mList.get(e);if(!r)return;const C=this.object3d;Array.isArray(C.material)&&n!==void 0?C.material[n]=r:C.material=r}useMListByName(e,n){if(!this.mList)return;const r=this.mList.getKeyByName(e);r&&this.useMListById(r,n)}dispose(){super.dispose(),this.mList.rmBaseObjectMap(this,void 0,this.disposeMaterialIfNotUsed)}},pe$1=class extends st$1{constructor(){super(...arguments),this.key="",this.objectType="BaseObject",this.userData={},this.isPrefab=!1,this.isInstantiate=!1,this.isBloom=!1,this.isBaseObject=!0,this.disposeTrack=!0}get parent(){const e=this.object3d.parent;return e&&this.lead.objMap.get(e)||null}get children(){return this.object3d.children.map(e=>this.lead.objMap.get(e)).filter(e=>!!e)}get position(){return this.object3d.position}get rotation(){return this.object3d.rotation}get scale(){return this.object3d.scale}lookAt(e){const n=e instanceof Vector3?e:new Vector3(...e);this.object3d.lookAt(n)}add(...e){[...e].forEach(n=>{this.lead.objMap.get(n)?this.object3d.add(n):this.lead.createBaseObject(n,{target:this})})}remove(...e){[...e].forEach(n=>{var r;this.lead.objMap.get(n)?(r=this.lead.objMap.get(n))==null||r.erase():this.object3d.remove(n)})}get visible(){return this.object3d.visible}get visibleWithAncestors(){if(this.visible){let e=this.parent;for(;e;){if(!e.visible)return!1;e=e.parent}return!0}else return!1}create(){this.createGroup()}render(){}update(e,n){}resize(e,n){}show(){return this.object3d.visible=!0,this.object3d.layers.set(Je$2),this.isBloom&&this.enableBloom(),this}hide(){return this.object3d.visible=!1,this.object3d.layers.set(He$2),this}createGroup(){return this.object3d=new Group,this}createMesh(...e){return this.object3d=new Mesh(...e),this}createPoints(...e){return this.object3d=new Points(...e),this}createCSS2DObject(e){return this.object3d=new CSS2DObject(e),this}createCSS3DObject(e){return this.object3d=new CSS3DObject(e),this}createCSS3DSprite(e){return this.object3d=new CSS3DSprite(e),this}createSprite(e){return this.object3d=new Sprite$1(e),this}attach(...e){return[...e].forEach(n=>{this.object3d.attach(n.object3d)}),this}getSize(){const e=new Box3().setFromObject(this.object3d);return{min:e.min,max:e.max,size:e.getSize(new Vector3),center:e.getCenter(new Vector3)}}setTop(e){this.object3d&&(this.object3d.renderOrder=e)}traverse(e){e(this),this.children.forEach(n=>{n.traverse(e)})}instantiate(e){return re$1(this,null,function*(){var n,r;const C=(n=e==null?void 0:e.recursive)!=null?n:!0,w=(r=e==null?void 0:e.cloneMaterial)!=null?r:!1,{objectType:E,objectOptions:O}=this;let le=e==null?void 0:e.create,fe;return this.objectType==="BaseObject"?fe=this.lead.createBaseObject(this.object3d.clone(!1),{target:(e==null?void 0:e.target)||this.parent}):(le===void 0&&(le=Se=>{var ze;if(this.object3d){if((ze=e==null?void 0:e.instancedAttr)!=null&&ze.length){const ke=e.instancedAttr.length;if(this.object3d instanceof Sprite$1)Se.object3d=tt$1(this.object3d,ke);else{const Fe=this.object3d,mt=w?this.cloneMaterial():Fe.material;Se.object3d=new InstancedMesh(Fe.geometry,mt,ke)}it$1(Se.object3d,e==null?void 0:e.instancedAttr)}else Se.object3d=this.object3d.clone(!1),w&&Se.object3d.material&&(Se.object3d.material=this.cloneMaterial());Se.object3d.userData.prefab&&delete Se.object3d.userData.prefab}}),fe=yield this.lead.draw(E,$$1(k$1({},O||{}),{create:le,prefab:!1,keyType:this.keyType,key:(e==null?void 0:e.key)||this.keyName,uId:(e==null?void 0:e.uId)||this.keyUId,target:(e==null?void 0:e.target)||this.parent}))),this.isBloom&&fe.enableBloom(),C&&(yield Promise.all(this.children.map(Se=>Se.instantiate({key:Se.keyUId?`${Se.keyName}-${Se.keyUId}`:Se.keyName,uId:e==null?void 0:e.uId,cloneMaterial:w,target:fe})))),fe.isInstantiate=!0,fe})}erase(){this.lead.erase(this)}handleMaterialChange(e){}enableBloom(){var e;(e=this.pencil.composerController)==null||e.setBloomSelection(this,!0),this.isBloom=!0}disableBloom(){var e;(e=this.pencil.composerController)==null||e.setBloomSelection(this,!1),this.isBloom=!1}dispose(){var e;if(super.dispose(),(e=this.pencil.composerController)==null||e.bloomSelection.delete(this),this.lead&&(this.lead.objects.delete(this.key),this.lead.objectWrapChindIdMap.delete(this),this.object3d&&this.lead.objMap.delete(this.object3d)),this.disposeTrack){const n=new et$2;n.disposeMaterial=!1,n.track(this),n.dispose()}}};function rt$1(v,e){return v.map(n=>{const r=[];let C;return n.forEach(w=>{if(C){const E=Re$1(w,C)*180/Math.PI;if(E>e){const O=Ge$1(C,w),le=1/Math.ceil(E/e);let fe=le;for(;fe<1;)r.push(O(fe)),fe+=le}}r.push(C=w)}),r})}function at(v,{minLng:e,maxLng:n,minLat:r,maxLat:C}={}){const w=Math.round(ne$1(360/v,2)/Math.PI),E=(1+Math.sqrt(5))/2,O=Fe=>Fe/E*360%360-180,le=Fe=>Math.acos(2*Fe/w-1)/Math.PI*180-90,fe=Fe=>w*(Math.cos((Fe+90)*Math.PI/180)+1)/2,Se=[C!==void 0?Math.ceil(fe(C)):0,r!==void 0?Math.floor(fe(r)):w-1],ze=e===void 0&&n===void 0?()=>!0:e===void 0?Fe=>Fe<=n:n===void 0?Fe=>Fe>=e:n>=e?Fe=>Fe>=e&&Fe<=n:Fe=>Fe>=e||Fe<=n,ke=[];for(let Fe=Se[0];Fe<=Se[1];Fe++){const mt=O(Fe);ze(mt)&&ke.push([mt,le(Fe)])}return ke}function Y$2(v,e,n=!1){return n?Ne(e,v):turf_boolean_point_in_polygon_default(v,e)}function ot$1(v,e){const n={type:"Polygon",coordinates:v},[[r,C],[w,E]]=je$1(n);if(Math.min(Math.abs(w-r),Math.abs(E-C))<e)return[];const O=r>w||E>=89||C<=-89;return at(e,{minLng:r,maxLng:w,minLat:C,maxLat:E}).filter(le=>Y$2(le,n,O))}function ct(v,{resolution:e=1/0,bbox:n,projection:r}={}){const C=rt$1(v,e),w=merge(C),E=ot$1(v,e),O=[...w,...E],le={type:"Polygon",coordinates:v},[[fe,Se],[ze,ke]]=je$1(le),Fe=fe>ze||ke>=89||Se<=-89;let mt=[];if(Fe){const Xt=geoVoronoi(O).triangles(),Zt=new Map(O.map(([wt,Vt],Wt)=>[`${wt}-${Vt}`,Wt]));Xt.features.forEach(wt=>{const Vt=wt.geometry.coordinates[0].slice(0,3).reverse(),Wt=[];if(Vt.forEach(([It,Nt])=>{const Ft=`${It}-${Nt}`;Zt.has(Ft)&&Wt.push(Zt.get(Ft))}),Wt.length===3){if(Wt.some(It=>It<w.length)){const It=wt.properties.circumcenter;if(!Y$2(It,le,Fe))return}mt.push(...Wt)}})}else if(E.length){const Xt=Delaunator.from(O);for(let Zt=0,wt=Xt.triangles.length;Zt<wt;Zt+=3){const Vt=[2,1,0].map(It=>Xt.triangles[Zt+It]),Wt=Vt.map(It=>O[It]);if(Vt.some(It=>It<w.length)){const It=[0,1].map(Nt=>mean(Wt,Ft=>Ft[Nt]));if(!Y$2(It,le,Fe))continue}mt.push(...Vt)}}else{const{vertices:Xt,holes:Zt=[]}=flatten(C);mt=earcut(Xt,Zt,2)}let Lt=n?[n[0],n[2]]:extent(O,Xt=>Xt[0]),bt=n?[n[1],n[3]]:extent(O,Xt=>Xt[1]);if(r){const[Xt,Zt]=r([Lt[0],bt[0]]),[wt,Vt]=r([Lt[1],bt[1]]);Lt=[Xt,wt],bt=[-Zt,-Vt]}const Ue=linear(Lt,[0,1]),Gt=linear(bt,[0,1]),xt=O.map(([Xt,Zt])=>{if(r){const[wt,Vt]=r([Xt,Zt]);return[Ue(wt),Gt(-Vt)]}else return[Ue(Xt),Gt(Zt)]});return{contour:C,triangles:{points:O,indices:mt,uvs:xt}}}const me$1=new BufferGeometry().setAttribute?"setAttribute":"addAttribute";function G$1(v,e,n,r){const C=v.map(w=>w.map(([E,O])=>{if(r){const[le,fe]=r([E,O]);return[le,-fe,e]}return n?p(E,O,e):[E,O,e]}));return flatten(C)}function lt(v,e,n,r,C){const{vertices:w,holes:E}=G$1(v,e,r,C),{vertices:O}=G$1(v,n,r,C),le=merge([O,w]),fe=Math.round(O.length/3),Se=new Set(E);let ze=0;const ke=[];for(let mt=0;mt<fe;mt++){let Lt=mt+1;if(Lt===fe)Lt=ze;else if(Se.has(Lt)){const bt=Lt;Lt=ze,ze=bt}ke.push(mt,mt+fe,Lt+fe),ke.push(Lt+fe,Lt,mt)}const Fe=[];for(let mt=1;mt>=0;mt--)for(let Lt=0;Lt<fe;Lt+=1)Fe.push(Lt/(fe-1),mt);return{indices:ke,vertices:le,uvs:Fe,topVerts:O}}function ve(v,e,n,r,C,w){return{indices:r?v.indices:v.indices.slice().reverse(),vertices:G$1([v.points],e,C,w).vertices,uvs:n}}const ut$1=({polygonGeoJson:v,startHeight:e,endHeight:n,curvatureResolution:r=1,cartesian:C=!0,hasSide:w=!0,hasBottom:E=!1,hasTop:O=!1,projection:le,bbox:fe})=>{v.forEach(Ue=>{turf_boolean_clockwise_default(Ue)||Ue.reverse()});const{contour:Se,triangles:ze}=ct(v,{resolution:r,bbox:fe,projection:le});let ke={},Fe;w&&(ke=lt(Se,e!=null?e:n,n!=null?n:e,C,le),Fe=ke.topVerts);let mt=[];(E||O)&&(mt=merge(ze.uvs));let Lt={};E&&(Lt=ve(ze,e,mt,!1,C,le));let bt={};return O&&(bt=ve(ze,n,mt,!0,C,le)),{contour:Se,triangles:ze,sideTorso:ke,bottomCap:Lt,topCap:bt,topVerts:Fe}};class zt extends BufferGeometry{constructor(e,n={}){super(),this.type="PolygonBufferGeometry",this.parameters=k$1({polygonGeoJson:e,startHeight:0,endHeight:1,hasTop:!0,topFirst:!1,hasBottom:!0,hasSide:!0,curvatureResolution:1,cartesian:!0,userDataRsoOffset:0},n);const{endHeight:r,hasTop:C,topFirst:w,hasBottom:E,hasSide:O,cartesian:le,userDataRsoOffset:fe,projection:Se}=this.parameters,{contour:ze,sideTorso:ke,topVerts:Fe,bottomCap:mt,topCap:Lt}=ut$1(k$1({},this.parameters));let bt=[],Ue=[],Gt=[],xt=0;const Xt=Zt=>{const wt=Math.round(bt.length/3),Vt=Gt.length;bt=bt.concat(Zt.vertices),Ue=Ue.concat(Zt.uvs),Gt=Gt.concat(wt?Zt.indices.map(Wt=>Wt+wt):Zt.indices),this.addGroup(Vt,Gt.length-Vt,xt++)};C&&w&&Xt(Lt),O&&(Xt(ke),this.userData.topVerts=fe?G$1(ze,r+fe,le,Se).vertices:Fe),E&&Xt(mt),C&&!w&&Xt(Lt),this.setIndex(Gt),this[me$1]("position",new Float32BufferAttribute(bt,3)),this[me$1]("uv",new Float32BufferAttribute(Ue,2)),this.computeVertexNormals()}}const ft$1=`
|
|
4213
|
+
`},new Points(n,C)},it$1=(v,e)=>{const n=new Object3D;e.forEach((r,C)=>{const w=i$1(r.position),E=i$1(r.scale||[1,1,1]);n.position.copy(w),n.scale.copy(E),n.updateMatrix();const O=n.matrix.clone();if(v instanceof InstancedMesh||v.isInstantiate)v.setMatrixAt(C,O);else if(v instanceof Points||v.type==="Points"){const le=v.geometry,fe=le.attributes.position.array,Se=le.attributes.scaleAtt.array,ze=new Vector3,ke=new Vector3,Fe=new Quaternion,mt=C*3,Lt=C*1;O.decompose(ze,Fe,ke),fe[mt]=ze.x,fe[mt+1]=ze.y,fe[mt+2]=ze.z,Se[Lt]=Math.max(ke.x,ke.y,ke.z),le.attributes.position.needsUpdate=!0,le.attributes.scaleAtt.needsUpdate=!0}})};let st$1=class{constructor(){this.onPointerIndex=[]}onPointerEvent(e,n){const r=this.lead.handlePick([this],e,n);this.onPointerIndex.push(r)}onClick(e){this.onPointerEvent("click",e)}onPointerEnter(e){this.onPointerEvent("enter",e)}onPointerLeave(e){this.onPointerEvent("leave",e)}onPointerMove(e){this.onPointerEvent("move",e)}onPointerDown(e){this.onPointerEvent("down",e)}dispose(){this.onPointerIndex.forEach(e=>{this.lead.removePick(e)})}};class nt extends st$1{constructor(){super(...arguments),this.userData={},this.materialList={},this.useMaterialType="origin",this.disposeMaterialIfNotUsed=!0}cloneMaterial(){const e=this.object3d;if(!e||!e.material)return;const n=e.material;if(Array.isArray(n))return n.map(r=>{const C=r.userData;r.userData={};const w=r.clone();return r.userData=C,w});{const r=n.userData;n.userData={};const C=n.clone();return n.userData=r,C}}setMaterialList(e,n){const r=this.object3d;if(!r||!r.material)return;this.materialList.origin||(this.materialList.origin=r.material);const C=n==="clone"?this.cloneMaterial():Array.isArray(n)?n.slice():n;return this.materialList[e]=C,C}useMaterial(e){const n=this.object3d;!n||!n.material||this.useMaterialType===e||!this.materialList[e]||(this.useMaterialType=e,n.material=this.materialList[e])}useMListById(e,n){if(!this.mList)return;const r=this.mList.get(e);if(!r)return;const C=this.object3d;Array.isArray(C.material)&&n!==void 0?C.material[n]=r:C.material=r}useMListByName(e,n){if(!this.mList)return;const r=this.mList.getKeyByName(e);r&&this.useMListById(r,n)}dispose(){super.dispose(),this.mList.rmBaseObjectMap(this,void 0,this.disposeMaterialIfNotUsed)}}let pe$1=class extends nt{constructor(){super(...arguments),this.key="",this.objectType="BaseObject",this.userData={},this.isPrefab=!1,this.isInstantiate=!1,this.isBloom=!1,this.isBaseObject=!0,this.disposeTrack=!0}get parent(){const e=this.object3d.parent;return e&&this.lead.objMap.get(e)||null}get children(){return this.object3d.children.map(e=>this.lead.objMap.get(e)).filter(e=>!!e)}get position(){return this.object3d.position}get rotation(){return this.object3d.rotation}get scale(){return this.object3d.scale}lookAt(e){const n=e instanceof Vector3?e:new Vector3(...e);this.object3d.lookAt(n)}add(...e){[...e].forEach(n=>{this.lead.objMap.get(n)?this.object3d.add(n):this.lead.createBaseObject(n,{target:this})})}remove(...e){[...e].forEach(n=>{var r;this.lead.objMap.get(n)?(r=this.lead.objMap.get(n))==null||r.erase():this.object3d.remove(n)})}get visible(){return this.object3d.visible}get visibleWithAncestors(){if(this.visible){let e=this.parent;for(;e;){if(!e.visible)return!1;e=e.parent}return!0}else return!1}create(){this.createGroup()}render(){}update(e,n){}resize(e,n){}show(){return this.object3d.visible=!0,this.object3d.layers.set(Je$2),this.isBloom&&this.enableBloom(),this}hide(){return this.object3d.visible=!1,this.object3d.layers.set(He$2),this}createGroup(){return this.object3d=new Group,this}createMesh(...e){return this.object3d=new Mesh(...e),this}createPoints(...e){return this.object3d=new Points(...e),this}createCSS2DObject(e){return this.object3d=new CSS2DObject(e),this}createCSS3DObject(e){return this.object3d=new CSS3DObject(e),this}createCSS3DSprite(e){return this.object3d=new CSS3DSprite(e),this}createSprite(e){return this.object3d=new Sprite$1(e),this}attach(...e){return[...e].forEach(n=>{this.object3d.attach(n.object3d)}),this}getSize(){const e=new Box3().setFromObject(this.object3d);return{min:e.min,max:e.max,size:e.getSize(new Vector3),center:e.getCenter(new Vector3)}}setTop(e){this.object3d&&(this.object3d.renderOrder=e)}traverse(e){e(this),this.children.forEach(n=>{n.traverse(e)})}instantiate(e){return re$1(this,null,function*(){var n,r;const C=(n=e==null?void 0:e.recursive)!=null?n:!0,w=(r=e==null?void 0:e.cloneMaterial)!=null?r:!1,{objectType:E,objectOptions:O}=this;let le=e==null?void 0:e.create,fe,Se=(e==null?void 0:e.target)||this.parent;return Se===this.lead.prefabGroup&&(Se=this.lead.group),this.objectType==="BaseObject"?fe=this.lead.createBaseObject(this.object3d.clone(!1),{target:Se}):(le===void 0&&(le=ze=>{var ke;if(this.object3d){if((ke=e==null?void 0:e.instancedAttr)!=null&&ke.length){const Fe=e.instancedAttr.length;if(this.object3d instanceof Sprite$1)ze.object3d=tt$1(this.object3d,Fe);else{const mt=this.object3d,Lt=w?this.cloneMaterial():mt.material;ze.object3d=new InstancedMesh(mt.geometry,Lt,Fe)}it$1(ze.object3d,e==null?void 0:e.instancedAttr)}else ze.object3d=this.object3d.clone(!1),w&&ze.object3d.material&&(ze.object3d.material=this.cloneMaterial());ze.object3d.userData.prefab&&delete ze.object3d.userData.prefab}}),fe=yield this.lead.draw(E,$$1(k$1({},O||{}),{create:le,prefab:!1,keyType:this.keyType,key:(e==null?void 0:e.key)||this.keyName,uId:(e==null?void 0:e.uId)||this.keyUId,target:Se}))),this.isBloom&&fe.enableBloom(),C&&(yield Promise.all(this.children.map(ze=>ze.instantiate({key:ze.keyUId?`${ze.keyName}-${ze.keyUId}`:ze.keyName,uId:e==null?void 0:e.uId,cloneMaterial:w,target:fe})))),fe.isInstantiate=!0,fe})}erase(){this.lead.erase(this)}handleMaterialChange(e){}enableBloom(){var e;(e=this.pencil.composerController)==null||e.setBloomSelection(this,!0),this.isBloom=!0}disableBloom(){var e;(e=this.pencil.composerController)==null||e.setBloomSelection(this,!1),this.isBloom=!1}dispose(){var e;if(super.dispose(),(e=this.pencil.composerController)==null||e.bloomSelection.delete(this),this.lead&&(this.lead.objects.delete(this.key),this.lead.objectWrapChindIdMap.delete(this),this.object3d&&this.lead.objMap.delete(this.object3d)),this.disposeTrack){const n=new et$2;n.disposeMaterial=!1,n.track(this),n.dispose()}}};function rt$1(v,e){return v.map(n=>{const r=[];let C;return n.forEach(w=>{if(C){const E=Re$1(w,C)*180/Math.PI;if(E>e){const O=Ge$1(C,w),le=1/Math.ceil(E/e);let fe=le;for(;fe<1;)r.push(O(fe)),fe+=le}}r.push(C=w)}),r})}function at(v,{minLng:e,maxLng:n,minLat:r,maxLat:C}={}){const w=Math.round(se$1(360/v,2)/Math.PI),E=(1+Math.sqrt(5))/2,O=Fe=>Fe/E*360%360-180,le=Fe=>Math.acos(2*Fe/w-1)/Math.PI*180-90,fe=Fe=>w*(Math.cos((Fe+90)*Math.PI/180)+1)/2,Se=[C!==void 0?Math.ceil(fe(C)):0,r!==void 0?Math.floor(fe(r)):w-1],ze=e===void 0&&n===void 0?()=>!0:e===void 0?Fe=>Fe<=n:n===void 0?Fe=>Fe>=e:n>=e?Fe=>Fe>=e&&Fe<=n:Fe=>Fe>=e||Fe<=n,ke=[];for(let Fe=Se[0];Fe<=Se[1];Fe++){const mt=O(Fe);ze(mt)&&ke.push([mt,le(Fe)])}return ke}function Y$2(v,e,n=!1){return n?Ne(e,v):turf_boolean_point_in_polygon_default(v,e)}function ot$1(v,e){const n={type:"Polygon",coordinates:v},[[r,C],[w,E]]=je$1(n);if(Math.min(Math.abs(w-r),Math.abs(E-C))<e)return[];const O=r>w||E>=89||C<=-89;return at(e,{minLng:r,maxLng:w,minLat:C,maxLat:E}).filter(le=>Y$2(le,n,O))}function ct(v,{resolution:e=1/0,bbox:n,projection:r}={}){const C=rt$1(v,e),w=merge(C),E=ot$1(v,e),O=[...w,...E],le={type:"Polygon",coordinates:v},[[fe,Se],[ze,ke]]=je$1(le),Fe=fe>ze||ke>=89||Se<=-89;let mt=[];if(Fe){const Xt=geoVoronoi(O).triangles(),Zt=new Map(O.map(([wt,Vt],Wt)=>[`${wt}-${Vt}`,Wt]));Xt.features.forEach(wt=>{const Vt=wt.geometry.coordinates[0].slice(0,3).reverse(),Wt=[];if(Vt.forEach(([It,Nt])=>{const Ft=`${It}-${Nt}`;Zt.has(Ft)&&Wt.push(Zt.get(Ft))}),Wt.length===3){if(Wt.some(It=>It<w.length)){const It=wt.properties.circumcenter;if(!Y$2(It,le,Fe))return}mt.push(...Wt)}})}else if(E.length){const Xt=Delaunator.from(O);for(let Zt=0,wt=Xt.triangles.length;Zt<wt;Zt+=3){const Vt=[2,1,0].map(It=>Xt.triangles[Zt+It]),Wt=Vt.map(It=>O[It]);if(Vt.some(It=>It<w.length)){const It=[0,1].map(Nt=>mean(Wt,Ft=>Ft[Nt]));if(!Y$2(It,le,Fe))continue}mt.push(...Vt)}}else{const{vertices:Xt,holes:Zt=[]}=flatten(C);mt=earcut(Xt,Zt,2)}let Lt=n?[n[0],n[2]]:extent(O,Xt=>Xt[0]),bt=n?[n[1],n[3]]:extent(O,Xt=>Xt[1]);if(r){const[Xt,Zt]=r([Lt[0],bt[0]]),[wt,Vt]=r([Lt[1],bt[1]]);Lt=[Xt,wt],bt=[-Zt,-Vt]}const Ue=linear(Lt,[0,1]),Gt=linear(bt,[0,1]),xt=O.map(([Xt,Zt])=>{if(r){const[wt,Vt]=r([Xt,Zt]);return[Ue(wt),Gt(-Vt)]}else return[Ue(Xt),Gt(Zt)]});return{contour:C,triangles:{points:O,indices:mt,uvs:xt}}}const me$1=new BufferGeometry().setAttribute?"setAttribute":"addAttribute";function G$1(v,e,n,r){const C=v.map(w=>w.map(([E,O])=>{if(r){const[le,fe]=r([E,O]);return[le,-fe,e]}return n?p(E,O,e):[E,O,e]}));return flatten(C)}function lt(v,e,n,r,C){const{vertices:w,holes:E}=G$1(v,e,r,C),{vertices:O}=G$1(v,n,r,C),le=merge([O,w]),fe=Math.round(O.length/3),Se=new Set(E);let ze=0;const ke=[];for(let mt=0;mt<fe;mt++){let Lt=mt+1;if(Lt===fe)Lt=ze;else if(Se.has(Lt)){const bt=Lt;Lt=ze,ze=bt}ke.push(mt,mt+fe,Lt+fe),ke.push(Lt+fe,Lt,mt)}const Fe=[];for(let mt=1;mt>=0;mt--)for(let Lt=0;Lt<fe;Lt+=1)Fe.push(Lt/(fe-1),mt);return{indices:ke,vertices:le,uvs:Fe,topVerts:O}}function ve(v,e,n,r,C,w){return{indices:r?v.indices:v.indices.slice().reverse(),vertices:G$1([v.points],e,C,w).vertices,uvs:n}}const ut$1=({polygonGeoJson:v,startHeight:e,endHeight:n,curvatureResolution:r=1,cartesian:C=!0,hasSide:w=!0,hasBottom:E=!1,hasTop:O=!1,projection:le,bbox:fe})=>{v.forEach(Ue=>{turf_boolean_clockwise_default(Ue)||Ue.reverse()});const{contour:Se,triangles:ze}=ct(v,{resolution:r,bbox:fe,projection:le});let ke={},Fe;w&&(ke=lt(Se,e!=null?e:n,n!=null?n:e,C,le),Fe=ke.topVerts);let mt=[];(E||O)&&(mt=merge(ze.uvs));let Lt={};E&&(Lt=ve(ze,e,mt,!1,C,le));let bt={};return O&&(bt=ve(ze,n,mt,!0,C,le)),{contour:Se,triangles:ze,sideTorso:ke,bottomCap:Lt,topCap:bt,topVerts:Fe}};class zt extends BufferGeometry{constructor(e,n={}){super(),this.type="PolygonBufferGeometry",this.parameters=k$1({polygonGeoJson:e,startHeight:0,endHeight:1,hasTop:!0,topFirst:!1,hasBottom:!0,hasSide:!0,curvatureResolution:1,cartesian:!0,userDataRsoOffset:0},n);const{endHeight:r,hasTop:C,topFirst:w,hasBottom:E,hasSide:O,cartesian:le,userDataRsoOffset:fe,projection:Se}=this.parameters,{contour:ze,sideTorso:ke,topVerts:Fe,bottomCap:mt,topCap:Lt}=ut$1(k$1({},this.parameters));let bt=[],Ue=[],Gt=[],xt=0;const Xt=Zt=>{const wt=Math.round(bt.length/3),Vt=Gt.length;bt=bt.concat(Zt.vertices),Ue=Ue.concat(Zt.uvs),Gt=Gt.concat(wt?Zt.indices.map(Wt=>Wt+wt):Zt.indices),this.addGroup(Vt,Gt.length-Vt,xt++)};C&&w&&Xt(Lt),O&&(Xt(ke),this.userData.topVerts=fe?G$1(ze,r+fe,le,Se).vertices:Fe),E&&Xt(mt),C&&!w&&Xt(Lt),this.setIndex(Gt),this[me$1]("position",new Float32BufferAttribute(bt,3)),this[me$1]("uv",new Float32BufferAttribute(Ue,2)),this.computeVertexNormals()}}const ft$1=`
|
|
4214
4214
|
#include <fog_pars_fragment>
|
|
4215
4215
|
#include <logdepthbuf_pars_fragment>
|
|
4216
4216
|
|
|
@@ -4346,7 +4346,7 @@ void main() {
|
|
|
4346
4346
|
#include <logdepthbuf_vertex>
|
|
4347
4347
|
#include <fog_vertex>
|
|
4348
4348
|
}
|
|
4349
|
-
`;let Ot$2=class extends ShaderMaterial{constructor(e={}){const n=e,{lineWidth:r=1,color:C="#ffffff",opacity:w=1,map:E=null,dashOffset:O=0,dashArray:le=0,dashRatio:fe=0,sizeAttenuation:Se=!0,offsetLoop:ze=!0,offset:ke=new Vector2(0,0),scaleDown:Fe=0,alphaMap:mt=void 0,alphaTest:Lt=0,repeat:bt=new Vector2(1,1),resolution:Ue=new Vector2(1,1)}=n,Gt=se$1(n,["lineWidth","color","opacity","map","dashOffset","dashArray","dashRatio","sizeAttenuation","offsetLoop","offset","scaleDown","alphaMap","alphaTest","repeat","resolution"]);super($$1(k$1({},Gt),{uniforms:{lineWidth:{value:r},color:{value:new Color$1(C)},opacity:{value:w},map:{value:E},useMap:{value:E?1:0},resolution:{value:Ue},sizeAttenuation:{value:Se?1:0},offset:{value:ke},offsetLoop:{value:ze?1:0},dashArray:{value:le},dashOffset:{value:O},dashRatio:{value:fe},useDash:{value:le>0?1:0},scaleDown:{value:Fe/10},alphaTest:{value:Lt},alphaMap:{value:mt},useAlphaMap:{value:mt?1:0},repeat:{value:bt}},vertexShader:dt,fragmentShader:ft$1})),this.type="MeshLineMaterial"}get color(){return this.uniforms.color.value}set color(e){this.uniforms.color.value=new Color$1(e)}get opacity(){var e;return((e=this.uniforms)==null?void 0:e.opacity.value)||1}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get alphaTest(){return this.uniforms.alphaTest.value}set alphaTest(e){this.uniforms&&(this.uniforms.alphaTest.value=e)}get map(){return this.uniforms.map.value}set map(e){this.uniforms.map.value=e,this.uniforms.useMap.value=e?1:0}get repeat(){return this.uniforms.repeat.value}set repeat(e){this.uniforms.repeat.value.copy(e)}get lineWidth(){return this.uniforms.lineWidth.value}set lineWidth(e){this.uniforms.lineWidth.value=e}get sizeAttenuation(){return this.uniforms.sizeAttenuation.value===1}set sizeAttenuation(e){this.uniforms.sizeAttenuation.value=e?1:0}};const K$2=new Vector4,ye$2=new Vector3,be$2=new Vector3,b$1=new Vector4,g=new Vector4,D$1=new Vector4,Q$2=new Vector3,X$1=new Matrix4,M$2=new Line3,ge$1=new Vector3,U$1=new Box3,W$1=new Sphere$1,T$2=new Vector4;let z$3,_;function Me$1(v,e,n){return T$2.set(0,0,-e,1).applyMatrix4(v.projectionMatrix),T$2.multiplyScalar(1/T$2.w),T$2.x=_/n.width,T$2.y=_/n.height,T$2.applyMatrix4(v.projectionMatrixInverse),T$2.multiplyScalar(1/T$2.w),Math.abs(Math.max(T$2.x,T$2.y))}function ht(v,e){const n=v.matrixWorld,r=v.geometry,C=r.attributes.instanceStart,w=r.attributes.instanceEnd,E=Math.min(r.instanceCount,C.count);for(let O=0,le=E;O<le;O++){M$2.start.fromBufferAttribute(C,O),M$2.end.fromBufferAttribute(w,O),M$2.applyMatrix4(n);const fe=new Vector3,Se=new Vector3;z$3.distanceSqToSegment(M$2.start,M$2.end,Se,fe),Se.distanceTo(fe)<_*.5&&e.push({point:Se,pointOnLine:fe,distance:z$3.origin.distanceTo(Se),object:v,face:null,faceIndex:O,uv:null,uv1:null})}}function pt(v,e,n){const r=e.projectionMatrix,C=v.material.resolution,w=v.matrixWorld,E=v.geometry,O=E.attributes.instanceStart,le=E.attributes.instanceEnd,fe=Math.min(E.instanceCount,O.count),Se=-e.near;z$3.at(1,D$1),D$1.w=1,D$1.applyMatrix4(e.matrixWorldInverse),D$1.applyMatrix4(r),D$1.multiplyScalar(1/D$1.w),D$1.x*=C.x/2,D$1.y*=C.y/2,D$1.z=0,Q$2.copy(D$1),X$1.multiplyMatrices(e.matrixWorldInverse,w);for(let ze=0,ke=fe;ze<ke;ze++){if(b$1.fromBufferAttribute(O,ze),g.fromBufferAttribute(le,ze),b$1.w=1,g.w=1,b$1.applyMatrix4(X$1),g.applyMatrix4(X$1),b$1.z>Se&&g.z>Se)continue;if(b$1.z>Se){const Ue=b$1.z-g.z,Gt=(b$1.z-Se)/Ue;b$1.lerp(g,Gt)}else if(g.z>Se){const Ue=g.z-b$1.z,Gt=(g.z-Se)/Ue;g.lerp(b$1,Gt)}b$1.applyMatrix4(r),g.applyMatrix4(r),b$1.multiplyScalar(1/b$1.w),g.multiplyScalar(1/g.w),b$1.x*=C.x/2,b$1.y*=C.y/2,g.x*=C.x/2,g.y*=C.y/2,M$2.start.copy(b$1),M$2.start.z=0,M$2.end.copy(g),M$2.end.z=0;const Fe=M$2.closestPointToPointParameter(Q$2,!0);M$2.at(Fe,ge$1);const mt=MathUtils.lerp(b$1.z,g.z,Fe),Lt=mt>=-1&&mt<=1,bt=Q$2.distanceTo(ge$1)<_*.5;if(Lt&&bt){M$2.start.fromBufferAttribute(O,ze),M$2.end.fromBufferAttribute(le,ze),M$2.start.applyMatrix4(w),M$2.end.applyMatrix4(w);const Ue=new Vector3,Gt=new Vector3;z$3.distanceSqToSegment(M$2.start,M$2.end,Gt,Ue),n.push({point:Gt,pointOnLine:Ue,distance:z$3.origin.distanceTo(Gt),object:v,face:null,faceIndex:ze,uv:null,uv1:null})}}}let _t$1=class extends Mesh{constructor(e=new LineSegmentsGeometry,n){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,r=e.attributes.instanceEnd,C=new Float32Array(2*n.count);for(let E=0,O=0,le=n.count;E<le;E++,O+=2)ye$2.fromBufferAttribute(n,E),be$2.fromBufferAttribute(r,E),C[O]=O===0?0:C[O-1],C[O+1]=C[O]+ye$2.distanceTo(be$2);const w=new InstancedInterleavedBuffer(C,2,1);return e.setAttribute("instanceDistanceStart",new InterleavedBufferAttribute(w,1,0)),e.setAttribute("instanceDistanceEnd",new InterleavedBufferAttribute(w,1,1)),this}raycast(e,n){const r=this.material.worldUnits,C=e.camera;C===null&&!r&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const w=e.params.Line2!==void 0&&e.params.Line2.threshold||0;z$3=e.ray;const E=this.matrixWorld,O=this.geometry,le=this.material;_=le.linewidth+w,O.boundingSphere===null&&O.computeBoundingSphere(),W$1.copy(O.boundingSphere).applyMatrix4(E);let fe;if(r)fe=_*.5;else{const ze=Math.max(C.near,W$1.distanceToPoint(z$3.origin));fe=Me$1(C,ze,le.resolution)}if(W$1.radius+=fe,z$3.intersectsSphere(W$1)===!1)return;O.boundingBox===null&&O.computeBoundingBox(),U$1.copy(O.boundingBox).applyMatrix4(E);let Se;if(r)Se=_*.5;else{const ze=Math.max(C.near,U$1.distanceToPoint(z$3.origin));Se=Me$1(C,ze,le.resolution)}U$1.expandByScalar(Se),z$3.intersectsBox(U$1)!==!1&&(r?ht(this,n):pt(this,C,n))}onBeforeRender(e){const n=this.material.uniforms;n&&n.resolution&&(e.getViewport(K$2),this.material.uniforms.resolution.value.set(K$2.z,K$2.w))}};function mergeAttributes(v){let e,n,r,C=-1,w=0;for(let fe=0;fe<v.length;++fe){const Se=v[fe];if(e===void 0&&(e=Se.array.constructor),e!==Se.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(n===void 0&&(n=Se.itemSize),n!==Se.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(r===void 0&&(r=Se.normalized),r!==Se.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(C===-1&&(C=Se.gpuType),C!==Se.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;w+=Se.count*n}const E=new e(w),O=new BufferAttribute(E,n,r);let le=0;for(let fe=0;fe<v.length;++fe){const Se=v[fe];if(Se.isInterleavedBufferAttribute){const ze=le/n;for(let ke=0,Fe=Se.count;ke<Fe;ke++)for(let mt=0;mt<n;mt++){const Lt=Se.getComponent(ke,mt);O.setComponent(ke+ze,mt,Lt)}}else E.set(Se.array,le);le+=Se.count*n}return C!==void 0&&(O.gpuType=C),O}function toTrianglesDrawMode(v,e){if(e===TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),v;if(e===TriangleFanDrawMode||e===TriangleStripDrawMode){let n=v.getIndex();if(n===null){const E=[],O=v.getAttribute("position");if(O!==void 0){for(let le=0;le<O.count;le++)E.push(le);v.setIndex(E),n=v.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),v}const r=n.count-2,C=[];if(e===TriangleFanDrawMode)for(let E=1;E<=r;E++)C.push(n.getX(0)),C.push(n.getX(E)),C.push(n.getX(E+1));else for(let E=0;E<r;E++)E%2===0?(C.push(n.getX(E)),C.push(n.getX(E+1)),C.push(n.getX(E+2))):(C.push(n.getX(E+2)),C.push(n.getX(E+1)),C.push(n.getX(E)));C.length/3!==r&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const w=v.clone();return w.setIndex(C),w.clearGroups(),w}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),v}function mergeGroups(v){if(v.groups.length===0)return console.warn("THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge."),v;let e=v.groups;if(e=e.sort((E,O)=>E.materialIndex!==O.materialIndex?E.materialIndex-O.materialIndex:E.start-O.start),v.getIndex()===null){const E=v.getAttribute("position"),O=[];for(let le=0;le<E.count;le+=3)O.push(le,le+1,le+2);v.setIndex(O)}const n=v.getIndex(),r=[];for(let E=0;E<e.length;E++){const O=e[E],le=O.start,fe=le+O.count;for(let Se=le;Se<fe;Se++)r.push(n.getX(Se))}v.dispose(),v.setIndex(r);let C=0;for(let E=0;E<e.length;E++){const O=e[E];O.start=C,C+=O.count}let w=e[0];v.groups=[w];for(let E=1;E<e.length;E++){const O=e[E];w.materialIndex===O.materialIndex?w.count+=O.count:(w=O,v.groups.push(w))}return v}const b=new Map,R$1=(v={})=>({generateTopUV(e,n,r,C,w){const E=n[r*3],O=n[r*3+1],le=n[C*3],fe=n[C*3+1],Se=n[w*3],ze=n[w*3+1];let ke;if(b.has(e))ke=b.get(e);else{let bt=v.box3;if(!bt){bt=new Box3;const Gt=e.parameters.shapes.getPoints().map(xt=>[xt.x,xt.y,0]).flat();bt.setFromArray(Gt)}const Ue=bt.getSize(new Vector3);v.split&&(Ue.y/=v.split),ke={box:bt,size:Ue},b.set(e,ke)}const{box:Fe,size:mt}=ke,Lt=v.split?1-v.split:0;return[new Vector2((E-Fe.min.x)/mt.x,(O-Fe.min.y)/mt.y+Lt),new Vector2((le-Fe.min.x)/mt.x,(fe-Fe.min.y)/mt.y+Lt),new Vector2((Se-Fe.min.x)/mt.x,(ze-Fe.min.y)/mt.y+Lt)]},generateSideWallUV(e,n,r,C,w,E){const O=n[r*3],le=n[r*3+1],fe=n[r*3+2],Se=n[C*3],ze=n[C*3+1],ke=n[C*3+2],Fe=n[w*3],mt=n[w*3+1],Lt=n[w*3+2],bt=n[E*3],Ue=n[E*3+1],Gt=n[E*3+2];let xt;if(b.has(n))xt=b.get(n);else{const wt=new Box3;wt.setFromArray(n);const Vt=wt.getSize(new Vector3);v.split&&(Vt.z/=1-v.split),v.sideRepeat&&(Vt.z/=v.sideRepeat),xt={box:wt,size:Vt},b.set(n,xt)}const{box:Xt,size:Zt}=xt;return Math.abs(le-ze)<Math.abs(O-Se)?[new Vector2((O-Xt.min.x)/Zt.x,(fe-Xt.min.z)/Zt.z),new Vector2((Se-Xt.min.x)/Zt.x,(ke-Xt.min.z)/Zt.z),new Vector2((Fe-Xt.min.x)/Zt.x,(Lt-Xt.min.z)/Zt.z),new Vector2((bt-Xt.min.x)/Zt.x,(Gt-Xt.min.z)/Zt.z)]:[new Vector2((le-Xt.min.y)/Zt.y,(fe-Xt.min.z)/Zt.z),new Vector2((ze-Xt.min.y)/Zt.y,(ke-Xt.min.z)/Zt.z),new Vector2((mt-Xt.min.y)/Zt.y,(Lt-Xt.min.z)/Zt.z),new Vector2((Ue-Xt.min.y)/Zt.y,(Gt-Xt.min.z)/Zt.z)]}}),P$1=()=>{b.clear()},CENTER=0,AVERAGE=1,SAH=2,CONTAINED=2,TRIANGLE_INTERSECT_COST=1.25,TRAVERSAL_COST=1,BYTES_PER_NODE=6*4+4+4,IS_LEAFNODE_FLAG=65535,FLOAT32_EPSILON=Math.pow(2,-24),SKIP_GENERATION=Symbol("SKIP_GENERATION");function getVertexCount$1(v){return v.index?v.index.count:v.attributes.position.count}function getTriCount$1(v){return getVertexCount$1(v)/3}function getIndexArray$1(v,e=ArrayBuffer){return v>65535?new Uint32Array(new e(4*v)):new Uint16Array(new e(2*v))}function ensureIndex$1(v,e){if(!v.index){const n=v.attributes.position.count,r=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,C=getIndexArray$1(n,r);v.setIndex(new BufferAttribute(C,1));for(let w=0;w<n;w++)C[w]=w}}function getFullGeometryRange(v,e){const n=getTriCount$1(v),r=e||v.drawRange,C=r.start/3,w=(r.start+r.count)/3,E=Math.max(0,C),O=Math.min(n,w)-E;return[{offset:Math.floor(E),count:Math.floor(O)}]}function getRootIndexRanges(v,e){if(!v.groups||!v.groups.length)return getFullGeometryRange(v,e);const n=[],r=new Set,C=e||v.drawRange,w=C.start/3,E=(C.start+C.count)/3;for(const le of v.groups){const fe=le.start/3,Se=(le.start+le.count)/3;r.add(Math.max(w,fe)),r.add(Math.min(E,Se))}const O=Array.from(r.values()).sort((le,fe)=>le-fe);for(let le=0;le<O.length-1;le++){const fe=O[le],Se=O[le+1];n.push({offset:Math.floor(fe),count:Math.floor(Se-fe)})}return n}function hasGroupGaps(v,e){const n=getTriCount$1(v),r=getRootIndexRanges(v,e).sort((E,O)=>E.offset-O.offset),C=r[r.length-1];C.count=Math.min(n-C.offset,C.count);let w=0;return r.forEach(({count:E})=>w+=E),n!==w}function getBounds(v,e,n,r,C){let w=1/0,E=1/0,O=1/0,le=-1/0,fe=-1/0,Se=-1/0,ze=1/0,ke=1/0,Fe=1/0,mt=-1/0,Lt=-1/0,bt=-1/0;for(let Ue=e*6,Gt=(e+n)*6;Ue<Gt;Ue+=6){const xt=v[Ue+0],Xt=v[Ue+1],Zt=xt-Xt,wt=xt+Xt;Zt<w&&(w=Zt),wt>le&&(le=wt),xt<ze&&(ze=xt),xt>mt&&(mt=xt);const Vt=v[Ue+2],Wt=v[Ue+3],It=Vt-Wt,Nt=Vt+Wt;It<E&&(E=It),Nt>fe&&(fe=Nt),Vt<ke&&(ke=Vt),Vt>Lt&&(Lt=Vt);const Ft=v[Ue+4],jt=v[Ue+5],n0=Ft-jt,s0=Ft+jt;n0<O&&(O=n0),s0>Se&&(Se=s0),Ft<Fe&&(Fe=Ft),Ft>bt&&(bt=Ft)}r[0]=w,r[1]=E,r[2]=O,r[3]=le,r[4]=fe,r[5]=Se,C[0]=ze,C[1]=ke,C[2]=Fe,C[3]=mt,C[4]=Lt,C[5]=bt}function computeTriangleBounds(v,e=null,n=null,r=null){const C=v.attributes.position,w=v.index?v.index.array:null,E=getTriCount$1(v),O=C.normalized;let le;e===null?(le=new Float32Array(E*6),n=0,r=E):(le=e,n=n||0,r=r||E);const fe=C.array,Se=C.offset||0;let ze=3;C.isInterleavedBufferAttribute&&(ze=C.data.stride);const ke=["getX","getY","getZ"];for(let Fe=n;Fe<n+r;Fe++){const mt=Fe*3,Lt=Fe*6;let bt=mt+0,Ue=mt+1,Gt=mt+2;w&&(bt=w[bt],Ue=w[Ue],Gt=w[Gt]),O||(bt=bt*ze+Se,Ue=Ue*ze+Se,Gt=Gt*ze+Se);for(let xt=0;xt<3;xt++){let Xt,Zt,wt;O?(Xt=C[ke[xt]](bt),Zt=C[ke[xt]](Ue),wt=C[ke[xt]](Gt)):(Xt=fe[bt+xt],Zt=fe[Ue+xt],wt=fe[Gt+xt]);let Vt=Xt;Zt<Vt&&(Vt=Zt),wt<Vt&&(Vt=wt);let Wt=Xt;Zt>Wt&&(Wt=Zt),wt>Wt&&(Wt=wt);const It=(Wt-Vt)/2,Nt=xt*2;le[Lt+Nt+0]=Vt+It,le[Lt+Nt+1]=It+(Math.abs(Vt)+It)*FLOAT32_EPSILON}}return le}function arrayToBox(v,e,n){return n.min.x=e[v],n.min.y=e[v+1],n.min.z=e[v+2],n.max.x=e[v+3],n.max.y=e[v+4],n.max.z=e[v+5],n}function getLongestEdgeIndex(v){let e=-1,n=-1/0;for(let r=0;r<3;r++){const C=v[r+3]-v[r];C>n&&(n=C,e=r)}return e}function copyBounds(v,e){e.set(v)}function unionBounds(v,e,n){let r,C;for(let w=0;w<3;w++){const E=w+3;r=v[w],C=e[w],n[w]=r<C?r:C,r=v[E],C=e[E],n[E]=r>C?r:C}}function expandByTriangleBounds(v,e,n){for(let r=0;r<3;r++){const C=e[v+2*r],w=e[v+2*r+1],E=C-w,O=C+w;E<n[r]&&(n[r]=E),O>n[r+3]&&(n[r+3]=O)}}function computeSurfaceArea(v){const e=v[3]-v[0],n=v[4]-v[1],r=v[5]-v[2];return 2*(e*n+n*r+r*e)}const BIN_COUNT=32,binsSort=(v,e)=>v.candidate-e.candidate,sahBins=new Array(BIN_COUNT).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),leftBounds=new Float32Array(6);function getOptimalSplit(v,e,n,r,C,w){let E=-1,O=0;if(w===CENTER)E=getLongestEdgeIndex(e),E!==-1&&(O=(e[E]+e[E+3])/2);else if(w===AVERAGE)E=getLongestEdgeIndex(v),E!==-1&&(O=getAverage(n,r,C,E));else if(w===SAH){const le=computeSurfaceArea(v);let fe=TRIANGLE_INTERSECT_COST*C;const Se=r*6,ze=(r+C)*6;for(let ke=0;ke<3;ke++){const Fe=e[ke],bt=(e[ke+3]-Fe)/BIN_COUNT;if(C<BIN_COUNT/4){const Ue=[...sahBins];Ue.length=C;let Gt=0;for(let Xt=Se;Xt<ze;Xt+=6,Gt++){const Zt=Ue[Gt];Zt.candidate=n[Xt+2*ke],Zt.count=0;const{bounds:wt,leftCacheBounds:Vt,rightCacheBounds:Wt}=Zt;for(let It=0;It<3;It++)Wt[It]=1/0,Wt[It+3]=-1/0,Vt[It]=1/0,Vt[It+3]=-1/0,wt[It]=1/0,wt[It+3]=-1/0;expandByTriangleBounds(Xt,n,wt)}Ue.sort(binsSort);let xt=C;for(let Xt=0;Xt<xt;Xt++){const Zt=Ue[Xt];for(;Xt+1<xt&&Ue[Xt+1].candidate===Zt.candidate;)Ue.splice(Xt+1,1),xt--}for(let Xt=Se;Xt<ze;Xt+=6){const Zt=n[Xt+2*ke];for(let wt=0;wt<xt;wt++){const Vt=Ue[wt];Zt>=Vt.candidate?expandByTriangleBounds(Xt,n,Vt.rightCacheBounds):(expandByTriangleBounds(Xt,n,Vt.leftCacheBounds),Vt.count++)}}for(let Xt=0;Xt<xt;Xt++){const Zt=Ue[Xt],wt=Zt.count,Vt=C-Zt.count,Wt=Zt.leftCacheBounds,It=Zt.rightCacheBounds;let Nt=0;wt!==0&&(Nt=computeSurfaceArea(Wt)/le);let Ft=0;Vt!==0&&(Ft=computeSurfaceArea(It)/le);const jt=TRAVERSAL_COST+TRIANGLE_INTERSECT_COST*(Nt*wt+Ft*Vt);jt<fe&&(E=ke,fe=jt,O=Zt.candidate)}}else{for(let xt=0;xt<BIN_COUNT;xt++){const Xt=sahBins[xt];Xt.count=0,Xt.candidate=Fe+bt+xt*bt;const Zt=Xt.bounds;for(let wt=0;wt<3;wt++)Zt[wt]=1/0,Zt[wt+3]=-1/0}for(let xt=Se;xt<ze;xt+=6){let wt=~~((n[xt+2*ke]-Fe)/bt);wt>=BIN_COUNT&&(wt=BIN_COUNT-1);const Vt=sahBins[wt];Vt.count++,expandByTriangleBounds(xt,n,Vt.bounds)}const Ue=sahBins[BIN_COUNT-1];copyBounds(Ue.bounds,Ue.rightCacheBounds);for(let xt=BIN_COUNT-2;xt>=0;xt--){const Xt=sahBins[xt],Zt=sahBins[xt+1];unionBounds(Xt.bounds,Zt.rightCacheBounds,Xt.rightCacheBounds)}let Gt=0;for(let xt=0;xt<BIN_COUNT-1;xt++){const Xt=sahBins[xt],Zt=Xt.count,wt=Xt.bounds,Wt=sahBins[xt+1].rightCacheBounds;Zt!==0&&(Gt===0?copyBounds(wt,leftBounds):unionBounds(wt,leftBounds,leftBounds)),Gt+=Zt;let It=0,Nt=0;Gt!==0&&(It=computeSurfaceArea(leftBounds)/le);const Ft=C-Gt;Ft!==0&&(Nt=computeSurfaceArea(Wt)/le);const jt=TRAVERSAL_COST+TRIANGLE_INTERSECT_COST*(It*Gt+Nt*Ft);jt<fe&&(E=ke,fe=jt,O=Xt.candidate)}}}}else console.warn(`MeshBVH: Invalid build strategy value ${w} used.`);return{axis:E,pos:O}}function getAverage(v,e,n,r){let C=0;for(let w=e,E=e+n;w<E;w++)C+=v[w*6+r*2];return C/n}class MeshBVHNode{constructor(){this.boundingData=new Float32Array(6)}}function partition(v,e,n,r,C,w){let E=r,O=r+C-1;const le=w.pos,fe=w.axis*2;for(;;){for(;E<=O&&n[E*6+fe]<le;)E++;for(;E<=O&&n[O*6+fe]>=le;)O--;if(E<O){for(let Se=0;Se<3;Se++){let ze=e[E*3+Se];e[E*3+Se]=e[O*3+Se],e[O*3+Se]=ze}for(let Se=0;Se<6;Se++){let ze=n[E*6+Se];n[E*6+Se]=n[O*6+Se],n[O*6+Se]=ze}E++,O--}else return E}}function partition_indirect(v,e,n,r,C,w){let E=r,O=r+C-1;const le=w.pos,fe=w.axis*2;for(;;){for(;E<=O&&n[E*6+fe]<le;)E++;for(;E<=O&&n[O*6+fe]>=le;)O--;if(E<O){let Se=v[E];v[E]=v[O],v[O]=Se;for(let ze=0;ze<6;ze++){let ke=n[E*6+ze];n[E*6+ze]=n[O*6+ze],n[O*6+ze]=ke}E++,O--}else return E}}function IS_LEAF(v,e){return e[v+15]===65535}function OFFSET(v,e){return e[v+6]}function COUNT(v,e){return e[v+14]}function LEFT_NODE(v){return v+8}function RIGHT_NODE(v,e){return e[v+6]}function SPLIT_AXIS(v,e){return e[v+7]}function BOUNDING_DATA_INDEX(v){return v}let float32Array,uint32Array,uint16Array,uint8Array;const MAX_POINTER=Math.pow(2,32);function countNodes(v){return"count"in v?1:1+countNodes(v.left)+countNodes(v.right)}function populateBuffer(v,e,n){return float32Array=new Float32Array(n),uint32Array=new Uint32Array(n),uint16Array=new Uint16Array(n),uint8Array=new Uint8Array(n),_populateBuffer(v,e)}function _populateBuffer(v,e){const n=v/4,r=v/2,C="count"in e,w=e.boundingData;for(let E=0;E<6;E++)float32Array[n+E]=w[E];if(C)if(e.buffer){const E=e.buffer;uint8Array.set(new Uint8Array(E),v);for(let O=v,le=v+E.byteLength;O<le;O+=BYTES_PER_NODE){const fe=O/2;IS_LEAF(fe,uint16Array)||(uint32Array[O/4+6]+=n)}return v+E.byteLength}else{const E=e.offset,O=e.count;return uint32Array[n+6]=E,uint16Array[r+14]=O,uint16Array[r+15]=IS_LEAFNODE_FLAG,v+BYTES_PER_NODE}else{const E=e.left,O=e.right,le=e.splitAxis;let fe;if(fe=_populateBuffer(v+BYTES_PER_NODE,E),fe/4>MAX_POINTER)throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return uint32Array[n+6]=fe/4,fe=_populateBuffer(fe,O),uint32Array[n+7]=le,fe}}function generateIndirectBuffer(v,e){const n=(v.index?v.index.count:v.attributes.position.count)/3,r=n>bn(2,16),C=r?4:2,w=e?new SharedArrayBuffer(n*C):new ArrayBuffer(n*C),E=r?new Uint32Array(w):new Uint16Array(w);for(let O=0,le=E.length;O<le;O++)E[O]=O;return E}function buildTree(v,e,n,r,C){const{maxDepth:w,verbose:E,maxLeafTris:O,strategy:le,onProgress:fe,indirect:Se}=C,ze=v._indirectBuffer,ke=v.geometry,Fe=ke.index?ke.index.array:null,mt=Se?partition_indirect:partition,Lt=getTriCount$1(ke),bt=new Float32Array(6);let Ue=!1;const Gt=new MeshBVHNode;return getBounds(e,n,r,Gt.boundingData,bt),Xt(Gt,n,r,bt),Gt;function xt(Zt){fe&&fe(Zt/Lt)}function Xt(Zt,wt,Vt,Wt=null,It=0){if(!Ue&&It>=w&&(Ue=!0,E&&(console.warn(`MeshBVH: Max depth of ${w} reached when generating BVH. Consider increasing maxDepth.`),console.warn(ke))),Vt<=O||It>=w)return xt(wt+Vt),Zt.offset=wt,Zt.count=Vt,Zt;const Nt=getOptimalSplit(Zt.boundingData,Wt,e,wt,Vt,le);if(Nt.axis===-1)return xt(wt+Vt),Zt.offset=wt,Zt.count=Vt,Zt;const Ft=mt(ze,Fe,e,wt,Vt,Nt);if(Ft===wt||Ft===wt+Vt)xt(wt+Vt),Zt.offset=wt,Zt.count=Vt;else{Zt.splitAxis=Nt.axis;const jt=new MeshBVHNode,n0=wt,s0=Ft-wt;Zt.left=jt,getBounds(e,n0,s0,jt.boundingData,bt),Xt(jt,n0,s0,bt,It+1);const qt=new MeshBVHNode,Ht=Ft,$t=Vt-s0;Zt.right=qt,getBounds(e,Ht,$t,qt.boundingData,bt),Xt(qt,Ht,$t,bt,It+1)}return Zt}}function buildPackedTree(v,e){const n=v.geometry;e.indirect&&(v._indirectBuffer=generateIndirectBuffer(n,e.useSharedArrayBuffer),hasGroupGaps(n,e.range)&&!e.verbose&&console.warn('MeshBVH: Provided geometry contains groups or a range that do not fully span the vertex contents while using the "indirect" option. BVH may incorrectly report intersections on unrendered portions of the geometry.')),v._indirectBuffer||ensureIndex$1(n,e);const r=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,C=computeTriangleBounds(n),w=e.indirect?getFullGeometryRange(n,e.range):getRootIndexRanges(n,e.range);v._roots=w.map(E=>{const O=buildTree(v,C,E.offset,E.count,e),le=countNodes(O),fe=new r(BYTES_PER_NODE*le);return populateBuffer(0,O,fe),fe})}class SeparatingAxisBounds{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,n){let r=1/0,C=-1/0;for(let w=0,E=e.length;w<E;w++){const le=e[w][n];r=le<r?le:r,C=le>C?le:C}this.min=r,this.max=C}setFromPoints(e,n){let r=1/0,C=-1/0;for(let w=0,E=n.length;w<E;w++){const O=n[w],le=e.dot(O);r=le<r?le:r,C=le>C?le:C}this.min=r,this.max=C}isSeparated(e){return this.min>e.max||e.min>this.max}}SeparatingAxisBounds.prototype.setFromBox=function(){const v=new Vector3;return function(n,r){const C=r.min,w=r.max;let E=1/0,O=-1/0;for(let le=0;le<=1;le++)for(let fe=0;fe<=1;fe++)for(let Se=0;Se<=1;Se++){v.x=C.x*le+w.x*(1-le),v.y=C.y*fe+w.y*(1-fe),v.z=C.z*Se+w.z*(1-Se);const ze=n.dot(v);E=Math.min(ze,E),O=Math.max(ze,O)}this.min=E,this.max=O}}();const closestPointLineToLine=function(){const v=new Vector3,e=new Vector3,n=new Vector3;return function(C,w,E){const O=C.start,le=v,fe=w.start,Se=e;n.subVectors(O,fe),v.subVectors(C.end,C.start),e.subVectors(w.end,w.start);const ze=n.dot(Se),ke=Se.dot(le),Fe=Se.dot(Se),mt=n.dot(le),bt=le.dot(le)*Fe-ke*ke;let Ue,Gt;bt!==0?Ue=(ze*ke-mt*Fe)/bt:Ue=0,Gt=(ze+Ue*ke)/Fe,E.x=Ue,E.y=Gt}}(),closestPointsSegmentToSegment=function(){const v=new Vector2,e=new Vector3,n=new Vector3;return function(C,w,E,O){closestPointLineToLine(C,w,v);let le=v.x,fe=v.y;if(le>=0&&le<=1&&fe>=0&&fe<=1){C.at(le,E),w.at(fe,O);return}else if(le>=0&&le<=1){fe<0?w.at(0,O):w.at(1,O),C.closestPointToPoint(O,!0,E);return}else if(fe>=0&&fe<=1){le<0?C.at(0,E):C.at(1,E),w.closestPointToPoint(E,!0,O);return}else{let Se;le<0?Se=C.start:Se=C.end;let ze;fe<0?ze=w.start:ze=w.end;const ke=e,Fe=n;if(C.closestPointToPoint(ze,!0,e),w.closestPointToPoint(Se,!0,n),ke.distanceToSquared(ze)<=Fe.distanceToSquared(Se)){E.copy(ke),O.copy(ze);return}else{E.copy(Se),O.copy(Fe);return}}}}(),sphereIntersectTriangle=function(){const v=new Vector3,e=new Vector3,n=new Plane$1,r=new Line3;return function(w,E){const{radius:O,center:le}=w,{a:fe,b:Se,c:ze}=E;if(r.start=fe,r.end=Se,r.closestPointToPoint(le,!0,v).distanceTo(le)<=O||(r.start=fe,r.end=ze,r.closestPointToPoint(le,!0,v).distanceTo(le)<=O)||(r.start=Se,r.end=ze,r.closestPointToPoint(le,!0,v).distanceTo(le)<=O))return!0;const Lt=E.getPlane(n);if(Math.abs(Lt.distanceToPoint(le))<=O){const Ue=Lt.projectPoint(le,e);if(E.containsPoint(Ue))return!0}return!1}}(),ZERO_EPSILON=1e-15;function isNearZero(v){return Math.abs(v)<ZERO_EPSILON}class ExtendedTriangle extends Triangle{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new Vector3),this.satBounds=new Array(4).fill().map(()=>new SeparatingAxisBounds),this.points=[this.a,this.b,this.c],this.sphere=new Sphere$1,this.plane=new Plane$1,this.needsUpdate=!0}intersectsSphere(e){return sphereIntersectTriangle(e,this)}update(){const e=this.a,n=this.b,r=this.c,C=this.points,w=this.satAxes,E=this.satBounds,O=w[0],le=E[0];this.getNormal(O),le.setFromPoints(O,C);const fe=w[1],Se=E[1];fe.subVectors(e,n),Se.setFromPoints(fe,C);const ze=w[2],ke=E[2];ze.subVectors(n,r),ke.setFromPoints(ze,C);const Fe=w[3],mt=E[3];Fe.subVectors(r,e),mt.setFromPoints(Fe,C),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(O,e),this.needsUpdate=!1}}ExtendedTriangle.prototype.closestPointToSegment=function(){const v=new Vector3,e=new Vector3,n=new Line3;return function(C,w=null,E=null){const{start:O,end:le}=C,fe=this.points;let Se,ze=1/0;for(let ke=0;ke<3;ke++){const Fe=(ke+1)%3;n.start.copy(fe[ke]),n.end.copy(fe[Fe]),closestPointsSegmentToSegment(n,C,v,e),Se=v.distanceToSquared(e),Se<ze&&(ze=Se,w&&w.copy(v),E&&E.copy(e))}return this.closestPointToPoint(O,v),Se=O.distanceToSquared(v),Se<ze&&(ze=Se,w&&w.copy(v),E&&E.copy(O)),this.closestPointToPoint(le,v),Se=le.distanceToSquared(v),Se<ze&&(ze=Se,w&&w.copy(v),E&&E.copy(le)),Math.sqrt(ze)}}();ExtendedTriangle.prototype.intersectsTriangle=function(){const v=new ExtendedTriangle,e=new Array(3),n=new Array(3),r=new SeparatingAxisBounds,C=new SeparatingAxisBounds,w=new Vector3,E=new Vector3,O=new Vector3,le=new Vector3,fe=new Vector3,Se=new Line3,ze=new Line3,ke=new Line3,Fe=new Vector3;function mt(Lt,bt,Ue){const Gt=Lt.points;let xt=0,Xt=-1;for(let Zt=0;Zt<3;Zt++){const{start:wt,end:Vt}=Se;wt.copy(Gt[Zt]),Vt.copy(Gt[(Zt+1)%3]),Se.delta(E);const Wt=isNearZero(bt.distanceToPoint(wt));if(isNearZero(bt.normal.dot(E))&&Wt){Ue.copy(Se),xt=2;break}const It=bt.intersectLine(Se,Fe);if(!It&&Wt&&Fe.copy(wt),(It||Wt)&&!isNearZero(Fe.distanceTo(Vt))){if(xt<=1)(xt===1?Ue.start:Ue.end).copy(Fe),Wt&&(Xt=xt);else if(xt>=2){(Xt===1?Ue.start:Ue.end).copy(Fe),xt=2;break}if(xt++,xt===2&&Xt===-1)break}}return xt}return function(bt,Ue=null,Gt=!1){this.needsUpdate&&this.update(),bt.isExtendedTriangle?bt.needsUpdate&&bt.update():(v.copy(bt),v.update(),bt=v);const xt=this.plane,Xt=bt.plane;if(Math.abs(xt.normal.dot(Xt.normal))>1-1e-10){const Zt=this.satBounds,wt=this.satAxes;n[0]=bt.a,n[1]=bt.b,n[2]=bt.c;for(let It=0;It<4;It++){const Nt=Zt[It],Ft=wt[It];if(r.setFromPoints(Ft,n),Nt.isSeparated(r))return!1}const Vt=bt.satBounds,Wt=bt.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let It=0;It<4;It++){const Nt=Vt[It],Ft=Wt[It];if(r.setFromPoints(Ft,e),Nt.isSeparated(r))return!1}for(let It=0;It<4;It++){const Nt=wt[It];for(let Ft=0;Ft<4;Ft++){const jt=Wt[Ft];if(w.crossVectors(Nt,jt),r.setFromPoints(w,e),C.setFromPoints(w,n),r.isSeparated(C))return!1}}return Ue&&(Gt||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),Ue.start.set(0,0,0),Ue.end.set(0,0,0)),!0}else{const Zt=mt(this,Xt,ze);if(Zt===1&&bt.containsPoint(ze.end))return Ue&&(Ue.start.copy(ze.end),Ue.end.copy(ze.end)),!0;if(Zt!==2)return!1;const wt=mt(bt,xt,ke);if(wt===1&&this.containsPoint(ke.end))return Ue&&(Ue.start.copy(ke.end),Ue.end.copy(ke.end)),!0;if(wt!==2)return!1;if(ze.delta(O),ke.delta(le),O.dot(le)<0){let n0=ke.start;ke.start=ke.end,ke.end=n0}const Vt=ze.start.dot(O),Wt=ze.end.dot(O),It=ke.start.dot(O),Nt=ke.end.dot(O),Ft=Wt<It,jt=Vt<Nt;return Vt!==Nt&&It!==Wt&&Ft===jt?!1:(Ue&&(fe.subVectors(ze.start,ke.start),fe.dot(O)>0?Ue.start.copy(ze.start):Ue.start.copy(ke.start),fe.subVectors(ze.end,ke.end),fe.dot(O)<0?Ue.end.copy(ze.end):Ue.end.copy(ke.end)),!0)}}}();ExtendedTriangle.prototype.distanceToPoint=function(){const v=new Vector3;return function(n){return this.closestPointToPoint(n,v),n.distanceTo(v)}}();ExtendedTriangle.prototype.distanceToTriangle=function(){const v=new Vector3,e=new Vector3,n=["a","b","c"],r=new Line3,C=new Line3;return function(E,O=null,le=null){const fe=O||le?r:null;if(this.intersectsTriangle(E,fe))return(O||le)&&(O&&fe.getCenter(O),le&&fe.getCenter(le)),0;let Se=1/0;for(let ze=0;ze<3;ze++){let ke;const Fe=n[ze],mt=E[Fe];this.closestPointToPoint(mt,v),ke=mt.distanceToSquared(v),ke<Se&&(Se=ke,O&&O.copy(v),le&&le.copy(mt));const Lt=this[Fe];E.closestPointToPoint(Lt,v),ke=Lt.distanceToSquared(v),ke<Se&&(Se=ke,O&&O.copy(Lt),le&&le.copy(v))}for(let ze=0;ze<3;ze++){const ke=n[ze],Fe=n[(ze+1)%3];r.set(this[ke],this[Fe]);for(let mt=0;mt<3;mt++){const Lt=n[mt],bt=n[(mt+1)%3];C.set(E[Lt],E[bt]),closestPointsSegmentToSegment(r,C,v,e);const Ue=v.distanceToSquared(e);Ue<Se&&(Se=Ue,O&&O.copy(v),le&&le.copy(e))}}return Math.sqrt(Se)}}();class OrientedBox{constructor(e,n,r){this.isOrientedBox=!0,this.min=new Vector3,this.max=new Vector3,this.matrix=new Matrix4,this.invMatrix=new Matrix4,this.points=new Array(8).fill().map(()=>new Vector3),this.satAxes=new Array(3).fill().map(()=>new Vector3),this.satBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds),this.alignedSatBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds),this.needsUpdate=!1,e&&this.min.copy(e),n&&this.max.copy(n),r&&this.matrix.copy(r)}set(e,n,r){this.min.copy(e),this.max.copy(n),this.matrix.copy(r),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}}OrientedBox.prototype.update=function(){return function(){const e=this.matrix,n=this.min,r=this.max,C=this.points;for(let fe=0;fe<=1;fe++)for(let Se=0;Se<=1;Se++)for(let ze=0;ze<=1;ze++){const ke=1*fe|2*Se|4*ze,Fe=C[ke];Fe.x=fe?r.x:n.x,Fe.y=Se?r.y:n.y,Fe.z=ze?r.z:n.z,Fe.applyMatrix4(e)}const w=this.satBounds,E=this.satAxes,O=C[0];for(let fe=0;fe<3;fe++){const Se=E[fe],ze=w[fe],ke=1<<fe,Fe=C[ke];Se.subVectors(O,Fe),ze.setFromPoints(Se,C)}const le=this.alignedSatBounds;le[0].setFromPointsField(C,"x"),le[1].setFromPointsField(C,"y"),le[2].setFromPointsField(C,"z"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1}}();OrientedBox.prototype.intersectsBox=function(){const v=new SeparatingAxisBounds;return function(n){this.needsUpdate&&this.update();const r=n.min,C=n.max,w=this.satBounds,E=this.satAxes,O=this.alignedSatBounds;if(v.min=r.x,v.max=C.x,O[0].isSeparated(v)||(v.min=r.y,v.max=C.y,O[1].isSeparated(v))||(v.min=r.z,v.max=C.z,O[2].isSeparated(v)))return!1;for(let le=0;le<3;le++){const fe=E[le],Se=w[le];if(v.setFromBox(fe,n),Se.isSeparated(v))return!1}return!0}}();OrientedBox.prototype.intersectsTriangle=function(){const v=new ExtendedTriangle,e=new Array(3),n=new SeparatingAxisBounds,r=new SeparatingAxisBounds,C=new Vector3;return function(E){this.needsUpdate&&this.update(),E.isExtendedTriangle?E.needsUpdate&&E.update():(v.copy(E),v.update(),E=v);const O=this.satBounds,le=this.satAxes;e[0]=E.a,e[1]=E.b,e[2]=E.c;for(let ke=0;ke<3;ke++){const Fe=O[ke],mt=le[ke];if(n.setFromPoints(mt,e),Fe.isSeparated(n))return!1}const fe=E.satBounds,Se=E.satAxes,ze=this.points;for(let ke=0;ke<3;ke++){const Fe=fe[ke],mt=Se[ke];if(n.setFromPoints(mt,ze),Fe.isSeparated(n))return!1}for(let ke=0;ke<3;ke++){const Fe=le[ke];for(let mt=0;mt<4;mt++){const Lt=Se[mt];if(C.crossVectors(Fe,Lt),n.setFromPoints(C,e),r.setFromPoints(C,ze),n.isSeparated(r))return!1}}return!0}}();OrientedBox.prototype.closestPointToPoint=function(){return function(e,n){return this.needsUpdate&&this.update(),n.copy(e).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),n}}();OrientedBox.prototype.distanceToPoint=function(){const v=new Vector3;return function(n){return this.closestPointToPoint(n,v),n.distanceTo(v)}}();OrientedBox.prototype.distanceToBox=function(){const v=["x","y","z"],e=new Array(12).fill().map(()=>new Line3),n=new Array(12).fill().map(()=>new Line3),r=new Vector3,C=new Vector3;return function(E,O=0,le=null,fe=null){if(this.needsUpdate&&this.update(),this.intersectsBox(E))return(le||fe)&&(E.getCenter(C),this.closestPointToPoint(C,r),E.closestPointToPoint(r,C),le&&le.copy(r),fe&&fe.copy(C)),0;const Se=O*O,ze=E.min,ke=E.max,Fe=this.points;let mt=1/0;for(let bt=0;bt<8;bt++){const Ue=Fe[bt];C.copy(Ue).clamp(ze,ke);const Gt=Ue.distanceToSquared(C);if(Gt<mt&&(mt=Gt,le&&le.copy(Ue),fe&&fe.copy(C),Gt<Se))return Math.sqrt(Gt)}let Lt=0;for(let bt=0;bt<3;bt++)for(let Ue=0;Ue<=1;Ue++)for(let Gt=0;Gt<=1;Gt++){const xt=(bt+1)%3,Xt=(bt+2)%3,Zt=Ue<<xt|Gt<<Xt,wt=1<<bt|Ue<<xt|Gt<<Xt,Vt=Fe[Zt],Wt=Fe[wt];e[Lt].set(Vt,Wt);const Nt=v[bt],Ft=v[xt],jt=v[Xt],n0=n[Lt],s0=n0.start,qt=n0.end;s0[Nt]=ze[Nt],s0[Ft]=Ue?ze[Ft]:ke[Ft],s0[jt]=Gt?ze[jt]:ke[Ft],qt[Nt]=ke[Nt],qt[Ft]=Ue?ze[Ft]:ke[Ft],qt[jt]=Gt?ze[jt]:ke[Ft],Lt++}for(let bt=0;bt<=1;bt++)for(let Ue=0;Ue<=1;Ue++)for(let Gt=0;Gt<=1;Gt++){C.x=bt?ke.x:ze.x,C.y=Ue?ke.y:ze.y,C.z=Gt?ke.z:ze.z,this.closestPointToPoint(C,r);const xt=C.distanceToSquared(r);if(xt<mt&&(mt=xt,le&&le.copy(r),fe&&fe.copy(C),xt<Se))return Math.sqrt(xt)}for(let bt=0;bt<12;bt++){const Ue=e[bt];for(let Gt=0;Gt<12;Gt++){const xt=n[Gt];closestPointsSegmentToSegment(Ue,xt,r,C);const Xt=r.distanceToSquared(C);if(Xt<mt&&(mt=Xt,le&&le.copy(r),fe&&fe.copy(C),Xt<Se))return Math.sqrt(Xt)}}return Math.sqrt(mt)}}();class PrimitivePool{constructor(e){this._getNewPrimitive=e,this._primitives=[]}getPrimitive(){const e=this._primitives;return e.length===0?this._getNewPrimitive():e.pop()}releasePrimitive(e){this._primitives.push(e)}}class ExtendedTrianglePoolBase extends PrimitivePool{constructor(){super(()=>new ExtendedTriangle)}}const ExtendedTrianglePool=new ExtendedTrianglePoolBase;class _BufferStack{constructor(){this.float32Array=null,this.uint16Array=null,this.uint32Array=null;const e=[];let n=null;this.setBuffer=r=>{n&&e.push(n),n=r,this.float32Array=new Float32Array(r),this.uint16Array=new Uint16Array(r),this.uint32Array=new Uint32Array(r)},this.clearBuffer=()=>{n=null,this.float32Array=null,this.uint16Array=null,this.uint32Array=null,e.length!==0&&this.setBuffer(e.pop())}}}const BufferStack=new _BufferStack;let _box1,_box2;const boxStack=[],boxPool=new PrimitivePool(()=>new Box3);function shapecast(v,e,n,r,C,w){_box1=boxPool.getPrimitive(),_box2=boxPool.getPrimitive(),boxStack.push(_box1,_box2),BufferStack.setBuffer(v._roots[e]);const E=shapecastTraverse(0,v.geometry,n,r,C,w);BufferStack.clearBuffer(),boxPool.releasePrimitive(_box1),boxPool.releasePrimitive(_box2),boxStack.pop(),boxStack.pop();const O=boxStack.length;return O>0&&(_box2=boxStack[O-1],_box1=boxStack[O-2]),E}function shapecastTraverse(v,e,n,r,C=null,w=0,E=0){const{float32Array:O,uint16Array:le,uint32Array:fe}=BufferStack;let Se=v*2;if(IS_LEAF(Se,le)){const ke=OFFSET(v,fe),Fe=COUNT(Se,le);return arrayToBox(v,O,_box1),r(ke,Fe,!1,E,w+v,_box1)}else{let Nt=function(jt){const{uint16Array:n0,uint32Array:s0}=BufferStack;let qt=jt*2;for(;!IS_LEAF(qt,n0);)jt=LEFT_NODE(jt),qt=jt*2;return OFFSET(jt,s0)},Ft=function(jt){const{uint16Array:n0,uint32Array:s0}=BufferStack;let qt=jt*2;for(;!IS_LEAF(qt,n0);)jt=RIGHT_NODE(jt,s0),qt=jt*2;return OFFSET(jt,s0)+COUNT(qt,n0)};const ke=LEFT_NODE(v),Fe=RIGHT_NODE(v,fe);let mt=ke,Lt=Fe,bt,Ue,Gt,xt;if(C&&(Gt=_box1,xt=_box2,arrayToBox(mt,O,Gt),arrayToBox(Lt,O,xt),bt=C(Gt),Ue=C(xt),Ue<bt)){mt=Fe,Lt=ke;const jt=bt;bt=Ue,Ue=jt,Gt=xt}Gt||(Gt=_box1,arrayToBox(mt,O,Gt));const Xt=IS_LEAF(mt*2,le),Zt=n(Gt,Xt,bt,E+1,w+mt);let wt;if(Zt===CONTAINED){const jt=Nt(mt),s0=Ft(mt)-jt;wt=r(jt,s0,!0,E+1,w+mt,Gt)}else wt=Zt&&shapecastTraverse(mt,e,n,r,C,w,E+1);if(wt)return!0;xt=_box2,arrayToBox(Lt,O,xt);const Vt=IS_LEAF(Lt*2,le),Wt=n(xt,Vt,Ue,E+1,w+Lt);let It;if(Wt===CONTAINED){const jt=Nt(Lt),s0=Ft(Lt)-jt;It=r(jt,s0,!0,E+1,w+Lt,xt)}else It=Wt&&shapecastTraverse(Lt,e,n,r,C,w,E+1);return!!It}}const temp=new Vector3,temp1$2=new Vector3;function closestPointToPoint(v,e,n={},r=0,C=1/0){const w=r*r,E=C*C;let O=1/0,le=null;if(v.shapecast({boundsTraverseOrder:Se=>(temp.copy(e).clamp(Se.min,Se.max),temp.distanceToSquared(e)),intersectsBounds:(Se,ze,ke)=>ke<O&&ke<E,intersectsTriangle:(Se,ze)=>{Se.closestPointToPoint(e,temp);const ke=e.distanceToSquared(temp);return ke<O&&(temp1$2.copy(temp),O=ke,le=ze),ke<w}}),O===1/0)return null;const fe=Math.sqrt(O);return n.point?n.point.copy(temp1$2):n.point=temp1$2.clone(),n.distance=fe,n.faceIndex=le,n}const IS_GT_REVISION_169=parseInt(REVISION)>=169,_vA=new Vector3,_vB=new Vector3,_vC=new Vector3,_uvA=new Vector2,_uvB=new Vector2,_uvC=new Vector2,_normalA=new Vector3,_normalB=new Vector3,_normalC=new Vector3,_intersectionPoint=new Vector3;function checkIntersection(v,e,n,r,C,w,E,O){let le;if(w===BackSide?le=v.intersectTriangle(r,n,e,!0,C):le=v.intersectTriangle(e,n,r,w!==DoubleSide,C),le===null)return null;const fe=v.origin.distanceTo(C);return fe<E||fe>O?null:{distance:fe,point:C.clone()}}function checkBufferGeometryIntersection(v,e,n,r,C,w,E,O,le,fe,Se){_vA.fromBufferAttribute(e,w),_vB.fromBufferAttribute(e,E),_vC.fromBufferAttribute(e,O);const ze=checkIntersection(v,_vA,_vB,_vC,_intersectionPoint,le,fe,Se);if(ze){const ke=new Vector3;Triangle.getBarycoord(_intersectionPoint,_vA,_vB,_vC,ke),r&&(_uvA.fromBufferAttribute(r,w),_uvB.fromBufferAttribute(r,E),_uvC.fromBufferAttribute(r,O),ze.uv=Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2)),C&&(_uvA.fromBufferAttribute(C,w),_uvB.fromBufferAttribute(C,E),_uvC.fromBufferAttribute(C,O),ze.uv1=Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2)),n&&(_normalA.fromBufferAttribute(n,w),_normalB.fromBufferAttribute(n,E),_normalC.fromBufferAttribute(n,O),ze.normal=Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_normalA,_normalB,_normalC,new Vector3),ze.normal.dot(v.direction)>0&&ze.normal.multiplyScalar(-1));const Fe={a:w,b:E,c:O,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA,_vB,_vC,Fe.normal),ze.face=Fe,ze.faceIndex=w,IS_GT_REVISION_169&&(ze.barycoord=ke)}return ze}function intersectTri(v,e,n,r,C,w,E){const O=r*3;let le=O+0,fe=O+1,Se=O+2;const ze=v.index;v.index&&(le=ze.getX(le),fe=ze.getX(fe),Se=ze.getX(Se));const{position:ke,normal:Fe,uv:mt,uv1:Lt}=v.attributes,bt=checkBufferGeometryIntersection(n,ke,Fe,mt,Lt,le,fe,Se,e,w,E);return bt?(bt.faceIndex=r,C&&C.push(bt),bt):null}function setTriangle(v,e,n,r){const C=v.a,w=v.b,E=v.c;let O=e,le=e+1,fe=e+2;n&&(O=n.getX(O),le=n.getX(le),fe=n.getX(fe)),C.x=r.getX(O),C.y=r.getY(O),C.z=r.getZ(O),w.x=r.getX(le),w.y=r.getY(le),w.z=r.getZ(le),E.x=r.getX(fe),E.y=r.getY(fe),E.z=r.getZ(fe)}function intersectTris(v,e,n,r,C,w,E,O){const{geometry:le,_indirectBuffer:fe}=v;for(let Se=r,ze=r+C;Se<ze;Se++)intersectTri(le,e,n,Se,w,E,O)}function intersectClosestTri(v,e,n,r,C,w,E){const{geometry:O,_indirectBuffer:le}=v;let fe=1/0,Se=null;for(let ze=r,ke=r+C;ze<ke;ze++){let Fe;Fe=intersectTri(O,e,n,ze,null,w,E),Fe&&Fe.distance<fe&&(Se=Fe,fe=Fe.distance)}return Se}function iterateOverTriangles(v,e,n,r,C,w,E){const{geometry:O}=n,{index:le}=O,fe=O.attributes.position;for(let Se=v,ze=e+v;Se<ze;Se++){let ke;if(ke=Se,setTriangle(E,ke*3,le,fe),E.needsUpdate=!0,r(E,ke,C,w))return!0}return!1}function refit(v,e=null){e&&Array.isArray(e)&&(e=new Set(e));const n=v.geometry,r=n.index?n.index.array:null,C=n.attributes.position;let w,E,O,le,fe=0;const Se=v._roots;for(let ke=0,Fe=Se.length;ke<Fe;ke++)w=Se[ke],E=new Uint32Array(w),O=new Uint16Array(w),le=new Float32Array(w),ze(0,fe),fe+=w.byteLength;function ze(ke,Fe,mt=!1){const Lt=ke*2;if(O[Lt+15]===IS_LEAFNODE_FLAG){const Ue=E[ke+6],Gt=O[Lt+14];let xt=1/0,Xt=1/0,Zt=1/0,wt=-1/0,Vt=-1/0,Wt=-1/0;for(let It=3*Ue,Nt=3*(Ue+Gt);It<Nt;It++){let Ft=r[It];const jt=C.getX(Ft),n0=C.getY(Ft),s0=C.getZ(Ft);jt<xt&&(xt=jt),jt>wt&&(wt=jt),n0<Xt&&(Xt=n0),n0>Vt&&(Vt=n0),s0<Zt&&(Zt=s0),s0>Wt&&(Wt=s0)}return le[ke+0]!==xt||le[ke+1]!==Xt||le[ke+2]!==Zt||le[ke+3]!==wt||le[ke+4]!==Vt||le[ke+5]!==Wt?(le[ke+0]=xt,le[ke+1]=Xt,le[ke+2]=Zt,le[ke+3]=wt,le[ke+4]=Vt,le[ke+5]=Wt,!0):!1}else{const Ue=ke+8,Gt=E[ke+6],xt=Ue+Fe,Xt=Gt+Fe;let Zt=mt,wt=!1,Vt=!1;e?Zt||(wt=e.has(xt),Vt=e.has(Xt),Zt=!wt&&!Vt):(wt=!0,Vt=!0);const Wt=Zt||wt,It=Zt||Vt;let Nt=!1;Wt&&(Nt=ze(Ue,Fe,Zt));let Ft=!1;It&&(Ft=ze(Gt,Fe,Zt));const jt=Nt||Ft;if(jt)for(let n0=0;n0<3;n0++){const s0=Ue+n0,qt=Gt+n0,Ht=le[s0],$t=le[s0+3],Kt=le[qt],e0=le[qt+3];le[ke+n0]=Ht<Kt?Ht:Kt,le[ke+n0+3]=$t>e0?$t:e0}return jt}}}function intersectRay(v,e,n,r,C){let w,E,O,le,fe,Se;const ze=1/n.direction.x,ke=1/n.direction.y,Fe=1/n.direction.z,mt=n.origin.x,Lt=n.origin.y,bt=n.origin.z;let Ue=e[v],Gt=e[v+3],xt=e[v+1],Xt=e[v+3+1],Zt=e[v+2],wt=e[v+3+2];return ze>=0?(w=(Ue-mt)*ze,E=(Gt-mt)*ze):(w=(Gt-mt)*ze,E=(Ue-mt)*ze),ke>=0?(O=(xt-Lt)*ke,le=(Xt-Lt)*ke):(O=(Xt-Lt)*ke,le=(xt-Lt)*ke),w>le||O>E||((O>w||isNaN(w))&&(w=O),(le<E||isNaN(E))&&(E=le),Fe>=0?(fe=(Zt-bt)*Fe,Se=(wt-bt)*Fe):(fe=(wt-bt)*Fe,Se=(Zt-bt)*Fe),w>Se||fe>E)?!1:((fe>w||w!==w)&&(w=fe),(Se<E||E!==E)&&(E=Se),w<=C&&E>=r)}function intersectTris_indirect(v,e,n,r,C,w,E,O){const{geometry:le,_indirectBuffer:fe}=v;for(let Se=r,ze=r+C;Se<ze;Se++){let ke=fe?fe[Se]:Se;intersectTri(le,e,n,ke,w,E,O)}}function intersectClosestTri_indirect(v,e,n,r,C,w,E){const{geometry:O,_indirectBuffer:le}=v;let fe=1/0,Se=null;for(let ze=r,ke=r+C;ze<ke;ze++){let Fe;Fe=intersectTri(O,e,n,le?le[ze]:ze,null,w,E),Fe&&Fe.distance<fe&&(Se=Fe,fe=Fe.distance)}return Se}function iterateOverTriangles_indirect(v,e,n,r,C,w,E){const{geometry:O}=n,{index:le}=O,fe=O.attributes.position;for(let Se=v,ze=e+v;Se<ze;Se++){let ke;if(ke=n.resolveTriangleIndex(Se),setTriangle(E,ke*3,le,fe),E.needsUpdate=!0,r(E,ke,C,w))return!0}return!1}function raycast(v,e,n,r,C,w,E){BufferStack.setBuffer(v._roots[e]),_raycast$1(0,v,n,r,C,w,E),BufferStack.clearBuffer()}function _raycast$1(v,e,n,r,C,w,E){const{float32Array:O,uint16Array:le,uint32Array:fe}=BufferStack,Se=v*2;if(IS_LEAF(Se,le)){const ke=OFFSET(v,fe),Fe=COUNT(Se,le);intersectTris(e,n,r,ke,Fe,C,w,E)}else{const ke=LEFT_NODE(v);intersectRay(ke,O,r,w,E)&&_raycast$1(ke,e,n,r,C,w,E);const Fe=RIGHT_NODE(v,fe);intersectRay(Fe,O,r,w,E)&&_raycast$1(Fe,e,n,r,C,w,E)}}const _xyzFields$1=["x","y","z"];function raycastFirst(v,e,n,r,C,w){BufferStack.setBuffer(v._roots[e]);const E=_raycastFirst$1(0,v,n,r,C,w);return BufferStack.clearBuffer(),E}function _raycastFirst$1(v,e,n,r,C,w){const{float32Array:E,uint16Array:O,uint32Array:le}=BufferStack;let fe=v*2;if(IS_LEAF(fe,O)){const ze=OFFSET(v,le),ke=COUNT(fe,O);return intersectClosestTri(e,n,r,ze,ke,C,w)}else{const ze=SPLIT_AXIS(v,le),ke=_xyzFields$1[ze],mt=r.direction[ke]>=0;let Lt,bt;mt?(Lt=LEFT_NODE(v),bt=RIGHT_NODE(v,le)):(Lt=RIGHT_NODE(v,le),bt=LEFT_NODE(v));const Gt=intersectRay(Lt,E,r,C,w)?_raycastFirst$1(Lt,e,n,r,C,w):null;if(Gt){const Zt=Gt.point[ke];if(mt?Zt<=E[bt+ze]:Zt>=E[bt+ze+3])return Gt}const Xt=intersectRay(bt,E,r,C,w)?_raycastFirst$1(bt,e,n,r,C,w):null;return Gt&&Xt?Gt.distance<=Xt.distance?Gt:Xt:Gt||Xt||null}}const boundingBox$1=new Box3,triangle$1=new ExtendedTriangle,triangle2$1=new ExtendedTriangle,invertedMat$1=new Matrix4,obb$4=new OrientedBox,obb2$3=new OrientedBox;function intersectsGeometry(v,e,n,r){BufferStack.setBuffer(v._roots[e]);const C=_intersectsGeometry$1(0,v,n,r);return BufferStack.clearBuffer(),C}function _intersectsGeometry$1(v,e,n,r,C=null){const{float32Array:w,uint16Array:E,uint32Array:O}=BufferStack;let le=v*2;if(C===null&&(n.boundingBox||n.computeBoundingBox(),obb$4.set(n.boundingBox.min,n.boundingBox.max,r),C=obb$4),IS_LEAF(le,E)){const Se=e.geometry,ze=Se.index,ke=Se.attributes.position,Fe=n.index,mt=n.attributes.position,Lt=OFFSET(v,O),bt=COUNT(le,E);if(invertedMat$1.copy(r).invert(),n.boundsTree)return arrayToBox(v,w,obb2$3),obb2$3.matrix.copy(invertedMat$1),obb2$3.needsUpdate=!0,n.boundsTree.shapecast({intersectsBounds:Gt=>obb2$3.intersectsBox(Gt),intersectsTriangle:Gt=>{Gt.a.applyMatrix4(r),Gt.b.applyMatrix4(r),Gt.c.applyMatrix4(r),Gt.needsUpdate=!0;for(let xt=Lt*3,Xt=(bt+Lt)*3;xt<Xt;xt+=3)if(setTriangle(triangle2$1,xt,ze,ke),triangle2$1.needsUpdate=!0,Gt.intersectsTriangle(triangle2$1))return!0;return!1}});for(let Ue=Lt*3,Gt=(bt+Lt)*3;Ue<Gt;Ue+=3){setTriangle(triangle$1,Ue,ze,ke),triangle$1.a.applyMatrix4(invertedMat$1),triangle$1.b.applyMatrix4(invertedMat$1),triangle$1.c.applyMatrix4(invertedMat$1),triangle$1.needsUpdate=!0;for(let xt=0,Xt=Fe.count;xt<Xt;xt+=3)if(setTriangle(triangle2$1,xt,Fe,mt),triangle2$1.needsUpdate=!0,triangle$1.intersectsTriangle(triangle2$1))return!0}}else{const Se=v+8,ze=O[v+6];return arrayToBox(Se,w,boundingBox$1),!!(C.intersectsBox(boundingBox$1)&&_intersectsGeometry$1(Se,e,n,r,C)||(arrayToBox(ze,w,boundingBox$1),C.intersectsBox(boundingBox$1)&&_intersectsGeometry$1(ze,e,n,r,C)))}}const tempMatrix$1=new Matrix4,obb$3=new OrientedBox,obb2$2=new OrientedBox,temp1$1=new Vector3,temp2$1=new Vector3,temp3$1=new Vector3,temp4$1=new Vector3;function closestPointToGeometry(v,e,n,r={},C={},w=0,E=1/0){e.boundingBox||e.computeBoundingBox(),obb$3.set(e.boundingBox.min,e.boundingBox.max,n),obb$3.needsUpdate=!0;const O=v.geometry,le=O.attributes.position,fe=O.index,Se=e.attributes.position,ze=e.index,ke=ExtendedTrianglePool.getPrimitive(),Fe=ExtendedTrianglePool.getPrimitive();let mt=temp1$1,Lt=temp2$1,bt=null,Ue=null;C&&(bt=temp3$1,Ue=temp4$1);let Gt=1/0,xt=null,Xt=null;return tempMatrix$1.copy(n).invert(),obb2$2.matrix.copy(tempMatrix$1),v.shapecast({boundsTraverseOrder:Zt=>obb$3.distanceToBox(Zt),intersectsBounds:(Zt,wt,Vt)=>Vt<Gt&&Vt<E?(wt&&(obb2$2.min.copy(Zt.min),obb2$2.max.copy(Zt.max),obb2$2.needsUpdate=!0),!0):!1,intersectsRange:(Zt,wt)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:Wt=>obb2$2.distanceToBox(Wt),intersectsBounds:(Wt,It,Nt)=>Nt<Gt&&Nt<E,intersectsRange:(Wt,It)=>{for(let Nt=Wt,Ft=Wt+It;Nt<Ft;Nt++){setTriangle(Fe,3*Nt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let jt=Zt,n0=Zt+wt;jt<n0;jt++){setTriangle(ke,3*jt,fe,le),ke.needsUpdate=!0;const s0=ke.distanceToTriangle(Fe,mt,bt);if(s0<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=s0,xt=jt,Xt=Nt),s0<w)return!0}}}});{const Vt=getTriCount$1(e);for(let Wt=0,It=Vt;Wt<It;Wt++){setTriangle(Fe,3*Wt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let Nt=Zt,Ft=Zt+wt;Nt<Ft;Nt++){setTriangle(ke,3*Nt,fe,le),ke.needsUpdate=!0;const jt=ke.distanceToTriangle(Fe,mt,bt);if(jt<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=jt,xt=Nt,Xt=Wt),jt<w)return!0}}}}}),ExtendedTrianglePool.releasePrimitive(ke),ExtendedTrianglePool.releasePrimitive(Fe),Gt===1/0?null:(r.point?r.point.copy(Lt):r.point=Lt.clone(),r.distance=Gt,r.faceIndex=xt,C&&(C.point?C.point.copy(Ue):C.point=Ue.clone(),C.point.applyMatrix4(tempMatrix$1),Lt.applyMatrix4(tempMatrix$1),C.distance=Lt.sub(C.point).length(),C.faceIndex=Xt),r)}function refit_indirect(v,e=null){e&&Array.isArray(e)&&(e=new Set(e));const n=v.geometry,r=n.index?n.index.array:null,C=n.attributes.position;let w,E,O,le,fe=0;const Se=v._roots;for(let ke=0,Fe=Se.length;ke<Fe;ke++)w=Se[ke],E=new Uint32Array(w),O=new Uint16Array(w),le=new Float32Array(w),ze(0,fe),fe+=w.byteLength;function ze(ke,Fe,mt=!1){const Lt=ke*2;if(O[Lt+15]===IS_LEAFNODE_FLAG){const Ue=E[ke+6],Gt=O[Lt+14];let xt=1/0,Xt=1/0,Zt=1/0,wt=-1/0,Vt=-1/0,Wt=-1/0;for(let It=Ue,Nt=Ue+Gt;It<Nt;It++){const Ft=3*v.resolveTriangleIndex(It);for(let jt=0;jt<3;jt++){let n0=Ft+jt;n0=r?r[n0]:n0;const s0=C.getX(n0),qt=C.getY(n0),Ht=C.getZ(n0);s0<xt&&(xt=s0),s0>wt&&(wt=s0),qt<Xt&&(Xt=qt),qt>Vt&&(Vt=qt),Ht<Zt&&(Zt=Ht),Ht>Wt&&(Wt=Ht)}}return le[ke+0]!==xt||le[ke+1]!==Xt||le[ke+2]!==Zt||le[ke+3]!==wt||le[ke+4]!==Vt||le[ke+5]!==Wt?(le[ke+0]=xt,le[ke+1]=Xt,le[ke+2]=Zt,le[ke+3]=wt,le[ke+4]=Vt,le[ke+5]=Wt,!0):!1}else{const Ue=ke+8,Gt=E[ke+6],xt=Ue+Fe,Xt=Gt+Fe;let Zt=mt,wt=!1,Vt=!1;e?Zt||(wt=e.has(xt),Vt=e.has(Xt),Zt=!wt&&!Vt):(wt=!0,Vt=!0);const Wt=Zt||wt,It=Zt||Vt;let Nt=!1;Wt&&(Nt=ze(Ue,Fe,Zt));let Ft=!1;It&&(Ft=ze(Gt,Fe,Zt));const jt=Nt||Ft;if(jt)for(let n0=0;n0<3;n0++){const s0=Ue+n0,qt=Gt+n0,Ht=le[s0],$t=le[s0+3],Kt=le[qt],e0=le[qt+3];le[ke+n0]=Ht<Kt?Ht:Kt,le[ke+n0+3]=$t>e0?$t:e0}return jt}}}function raycast_indirect(v,e,n,r,C,w,E){BufferStack.setBuffer(v._roots[e]),_raycast(0,v,n,r,C,w,E),BufferStack.clearBuffer()}function _raycast(v,e,n,r,C,w,E){const{float32Array:O,uint16Array:le,uint32Array:fe}=BufferStack,Se=v*2;if(IS_LEAF(Se,le)){const ke=OFFSET(v,fe),Fe=COUNT(Se,le);intersectTris_indirect(e,n,r,ke,Fe,C,w,E)}else{const ke=LEFT_NODE(v);intersectRay(ke,O,r,w,E)&&_raycast(ke,e,n,r,C,w,E);const Fe=RIGHT_NODE(v,fe);intersectRay(Fe,O,r,w,E)&&_raycast(Fe,e,n,r,C,w,E)}}const _xyzFields=["x","y","z"];function raycastFirst_indirect(v,e,n,r,C,w){BufferStack.setBuffer(v._roots[e]);const E=_raycastFirst(0,v,n,r,C,w);return BufferStack.clearBuffer(),E}function _raycastFirst(v,e,n,r,C,w){const{float32Array:E,uint16Array:O,uint32Array:le}=BufferStack;let fe=v*2;if(IS_LEAF(fe,O)){const ze=OFFSET(v,le),ke=COUNT(fe,O);return intersectClosestTri_indirect(e,n,r,ze,ke,C,w)}else{const ze=SPLIT_AXIS(v,le),ke=_xyzFields[ze],mt=r.direction[ke]>=0;let Lt,bt;mt?(Lt=LEFT_NODE(v),bt=RIGHT_NODE(v,le)):(Lt=RIGHT_NODE(v,le),bt=LEFT_NODE(v));const Gt=intersectRay(Lt,E,r,C,w)?_raycastFirst(Lt,e,n,r,C,w):null;if(Gt){const Zt=Gt.point[ke];if(mt?Zt<=E[bt+ze]:Zt>=E[bt+ze+3])return Gt}const Xt=intersectRay(bt,E,r,C,w)?_raycastFirst(bt,e,n,r,C,w):null;return Gt&&Xt?Gt.distance<=Xt.distance?Gt:Xt:Gt||Xt||null}}const boundingBox=new Box3,triangle=new ExtendedTriangle,triangle2=new ExtendedTriangle,invertedMat=new Matrix4,obb$2=new OrientedBox,obb2$1=new OrientedBox;function intersectsGeometry_indirect(v,e,n,r){BufferStack.setBuffer(v._roots[e]);const C=_intersectsGeometry(0,v,n,r);return BufferStack.clearBuffer(),C}function _intersectsGeometry(v,e,n,r,C=null){const{float32Array:w,uint16Array:E,uint32Array:O}=BufferStack;let le=v*2;if(C===null&&(n.boundingBox||n.computeBoundingBox(),obb$2.set(n.boundingBox.min,n.boundingBox.max,r),C=obb$2),IS_LEAF(le,E)){const Se=e.geometry,ze=Se.index,ke=Se.attributes.position,Fe=n.index,mt=n.attributes.position,Lt=OFFSET(v,O),bt=COUNT(le,E);if(invertedMat.copy(r).invert(),n.boundsTree)return arrayToBox(v,w,obb2$1),obb2$1.matrix.copy(invertedMat),obb2$1.needsUpdate=!0,n.boundsTree.shapecast({intersectsBounds:Gt=>obb2$1.intersectsBox(Gt),intersectsTriangle:Gt=>{Gt.a.applyMatrix4(r),Gt.b.applyMatrix4(r),Gt.c.applyMatrix4(r),Gt.needsUpdate=!0;for(let xt=Lt,Xt=bt+Lt;xt<Xt;xt++)if(setTriangle(triangle2,3*e.resolveTriangleIndex(xt),ze,ke),triangle2.needsUpdate=!0,Gt.intersectsTriangle(triangle2))return!0;return!1}});for(let Ue=Lt,Gt=bt+Lt;Ue<Gt;Ue++){const xt=e.resolveTriangleIndex(Ue);setTriangle(triangle,3*xt,ze,ke),triangle.a.applyMatrix4(invertedMat),triangle.b.applyMatrix4(invertedMat),triangle.c.applyMatrix4(invertedMat),triangle.needsUpdate=!0;for(let Xt=0,Zt=Fe.count;Xt<Zt;Xt+=3)if(setTriangle(triangle2,Xt,Fe,mt),triangle2.needsUpdate=!0,triangle.intersectsTriangle(triangle2))return!0}}else{const Se=v+8,ze=O[v+6];return arrayToBox(Se,w,boundingBox),!!(C.intersectsBox(boundingBox)&&_intersectsGeometry(Se,e,n,r,C)||(arrayToBox(ze,w,boundingBox),C.intersectsBox(boundingBox)&&_intersectsGeometry(ze,e,n,r,C)))}}const tempMatrix=new Matrix4,obb$1=new OrientedBox,obb2=new OrientedBox,temp1=new Vector3,temp2=new Vector3,temp3=new Vector3,temp4=new Vector3;function closestPointToGeometry_indirect(v,e,n,r={},C={},w=0,E=1/0){e.boundingBox||e.computeBoundingBox(),obb$1.set(e.boundingBox.min,e.boundingBox.max,n),obb$1.needsUpdate=!0;const O=v.geometry,le=O.attributes.position,fe=O.index,Se=e.attributes.position,ze=e.index,ke=ExtendedTrianglePool.getPrimitive(),Fe=ExtendedTrianglePool.getPrimitive();let mt=temp1,Lt=temp2,bt=null,Ue=null;C&&(bt=temp3,Ue=temp4);let Gt=1/0,xt=null,Xt=null;return tempMatrix.copy(n).invert(),obb2.matrix.copy(tempMatrix),v.shapecast({boundsTraverseOrder:Zt=>obb$1.distanceToBox(Zt),intersectsBounds:(Zt,wt,Vt)=>Vt<Gt&&Vt<E?(wt&&(obb2.min.copy(Zt.min),obb2.max.copy(Zt.max),obb2.needsUpdate=!0),!0):!1,intersectsRange:(Zt,wt)=>{if(e.boundsTree){const Vt=e.boundsTree;return Vt.shapecast({boundsTraverseOrder:Wt=>obb2.distanceToBox(Wt),intersectsBounds:(Wt,It,Nt)=>Nt<Gt&&Nt<E,intersectsRange:(Wt,It)=>{for(let Nt=Wt,Ft=Wt+It;Nt<Ft;Nt++){const jt=Vt.resolveTriangleIndex(Nt);setTriangle(Fe,3*jt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let n0=Zt,s0=Zt+wt;n0<s0;n0++){const qt=v.resolveTriangleIndex(n0);setTriangle(ke,3*qt,fe,le),ke.needsUpdate=!0;const Ht=ke.distanceToTriangle(Fe,mt,bt);if(Ht<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=Ht,xt=n0,Xt=Nt),Ht<w)return!0}}}})}else{const Vt=getTriCount$1(e);for(let Wt=0,It=Vt;Wt<It;Wt++){setTriangle(Fe,3*Wt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let Nt=Zt,Ft=Zt+wt;Nt<Ft;Nt++){const jt=v.resolveTriangleIndex(Nt);setTriangle(ke,3*jt,fe,le),ke.needsUpdate=!0;const n0=ke.distanceToTriangle(Fe,mt,bt);if(n0<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=n0,xt=Nt,Xt=Wt),n0<w)return!0}}}}}),ExtendedTrianglePool.releasePrimitive(ke),ExtendedTrianglePool.releasePrimitive(Fe),Gt===1/0?null:(r.point?r.point.copy(Lt):r.point=Lt.clone(),r.distance=Gt,r.faceIndex=xt,C&&(C.point?C.point.copy(Ue):C.point=Ue.clone(),C.point.applyMatrix4(tempMatrix),Lt.applyMatrix4(tempMatrix),C.distance=Lt.sub(C.point).length(),C.faceIndex=Xt),r)}function isSharedArrayBufferSupported(){return typeof SharedArrayBuffer!="undefined"}const _bufferStack1=new BufferStack.constructor,_bufferStack2=new BufferStack.constructor,_boxPool=new PrimitivePool(()=>new Box3),_leftBox1=new Box3,_rightBox1=new Box3,_leftBox2=new Box3,_rightBox2=new Box3;let _active=!1;function bvhcast(v,e,n,r){if(_active)throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");_active=!0;const C=v._roots,w=e._roots;let E,O=0,le=0;const fe=new Matrix4().copy(n).invert();for(let Se=0,ze=C.length;Se<ze;Se++){_bufferStack1.setBuffer(C[Se]),le=0;const ke=_boxPool.getPrimitive();arrayToBox(0,_bufferStack1.float32Array,ke),ke.applyMatrix4(fe);for(let Fe=0,mt=w.length;Fe<mt&&(_bufferStack2.setBuffer(w[Fe]),E=_traverse(0,0,n,fe,r,O,le,0,0,ke),_bufferStack2.clearBuffer(),le+=w[Fe].length,!E);Fe++);if(_boxPool.releasePrimitive(ke),_bufferStack1.clearBuffer(),O+=C[Se].length,E)break}return _active=!1,E}function _traverse(v,e,n,r,C,w=0,E=0,O=0,le=0,fe=null,Se=!1){let ze,ke;Se?(ze=_bufferStack2,ke=_bufferStack1):(ze=_bufferStack1,ke=_bufferStack2);const Fe=ze.float32Array,mt=ze.uint32Array,Lt=ze.uint16Array,bt=ke.float32Array,Ue=ke.uint32Array,Gt=ke.uint16Array,xt=v*2,Xt=e*2,Zt=IS_LEAF(xt,Lt),wt=IS_LEAF(Xt,Gt);let Vt=!1;if(wt&&Zt)Se?Vt=C(OFFSET(e,Ue),COUNT(e*2,Gt),OFFSET(v,mt),COUNT(v*2,Lt),le,E+e,O,w+v):Vt=C(OFFSET(v,mt),COUNT(v*2,Lt),OFFSET(e,Ue),COUNT(e*2,Gt),O,w+v,le,E+e);else if(wt){const Wt=_boxPool.getPrimitive();arrayToBox(e,bt,Wt),Wt.applyMatrix4(n);const It=LEFT_NODE(v),Nt=RIGHT_NODE(v,mt);arrayToBox(It,Fe,_leftBox1),arrayToBox(Nt,Fe,_rightBox1);const Ft=Wt.intersectsBox(_leftBox1),jt=Wt.intersectsBox(_rightBox1);Vt=Ft&&_traverse(e,It,r,n,C,E,w,le,O+1,Wt,!Se)||jt&&_traverse(e,Nt,r,n,C,E,w,le,O+1,Wt,!Se),_boxPool.releasePrimitive(Wt)}else{const Wt=LEFT_NODE(e),It=RIGHT_NODE(e,Ue);arrayToBox(Wt,bt,_leftBox2),arrayToBox(It,bt,_rightBox2);const Nt=fe.intersectsBox(_leftBox2),Ft=fe.intersectsBox(_rightBox2);if(Nt&&Ft)Vt=_traverse(v,Wt,n,r,C,w,E,O,le+1,fe,Se)||_traverse(v,It,n,r,C,w,E,O,le+1,fe,Se);else if(Nt)if(Zt)Vt=_traverse(v,Wt,n,r,C,w,E,O,le+1,fe,Se);else{const jt=_boxPool.getPrimitive();jt.copy(_leftBox2).applyMatrix4(n);const n0=LEFT_NODE(v),s0=RIGHT_NODE(v,mt);arrayToBox(n0,Fe,_leftBox1),arrayToBox(s0,Fe,_rightBox1);const qt=jt.intersectsBox(_leftBox1),Ht=jt.intersectsBox(_rightBox1);Vt=qt&&_traverse(Wt,n0,r,n,C,E,w,le,O+1,jt,!Se)||Ht&&_traverse(Wt,s0,r,n,C,E,w,le,O+1,jt,!Se),_boxPool.releasePrimitive(jt)}else if(Ft)if(Zt)Vt=_traverse(v,It,n,r,C,w,E,O,le+1,fe,Se);else{const jt=_boxPool.getPrimitive();jt.copy(_rightBox2).applyMatrix4(n);const n0=LEFT_NODE(v),s0=RIGHT_NODE(v,mt);arrayToBox(n0,Fe,_leftBox1),arrayToBox(s0,Fe,_rightBox1);const qt=jt.intersectsBox(_leftBox1),Ht=jt.intersectsBox(_rightBox1);Vt=qt&&_traverse(It,n0,r,n,C,E,w,le,O+1,jt,!Se)||Ht&&_traverse(It,s0,r,n,C,E,w,le,O+1,jt,!Se),_boxPool.releasePrimitive(jt)}}return Vt}const obb=new OrientedBox,tempBox=new Box3,DEFAULT_OPTIONS={strategy:CENTER,maxDepth:40,maxLeafTris:10,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,indirect:!1,verbose:!0,range:null};class MeshBVH{static serialize(e,n={}){n=O0({cloneBuffers:!0},n);const r=e.geometry,C=e._roots,w=e._indirectBuffer,E=r.getIndex();let O;return n.cloneBuffers?O={roots:C.map(le=>le.slice()),index:E?E.array.slice():null,indirectBuffer:w?w.slice():null}:O={roots:C,index:E?E.array:null,indirectBuffer:w},O}static deserialize(e,n,r={}){r=O0({setIndex:!0,indirect:!!e.indirectBuffer},r);const{index:C,roots:w,indirectBuffer:E}=e,O=new MeshBVH(n,Ui(O0({},r),{[SKIP_GENERATION]:!0}));if(O._roots=w,O._indirectBuffer=E||null,r.setIndex){const le=n.getIndex();if(le===null){const fe=new BufferAttribute(e.index,1,!1);n.setIndex(fe)}else le.array!==C&&(le.array.set(C),le.needsUpdate=!0)}return O}get indirect(){return!!this._indirectBuffer}constructor(e,n={}){if(e.isBufferGeometry){if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(n=Object.assign(Ui(O0({},DEFAULT_OPTIONS),{[SKIP_GENERATION]:!1}),n),n.useSharedArrayBuffer&&!isSharedArrayBufferSupported())throw new Error("MeshBVH: SharedArrayBuffer is not available.");this.geometry=e,this._roots=null,this._indirectBuffer=null,n[SKIP_GENERATION]||(buildPackedTree(this,n),!e.boundingBox&&n.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Box3))),this.resolveTriangleIndex=n.indirect?r=>this._indirectBuffer[r]:r=>r}refit(e=null){return(this.indirect?refit_indirect:refit)(this,e)}traverse(e,n=0){const r=this._roots[n],C=new Uint32Array(r),w=new Uint16Array(r);E(0);function E(O,le=0){const fe=O*2,Se=w[fe+15]===IS_LEAFNODE_FLAG;if(Se){const ze=C[O+6],ke=w[fe+14];e(le,Se,new Float32Array(r,O*4,6),ze,ke)}else{const ze=O+BYTES_PER_NODE/4,ke=C[O+6],Fe=C[O+7];e(le,Se,new Float32Array(r,O*4,6),Fe)||(E(ze,le+1),E(ke,le+1))}}}raycast(e,n=FrontSide,r=0,C=1/0){const w=this._roots,E=this.geometry,O=[],le=n.isMaterial,fe=Array.isArray(n),Se=E.groups,ze=le?n.side:n,ke=this.indirect?raycast_indirect:raycast;for(let Fe=0,mt=w.length;Fe<mt;Fe++){const Lt=fe?n[Se[Fe].materialIndex].side:ze,bt=O.length;if(ke(this,Fe,Lt,e,O,r,C),fe){const Ue=Se[Fe].materialIndex;for(let Gt=bt,xt=O.length;Gt<xt;Gt++)O[Gt].face.materialIndex=Ue}}return O}raycastFirst(e,n=FrontSide,r=0,C=1/0){const w=this._roots,E=this.geometry,O=n.isMaterial,le=Array.isArray(n);let fe=null;const Se=E.groups,ze=O?n.side:n,ke=this.indirect?raycastFirst_indirect:raycastFirst;for(let Fe=0,mt=w.length;Fe<mt;Fe++){const Lt=le?n[Se[Fe].materialIndex].side:ze,bt=ke(this,Fe,Lt,e,r,C);bt!=null&&(fe==null||bt.distance<fe.distance)&&(fe=bt,le&&(bt.face.materialIndex=Se[Fe].materialIndex))}return fe}intersectsGeometry(e,n){let r=!1;const C=this._roots,w=this.indirect?intersectsGeometry_indirect:intersectsGeometry;for(let E=0,O=C.length;E<O&&(r=w(this,E,e,n),!r);E++);return r}shapecast(e){const n=ExtendedTrianglePool.getPrimitive(),r=this.indirect?iterateOverTriangles_indirect:iterateOverTriangles;let{boundsTraverseOrder:C,intersectsBounds:w,intersectsRange:E,intersectsTriangle:O}=e;if(E&&O){const ze=E;E=(ke,Fe,mt,Lt,bt)=>ze(ke,Fe,mt,Lt,bt)?!0:r(ke,Fe,this,O,mt,Lt,n)}else E||(O?E=(ze,ke,Fe,mt)=>r(ze,ke,this,O,Fe,mt,n):E=(ze,ke,Fe)=>Fe);let le=!1,fe=0;const Se=this._roots;for(let ze=0,ke=Se.length;ze<ke;ze++){const Fe=Se[ze];if(le=shapecast(this,ze,w,E,C,fe),le)break;fe+=Fe.byteLength}return ExtendedTrianglePool.releasePrimitive(n),le}bvhcast(e,n,r){let{intersectsRanges:C,intersectsTriangles:w}=r;const E=ExtendedTrianglePool.getPrimitive(),O=this.geometry.index,le=this.geometry.attributes.position,fe=this.indirect?mt=>{const Lt=this.resolveTriangleIndex(mt);setTriangle(E,Lt*3,O,le)}:mt=>{setTriangle(E,mt*3,O,le)},Se=ExtendedTrianglePool.getPrimitive(),ze=e.geometry.index,ke=e.geometry.attributes.position,Fe=e.indirect?mt=>{const Lt=e.resolveTriangleIndex(mt);setTriangle(Se,Lt*3,ze,ke)}:mt=>{setTriangle(Se,mt*3,ze,ke)};if(w){const mt=(Lt,bt,Ue,Gt,xt,Xt,Zt,wt)=>{for(let Vt=Ue,Wt=Ue+Gt;Vt<Wt;Vt++){Fe(Vt),Se.a.applyMatrix4(n),Se.b.applyMatrix4(n),Se.c.applyMatrix4(n),Se.needsUpdate=!0;for(let It=Lt,Nt=Lt+bt;It<Nt;It++)if(fe(It),E.needsUpdate=!0,w(E,Se,It,Vt,xt,Xt,Zt,wt))return!0}return!1};if(C){const Lt=C;C=function(bt,Ue,Gt,xt,Xt,Zt,wt,Vt){return Lt(bt,Ue,Gt,xt,Xt,Zt,wt,Vt)?!0:mt(bt,Ue,Gt,xt,Xt,Zt,wt,Vt)}}else C=mt}return bvhcast(this,e,n,C)}intersectsBox(e,n){return obb.set(e.min,e.max,n),obb.needsUpdate=!0,this.shapecast({intersectsBounds:r=>obb.intersectsBox(r),intersectsTriangle:r=>obb.intersectsTriangle(r)})}intersectsSphere(e){return this.shapecast({intersectsBounds:n=>e.intersectsBox(n),intersectsTriangle:n=>n.intersectsSphere(e)})}closestPointToGeometry(e,n,r={},C={},w=0,E=1/0){return(this.indirect?closestPointToGeometry_indirect:closestPointToGeometry)(this,e,n,r,C,w,E)}closestPointToPoint(e,n={},r=0,C=1/0){return closestPointToPoint(this,e,n,r,C)}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(r=>{arrayToBox(0,new Float32Array(r),tempBox),e.union(tempBox)}),e}}const HASH_WIDTH=1e-6,HASH_HALF_WIDTH=HASH_WIDTH*.5,HASH_MULTIPLIER=Math.pow(10,-Math.log10(HASH_WIDTH)),HASH_ADDITION=HASH_HALF_WIDTH*HASH_MULTIPLIER;function hashNumber(v){return~~(v*HASH_MULTIPLIER+HASH_ADDITION)}function hashVertex2(v){return`${hashNumber(v.x)},${hashNumber(v.y)}`}function hashVertex3(v){return`${hashNumber(v.x)},${hashNumber(v.y)},${hashNumber(v.z)}`}function hashVertex4(v){return`${hashNumber(v.x)},${hashNumber(v.y)},${hashNumber(v.z)},${hashNumber(v.w)}`}function toNormalizedRay(v,e,n){n.direction.subVectors(e,v).normalize();const r=v.dot(n.direction);return n.origin.copy(v).addScaledVector(n.direction,-r),n}function areSharedArrayBuffersSupported(){return typeof SharedArrayBuffer!="undefined"}function convertToSharedArrayBuffer(v){if(v.buffer instanceof SharedArrayBuffer)return v;const e=v.constructor,n=v.buffer,r=new SharedArrayBuffer(n.byteLength),C=new Uint8Array(n);return new Uint8Array(r).set(C,0),new e(r)}function getIndexArray(v,e=ArrayBuffer){return v>65535?new Uint32Array(new e(4*v)):new Uint16Array(new e(2*v))}function ensureIndex(v,e){if(!v.index){const n=v.attributes.position.count,r=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,C=getIndexArray(n,r);v.setIndex(new BufferAttribute(C,1));for(let w=0;w<n;w++)C[w]=w}}function getVertexCount(v){return v.index?v.index.count:v.attributes.position.count}function getTriCount(v){return getVertexCount(v)/3}const DEGENERATE_EPSILON=1e-8,_tempVec=new Vector3;function toTriIndex(v){return~~(v/3)}function toEdgeIndex(v){return v%3}function sortEdgeFunc(v,e){return v.start-e.start}function getProjectedDistance(v,e){return _tempVec.subVectors(e,v.origin).dot(v.direction)}function matchEdges(v,e,n,r=DEGENERATE_EPSILON){v.sort(sortEdgeFunc),e.sort(sortEdgeFunc);for(let O=0;O<v.length;O++){const le=v[O];for(let fe=0;fe<e.length;fe++){const Se=e[fe];if(!(Se.start>le.end)){if(le.end<Se.start||Se.end<le.start)continue;if(le.start<=Se.start&&le.end>=Se.end)w(Se.end,le.end)||v.splice(O+1,0,{start:Se.end,end:le.end,index:le.index}),le.end=Se.start,Se.start=0,Se.end=0;else if(le.start>=Se.start&&le.end<=Se.end)w(le.end,Se.end)||e.splice(fe+1,0,{start:le.end,end:Se.end,index:Se.index}),Se.end=le.start,le.start=0,le.end=0;else if(le.start<=Se.start&&le.end<=Se.end){const ze=le.end;le.end=Se.start,Se.start=ze}else if(le.start>=Se.start&&le.end>=Se.end){const ze=Se.end;Se.end=le.start,le.start=ze}else throw new Error}if(n.has(le.index)||n.set(le.index,[]),n.has(Se.index)||n.set(Se.index,[]),n.get(le.index).push(Se.index),n.get(Se.index).push(le.index),E(Se)&&(e.splice(fe,1),fe--),E(le)){v.splice(O,1),O--;break}}}C(v),C(e);function C(O){for(let le=0;le<O.length;le++)E(O[le])&&(O.splice(le,1),le--)}function w(O,le){return Math.abs(le-O)<r}function E(O){return Math.abs(O.end-O.start)<r}}const DIST_EPSILON=1e-5,ANGLE_EPSILON=1e-4;class RaySet{constructor(){this._rays=[]}addRay(e){this._rays.push(e)}findClosestRay(e){const n=this._rays,r=e.clone();r.direction.multiplyScalar(-1);let C=1/0,w=null;for(let le=0,fe=n.length;le<fe;le++){const Se=n[le];if(E(Se,e)&&E(Se,r))continue;const ze=O(Se,e),ke=O(Se,r),Fe=Math.min(ze,ke);Fe<C&&(C=Fe,w=Se)}return w;function E(le,fe){const Se=le.origin.distanceTo(fe.origin)>DIST_EPSILON;return le.direction.angleTo(fe.direction)>ANGLE_EPSILON||Se}function O(le,fe){const Se=le.origin.distanceTo(fe.origin),ze=le.direction.angleTo(fe.direction);return Se/DIST_EPSILON+ze/ANGLE_EPSILON}}}const _v0=new Vector3,_v1$1=new Vector3,_ray$2=new Ray;function computeDisjointEdges(v,e,n){const r=v.attributes,C=v.index,w=r.position,E=new Map,O=new Map,le=Array.from(e),fe=new RaySet;for(let Se=0,ze=le.length;Se<ze;Se++){const ke=le[Se],Fe=toTriIndex(ke),mt=toEdgeIndex(ke);let Lt=3*Fe+mt,bt=3*Fe+(mt+1)%3;C&&(Lt=C.getX(Lt),bt=C.getX(bt)),_v0.fromBufferAttribute(w,Lt),_v1$1.fromBufferAttribute(w,bt),toNormalizedRay(_v0,_v1$1,_ray$2);let Ue,Gt=fe.findClosestRay(_ray$2);Gt===null&&(Gt=_ray$2.clone(),fe.addRay(Gt)),O.has(Gt)||O.set(Gt,{forward:[],reverse:[],ray:Gt}),Ue=O.get(Gt);let xt=getProjectedDistance(Gt,_v0),Xt=getProjectedDistance(Gt,_v1$1);xt>Xt&&([xt,Xt]=[Xt,xt]),_ray$2.direction.dot(Gt.direction)<0?Ue.reverse.push({start:xt,end:Xt,index:ke}):Ue.forward.push({start:xt,end:Xt,index:ke})}return O.forEach(({forward:Se,reverse:ze},ke)=>{matchEdges(Se,ze,E,n),Se.length===0&&ze.length===0&&O.delete(ke)}),{disjointConnectivityMap:E,fragmentMap:O}}const _vec2=new Vector2,_vec3$1=new Vector3,_vec4=new Vector4,_hashes=["","",""];class HalfEdgeMap{constructor(e=null){this.data=null,this.disjointConnections=null,this.unmatchedDisjointEdges=null,this.unmatchedEdges=-1,this.matchedEdges=-1,this.useDrawRange=!0,this.useAllAttributes=!1,this.matchDisjointEdges=!1,this.degenerateEpsilon=1e-8,e&&this.updateFrom(e)}getSiblingTriangleIndex(e,n){const r=this.data[e*3+n];return r===-1?-1:~~(r/3)}getSiblingEdgeIndex(e,n){const r=this.data[e*3+n];return r===-1?-1:r%3}getDisjointSiblingTriangleIndices(e,n){const r=e*3+n,C=this.disjointConnections.get(r);return C?C.map(w=>~~(w/3)):[]}getDisjointSiblingEdgeIndices(e,n){const r=e*3+n,C=this.disjointConnections.get(r);return C?C.map(w=>w%3):[]}isFullyConnected(){return this.unmatchedEdges===0}updateFrom(e){const{useAllAttributes:n,useDrawRange:r,matchDisjointEdges:C,degenerateEpsilon:w}=this,E=n?xt:Gt,O=new Map,{attributes:le}=e,fe=n?Object.keys(le):null,Se=e.index,ze=le.position;let ke=getTriCount(e);const Fe=ke;let mt=0;r&&(mt=e.drawRange.start,e.drawRange.count!==1/0&&(ke=~~(e.drawRange.count/3)));let Lt=this.data;(!Lt||Lt.length<3*Fe)&&(Lt=new Int32Array(3*Fe)),Lt.fill(-1);let bt=0,Ue=new Set;for(let Xt=mt,Zt=ke*3+mt;Xt<Zt;Xt+=3){const wt=Xt;for(let Vt=0;Vt<3;Vt++){let Wt=wt+Vt;Se&&(Wt=Se.getX(Wt)),_hashes[Vt]=E(Wt)}for(let Vt=0;Vt<3;Vt++){const Wt=(Vt+1)%3,It=_hashes[Vt],Nt=_hashes[Wt],Ft=`${Nt}_${It}`;if(O.has(Ft)){const jt=wt+Vt,n0=O.get(Ft);Lt[jt]=n0,Lt[n0]=jt,O.delete(Ft),bt+=2,Ue.delete(n0)}else{const jt=`${It}_${Nt}`,n0=wt+Vt;O.set(jt,n0),Ue.add(n0)}}}if(C){const{fragmentMap:Xt,disjointConnectivityMap:Zt}=computeDisjointEdges(e,Ue,w);Ue.clear(),Xt.forEach(({forward:wt,reverse:Vt})=>{wt.forEach(({index:Wt})=>Ue.add(Wt)),Vt.forEach(({index:Wt})=>Ue.add(Wt))}),this.unmatchedDisjointEdges=Xt,this.disjointConnections=Zt,bt=ke*3-Ue.size}this.matchedEdges=bt,this.unmatchedEdges=Ue.size,this.data=Lt;function Gt(Xt){return _vec3$1.fromBufferAttribute(ze,Xt),hashVertex3(_vec3$1)}function xt(Xt){let Zt="";for(let wt=0,Vt=fe.length;wt<Vt;wt++){const Wt=le[fe[wt]];let It;switch(Wt.itemSize){case 1:It=hashNumber(Wt.getX(Xt));break;case 2:It=hashVertex2(_vec2.fromBufferAttribute(Wt,Xt));break;case 3:It=hashVertex3(_vec3$1.fromBufferAttribute(Wt,Xt));break;case 4:It=hashVertex4(_vec4.fromBufferAttribute(Wt,Xt));break}Zt!==""&&(Zt+="|"),Zt+=It}return Zt}}}class Brush extends Mesh{constructor(...e){super(...e),this.isBrush=!0,this._previousMatrix=new Matrix4,this._previousMatrix.elements.fill(0)}markUpdated(){this._previousMatrix.copy(this.matrix)}isDirty(){const{matrix:e,_previousMatrix:n}=this,r=e.elements,C=n.elements;for(let w=0;w<16;w++)if(r[w]!==C[w])return!0;return!1}prepareGeometry(){const e=this.geometry,n=e.attributes,r=areSharedArrayBuffersSupported();if(r)for(const C in n){const w=n[C];if(w.isInterleavedBufferAttribute)throw new Error("Brush: InterleavedBufferAttributes are not supported.");w.array=convertToSharedArrayBuffer(w.array)}if(e.boundsTree||(ensureIndex(e,{useSharedArrayBuffer:r}),e.boundsTree=new MeshBVH(e,{maxLeafTris:3,indirect:!0,useSharedArrayBuffer:r})),e.halfEdges||(e.halfEdges=new HalfEdgeMap(e)),!e.groupIndices){const C=getTriCount(e),w=new Uint16Array(C),E=e.groups;for(let O=0,le=E.length;O<le;O++){const{start:fe,count:Se}=E[O];for(let ze=fe/3,ke=(fe+Se)/3;ze<ke;ze++)w[ze]=O}e.groupIndices=w}}disposeCacheData(){const{geometry:e}=this;e.halfEdges=null,e.boundsTree=null,e.groupIndices=null}}const EPSILON$1=1e-14,_AB=new Vector3,_AC=new Vector3,_CB=new Vector3;function isTriDegenerate(v,e=EPSILON$1){_AB.subVectors(v.b,v.a),_AC.subVectors(v.c,v.a),_CB.subVectors(v.b,v.c);const n=_AB.angleTo(_AC),r=_AB.angleTo(_CB),C=Math.PI-n-r;return Math.abs(n)<e||Math.abs(r)<e||Math.abs(C)<e||v.a.distanceToSquared(v.b)<e||v.a.distanceToSquared(v.c)<e||v.b.distanceToSquared(v.c)<e}const EPSILON=1e-10,COPLANAR_EPSILON=1e-10,PARALLEL_EPSILON=1e-10,_edge$1=new Line3,_foundEdge=new Line3,_vec=new Vector3,_triangleNormal=new Vector3,_planeNormal=new Vector3,_plane=new Plane$1,_splittingTriangle=new ExtendedTriangle;class TrianglePool{constructor(){this._pool=[],this._index=0}getTriangle(){return this._index>=this._pool.length&&this._pool.push(new Triangle),this._pool[this._index++]}clear(){this._index=0}reset(){this._pool.length=0,this._index=0}}class TriangleSplitter{constructor(){this.trianglePool=new TrianglePool,this.triangles=[],this.normal=new Vector3,this.coplanarTriangleUsed=!1}initialize(e){this.reset();const{triangles:n,trianglePool:r,normal:C}=this;if(Array.isArray(e))for(let w=0,E=e.length;w<E;w++){const O=e[w];if(w===0)O.getNormal(C);else if(Math.abs(1-O.getNormal(_vec).dot(C))>EPSILON)throw new Error("Triangle Splitter: Cannot initialize with triangles that have different normals.");const le=r.getTriangle();le.copy(O),n.push(le)}else{e.getNormal(C);const w=r.getTriangle();w.copy(e),n.push(w)}}splitByTriangle(e){const{normal:n,triangles:r}=this;if(e.getNormal(_triangleNormal).normalize(),Math.abs(1-Math.abs(_triangleNormal.dot(n)))<PARALLEL_EPSILON){this.coplanarTriangleUsed=!0;for(let w=0,E=r.length;w<E;w++){const O=r[w];O.coplanarCount=0}const C=[e.a,e.b,e.c];for(let w=0;w<3;w++){const E=(w+1)%3,O=C[w],le=C[E];_vec.subVectors(le,O).normalize(),_planeNormal.crossVectors(_triangleNormal,_vec),_plane.setFromNormalAndCoplanarPoint(_planeNormal,O),this.splitByPlane(_plane,e)}}else e.getPlane(_plane),this.splitByPlane(_plane,e)}splitByPlane(e,n){const{triangles:r,trianglePool:C}=this;_splittingTriangle.copy(n),_splittingTriangle.needsUpdate=!0;for(let w=0,E=r.length;w<E;w++){const O=r[w];if(!_splittingTriangle.intersectsTriangle(O,_edge$1,!0))continue;const{a:le,b:fe,c:Se}=O;let ze=0,ke=-1,Fe=!1,mt=[],Lt=[];const bt=[le,fe,Se];for(let Ue=0;Ue<3;Ue++){const Gt=(Ue+1)%3;_edge$1.start.copy(bt[Ue]),_edge$1.end.copy(bt[Gt]);const xt=e.distanceToPoint(_edge$1.start),Xt=e.distanceToPoint(_edge$1.end);if(Math.abs(xt)<COPLANAR_EPSILON&&Math.abs(Xt)<COPLANAR_EPSILON){Fe=!0;break}if(xt>0?mt.push(Ue):Lt.push(Ue),Math.abs(xt)<COPLANAR_EPSILON)continue;let Zt=!!e.intersectLine(_edge$1,_vec);!Zt&&Math.abs(Xt)<COPLANAR_EPSILON&&(_vec.copy(_edge$1.end),Zt=!0),Zt&&!(_vec.distanceTo(_edge$1.start)<EPSILON)&&(_vec.distanceTo(_edge$1.end)<EPSILON&&(ke=Ue),ze===0?_foundEdge.start.copy(_vec):_foundEdge.end.copy(_vec),ze++)}if(!Fe&&ze===2&&_foundEdge.distance()>COPLANAR_EPSILON)if(ke!==-1){ke=(ke+1)%3;let Ue=0;Ue===ke&&(Ue=(Ue+1)%3);let Gt=Ue+1;Gt===ke&&(Gt=(Gt+1)%3);const xt=C.getTriangle();xt.a.copy(bt[Gt]),xt.b.copy(_foundEdge.end),xt.c.copy(_foundEdge.start),isTriDegenerate(xt)||r.push(xt),O.a.copy(bt[Ue]),O.b.copy(_foundEdge.start),O.c.copy(_foundEdge.end),isTriDegenerate(O)&&(r.splice(w,1),w--,E--)}else{const Ue=mt.length>=2?Lt[0]:mt[0];if(Ue===0){let wt=_foundEdge.start;_foundEdge.start=_foundEdge.end,_foundEdge.end=wt}const Gt=(Ue+1)%3,xt=(Ue+2)%3,Xt=C.getTriangle(),Zt=C.getTriangle();bt[Gt].distanceToSquared(_foundEdge.start)<bt[xt].distanceToSquared(_foundEdge.end)?(Xt.a.copy(bt[Gt]),Xt.b.copy(_foundEdge.start),Xt.c.copy(_foundEdge.end),Zt.a.copy(bt[Gt]),Zt.b.copy(bt[xt]),Zt.c.copy(_foundEdge.start)):(Xt.a.copy(bt[xt]),Xt.b.copy(_foundEdge.start),Xt.c.copy(_foundEdge.end),Zt.a.copy(bt[Gt]),Zt.b.copy(bt[xt]),Zt.c.copy(_foundEdge.end)),O.a.copy(bt[Ue]),O.b.copy(_foundEdge.end),O.c.copy(_foundEdge.start),isTriDegenerate(Xt)||r.push(Xt),isTriDegenerate(Zt)||r.push(Zt),isTriDegenerate(O)&&(r.splice(w,1),w--,E--)}else ze===3&&console.warn("TriangleClipper: Coplanar clip not handled")}}reset(){this.triangles.length=0,this.trianglePool.clear(),this.coplanarTriangleUsed=!1}}function ceilToFourByteStride(v){return v=~~v,v+4-v%4}class TypeBackedArray{constructor(e,n=500){this.expansionFactor=1.5,this.type=e,this.length=0,this.array=null,this.setSize(n)}setType(e){if(this.length!==0)throw new Error("TypeBackedArray: Cannot change the type while there is used data in the buffer.");const n=this.array.buffer;this.array=new e(n),this.type=e}setSize(e){if(this.array&&e===this.array.length)return;const n=this.type,r=areSharedArrayBuffersSupported()?SharedArrayBuffer:ArrayBuffer,C=new n(new r(ceilToFourByteStride(e*n.BYTES_PER_ELEMENT)));this.array&&C.set(this.array,0),this.array=C}expand(){const{array:e,expansionFactor:n}=this;this.setSize(e.length*n)}push(...e){let{array:n,length:r}=this;r+e.length>n.length&&(this.expand(),n=this.array);for(let C=0,w=e.length;C<w;C++)n[r+C]=e[C];this.length+=e.length}clear(){this.length=0}}class TypedAttributeData{constructor(){this.groupAttributes=[{}],this.groupCount=0}getType(e){return this.groupAttributes[0][e].type}getItemSize(e){return this.groupAttributes[0][e].itemSize}getNormalized(e){return this.groupAttributes[0][e].normalized}getCount(e){if(this.groupCount<=e)return 0;const n=this.getGroupAttrArray("position",e);return n.length/n.itemSize}getTotalLength(e){const{groupCount:n,groupAttributes:r}=this;let C=0;for(let w=0;w<n;w++){const E=r[w];C+=E[e].length}return C}getGroupAttrSet(e=0){const{groupAttributes:n}=this;if(n[e])return this.groupCount=Math.max(this.groupCount,e+1),n[e];const r=n[0];for(this.groupCount=Math.max(this.groupCount,e+1);e>=n.length;){const C={};n.push(C);for(const w in r){const E=r[w],O=new TypeBackedArray(E.type);O.itemSize=E.itemSize,O.normalized=E.normalized,C[w]=O}}return n[e]}getGroupAttrArray(e,n=0){const{groupAttributes:r}=this;if(!r[0][e])throw new Error(`TypedAttributeData: Attribute with "${e}" has not been initialized`);return this.getGroupAttrSet(n)[e]}initializeArray(e,n,r,C){const{groupAttributes:w}=this,O=w[0][e];if(O){if(O.type!==n)for(let le=0,fe=w.length;le<fe;le++){const Se=w[le][e];Se.setType(n),Se.itemSize=r,Se.normalized=C}}else for(let le=0,fe=w.length;le<fe;le++){const Se=new TypeBackedArray(n);Se.itemSize=r,Se.normalized=C,w[le][e]=Se}}clear(){this.groupCount=0;const{groupAttributes:e}=this;e.forEach(n=>{for(const r in n)n[r].clear()})}delete(e){this.groupAttributes.forEach(n=>{delete n[e]})}reset(){this.groupAttributes=[],this.groupCount=0}}class IntersectionMap{constructor(){this.intersectionSet={},this.ids=[]}add(e,n){const{intersectionSet:r,ids:C}=this;r[e]||(r[e]=[],C.push(e)),r[e].push(n)}}const ADDITION=0,SUBTRACTION=1,REVERSE_SUBTRACTION=2,INTERSECTION=3,DIFFERENCE=4,HOLLOW_SUBTRACTION=5,HOLLOW_INTERSECTION=6,_ray$1=new Ray,_matrix$1=new Matrix4,_tri$1=new Triangle,_vec3=new Vector3,_vec4a=new Vector4,_vec4b=new Vector4,_vec4c=new Vector4,_vec4_0=new Vector4,_vec4_1=new Vector4,_vec4_2=new Vector4,_edge=new Line3,_normal=new Vector3,JITTER_EPSILON=1e-8,OFFSET_EPSILON=1e-15,BACK_SIDE=-1,FRONT_SIDE=1,COPLANAR_OPPOSITE=-2,COPLANAR_ALIGNED=2,INVERT_TRI=0,ADD_TRI=1,SKIP_TRI=2,FLOATING_COPLANAR_EPSILON=1e-14;let _debugContext=null;function setDebugContext(v){_debugContext=v}function getHitSide(v,e){v.getMidpoint(_ray$1.origin),v.getNormal(_ray$1.direction);const n=e.raycastFirst(_ray$1,DoubleSide);return!!(n&&_ray$1.direction.dot(n.face.normal)>0)?BACK_SIDE:FRONT_SIDE}function getHitSideWithCoplanarCheck(v,e){function n(){return Math.random()-.5}v.getNormal(_normal),_ray$1.direction.copy(_normal),v.getMidpoint(_ray$1.origin);const r=3;let C=0,w=1/0;for(let E=0;E<r;E++){_ray$1.direction.x+=n()*JITTER_EPSILON,_ray$1.direction.y+=n()*JITTER_EPSILON,_ray$1.direction.z+=n()*JITTER_EPSILON,_ray$1.direction.multiplyScalar(-1);const O=e.raycastFirst(_ray$1,DoubleSide);if(!!(O&&_ray$1.direction.dot(O.face.normal)>0)&&C++,O!==null&&(w=Math.min(w,O.distance)),w<=OFFSET_EPSILON)return O.face.normal.dot(_normal)>0?COPLANAR_ALIGNED:COPLANAR_OPPOSITE;if(C/r>.5||(E-C+1)/r>.5)break}return C/r>.5?BACK_SIDE:FRONT_SIDE}function collectIntersectingTriangles(v,e){const n=new IntersectionMap,r=new IntersectionMap;return _matrix$1.copy(v.matrixWorld).invert().multiply(e.matrixWorld),v.geometry.boundsTree.bvhcast(e.geometry.boundsTree,_matrix$1,{intersectsTriangles(C,w,E,O){if(!isTriDegenerate(C)&&!isTriDegenerate(w)){let le=C.intersectsTriangle(w,_edge,!0);if(!le){const fe=C.plane,Se=w.plane,ze=fe.normal,ke=Se.normal;ze.dot(ke)===1&&Math.abs(fe.constant-Se.constant)<FLOATING_COPLANAR_EPSILON&&(le=!0)}if(le){let fe=v.geometry.boundsTree.resolveTriangleIndex(E),Se=e.geometry.boundsTree.resolveTriangleIndex(O);n.add(fe,Se),r.add(Se,fe),_debugContext&&(_debugContext.addEdge(_edge),_debugContext.addIntersectingTriangles(E,C,O,w))}}return!1}}),{aIntersections:n,bIntersections:r}}function appendAttributeFromTriangle(v,e,n,r,C,w,E=!1){const O=n.attributes,le=n.index,fe=v*3,Se=le.getX(fe+0),ze=le.getX(fe+1),ke=le.getX(fe+2);for(const Fe in w){const mt=O[Fe],Lt=w[Fe];if(!(Fe in O))throw new Error(`CSG Operations: Attribute ${Fe} not available on geometry.`);const bt=mt.itemSize;Fe==="position"?(_tri$1.a.fromBufferAttribute(mt,Se).applyMatrix4(r),_tri$1.b.fromBufferAttribute(mt,ze).applyMatrix4(r),_tri$1.c.fromBufferAttribute(mt,ke).applyMatrix4(r),pushBarycoordInterpolatedValues(_tri$1.a,_tri$1.b,_tri$1.c,e,3,Lt,E)):Fe==="normal"?(_tri$1.a.fromBufferAttribute(mt,Se).applyNormalMatrix(C),_tri$1.b.fromBufferAttribute(mt,ze).applyNormalMatrix(C),_tri$1.c.fromBufferAttribute(mt,ke).applyNormalMatrix(C),E&&(_tri$1.a.multiplyScalar(-1),_tri$1.b.multiplyScalar(-1),_tri$1.c.multiplyScalar(-1)),pushBarycoordInterpolatedValues(_tri$1.a,_tri$1.b,_tri$1.c,e,3,Lt,E,!0)):(_vec4a.fromBufferAttribute(mt,Se),_vec4b.fromBufferAttribute(mt,ze),_vec4c.fromBufferAttribute(mt,ke),pushBarycoordInterpolatedValues(_vec4a,_vec4b,_vec4c,e,bt,Lt,E))}}function appendAttributesFromIndices(v,e,n,r,C,w,E,O=!1){appendAttributeFromIndex(v,r,C,w,E,O),appendAttributeFromIndex(O?n:e,r,C,w,E,O),appendAttributeFromIndex(O?e:n,r,C,w,E,O)}function getOperationAction(v,e,n=!1){switch(v){case ADDITION:if(e===FRONT_SIDE||e===COPLANAR_ALIGNED&&!n)return ADD_TRI;break;case SUBTRACTION:if(n){if(e===BACK_SIDE)return INVERT_TRI}else if(e===FRONT_SIDE||e===COPLANAR_OPPOSITE)return ADD_TRI;break;case REVERSE_SUBTRACTION:if(n){if(e===FRONT_SIDE||e===COPLANAR_OPPOSITE)return ADD_TRI}else if(e===BACK_SIDE)return INVERT_TRI;break;case DIFFERENCE:if(e===BACK_SIDE)return INVERT_TRI;if(e===FRONT_SIDE)return ADD_TRI;break;case INTERSECTION:if(e===BACK_SIDE||e===COPLANAR_ALIGNED&&!n)return ADD_TRI;break;case HOLLOW_SUBTRACTION:if(!n&&(e===FRONT_SIDE||e===COPLANAR_OPPOSITE))return ADD_TRI;break;case HOLLOW_INTERSECTION:if(!n&&(e===BACK_SIDE||e===COPLANAR_ALIGNED))return ADD_TRI;break;default:throw new Error(`Unrecognized CSG operation enum "${v}".`)}return SKIP_TRI}function pushBarycoordInterpolatedValues(v,e,n,r,C,w,E=!1,O=!1){const le=fe=>{w.push(fe.x),C>1&&w.push(fe.y),C>2&&w.push(fe.z),C>3&&w.push(fe.w)};_vec4_0.set(0,0,0,0).addScaledVector(v,r.a.x).addScaledVector(e,r.a.y).addScaledVector(n,r.a.z),_vec4_1.set(0,0,0,0).addScaledVector(v,r.b.x).addScaledVector(e,r.b.y).addScaledVector(n,r.b.z),_vec4_2.set(0,0,0,0).addScaledVector(v,r.c.x).addScaledVector(e,r.c.y).addScaledVector(n,r.c.z),O&&(_vec4_0.normalize(),_vec4_1.normalize(),_vec4_2.normalize()),le(_vec4_0),E?(le(_vec4_2),le(_vec4_1)):(le(_vec4_1),le(_vec4_2))}function appendAttributeFromIndex(v,e,n,r,C,w=!1){for(const E in C){const O=e[E],le=C[E];if(!(E in e))throw new Error(`CSG Operations: Attribute ${E} no available on geometry.`);const fe=O.itemSize;E==="position"?(_vec3.fromBufferAttribute(O,v).applyMatrix4(n),le.push(_vec3.x,_vec3.y,_vec3.z)):E==="normal"?(_vec3.fromBufferAttribute(O,v).applyNormalMatrix(r),w&&_vec3.multiplyScalar(-1),le.push(_vec3.x,_vec3.y,_vec3.z)):(le.push(O.getX(v)),fe>1&&le.push(O.getY(v)),fe>2&&le.push(O.getZ(v)),fe>3&&le.push(O.getW(v)))}}class TriangleIntersectData{constructor(e){this.triangle=new Triangle().copy(e),this.intersects={}}addTriangle(e,n){this.intersects[e]=new Triangle().copy(n)}getIntersectArray(){const e=[],{intersects:n}=this;for(const r in n)e.push(n[r]);return e}}class TriangleIntersectionSets{constructor(){this.data={}}addTriangleIntersection(e,n,r,C){const{data:w}=this;w[e]||(w[e]=new TriangleIntersectData(n)),w[e].addTriangle(r,C)}getTrianglesAsArray(e=null){const{data:n}=this,r=[];if(e!==null)e in n&&r.push(n[e].triangle);else for(const C in n)r.push(n[C].triangle);return r}getTriangleIndices(){return Object.keys(this.data).map(e=>parseInt(e))}getIntersectionIndices(e){const{data:n}=this;return n[e]?Object.keys(n[e].intersects).map(r=>parseInt(r)):[]}getIntersectionsAsArray(e=null,n=null){const{data:r}=this,C=new Set,w=[],E=O=>{if(r[O])if(n!==null)r[O].intersects[n]&&w.push(r[O].intersects[n]);else{const le=r[O].intersects;for(const fe in le)C.has(fe)||(C.add(fe),w.push(le[fe]))}};if(e!==null)E(e);else for(const O in r)E(O);return w}reset(){this.data={}}}class OperationDebugData{constructor(){this.enabled=!1,this.triangleIntersectsA=new TriangleIntersectionSets,this.triangleIntersectsB=new TriangleIntersectionSets,this.intersectionEdges=[]}addIntersectingTriangles(e,n,r,C){const{triangleIntersectsA:w,triangleIntersectsB:E}=this;w.addTriangleIntersection(e,n,r,C),E.addTriangleIntersection(r,C,e,n)}addEdge(e){this.intersectionEdges.push(e.clone())}reset(){this.triangleIntersectsA.reset(),this.triangleIntersectsB.reset(),this.intersectionEdges=[]}init(){this.enabled&&(this.reset(),setDebugContext(this))}complete(){this.enabled&&setDebugContext(null)}}const _matrix=new Matrix4,_normalMatrix=new Matrix3,_triA=new Triangle,_triB=new Triangle,_tri=new Triangle,_barycoordTri=new Triangle,_attr=[],_actions=[];function getFirstIdFromSet(v){for(const e of v)return e}function performOperation(v,e,n,r,C,w={}){const{useGroups:E=!0}=w,{aIntersections:O,bIntersections:le}=collectIntersectingTriangles(v,e),fe=[];let Se=null,ze;return ze=E?0:-1,performSplitTriangleOperations(v,e,O,n,!1,r,C,ze),performWholeTriangleOperations(v,e,O,n,!1,C,ze),n.findIndex(Fe=>Fe!==HOLLOW_INTERSECTION&&Fe!==HOLLOW_SUBTRACTION)!==-1&&(ze=E?v.geometry.groups.length||1:-1,performSplitTriangleOperations(e,v,le,n,!0,r,C,ze),performWholeTriangleOperations(e,v,le,n,!0,C,ze)),_attr.length=0,_actions.length=0,{groups:fe,materials:Se}}function performSplitTriangleOperations(v,e,n,r,C,w,E,O=0){const le=v.matrixWorld.determinant()<0;_matrix.copy(e.matrixWorld).invert().multiply(v.matrixWorld),_normalMatrix.getNormalMatrix(v.matrixWorld).multiplyScalar(le?-1:1);const fe=v.geometry.groupIndices,Se=v.geometry.index,ze=v.geometry.attributes.position,ke=e.geometry.boundsTree,Fe=e.geometry.index,mt=e.geometry.attributes.position,Lt=n.ids,bt=n.intersectionSet;for(let Ue=0,Gt=Lt.length;Ue<Gt;Ue++){const xt=Lt[Ue],Xt=O===-1?0:fe[xt]+O,Zt=3*xt,wt=Se.getX(Zt+0),Vt=Se.getX(Zt+1),Wt=Se.getX(Zt+2);_triA.a.fromBufferAttribute(ze,wt).applyMatrix4(_matrix),_triA.b.fromBufferAttribute(ze,Vt).applyMatrix4(_matrix),_triA.c.fromBufferAttribute(ze,Wt).applyMatrix4(_matrix),w.reset(),w.initialize(_triA);const It=bt[xt];for(let Ft=0,jt=It.length;Ft<jt;Ft++){const n0=3*It[Ft],s0=Fe.getX(n0+0),qt=Fe.getX(n0+1),Ht=Fe.getX(n0+2);_triB.a.fromBufferAttribute(mt,s0),_triB.b.fromBufferAttribute(mt,qt),_triB.c.fromBufferAttribute(mt,Ht),w.splitByTriangle(_triB)}const Nt=w.triangles;for(let Ft=0,jt=Nt.length;Ft<jt;Ft++){const n0=Nt[Ft],s0=w.coplanarTriangleUsed?getHitSideWithCoplanarCheck(n0,ke):getHitSide(n0,ke);_attr.length=0,_actions.length=0;for(let qt=0,Ht=r.length;qt<Ht;qt++){const $t=getOperationAction(r[qt],s0,C);$t!==SKIP_TRI&&(_actions.push($t),_attr.push(E[qt].getGroupAttrSet(Xt)))}if(_attr.length!==0){_triA.getBarycoord(n0.a,_barycoordTri.a),_triA.getBarycoord(n0.b,_barycoordTri.b),_triA.getBarycoord(n0.c,_barycoordTri.c);for(let qt=0,Ht=_attr.length;qt<Ht;qt++){const $t=_attr[qt],e0=_actions[qt]===INVERT_TRI;appendAttributeFromTriangle(xt,_barycoordTri,v.geometry,v.matrixWorld,_normalMatrix,$t,le!==e0)}}}}return Lt.length}function performWholeTriangleOperations(v,e,n,r,C,w,E=0){const O=v.matrixWorld.determinant()<0;_matrix.copy(e.matrixWorld).invert().multiply(v.matrixWorld),_normalMatrix.getNormalMatrix(v.matrixWorld).multiplyScalar(O?-1:1);const le=e.geometry.boundsTree,fe=v.geometry.groupIndices,Se=v.geometry.index,ze=v.geometry.attributes,ke=ze.position,Fe=[],mt=v.geometry.halfEdges,Lt=new Set,bt=getTriCount(v.geometry);for(let Ue=0,Gt=bt;Ue<Gt;Ue++)Ue in n.intersectionSet||Lt.add(Ue);for(;Lt.size>0;){const Ue=getFirstIdFromSet(Lt);Lt.delete(Ue),Fe.push(Ue);const Gt=3*Ue,xt=Se.getX(Gt+0),Xt=Se.getX(Gt+1),Zt=Se.getX(Gt+2);_tri.a.fromBufferAttribute(ke,xt).applyMatrix4(_matrix),_tri.b.fromBufferAttribute(ke,Xt).applyMatrix4(_matrix),_tri.c.fromBufferAttribute(ke,Zt).applyMatrix4(_matrix);const wt=getHitSide(_tri,le);_actions.length=0,_attr.length=0;for(let Vt=0,Wt=r.length;Vt<Wt;Vt++){const It=getOperationAction(r[Vt],wt,C);It!==SKIP_TRI&&(_actions.push(It),_attr.push(w[Vt]))}for(;Fe.length>0;){const Vt=Fe.pop();for(let Wt=0;Wt<3;Wt++){const It=mt.getSiblingTriangleIndex(Vt,Wt);It!==-1&&Lt.has(It)&&(Fe.push(It),Lt.delete(It))}if(_attr.length!==0){const Wt=3*Vt,It=Se.getX(Wt+0),Nt=Se.getX(Wt+1),Ft=Se.getX(Wt+2),jt=E===-1?0:fe[Vt]+E;if(_tri.a.fromBufferAttribute(ke,It),_tri.b.fromBufferAttribute(ke,Nt),_tri.c.fromBufferAttribute(ke,Ft),!isTriDegenerate(_tri))for(let n0=0,s0=_attr.length;n0<s0;n0++){const qt=_actions[n0],Ht=_attr[n0].getGroupAttrSet(jt),$t=qt===INVERT_TRI;appendAttributesFromIndices(It,Nt,Ft,ze,v.matrixWorld,_normalMatrix,Ht,$t!==O)}}}}}function joinGroups(v){for(let e=0;e<v.length-1;e++){const n=v[e],r=v[e+1];if(n.materialIndex===r.materialIndex){const C=n.start,w=r.start+r.count;r.start=C,r.count=w-C,v.splice(e,1),e--}}}function prepareAttributesData(v,e,n,r){n.clear();const C=v.attributes;for(let w=0,E=r.length;w<E;w++){const O=r[w],le=C[O];n.initializeArray(O,le.array.constructor,le.itemSize,le.normalized)}for(const w in n.attributes)r.includes(w)||n.delete(w);for(const w in e.attributes)r.includes(w)||(e.deleteAttribute(w),e.dispose())}function assignBufferData(v,e,n){let r=!1,C=-1;const w=v.attributes,E=e.groupAttributes[0];for(const le in E){const fe=e.getTotalLength(le),Se=e.getType(le),ze=e.getItemSize(le),ke=e.getNormalized(le);let Fe=w[le];(!Fe||Fe.array.length<fe)&&(Fe=new BufferAttribute(new Se(fe),ze,ke),v.setAttribute(le,Fe),r=!0);let mt=0;for(let Lt=0,bt=Math.min(n.length,e.groupCount);Lt<bt;Lt++){const Ue=n[Lt].index,{array:Gt,type:xt,length:Xt}=e.groupAttributes[Ue][le],Zt=new xt(Gt.buffer,0,Xt);Fe.array.set(Zt,mt),mt+=Zt.length}Fe.needsUpdate=!0,C=fe/Fe.itemSize}if(v.index){const le=v.index.array;if(le.length<C)v.index=null,r=!0;else for(let fe=0,Se=le.length;fe<Se;fe++)le[fe]=fe}let O=0;v.clearGroups();for(let le=0,fe=Math.min(n.length,e.groupCount);le<fe;le++){const{index:Se,materialIndex:ze}=n[le],ke=e.getCount(Se);ke!==0&&(v.addGroup(O,ke,ze),O+=ke)}v.setDrawRange(0,C),v.boundsTree=null,r&&v.dispose()}function getMaterialList(v,e){let n=e;return Array.isArray(e)||(n=[],v.forEach(r=>{n[r.materialIndex]=e})),n}class Evaluator{constructor(){this.triangleSplitter=new TriangleSplitter,this.attributeData=[],this.attributes=["position","uv","normal"],this.useGroups=!0,this.consolidateGroups=!0,this.debug=new OperationDebugData}getGroupRanges(e){return!this.useGroups||e.groups.length===0?[{start:0,count:1/0,materialIndex:0}]:e.groups.map(n=>O0({},n))}evaluate(e,n,r,C=new Brush){let w=!0;if(Array.isArray(r)||(r=[r]),Array.isArray(C)||(C=[C],w=!1),C.length!==r.length)throw new Error("Evaluator: operations and target array passed as different sizes.");e.prepareGeometry(),n.prepareGeometry();const{triangleSplitter:E,attributeData:O,attributes:le,useGroups:fe,consolidateGroups:Se,debug:ze}=this;for(;O.length<C.length;)O.push(new TypedAttributeData);C.forEach((Ue,Gt)=>{prepareAttributesData(e.geometry,Ue.geometry,O[Gt],le)}),ze.init(),performOperation(e,n,r,E,O,{useGroups:fe}),ze.complete();const ke=this.getGroupRanges(e.geometry),Fe=getMaterialList(ke,e.material),mt=this.getGroupRanges(n.geometry),Lt=getMaterialList(mt,n.material);mt.forEach(Ue=>Ue.materialIndex+=Fe.length);let bt=[...ke,...mt].map((Ue,Gt)=>Ui(O0({},Ue),{index:Gt}));if(fe){const Ue=[...Fe,...Lt];Se&&(bt=bt.map(xt=>{const Xt=Ue[xt.materialIndex];return xt.materialIndex=Ue.indexOf(Xt),xt}).sort((xt,Xt)=>xt.materialIndex-Xt.materialIndex));const Gt=[];for(let xt=0,Xt=Ue.length;xt<Xt;xt++){let Zt=!1;for(let wt=0,Vt=bt.length;wt<Vt;wt++){const Wt=bt[wt];Wt.materialIndex===xt&&(Zt=!0,Wt.materialIndex=Gt.length)}Zt&&Gt.push(Ue[xt])}C.forEach(xt=>{xt.material=Gt})}else bt=[{start:0,count:1/0,index:0,materialIndex:0}],C.forEach(Ue=>{Ue.material=Fe[0]});return C.forEach((Ue,Gt)=>{const xt=Ue.geometry;assignBufferData(xt,O[Gt],bt),Se&&joinGroups(xt.groups)}),w?C:C[0]}evaluateHierarchy(e,n=new Brush){e.updateMatrixWorld(!0);const r=(w,E)=>{const O=w.children;for(let le=0,fe=O.length;le<fe;le++){const Se=O[le];Se.isOperationGroup?r(Se,E):E(Se)}},C=w=>{const E=w.children;let O=!1;for(let fe=0,Se=E.length;fe<Se;fe++){const ze=E[fe];O=C(ze)||O}const le=w.isDirty();if(le&&w.markUpdated(),O&&!w.isOperationGroup){let fe;return r(w,Se=>{fe?fe=this.evaluate(fe,Se,Se.operation):fe=this.evaluate(w,Se,Se.operation)}),w._cachedGeometry=fe.geometry,w._cachedMaterials=fe.material,!0}else return O||le};return C(e),n.geometry=e._cachedGeometry,n.material=e._cachedMaterials,n}reset(){this.triangleSplitter.reset()}}class RectAreaLightTexturesLib{static init(){const e=[1,0,0,2e-5,1,0,0,503905e-9,1,0,0,.00201562,1,0,0,.00453516,1,0,0,.00806253,1,0,0,.0125978,1,0,0,.018141,1,0,0,.0246924,1,0,0,.0322525,1,0,0,.0408213,1,0,0,.0503999,1,0,0,.0609894,1,0,0,.0725906,1,0,0,.0852058,1,0,0,.0988363,1,0,0,.113484,1,0,0,.129153,1,0,0,.145839,1,0,0,.163548,1,0,0,.182266,1,0,0,.201942,1,0,0,.222314,1,0,0,.241906,1,0,0,.262314,1,0,0,.285754,1,0,0,.310159,1,0,0,.335426,1,0,0,.361341,1,0,0,.387445,1,0,0,.412784,1,0,0,.438197,1,0,0,.466966,1,0,0,.49559,1,0,0,.523448,1,0,0,.549938,1,0,0,.57979,1,0,0,.608746,1,0,0,.636185,1,0,0,.664748,1,0,0,.69313,1,0,0,.71966,1,0,0,.747662,1,0,0,.774023,1,0,0,.799775,1,0,0,.825274,1,0,0,.849156,1,0,0,.873248,1,0,0,.89532,1,0,0,.917565,1,0,0,.937863,1,0,0,.958139,1,0,0,.976563,1,0,0,.994658,1,0,0,1.0112,1,0,0,1.02712,1,0,0,1.04189,1,0,0,1.05568,1,0,0,1.06877,1,0,0,1.08058,1,0,0,1.09194,1,0,0,1.10191,1,0,0,1.11161,1,0,0,1.1199,1,0,0,1.12813,.999547,-448815e-12,.0224417,199902e-10,.999495,-113079e-10,.0224406,503651e-9,.999496,-452317e-10,.0224406,.00201461,.999496,-101772e-9,.0224406,.00453287,.999495,-180928e-9,.0224406,.00805845,.999497,-282702e-9,.0224406,.0125914,.999496,-407096e-9,.0224406,.0181319,.999498,-554114e-9,.0224406,.02468,.999499,-723768e-9,.0224406,.0322363,.999495,-916058e-9,.0224405,.0408009,.999499,-.00113101,.0224408,.050375,.999494,-.00136863,.0224405,.0609586,.999489,-.00162896,.0224401,.0725537,.999489,-.00191201,.0224414,.0851619,.999498,-.00221787,.0224413,.0987867,.999492,-.00254642,.0224409,.113426,.999507,-.00289779,.0224417,.129088,.999494,-.0032716,.0224386,.145767,.999546,-.0036673,.0224424,.163472,.999543,-.00408166,.0224387,.182182,.999499,-.00450056,.0224338,.201843,.999503,-.00483661,.0224203,.222198,.999546,-.00452928,.022315,.241714,.999508,-.00587403,.0224329,.262184,.999509,-.00638806,.0224271,.285609,.999501,-.00691028,.0224166,.309998,.999539,-.00741979,.0223989,.335262,.999454,-.00786282,.0223675,.361154,.999529,-.00811928,.0222828,.387224,.999503,-.00799941,.0221063,.41252,.999561,-.00952753,.0223057,.438006,.999557,-.0099134,.0222065,.466735,.999541,-.0100935,.0220402,.495332,.999562,-.00996821,.0218067,.523197,.999556,-.0105031,.0217096,.550223,.999561,-.0114191,.0217215,.579498,.999588,-.0111818,.0213357,.608416,.999633,-.0107725,.0208689,.635965,.999527,-.0121671,.0210149,.664476,.999508,-.0116005,.020431,.692786,.999568,-.0115604,.0199791,.719709,.999671,-.0121117,.0197415,.74737,.999688,-.0110769,.0188846,.773692,.99962,-.0122368,.0188452,.799534,.999823,-.0110325,.0178001,.825046,.999599,-.0114923,.0174221,.849075,.999619,-.0105923,.0164345,.872999,.999613,-.0105988,.0158227,.895371,.99964,-.00979861,.0148131,.917364,.99977,-.00967238,.0140721,.938002,.999726,-.00869175,.0129543,.957917,.99973,-.00866872,.0122329,.976557,.999773,-.00731956,.0108958,.994459,.999811,-.00756027,.0102715,1.01118,.999862,-.00583732,.00878781,1.02701,.999835,-.00631438,.00827529,1.04186,.999871,-.00450785,.00674583,1.05569,.999867,-.00486079,.00621041,1.06861,.999939,-.00322072,.00478301,1.08064,.999918,-.00318199,.00406395,1.09181,1.00003,-.00193348,.00280682,1.10207,.999928,-.00153729,.00198741,1.11152,.999933,-623666e-9,917714e-9,1.12009,1,-102387e-11,907581e-12,1.12813,.997866,-896716e-12,.0448334,199584e-10,.997987,-225945e-10,.0448389,502891e-9,.997987,-903781e-10,.0448388,.00201156,.997985,-203351e-9,.0448388,.00452602,.997986,-361514e-9,.0448388,.00804629,.997987,-56487e-8,.0448389,.0125724,.997988,-813423e-9,.0448389,.0181045,.997984,-.00110718,.0448387,.0246427,.997985,-.00144616,.0448388,.0321875,.997987,-.00183038,.044839,.0407392,.997983,-.00225987,.0448387,.0502986,.997991,-.00273467,.0448389,.0608667,.997984,-.00325481,.0448384,.0724444,.998002,-.00382043,.044839,.0850348,.997997,-.00443145,.0448396,.0986372,.998007,-.00508796,.0448397,.113255,.998008,-.00578985,.04484,.128891,.998003,-.00653683,.0448384,.145548,.997983,-.00732713,.0448358,.163221,.997985,-.00815454,.0448358,.181899,.998005,-.00898985,.0448286,.201533,.998026,-.00964404,.0447934,.221821,.998055,-.00922677,.044611,.241282,.99804,-.0117361,.0448245,.261791,.998048,-.0127628,.0448159,.285181,.998088,-.0138055,.0447996,.30954,.998058,-.0148206,.0447669,.334751,.998099,-.0156998,.044697,.36061,.998116,-.0161976,.0445122,.386603,.998195,-.015945,.0441711,.411844,.998168,-.0183947,.0444255,.43773,.998184,-.0197913,.0443809,.466009,.998251,-.0201426,.0440689,.494574,.998305,-.0198847,.0435632,.522405,.998273,-.0210577,.043414,.549967,.998254,-.0227901,.0433943,.578655,.998349,-.0223108,.0426529,.60758,.99843,-.0223088,.042,.635524,.998373,-.0241141,.0418987,.663621,.998425,-.0231446,.0408118,.691906,.998504,-.0233684,.0400565,.719339,.998443,-.0241652,.0394634,.74643,.99848,-.0228715,.0380002,.773086,.998569,-.023519,.0372322,.798988,.998619,-.0223108,.0356468,.824249,.998594,-.0223105,.034523,.848808,.998622,-.0213426,.0328887,.87227,.998669,-.0207912,.0314374,.895157,.998705,-.0198416,.0296925,.916769,.998786,-.0189168,.0279634,.937773,.998888,-.0178811,.0261597,.957431,.99906,-.0166845,.0242159,.976495,.999038,-.0155464,.0222638,.994169,.999237,-.0141349,.0201967,1.01112,.999378,-.0129324,.0181744,1.02692,.999433,-.0113192,.0159898,1.04174,.999439,-.0101244,.0140385,1.05559,.999614,-.00837456,.0117826,1.06852,.999722,-.00721769,.00983745,1.08069,.999817,-.00554067,.00769002,1.09176,.99983,-.00426961,.005782,1.10211,.999964,-.00273904,.00374503,1.11152,1.00001,-.00136739,.00187176,1.12031,.999946,393227e-10,-28919e-9,1.12804,.995847,-13435e-10,.0671785,19916e-9,.995464,-338387e-10,.0671527,501622e-9,.99547,-135355e-9,.0671531,.00200649,.995471,-30455e-8,.0671532,.00451461,.99547,-541423e-9,.0671531,.008026,.995471,-84598e-8,.0671531,.0125407,.99547,-.00121823,.0671531,.0180589,.99547,-.00165817,.0671531,.0245806,.995463,-.00216583,.0671526,.0321062,.995468,-.00274127,.0671527,.0406366,.995474,-.00338447,.0671534,.0501717,.995473,-.00409554,.0671533,.0607131,.995478,-.00487451,.0671531,.0722618,.995476,-.00572148,.0671532,.0848191,.995477,-.00663658,.0671539,.0983882,.995498,-.00761986,.0671541,.112972,.995509,-.00867094,.0671542,.128568,.995509,-.00978951,.0671531,.145183,.995503,-.0109725,.0671491,.162808,.995501,-.012211,.0671465,.181441,.99553,-.0134565,.0671371,.201015,.99555,-.014391,.0670831,.221206,.99558,-.014351,.0668883,.240813,.995577,-.0173997,.0671055,.261257,.995602,-.0191111,.0671178,.284467,.995623,-.0206705,.0670946,.308765,.995658,-.022184,.0670472,.333905,.995705,-.0234832,.0669417,.359677,.995719,-.0241933,.0666714,.385554,.995786,-.0243539,.066266,.410951,.995887,-.0271866,.0664367,.437163,.995944,-.0296012,.0664931,.464842,.996004,-.0301045,.0660105,.49332,.996128,-.0298311,.0652694,.521131,.996253,-.0316426,.0650739,.549167,.996244,-.0339043,.0649433,.57737,.996309,-.033329,.0638926,.606073,.996417,-.0338935,.0630849,.634527,.996372,-.0353104,.0625083,.66256,.996542,-.0348942,.0611986,.690516,.996568,-.0351614,.060069,.718317,.996711,-.0354317,.0588522,.74528,.996671,-.0349513,.0571902,.772061,.996865,-.0345622,.0555321,.798089,.996802,-.0342566,.0537816,.823178,.996992,-.0330862,.0516095,.847949,.996944,-.0324666,.0495537,.871431,.997146,-.0309544,.0470302,.894357,.997189,-.0299372,.0446043,.916142,.997471,-.0281389,.0418812,.937193,.997515,-.0268702,.0391823,.957,.997812,-.0247166,.0361338,.975936,.998027,-.0233525,.0333945,.99391,.998233,-.0209839,.0301917,1.01075,.998481,-.0194309,.027271,1.02669,.998859,-.0169728,.0240162,1.04173,.99894,-.0152322,.0210517,1.05551,.999132,-.0127497,.0178632,1.06856,.999369,-.0108282,.014787,1.08054,.999549,-.00845886,.0116185,1.09185,.999805,-.0063937,.00867209,1.10207,.99985,-.00414582,.00566823,1.1117,.999912,-.00207443,.00277562,1.12022,1.00001,870226e-10,-53766e-9,1.12832,.991943,-178672e-11,.0893382,198384e-10,.991952,-450183e-10,.089339,499849e-9,.991956,-180074e-9,.0893394,.0019994,.991955,-405167e-9,.0893393,.00449867,.991953,-720298e-9,.0893391,.00799764,.991955,-.00112548,.0893393,.0124964,.991957,-.0016207,.0893395,.0179951,.991958,-.00220601,.0893396,.0244939,.991947,-.00288137,.0893385,.0319929,.991962,-.00364693,.0893399,.0404933,.991965,-.00450264,.0893399,.049995,.99198,-.00544862,.0893411,.0604995,.99197,-.00648491,.0893397,.0720074,.991976,-.00761164,.089341,.0845207,.99198,-.00882891,.0893405,.0980413,.991982,-.0101367,.0893396,.112571,.992008,-.011535,.0893415,.128115,.992026,-.0130228,.0893414,.144672,.992064,-.0145966,.0893418,.162241,.992041,-.0162421,.0893359,.180801,.992086,-.0178888,.0893214,.200302,.992157,-.0190368,.0892401,.220332,.992181,-.0195584,.0890525,.240144,.992175,-.0227257,.0892153,.260728,.99221,-.0254195,.089304,.283473,.99222,-.0274883,.0892703,.307673,.992317,-.0294905,.0892027,.332729,.992374,-.0311861,.0890577,.358387,.992505,-.0320656,.0886994,.384102,.992568,-.0329715,.0883198,.409767,.992675,-.036006,.0883602,.436145,.992746,-.0392897,.0884591,.463217,.992873,-.0399337,.0878287,.491557,.992934,-.040231,.0870108,.519516,.993091,-.0422013,.0865857,.547741,.993259,-.0443503,.0861937,.575792,.993455,-.0446368,.0851187,.604233,.993497,-.0454299,.0840576,.632925,.993694,-.0463296,.0829671,.660985,.993718,-.0470619,.0817185,.688714,.993973,-.0468838,.0800294,.716743,.994207,-.046705,.0781286,.74377,.994168,-.0469698,.0763337,.77042,.9945,-.0456816,.0738184,.796659,.994356,-.0455518,.0715545,.821868,.994747,-.0439488,.0686085,.846572,.994937,-.0430056,.065869,.870435,.995142,-.0413414,.0626446,.893272,.995451,-.0396521,.05929,.915376,.995445,-.0378453,.0558503,.936196,.995967,-.0355219,.0520949,.956376,.996094,-.0335146,.048377,.975327,.996622,-.030682,.0442575,.993471,.996938,-.0285504,.0404693,1.01052,.997383,-.0253399,.0360903,1.02637,.997714,-.0231651,.0322176,1.04139,.998249,-.0198138,.0278433,1.05542,.998596,-.0174337,.0238759,1.06846,.998946,-.0141349,.0195944,1.08056,.99928,-.0115603,.0156279,1.09181,.999507,-.00839065,.0114607,1.10213,.999697,-.005666,.00763325,1.11169,.999869,-.00269902,.00364946,1.12042,1.00001,623836e-10,-319288e-10,1.12832,.987221,-222675e-11,.111332,197456e-10,.98739,-561116e-10,.111351,497563e-9,.987448,-224453e-9,.111357,.00199031,.987441,-505019e-9,.111357,.0044782,.987442,-897816e-9,.111357,.00796129,.987442,-.00140284,.111357,.0124396,.987444,-.00202012,.111357,.0179132,.987442,-.00274964,.111357,.0243824,.987446,-.00359147,.111357,.0318474,.987435,-.00454562,.111356,.0403086,.987461,-.00561225,.111358,.0497678,.987458,-.00679125,.111358,.0602239,.987443,-.0080828,.111356,.0716792,.987476,-.0094872,.111358,.0841364,.98749,-.0110044,.111361,.097597,.987508,-.0126344,.111362,.112062,.987494,-.0143767,.111357,.127533,.987526,-.0162307,.111359,.144015,.987558,-.0181912,.111361,.161502,.987602,-.0202393,.111355,.179979,.987692,-.022273,.111346,.199386,.987702,-.0235306,.111215,.219183,.987789,-.0247628,.111061,.239202,.987776,-.0280668,.111171,.259957,.987856,-.0316751,.111327,.282198,.987912,-.0342468,.111282,.306294,.988,-.0367205,.111198,.331219,.988055,-.0387766,.110994,.356708,.988241,-.0397722,.110547,.382234,.988399,-.0416076,.110198,.408227,.988539,-.0448192,.110137,.434662,.988661,-.0483793,.110143,.461442,.988967,-.0495895,.109453,.489318,.989073,-.0506797,.108628,.517516,.989274,-.0526953,.108003,.545844,.989528,-.054578,.107255,.573823,.989709,-.0561503,.106294,.601944,.989991,-.056866,.104896,.630855,.990392,-.0572914,.103336,.658925,.990374,-.0586224,.10189,.686661,.990747,-.0584764,.099783,.714548,.991041,-.0582662,.0974309,.74186,.991236,-.0584118,.0951678,.768422,.991585,-.0573055,.0921581,.794817,.991984,-.0564241,.0891167,.820336,.9921,-.0553608,.085805,.84493,.992749,-.0533816,.0820354,.868961,.99288,-.0518661,.0782181,.891931,.993511,-.0492492,.0738935,.914186,.993617,-.0471956,.0696402,.93532,.99411,-.044216,.0649659,.95543,.994595,-.0416654,.0603177,.974685,.994976,-.0384314,.0553493,.992807,.995579,-.0353491,.0503942,1.00996,.996069,-.0319787,.0452123,1.02606,.996718,-.028472,.0400112,1.04114,.997173,-.0250789,.0349456,1.05517,.997818,-.0213326,.029653,1.0683,.998318,-.0178509,.024549,1.0805,.998853,-.0141118,.0194197,1.09177,.999218,-.0105914,.0143869,1.1022,.999594,-.00693474,.00943517,1.11175,.99975,-.00340478,.00464051,1.12056,1.00001,109172e-9,-112821e-9,1.12853,.983383,-266524e-11,.133358,196534e-10,.981942,-671009e-10,.133162,494804e-9,.981946,-268405e-9,.133163,.00197923,.981944,-603912e-9,.133163,.00445326,.981941,-.00107362,.133162,.00791693,.981946,-.00167755,.133163,.0123703,.981944,-.00241569,.133162,.0178135,.981945,-.00328807,.133163,.0242466,.981945,-.00429472,.133162,.03167,.981955,-.00543573,.133164,.0400846,.981951,-.00671105,.133163,.0494901,.981968,-.00812092,.133165,.0598886,.981979,-.00966541,.133166,.0712811,.981996,-.0113446,.133168,.083669,.982014,-.0131585,.133169,.0970533,.982011,-.0151073,.133167,.111438,.982062,-.0171906,.133172,.126826,.9821,-.0194067,.133175,.143215,.982149,-.0217502,.133176,.160609,.982163,-.0241945,.133173,.178981,.982247,-.0265907,.133148,.198249,.982291,-.027916,.132974,.217795,.982396,-.0299663,.132868,.238042,.982456,-.0334544,.132934,.258901,.982499,-.0378636,.133137,.280639,.982617,-.0409274,.133085,.304604,.98274,-.0438523,.132985,.329376,.982944,-.0462288,.132728,.354697,.98308,-.0475995,.132228,.380102,.983391,-.0501901,.131924,.406256,.983514,-.0535899,.131737,.432735,.98373,-.0571858,.131567,.459359,.984056,-.0592353,.130932,.486637,.984234,-.0610488,.130092,.51509,.984748,-.0630758,.12923,.543461,.985073,-.0647398,.128174,.571376,.985195,-.0671941,.127133,.599414,.985734,-.0681345,.125576,.628134,.986241,-.0686089,.123639,.656399,.986356,-.0698511,.121834,.684258,.986894,-.0700931,.119454,.711818,.987382,-.0698321,.116718,.739511,.988109,-.0693975,.113699,.766267,.988363,-.0689584,.110454,.792456,.989112,-.0672353,.106602,.81813,.989241,-.0662034,.10267,.842889,.990333,-.0638938,.0981381,.867204,.990591,-.0618534,.0935388,.89038,.991106,-.0593117,.088553,.912576,.991919,-.0562676,.0832187,.934118,.992111,-.0534085,.0778302,.954254,.992997,-.0495459,.0720453,.973722,.993317,-.0463707,.0663458,.991949,.994133,-.0421245,.0601883,1.00936,.994705,-.0384977,.0542501,1.02559,.995495,-.0340956,.0479862,1.04083,.996206,-.030105,.041887,1.05497,.996971,-.0256095,.0355355,1.06824,.997796,-.0213932,.0293655,1.08056,.998272,-.0169612,.0232926,1.09182,.998857,-.0126756,.0172786,1.10219,.99939,-.00832486,.0113156,1.11192,.999752,-.00410826,.00557892,1.12075,1,150957e-9,-119101e-9,1.12885,.975169,-309397e-11,.154669,195073e-10,.975439,-779608e-10,.154712,491534e-9,.975464,-311847e-9,.154716,.00196617,.975464,-701656e-9,.154716,.00442387,.975462,-.0012474,.154715,.0078647,.975461,-.00194906,.154715,.0122886,.975464,-.00280667,.154715,.0176959,.975468,-.00382025,.154716,.0240867,.975471,-.00498985,.154716,.0314612,.975472,-.00631541,.154717,.0398199,.975486,-.00779719,.154718,.0491639,.975489,-.00943505,.154718,.0594932,.975509,-.0112295,.154721,.0708113,.97554,-.0131802,.154724,.0831176,.975557,-.0152876,.154726,.096415,.975585,-.0175512,.154728,.110705,.975605,-.0199713,.154729,.125992,.975645,-.0225447,.154729,.142272,.975711,-.0252649,.154735,.159549,.975788,-.0280986,.154736,.177805,.975872,-.0308232,.154704,.196911,.975968,-.0324841,.154525,.216324,.976063,-.0351281,.154432,.236628,.976157,-.0388618,.15446,.257539,.976204,-.0437704,.154665,.278975,.976358,-.047514,.154652,.302606,.976571,-.0508638,.154535,.327204,.976725,-.0534995,.154221,.352276,.977013,-.0555547,.153737,.377696,.977294,-.0586728,.153403,.403855,.977602,-.0622715,.15312,.430333,.977932,-.0658166,.152755,.456855,.978241,-.0689877,.152233,.483668,.978602,-.0712805,.15132,.512097,.979234,-.0732775,.150235,.540455,.97977,-.075163,.148978,.568486,.979995,-.0778026,.147755,.596524,.98078,-.0791854,.146019,.624825,.981628,-.0799666,.143906,.653403,.982067,-.0808532,.141561,.681445,.98271,-.0816024,.139025,.708918,.983734,-.0812511,.135764,.736594,.98431,-.0806201,.132152,.763576,.985071,-.0801605,.12846,.789797,.98618,-.0784208,.124084,.815804,.986886,-.0766643,.1193,.840869,.987485,-.0747744,.114236,.864952,.988431,-.0716701,.108654,.888431,.988886,-.0691609,.102994,.910963,.990024,-.0654048,.0967278,.932629,.990401,-.0619765,.090384,.95313,.991093,-.0579296,.0837885,.972587,.992018,-.0536576,.0770171,.991184,.992536,-.0493719,.0701486,1.00863,.993421,-.0444813,.062953,1.02494,.993928,-.040008,.0560455,1.04017,.994994,-.0347982,.04856,1.05463,.995866,-.0301017,.0416152,1.06807,.996916,-.0248225,.0342597,1.08039,.997766,-.0199229,.0271668,1.09177,.998479,-.0147422,.0201387,1.10235,.99921,-.00980173,.0131944,1.11206,.999652,-.0047426,.00640712,1.12104,.999998,891673e-10,-10379e-8,1.12906,.967868,-351885e-11,.175947,193569e-10,.968001,-886733e-10,.175972,487782e-9,.96801,-354697e-9,.175973,.00195115,.968012,-798063e-9,.175974,.00439006,.968011,-.00141879,.175973,.00780461,.968011,-.00221686,.175973,.0121948,.968016,-.00319231,.175974,.0175607,.968019,-.00434515,.175974,.0239027,.968018,-.00567538,.175974,.0312208,.968033,-.00718308,.175977,.0395158,.968049,-.00886836,.175979,.0487885,.968047,-.0107312,.175978,.0590394,.968072,-.0127719,.175981,.0702705,.968108,-.0149905,.175986,.0824836,.968112,-.0173866,.175985,.0956783,.968173,-.0199611,.175993,.109862,.96827,-.0227128,.176008,.125033,.968292,-.025639,.17601,.141193,.968339,-.0287299,.176007,.158336,.968389,-.0319399,.176001,.176441,.968501,-.034941,.175962,.195359,.968646,-.0370812,.175793,.214686,.968789,-.0402329,.175708,.234973,.96886,-.0442601,.1757,.255871,.969013,-.049398,.175876,.277238,.969242,-.0539932,.17594,.300326,.969419,-.0577299,.175781,.324702,.969763,-.0605643,.175432,.349527,.970093,-.0634488,.174992,.374976,.970361,-.0670589,.174611,.401097,.970825,-.0708246,.174226,.427496,.971214,-.0742871,.173684,.453858,.971622,-.0782608,.173186,.480637,.972175,-.0813151,.172288,.508655,.972944,-.0832678,.170979,.536973,.973595,-.0855964,.169573,.565138,.974345,-.0882163,.168152,.593222,.975233,-.0901671,.166314,.621201,.976239,-.0912111,.163931,.649919,.977289,-.0916959,.161106,.678011,.978076,-.0927061,.158272,.705717,.979533,-.0925562,.15475,.733228,.980335,-.0918159,.150638,.760454,.981808,-.0908508,.146201,.786918,.983061,-.0896172,.141386,.812953,.984148,-.0871588,.135837,.838281,.985047,-.0850624,.130135,.862594,.986219,-.0818541,.123882,.88633,.987043,-.0784523,.117126,.908952,.988107,-.0749601,.110341,.930744,.988955,-.0703548,.102885,.951728,.989426,-.0662798,.0954167,.971166,.990421,-.0610834,.0876331,.989984,.991032,-.0562936,.0797785,1.00765,.992041,-.0508154,.0718166,1.02434,.992794,-.0454045,.0637125,1.03976,.993691,-.0398194,.0555338,1.05418,.994778,-.0341482,.0473388,1.06772,.995915,-.028428,.0391016,1.08028,.997109,-.022642,.0309953,1.09185,.998095,-.0168738,.0230288,1.10247,.998985,-.0111274,.0150722,1.11229,.999581,-.00543881,.00740605,1.12131,1.00003,162239e-9,-105549e-9,1.12946,.959505,-393734e-11,.196876,191893e-10,.959599,-992157e-10,.196895,483544e-9,.959641,-396868e-9,.196903,.0019342,.959599,-892948e-9,.196895,.00435193,.959603,-.00158747,.196896,.0077368,.959604,-.00248042,.196896,.0120888,.959605,-.00357184,.196896,.0174082,.959605,-.00486169,.196896,.0236949,.959613,-.00635008,.196897,.0309497,.959619,-.00803696,.196898,.0391725,.959636,-.00992255,.196901,.0483649,.959634,-.0120067,.1969,.0585266,.959675,-.0142898,.196906,.0696609,.959712,-.0167717,.196911,.0817678,.959752,-.0194524,.196918,.0948494,.959807,-.0223321,.196925,.10891,.959828,-.0254091,.196924,.123947,.959906,-.0286815,.196934,.139968,.960005,-.0321371,.196944,.156968,.960071,-.0357114,.196936,.17491,.960237,-.0389064,.196882,.193597,.960367,-.041623,.196731,.21285,.960562,-.0452655,.196654,.233075,.960735,-.0496207,.196643,.253941,.960913,-.0549379,.196774,.275278,.961121,-.0603414,.196893,.297733,.96139,-.0644244,.196717,.321877,.961818,-.067556,.196314,.346476,.962175,-.0712709,.195917,.371907,.96255,-.0752848,.1955,.397916,.963164,-.0792073,.195026,.424229,.963782,-.0828225,.194424,.450637,.964306,-.0873119,.193831,.477288,.964923,-.0911051,.192973,.504716,.966048,-.093251,.19151,.533053,.967024,-.0958983,.190013,.561366,.968038,-.09835,.188253,.589464,.969152,-.100754,.186257,.617433,.970557,-.102239,.183775,.645801,.972104,-.102767,.180645,.674278,.973203,-.103492,.177242,.702004,.975123,-.103793,.17345,.729529,.97641,-.102839,.168886,.756712,.978313,-.101687,.163892,.783801,.980036,-.100314,.158439,.809671,.981339,-.097836,.152211,.835402,.982794,-.0950006,.145679,.860081,.984123,-.0920994,.138949,.883757,.984918,-.0878641,.131283,.90685,.985999,-.083939,.123464,.928786,.987151,-.0791234,.115324,.94983,.987827,-.0739332,.106854,.96962,.988806,-.0688088,.0982691,.98861,.989588,-.0628962,.0893456,1.00667,.990438,-.0573146,.0805392,1.02344,.991506,-.0509433,.0713725,1.03933,.992492,-.0448724,.0623732,1.05378,.993663,-.0383497,.0530838,1.06747,.994956,-.0319593,.0439512,1.08007,.99634,-.025401,.0347803,1.09182,.99761,-.0189687,.0257954,1.1025,.99863,-.0124441,.0169893,1.11247,.99947,-.00614003,.00829498,1.12151,1.00008,216624e-9,-146107e-9,1.12993,.950129,-434955e-11,.217413,190081e-10,.950264,-10957e-8,.217444,47884e-8,.9503,-438299e-9,.217451,.00191543,.950246,-986124e-9,.21744,.00430951,.950246,-.00175311,.21744,.00766137,.950245,-.00273923,.21744,.011971,.950253,-.00394453,.217441,.0172385,.950258,-.00536897,.217442,.0234641,.950267,-.00701262,.217444,.030648,.950277,-.00887551,.217446,.038791,.950284,-.0109576,.217446,.0478931,.950312,-.0132591,.217451,.0579568,.950334,-.01578,.217454,.0689821,.950378,-.0185204,.217462,.0809714,.950417,-.0214803,.217467,.0939265,.950488,-.0246594,.217479,.10785,.950534,-.0280565,.217483,.122743,.950633,-.0316685,.217498,.138611,.950698,-.0354787,.217499,.155442,.950844,-.0394003,.217507,.173208,.950999,-.0426812,.217419,.191605,.951221,-.0461302,.217317,.21084,.951412,-.0502131,.217238,.230945,.951623,-.0549183,.21722,.251745,.951867,-.0604493,.217306,.273001,.952069,-.0665189,.217466,.294874,.952459,-.0709179,.217266,.318732,.952996,-.0746112,.216891,.34318,.953425,-.0789252,.216503,.36849,.953885,-.0833293,.216042,.394373,.954617,-.087371,.215469,.420505,.955429,-.0914054,.214802,.446907,.956068,-.0961671,.214146,.473522,.957094,-.10048,.213286,.50052,.958372,-.103248,.211796,.528715,.959654,-.106033,.21016,.557065,.961305,-.108384,.208149,.585286,.962785,-.111122,.206024,.613334,.964848,-.112981,.203442,.641334,.966498,-.113717,.19996,.669955,.968678,-.114121,.196105,.698094,.970489,-.114524,.191906,.725643,.972903,-.113792,.186963,.752856,.974701,-.112406,.181343,.780013,.976718,-.110685,.175185,.806268,.978905,-.108468,.168535,.832073,.980267,-.105061,.161106,.857149,.981967,-.101675,.153387,.881145,.983063,-.0974492,.145199,.904255,.984432,-.0925815,.136527,.926686,.985734,-.0877983,.127584,.947901,.986228,-.081884,.118125,.968111,.98719,-.0761208,.108594,.98719,.988228,-.0698196,.0989996,1.00559,.989046,-.0632739,.0890074,1.02246,.990242,-.056522,.0790832,1.03841,.991252,-.0495272,.0689182,1.05347,.992542,-.0425373,.0588592,1.06724,.994096,-.0353198,.0486833,1.08009,.995593,-.028235,.0385977,1.09177,.99711,-.0209511,.0286457,1.10274,.998263,-.0139289,.0188497,1.11262,.999254,-.0067359,.009208,1.12191,.999967,141846e-9,-657764e-10,1.13024,.935608,-474692e-11,.236466,187817e-10,.93996,-11971e-8,.237568,473646e-9,.939959,-478845e-9,.237567,.0018946,.939954,-.0010774,.237566,.00426284,.939956,-.00191538,.237566,.00757842,.939954,-.00299277,.237566,.0118413,.93996,-.00430961,.237567,.0170518,.939969,-.00586589,.237569,.02321,.939982,-.00766166,.237572,.0303164,.939987,-.00969686,.237572,.0383711,.939997,-.0119715,.237574,.0473751,.940031,-.0144858,.237581,.0573298,.940073,-.0172399,.237589,.0682366,.94012,-.0202335,.237598,.080097,.940162,-.0234663,.237604,.0929116,.940237,-.0269387,.237615,.106686,.940328,-.0306489,.237632,.121421,.940419,-.0345917,.237645,.137115,.940522,-.0387481,.237654,.153766,.940702,-.0429906,.237661,.17133,.940871,-.0465089,.237561,.189502,.941103,-.050531,.23748,.208616,.941369,-.0550657,.237423,.228595,.941641,-.0601337,.237399,.249287,.941903,-.0658804,.237443,.270467,.942224,-.0722674,.237597,.292024,.942633,-.0771788,.237419,.315272,.943172,-.0815623,.237068,.339579,.943691,-.0863973,.236682,.364717,.944382,-.0911536,.236213,.390435,.945392,-.0952967,.235562,.416425,.946185,-.0998948,.234832,.442772,.947212,-.104796,.234114,.469347,.948778,-.10928,.233222,.496162,.950149,-.113081,.231845,.523978,.951989,-.115893,.230005,.552295,.953921,-.11846,.227862,.580569,.955624,-.12115,.225439,.608698,.958234,-.123373,.222635,.636696,.960593,-.124519,.219093,.665208,.963201,-.124736,.214749,.693557,.965642,-.125012,.210059,.721334,.968765,-.124661,.204935,.748613,.971753,-.122996,.198661,.776224,.973751,-.120998,.191823,.802461,.976709,-.118583,.184359,.828399,.977956,-.115102,.176437,.853693,.979672,-.111077,.167681,.877962,.981816,-.10688,.158872,.901564,.98238,-.101469,.149398,.924057,.983964,-.0960013,.139436,.945751,.984933,-.0899626,.12943,.966272,.985694,-.0832973,.11894,.985741,.986822,-.0767082,.108349,1.00407,.987725,-.0693614,.0976026,1.02154,.98877,-.06211,.086652,1.03757,.990129,-.0544143,.0756182,1.05296,.991337,-.046744,.0645753,1.06683,.992978,-.0387931,.0534683,1.0798,.994676,-.030973,.0424137,1.09181,.99645,-.0230311,.0314035,1.10286,.997967,-.0152065,.0206869,1.11291,.99922,-.00744837,.010155,1.12237,1.00002,240209e-9,-752767e-10,1.13089,.922948,-515351e-11,.255626,186069e-10,.928785,-129623e-9,.257244,468009e-9,.928761,-51849e-8,.257237,.00187202,.928751,-.0011666,.257235,.00421204,.928751,-.00207395,.257234,.0074881,.928754,-.00324055,.257235,.0117002,.92876,-.00466639,.257236,.0168486,.928763,-.00635149,.257237,.0229334,.928774,-.00829584,.257239,.029955,.928791,-.0104995,.257243,.0379139,.928804,-.0129623,.257245,.0468108,.928847,-.0156846,.257255,.0566473,.92889,-.0186661,.257263,.0674246,.928924,-.0219067,.257268,.0791433,.928989,-.0254066,.257282,.0918076,.92909,-.0291651,.257301,.105419,.92918,-.0331801,.257316,.119978,.92929,-.0374469,.257332,.135491,.929453,-.041939,.257357,.151948,.929586,-.0464612,.257347,.169275,.929858,-.0503426,.257269,.187257,.930125,-.0548409,.257199,.206204,.930403,-.0598063,.257149,.22601,.930726,-.0652437,.257122,.246561,.931098,-.0712376,.257153,.267618,.931396,-.0777506,.257237,.288993,.931947,-.0832374,.257124,.311527,.932579,-.0883955,.25683,.335697,.933194,-.0937037,.256444,.360634,.934013,-.0987292,.255939,.386126,.935307,-.103215,.255282,.412018,.936374,-.108234,.254538,.438292,.93776,-.113234,.253728,.464805,.939599,-.118013,.25275,.491464,.941036,-.122661,.251404,.518751,.94337,-.125477,.249435,.547133,.945318,-.128374,.247113,.575456,.947995,-.130996,.244441,.60372,.950818,-.133438,.241352,.63174,.954378,-.135004,.237849,.659971,.957151,-.135313,.233188,.688478,.960743,-.13521,.228001,.716767,.964352,-.135007,.222249,.744349,.967273,-.133523,.21542,.771786,.969767,-.131155,.208039,.798639,.973195,-.128492,.200076,.824774,.975557,-.125094,.191451,.850222,.977692,-.120578,.18184,.874761,.98026,-.115882,.172102,.898497,.981394,-.110372,.161859,.921636,.982386,-.10415,.15108,.943467,.983783,-.0978128,.140407,.964045,.98422,-.0906171,.129058,.98398,.985447,-.0832921,.117614,1.00276,.986682,-.0754412,.10585,1.02047,.987326,-.0673885,.0940943,1.03678,.988707,-.0592565,.0822093,1.05218,.990185,-.050717,.070192,1.06652,.991866,-.0423486,.0582081,1.07965,.993897,-.0336118,.0460985,1.09188,.995841,-.0252178,.0342737,1.10307,.997605,-.0164893,.0224829,1.11324,.999037,-.00817112,.0110647,1.12262,1.00003,291686e-9,-168673e-9,1.13139,.915304,-552675e-11,.275999,183285e-10,.91668,-139285e-9,.276414,461914e-9,.916664,-55713e-8,.276409,.00184763,.916653,-.00125354,.276406,.00415715,.916651,-.00222851,.276405,.00739053,.916655,-.00348205,.276406,.0115478,.916653,-.00501414,.276405,.0166291,.916667,-.00682478,.276409,.0226346,.91668,-.00891398,.276412,.0295648,.91669,-.0112817,.276413,.0374199,.916727,-.013928,.276422,.0462016,.916759,-.0168528,.276429,.0559101,.916793,-.0200558,.276436,.0665466,.916849,-.0235373,.276448,.0781139,.916964,-.0272973,.276474,.0906156,.917047,-.0313344,.276491,.104051,.917152,-.0356465,.276511,.118424,.917286,-.0402271,.276533,.133736,.917469,-.0450408,.276564,.149978,.917686,-.0497872,.276563,.167057,.917953,-.0540937,.276493,.184846,.918228,-.0590709,.276437,.203614,.918572,-.0644277,.276398,.223212,.918918,-.0702326,.276362,.243584,.919356,-.076484,.276383,.264465,.919842,-.0830808,.276434,.285701,.920451,-.0892972,.276407,.307559,.921113,-.095016,.276128,.331501,.921881,-.100771,.275754,.356207,.923027,-.106029,.275254,.381477,.924364,-.111029,.274595,.40722,.925818,-.116345,.273841,.433385,.92746,-.121424,.272913,.459848,.929167,-.12657,.271837,.486493,.931426,-.131581,.270575,.513432,.934001,-.135038,.268512,.541502,.936296,-.138039,.266135,.569658,.939985,-.140687,.263271,.598375,.943516,-.143247,.260058,.626563,.94782,-.145135,.256138,.654711,.951023,-.145733,.251154,.683285,.955338,-.145554,.245562,.711831,.959629,-.145008,.239265,.739573,.963123,-.144003,.232064,.767027,.966742,-.141289,.224036,.794359,.969991,-.138247,.215305,.820361,.973403,-.134786,.206051,.846548,.975317,-.129966,.195914,.871541,.977647,-.12471,.185184,.895313,.980137,-.119086,.174161,.918398,.981031,-.112297,.162792,.940679,.982037,-.105372,.150952,.961991,.983164,-.097821,.138921,.981913,.983757,-.0897245,.126611,1.00109,.985036,-.0815974,.114228,1.01902,.986289,-.0727725,.101389,1.03604,.987329,-.0639323,.0886476,1.05149,.989193,-.0548109,.0756837,1.06619,.990716,-.045687,.0627581,1.07948,.992769,-.0364315,.0498337,1.09172,.99524,-.0271761,.0370305,1.1033,.997154,-.0179609,.0243959,1.11353,.998845,-.00878063,.0119567,1.12319,1.00002,259038e-9,-108146e-9,1.13177,.903945,-591681e-11,.295126,181226e-10,.903668,-148672e-9,.295037,455367e-9,.903677,-594683e-9,.29504,.00182145,.903673,-.00133805,.295039,.00409831,.903666,-.00237872,.295036,.00728584,.903668,-.00371676,.295037,.0113842,.903679,-.00535212,.29504,.0163936,.903684,-.00728479,.295041,.0223141,.903698,-.00951473,.295044,.0291462,.903718,-.0120419,.295049,.0368904,.903754,-.0148664,.295058,.0455477,.903801,-.017988,.29507,.0551194,.903851,-.0214064,.295082,.0656058,.903921,-.0251219,.295097,.0770109,.904002,-.0291337,.295116,.0893354,.904111,-.033441,.29514,.102583,.904246,-.0380415,.295169,.116755,.904408,-.0429258,.295202,.131853,.904637,-.0480468,.295245,.147869,.904821,-.0529208,.295214,.164658,.905163,-.0577748,.295185,.182274,.905469,-.0631763,.295143,.200828,.905851,-.068917,.295112,.2202,.906322,-.0750861,.295104,.240372,.906761,-.0815855,.295086,.261082,.90735,-.0882138,.295095,.282123,.908087,-.095082,.295139,.303563,.908826,-.101488,.29492,.327028,.909832,-.107577,.294577,.351464,.911393,-.113033,.294115,.376497,.912804,-.118629,.293446,.402115,.914081,-.124232,.292581,.428111,.91637,-.129399,.29166,.454442,.91814,-.134892,.290422,.481024,.921179,-.140069,.289194,.507924,.924544,-.144431,.287421,.535557,.927995,-.147498,.284867,.563984,.931556,-.150197,.281722,.5923,.935777,-.152711,.278207,.620832,.940869,-.154836,.274148,.649069,.945994,-.155912,.269057,.677746,.949634,-.155641,.262799,.706293,.955032,-.154809,.256097,.734278,.95917,-.153678,.248618,.761751,.962931,-.151253,.239794,.789032,.966045,-.147625,.230281,.815422,.96971,-.143964,.220382,.841787,.972747,-.139464,.209846,.867446,.975545,-.133459,.198189,.892004,.978381,-.127424,.186362,.915458,.979935,-.120506,.173964,.937948,.980948,-.11282,.161429,.959732,.982234,-.104941,.148557,.980118,.982767,-.0962905,.135508,.999463,.983544,-.0873625,.122338,1.01756,.984965,-.0783447,.108669,1.03492,.986233,-.0684798,.0949911,1.05087,.987796,-.0590867,.0811386,1.0656,.989885,-.0489145,.0673099,1.0794,.991821,-.0391,.0535665,1.09174,.99448,-.029087,.0397529,1.10341,.996769,-.019114,.0261463,1.11383,.998641,-.00947007,.0128731,1.1237,.999978,446316e-9,-169093e-9,1.13253,.888362,-627064e-11,.312578,178215e-10,.889988,-157791e-9,.313148,448451e-9,.889825,-631076e-9,.313092,.00179356,.88984,-.00141994,.313097,.00403554,.889828,-.0025243,.313092,.00717429,.889831,-.00394421,.313093,.0112099,.889831,-.00567962,.313093,.0161425,.889844,-.00773051,.313096,.0219724,.889858,-.0100968,.3131,.0286999,.889882,-.0127786,.313106,.0363256,.889918,-.0157757,.313116,.0448509,.889967,-.0190878,.313129,.0542758,.89003,-.022715,.313145,.0646032,.890108,-.0266566,.313165,.0758339,.890218,-.0309131,.313193,.0879729,.890351,-.0354819,.313226,.101019,.89051,-.0403613,.313263,.114979,.890672,-.0455385,.313294,.129848,.890882,-.0509444,.313333,.145616,.891189,-.0559657,.313324,.162122,.891457,-.0613123,.313281,.179524,.891856,-.0671488,.313281,.197855,.892312,-.0732732,.313268,.216991,.892819,-.0797865,.313263,.236924,.893369,-.0865269,.313247,.257433,.894045,-.0931592,.313205,.278215,.894884,-.100532,.313276,.299467,.895832,-.107716,.313205,.322276,.897043,-.114099,.312873,.34642,.898515,-.119941,.312331,.371187,.900191,-.126044,.311731,.396656,.90188,-.131808,.310859,.422488,.904359,-.137289,.309857,.448744,.906923,-.142991,.308714,.475239,.910634,-.148253,.307465,.501983,.914502,-.153332,.305774,.529254,.919046,-.156646,.303156,.557709,.923194,-.159612,.299928,.586267,.928858,-.162027,.296245,.614925,.934464,-.164203,.291832,.643187,.939824,-.165602,.286565,.671601,.944582,-.165383,.280073,.700213,.949257,-.164439,.272891,.728432,.954389,-.162953,.264771,.756082,.958595,-.161007,.255927,.78369,.962138,-.157243,.245769,.810769,.966979,-.152872,.235127,.836999,.969566,-.148209,.22347,.862684,.972372,-.142211,.211147,.887847,.975916,-.135458,.198606,.911843,.978026,-.128398,.185498,.934795,.979686,-.120313,.17171,.956787,.980748,-.11166,.158159,.978046,.981622,-.103035,.144399,.997693,.982356,-.0930328,.13001,1.01642,.983308,-.0834627,.115778,1.03366,.985037,-.0732249,.101327,1.05014,.986493,-.0628145,.086554,1.06507,.988484,-.0526556,.0720413,1.07907,.991051,-.0415744,.0571151,1.09189,.993523,-.0314275,.0426643,1.10369,.99628,-.0203603,.0279325,1.11423,.998344,-.0102446,.0138182,1.12421,.999997,42612e-8,-193628e-9,1.1333,.871555,-660007e-11,.329176,174749e-10,.875255,-166579e-9,.330571,441051e-9,.875644,-666394e-9,.330718,.00176441,.875159,-.00149903,.330536,.00396899,.87516,-.00266493,.330536,.007056,.875158,-.00416393,.330535,.0110251,.87516,-.00599598,.330535,.0158764,.875163,-.00816108,.330536,.0216101,.875174,-.0106591,.330538,.0282266,.875199,-.0134899,.330545,.0357266,.875257,-.0166538,.330563,.0441117,.875304,-.0201501,.330575,.0533821,.875373,-.0239785,.330595,.0635395,.875464,-.0281389,.330619,.0745872,.875565,-.0326301,.330645,.0865255,.875691,-.0374516,.330676,.0993599,.875897,-.0425993,.330733,.113093,.876091,-.0480576,.330776,.127722,.876353,-.0537216,.330826,.143227,.876649,-.0589807,.330809,.159462,.877034,-.0647865,.330819,.176642,.877443,-.0709789,.330817,.194702,.877956,-.0774782,.330832,.213577,.878499,-.0843175,.330822,.233246,.879144,-.0912714,.330804,.253512,.879982,-.0980824,.330766,.274137,.88097,-.105823,.330864,.295209,.882051,-.113671,.330896,.317226,.883397,-.120303,.330545,.341068,.884987,-.12667,.330068,.365613,.886789,-.133118,.329418,.390807,.889311,-.139024,.328683,.416494,.891995,-.144971,.327729,.442618,.895106,-.150747,.326521,.469131,.899527,-.156283,.325229,.495921,.90504,-.161707,.32378,.523162,.909875,-.165661,.32122,.55092,.91561,-.168755,.317942,.579928,.921225,-.171193,.313983,.608539,.927308,-.17319,.309636,.636854,.933077,-.174819,.304262,.66523,.938766,-.175002,.297563,.693609,.943667,-.173946,.289613,.722157,.949033,-.172221,.281227,.750021,.953765,-.169869,.271545,.777466,.95804,-.166578,.261034,.804853,.962302,-.161761,.249434,.831569,.966544,-.156636,.237484,.857779,.969372,-.150784,.224395,.883051,.972486,-.143672,.210786,.907864,.975853,-.135772,.196556,.931223,.977975,-.127942,.182307,.954061,.979122,-.118347,.167607,.97531,.980719,-.109112,.152739,.995666,.981223,-.0991789,.137932,1.01475,.98216,-.0883553,.122692,1.03253,.983379,-.0780825,.107493,1.04917,.985434,-.0665646,.0917791,1.06464,.987332,-.0557714,.0764949,1.07896,.990004,-.0442805,.060721,1.09199,.992975,-.0331676,.0452284,1.10393,.995811,-.0219547,.0297934,1.11476,.9982,-.0107613,.0146415,1.12484,1.00002,248678e-9,-14555e-8,1.13413,.859519,-693595e-11,.347264,171673e-10,.859843,-17503e-8,.347394,433219e-9,.859656,-700076e-9,.347319,.00173277,.859671,-.00157517,.347325,.00389875,.859669,-.00280028,.347324,.00693112,.85967,-.0043754,.347324,.01083,.859665,-.00630049,.347321,.0155954,.859685,-.0085755,.347328,.0212278,.859694,-.0112003,.347329,.0277273,.859718,-.0141747,.347336,.0350946,.85976,-.0174988,.347348,.0433314,.85982,-.0211722,.347366,.0524384,.859892,-.0251941,.347387,.0624168,.860006,-.0295649,.347422,.0732708,.860122,-.0342825,.347453,.0849999,.860282,-.0393462,.347499,.0976102,.860482,-.0447513,.347554,.111104,.860719,-.0504775,.347614,.125479,.860998,-.0563577,.347666,.140703,.861322,-.0619473,.347662,.156681,.861724,-.0681277,.347684,.173597,.862198,-.0746567,.347709,.191371,.862733,-.0815234,.347727,.209976,.863371,-.0886643,.347744,.229351,.86414,-.0957908,.347734,.24934,.865138,-.102912,.34772,.269797,.866182,-.110924,.3478,.290654,.867436,-.119223,.347911,.312074,.869087,-.126197,.347649,.335438,.870859,-.133145,.347222,.359732,.872997,-.139869,.346645,.38467,.875939,-.146089,.345935,.41019,.879012,-.152334,.345012,.436218,.883353,-.15821,.343924,.462641,.888362,-.164097,.342636,.489449,.895026,-.169528,.341351,.516629,.900753,-.174408,.339115,.544109,.906814,-.17751,.335809,.572857,.912855,-.180101,.331597,.601554,.919438,-.182116,.32698,.630198,.925962,-.183494,.321449,.658404,.931734,-.184159,.314595,.686625,.93762,-.18304,.306462,.71531,.943858,-.181323,.297514,.744272,.948662,-.178683,.287447,.771462,.953299,-.175379,.276166,.798593,.957346,-.170395,.263758,.8256,.962565,-.165042,.251019,.852575,.966075,-.158655,.237011,.878316,.969048,-.151707,.222518,.90329,.972423,-.143271,.207848,.927745,.975833,-.134824,.192463,.950859,.977629,-.125444,.1768,.972947,.978995,-.114949,.161033,.993263,.980533,-.104936,.145523,1.01337,.980745,-.0935577,.129799,1.03128,.981814,-.0822956,.113486,1.04825,.983943,-.0710082,.0972925,1.06405,.986141,-.0587931,.0808138,1.0785,.988878,-.0472755,.0644915,1.09204,.992132,-.0349128,.0478128,1.10413,.9953,-.0232407,.031621,1.11527,.998117,-.0112713,.0154935,1.12551,1.00003,339743e-9,-195763e-9,1.13504,.845441,-729126e-11,.364305,169208e-10,.843588,-183164e-9,.363506,425067e-9,.843412,-73253e-8,.36343,.00169999,.843401,-.00164818,.363426,.00382495,.843399,-.00293008,.363425,.00679993,.843401,-.00457822,.363425,.010625,.843394,-.00659249,.363421,.0153002,.843398,-.00897282,.363421,.0208258,.843415,-.0117191,.363426,.0272024,.843438,-.0148312,.363432,.0344305,.843483,-.018309,.363447,.0425116,.84356,-.0221521,.363472,.0514471,.843646,-.0263597,.363499,.061238,.843743,-.0309315,.363527,.0718873,.84388,-.0358658,.363569,.0833969,.844079,-.0411624,.363631,.0957742,.844279,-.0468128,.363688,.109015,.844549,-.0527923,.363761,.123124,.844858,-.0588204,.363817,.138044,.84522,-.0647573,.36383,.153755,.845669,-.0713181,.363879,.170394,.846155,-.0781697,.363908,.187861,.846789,-.0853913,.363969,.206176,.847502,-.0928086,.363999,.225244,.8484,-.10005,.363997,.244926,.849461,-.107615,.364008,.265188,.850562,-.115814,.364055,.28587,.851962,-.124334,.364179,.306926,.854326,-.131995,.364233,.329605,.856295,-.139338,.363856,.35359,.858857,-.146346,.363347,.37831,.862428,-.152994,.362807,.403722,.866203,-.159463,.361963,.429537,.871629,-.165623,.36112,.456,.877365,-.171649,.359917,.482773,.883744,-.177151,.35848,.509705,.890693,-.182381,.356523,.537215,.897278,-.186076,.3533,.565493,.903958,-.188602,.349095,.594293,.910908,-.190755,.344215,.623165,.918117,-.192063,.338606,.651573,.924644,-.192758,.331544,.679869,.931054,-.192238,.323163,.708668,.937303,-.190035,.313529,.737201,.943387,-.187162,.303152,.764977,.948494,-.183876,.29146,.792683,.952546,-.178901,.277917,.819228,.958077,-.173173,.264753,.846559,.962462,-.16645,.25002,.872962,.966569,-.159452,.234873,.898729,.969108,-.15074,.218752,.923126,.973072,-.141523,.202673,.947278,.975452,-.132075,.186326,.969938,.977784,-.121257,.169396,.991325,.97899,-.110182,.153044,1.01123,.979777,-.0989634,.136485,1.0299,.980865,-.0865894,.119343,1.04727,.982432,-.0746115,.102452,1.06341,.984935,-.0621822,.0852423,1.07834,.987776,-.0495694,.0678546,1.092,.99103,-.0372386,.0506917,1.1043,.99474,-.0244353,.0333316,1.11576,.997768,-.0121448,.0164348,1.12617,1.00003,31774e-8,-169504e-9,1.13598,.825551,-756799e-11,.378425,165099e-10,.82664,-190922e-9,.378923,416504e-9,.826323,-763495e-9,.378779,.0016656,.826359,-.00171789,.378795,.00374768,.82636,-.00305402,.378795,.00666259,.826368,-.00477185,.378798,.0104104,.826364,-.00687131,.378795,.0149912,.826368,-.00935232,.378795,.0204054,.826376,-.0122146,.378797,.0266532,.826399,-.0154581,.378803,.0337355,.82646,-.0190825,.378824,.0416537,.826525,-.0230873,.378846,.0504091,.826614,-.0274719,.378876,.0600032,.82674,-.0322355,.378917,.0704393,.826888,-.0373766,.378964,.0817195,.827078,-.0428936,.379024,.0938492,.827318,-.0487778,.379099,.106828,.82764,-.0549935,.379199,.120659,.827926,-.0611058,.379227,.13526,.828325,-.0675054,.379275,.150713,.828801,-.0743455,.379332,.167034,.8294,-.0815523,.379415,.184209,.830094,-.0890779,.379495,.202203,.8309,-.096736,.379555,.220945,.831943,-.104135,.379577,.240306,.833037,-.112106,.379604,.260317,.834278,-.120554,.379668,.2808,.836192,-.129128,.3799,.301654,.838671,-.137541,.380109,.323502,.840939,-.14523,.379809,.347176,.844575,-.15248,.379593,.371706,.848379,-.159607,.37909,.39688,.853616,-.166267,.378617,.422702,.858921,-.172698,.377746,.448919,.865324,-.178823,.376749,.475661,.872207,-.184542,.375363,.502599,.880018,-.189836,.373657,.529914,.88694,-.194294,.370673,.557683,.894779,-.197022,.36662,.586848,.902242,-.199108,.36138,.615831,.909914,-.200398,.355434,.644478,.917088,-.20094,.348173,.672905,.923888,-.200671,.339482,.701327,.930495,-.198773,.32956,.730101,.937247,-.195394,.318363,.758383,.943108,-.191956,.306323,.786539,.948296,-.187227,.292576,.813637,.953472,-.181165,.278234,.840793,.958485,-.174119,.263054,.867712,.962714,-.166564,.246756,.893635,.966185,-.158181,.229945,.919028,.970146,-.148275,.212633,.943413,.973491,-.138157,.195229,.966627,.975741,-.127574,.178048,.988817,.977238,-.11554,.160312,1.00924,.978411,-.10364,.142857,1.02845,.979811,-.0913122,.125317,1.04648,.98116,-.0782558,.107627,1.06284,.983543,-.0655957,.0895862,1.07798,.986789,-.0520411,.0713756,1.092,.990292,-.0389727,.053228,1.10484,.994187,-.025808,.0351945,1.11642,.997499,-.0126071,.0173198,1.12703,.999999,275604e-9,-148602e-9,1.13674,.81075,-78735e-10,.394456,161829e-10,.808692,-198293e-9,.393453,407564e-9,.80846,-792877e-9,.39334,.00162965,.808595,-.00178416,.393407,.00366711,.808597,-.00317182,.393408,.00651934,.808598,-.00495589,.393408,.0101866,.808591,-.00713627,.393403,.0146689,.808592,-.00971285,.393402,.0199667,.80861,-.0126855,.393407,.0260803,.808633,-.0160538,.393413,.0330107,.80868,-.0198175,.393429,.0407589,.808748,-.0239758,.393453,.0493264,.808854,-.0285286,.39349,.0587161,.808992,-.0334748,.39354,.0689304,.809141,-.0388116,.393588,.0799707,.809352,-.0445375,.39366,.0918432,.809608,-.0506427,.393742,.104549,.809915,-.0570708,.393834,.118085,.810253,-.0633526,.393885,.132377,.810687,-.0700966,.393953,.147537,.811233,-.0772274,.394047,.163543,.811865,-.0847629,.394148,.180394,.812648,-.0925663,.394265,.198051,.813583,-.100416,.394363,.216443,.814683,-.108119,.394402,.235502,.815948,-.11644,.394489,.255242,.817278,-.125036,.394542,.275441,.819605,-.133655,.39486,.296094,.822256,-.142682,.395248,.317309,.825349,-.150756,.395241,.340516,.829605,-.158392,.395285,.364819,.83391,-.165801,.394922,.389736,.839808,-.172677,.394691,.415409,.845708,-.179448,.394006,.441546,.853025,-.185746,.393279,.46832,.859666,-.191684,.391655,.495302,.86789,-.197146,.390068,.52262,.875845,-.201904,.38727,.550336,.882634,-.205023,.382688,.578825,.891076,-.207098,.377543,.608103,.900589,-.208474,.371752,.63723,.90791,-.209068,.364016,.665769,.915971,-.208655,.355593,.694428,.923455,-.20729,.345439,.723224,.931514,-.203821,.334099,.751925,.937885,-.19986,.321069,.780249,.943136,-.194993,.306571,.8077,.948818,-.189132,.291556,.83497,.954433,-.181617,.275745,.86188,.959078,-.173595,.258695,.888562,.962705,-.164855,.240825,.914008,.966753,-.155129,.22268,.939145,.970704,-.144241,.204542,.963393,.973367,-.133188,.185927,.985983,.975984,-.121146,.167743,1.00704,.976994,-.108366,.149218,1.02715,.978485,-.0956746,.13131,1.0455,.980074,-.0820733,.112513,1.06221,.98225,-.0684061,.0938323,1.07782,.98553,-.0549503,.0749508,1.09199,.989529,-.0407857,.055848,1.10508,.993536,-.0271978,.0368581,1.11684,.997247,-.0132716,.0181845,1.12789,1,431817e-9,-198809e-9,1.13792,.785886,-812608e-11,.405036,157669e-10,.790388,-205278e-9,.407355,398297e-9,.790145,-820824e-9,.407231,.00159263,.790135,-.00184681,.407226,.00358336,.790119,-.00328316,.407218,.00637039,.790126,-.00512988,.40722,.0099539,.79013,-.00738684,.407221,.0143339,.790135,-.0100538,.407221,.0195107,.790134,-.0131306,.407217,.0254848,.79016,-.0166169,.407224,.0322572,.790197,-.020512,.407236,.0398284,.790273,-.0248157,.407263,.0482014,.790381,-.029527,.407304,.0573777,.790521,-.0346446,.407355,.0673602,.790704,-.0401665,.40742,.0781522,.790925,-.0460896,.407499,.0897582,.791195,-.0524017,.407589,.10218,.791522,-.0590121,.407691,.11541,.791878,-.0654876,.407748,.12939,.792361,-.0725207,.407849,.144237,.792942,-.0799844,.407963,.159924,.79362,-.0877896,.408087,.176425,.794529,-.0958451,.408259,.193733,.795521,-.103827,.408362,.211756,.796778,-.111937,.408482,.230524,.798027,-.120521,.408547,.249967,.799813,-.129242,.408721,.269926,.802387,-.138048,.409148,.290338,.805279,-.147301,.409641,.311193,.809251,-.155895,.410154,.333611,.813733,-.163942,.410297,.357615,.819081,-.171666,.410373,.382339,.825427,-.178905,.410348,.407828,.83172,-.185812,.409486,.434034,.83877,-.192318,.408776,.460493,.845817,-.198249,.407176,.487346,.854664,-.204034,.405719,.514832,.863495,-.208908,.403282,.542401,.871883,-.212765,.399293,.570683,.88065,-.214911,.393803,.599947,.89004,-.216214,.387536,.62932,.898476,-.216745,.379846,.658319,.906738,-.216387,.370625,.687138,.914844,-.215053,.360139,.71601,.923877,-.212007,.348849,.745124,.931925,-.207481,.335639,.773366,.938054,-.202418,.320798,.801636,.943895,-.196507,.304772,.829055,.949468,-.189009,.288033,.856097,.955152,-.180539,.270532,.88301,.959403,-.171437,.251639,.909296,.963309,-.161661,.232563,.934868,.967399,-.150425,.213231,.959662,.972009,-.138659,.194247,.98302,.97433,-.126595,.174718,1.00517,.975823,-.113205,.155518,1.02566,.976371,-.0996096,.136709,1.04418,.978705,-.0860754,.117571,1.06146,.981477,-.0714438,.0980046,1.07777,.984263,-.0572304,.0782181,1.09214,.988423,-.0428875,.0584052,1.10553,.993,-.0282442,.038522,1.11758,.99704,-.0140183,.0190148,1.12864,.999913,369494e-9,-145203e-9,1.13901,.777662,-84153e-10,.423844,154403e-10,.770458,-211714e-9,.419915,38845e-8,.770716,-846888e-9,.420055,.00155386,.770982,-.00190567,.420202,.00349653,.770981,-.00338782,.420201,.00621606,.77098,-.00529338,.4202,.00971274,.770983,-.00762223,.4202,.0139867,.770985,-.0103741,.420198,.0190381,.770996,-.0135489,.4202,.0248677,.771029,-.0171461,.420212,.0314764,.771052,-.0211647,.420215,.0388648,.771131,-.0256048,.420245,.047036,.771235,-.0304647,.420284,.0559911,.771383,-.0357436,.420341,.0657346,.771591,-.0414392,.420423,.0762694,.771819,-.0475462,.420506,.0875984,.772123,-.0540506,.420617,.099727,.772464,-.060797,.42072,.112637,.772855,-.0675393,.420799,.126313,.773317,-.0748323,.420893,.140824,.773981,-.0825681,.421058,.15617,.774746,-.0906307,.421226,.172322,.77566,-.0988982,.421397,.189253,.776837,-.106994,.421569,.206912,.778097,-.115528,.421704,.225359,.779588,-.124317,.421849,.24447,.781574,-.133139,.422097,.264156,.784451,-.142179,.422615,.284318,.787682,-.15165,.423269,.304902,.792433,-.160771,.424396,.3265,.797359,-.169166,.424772,.35014,.803986,-.177149,.425475,.374768,.809504,-.184745,.424996,.399928,.815885,-.19173,.424247,.425796,.823513,-.198525,.423515,.452287,.832549,-.204709,.422787,.479321,.841653,-.210447,.421187,.506718,.850401,-.215501,.418519,.53432,.859854,-.219752,.414715,.56242,.869364,-.222305,.409462,.591558,.878837,-.223744,.402926,.621074,.888636,-.224065,.395043,.650538,.898132,-.223742,.38564,.679538,.907181,-.222308,.375378,.708674,.915621,-.219837,.363212,.737714,.9239,-.215233,.349313,.767014,.931644,-.209592,.334162,.795133,.938887,-.203644,.317943,.823228,.945282,-.196349,.300581,.850822,.950758,-.18742,.282195,.877594,.956146,-.177879,.262481,.904564,.960355,-.167643,.242487,.930741,.965256,-.156671,.222668,.955868,.968029,-.144123,.201907,.979869,.97251,-.131305,.18202,1.00291,.974925,-.118335,.161909,1.02392,.975402,-.103714,.142129,1.0433,.976987,-.089415,.122447,1.06089,.979677,-.0748858,.102248,1.07713,.983184,-.0596086,.0814851,1.09218,.987466,-.0447671,.0609484,1.10585,.992348,-.0295217,.0401835,1.11829,.996674,-.0143917,.0198163,1.12966,1.00003,321364e-9,-149983e-9,1.1402,.757901,-869074e-11,.436176,151011e-10,.751195,-217848e-9,.432317,378533e-9,.751178,-871373e-9,.432307,.0015141,.751195,-.00196061,.432317,.0034068,.751198,-.00348552,.432318,.00605659,.751195,-.00544599,.432315,.00946353,.751207,-.00784203,.43232,.013628,.751213,-.0106732,.43232,.0185499,.751221,-.0139393,.432319,.0242302,.751244,-.0176398,.432325,.0306694,.7513,-.0217743,.432348,.0378698,.751358,-.0263412,.432367,.0458321,.751458,-.0313396,.432404,.0545587,.751608,-.0367682,.432464,.0640543,.7518,-.0426246,.43254,.0743222,.752065,-.0489031,.432645,.0853668,.752376,-.0555828,.432762,.0971911,.752715,-.0623861,.432859,.109768,.753137,-.069415,.432958,.123126,.753676,-.0770039,.433099,.137308,.754345,-.084971,.433272,.15229,.755235,-.0932681,.433504,.168075,.756186,-.10171,.433693,.184625,.757363,-.110019,.433857,.201897,.75884,-.11887,.434102,.220014,.760467,-.127881,.434306,.238778,.762969,-.136766,.434751,.258172,.765823,-.14612,.43529,.278062,.769676,-.15566,.436236,.298437,.774909,-.165177,.437754,.319532,.77994,-.17402,.438343,.342505,.785757,-.182201,.438609,.366693,.792487,-.190104,.438762,.391668,.80038,-.197438,.438795,.417494,.808494,-.204365,.438226,.443933,.817695,-.210714,.437283,.470929,.828111,-.216651,.436087,.498569,.837901,-.221804,.433717,.526165,.847813,-.226318,.430133,.554155,.858314,-.229297,.425213,.582822,.868891,-.230999,.418576,.612847,.878941,-.231155,.410405,.642445,.888809,-.230935,.400544,.672024,.898089,-.229343,.389613,.701366,.908081,-.226886,.377197,.730763,.916819,-.222676,.363397,.759642,.924968,-.216835,.347437,.788775,.932906,-.210245,.32995,.817135,.940025,-.202992,.312262,.844912,.946101,-.19436,.293313,.872164,.952835,-.184125,.273638,.899443,.957347,-.173657,.252385,.926389,.961434,-.162204,.231038,.951947,.965522,-.14979,.209834,.976751,.969412,-.136307,.188821,1.00022,.973902,-.122527,.168013,1.02229,.974045,-.108213,.147634,1.04199,.975775,-.0927397,.12705,1.06019,.978383,-.0778212,.106309,1.07711,.98211,-.0621216,.0849279,1.09245,.986517,-.0463847,.0633519,1.10651,.991696,-.0309353,.0419698,1.11903,.996349,-.0150914,.0206272,1.13073,1.00003,442449e-9,-231396e-9,1.14146,.727498,-885074e-11,.441528,145832e-10,.730897,-223525e-9,.443589,368298e-9,.730796,-893996e-9,.443528,.00147303,.730805,-.00201149,.443533,.00331433,.730814,-.00357596,.443538,.00589222,.730815,-.00558734,.443538,.00920678,.730822,-.00804544,.44354,.0132582,.730836,-.0109501,.443545,.0180468,.730848,-.0143008,.443546,.0235732,.730871,-.0180969,.443552,.0298382,.730915,-.022338,.443567,.0368438,.730982,-.0270225,.443591,.044591,.731076,-.0321491,.443627,.0530831,.731245,-.0377166,.443699,.0623243,.73144,-.0437216,.443777,.0723181,.7317,-.0501576,.443881,.0830691,.732034,-.0569942,.444014,.0945809,.732388,-.0638756,.444113,.106825,.732853,-.071203,.444247,.119859,.733473,-.0790076,.444442,.13369,.734195,-.0871937,.444645,.148304,.735069,-.095696,.444877,.163702,.736169,-.10426,.445133,.179861,.73747,-.112853,.44537,.196778,.738991,-.12199,.445651,.214496,.740865,-.131153,.445958,.232913,.743637,-.140245,.446548,.251977,.746797,-.149722,.447246,.271551,.751517,-.159341,.448656,.291774,.756156,-.169106,.449866,.312455,.761519,-.178436,.450919,.334552,.768295,-.186904,.451776,.358491,.776613,-.195117,.452832,.383446,.783966,-.202695,.45249,.408945,.793542,-.20985,.452587,.435364,.803192,-.216403,.451852,.462336,.813892,-.22251,.450708,.48987,.824968,-.227676,.4486,.517697,.835859,-.232443,.445156,.545975,.846825,-.235775,.440351,.574483,.858085,-.237897,.433641,.604246,.868825,-.238074,.425354,.634101,.879638,-.237661,.415383,.664201,.889966,-.236186,.404136,.693918,.899479,-.233599,.390917,.723481,.908769,-.229737,.376352,.75258,.917966,-.223836,.360372,.781764,.926304,-.217067,.342551,.811139,.934626,-.209309,.324238,.839585,.941841,-.20071,.304484,.867044,.94789,-.190602,.283607,.894579,.954196,-.179253,.262205,.921743,.958383,-.167646,.239847,.948026,.963119,-.155073,.218078,.973296,.966941,-.141426,.195899,.998135,.970836,-.126849,.174121,1.02021,.973301,-.112296,.153052,1.04085,.97448,-.0964965,.131733,1.05946,.977045,-.080489,.10997,1.07693,.980751,-.064844,.0881657,1.09254,.985475,-.0481938,.0657987,1.10697,.991089,-.0319185,.0435215,1.12004,.996122,-.0158088,.0214779,1.13173,1.00001,372455e-9,-200295e-9,1.14291,.708622,-907597e-11,.45304,141962e-10,.711162,-228911e-9,.454662,358052e-9,.709812,-914446e-9,.453797,.00143034,.709865,-.00205819,.453834,.00321935,.709864,-.00365894,.453833,.00572331,.709855,-.00571692,.453826,.00894278,.709862,-.00823201,.453828,.012878,.709875,-.011204,.453832,.0175295,.709896,-.0146323,.453839,.0228978,.709925,-.0185163,.453847,.0289839,.709974,-.0228551,.453866,.0357894,.710045,-.0276473,.453892,.0433161,.710133,-.032891,.453924,.0515665,.710292,-.0385851,.453992,.0605458,.710485,-.0447254,.45407,.0702574,.710769,-.0513051,.454192,.0807077,.711106,-.0582733,.454329,.091896,.711516,-.0652866,.45446,.103814,.712071,-.0728426,.454653,.116508,.712676,-.0808307,.45484,.129968,.713476,-.0892216,.455096,.144206,.714377,-.0979047,.455346,.159212,.715579,-.106531,.455647,.174973,.716977,-.115492,.455961,.191504,.71862,-.124821,.456315,.208835,.72084,-.134079,.4568,.226869,.723786,-.143427,.457521,.245582,.727464,-.153061,.458475,.264957,.732771,-.162768,.460239,.284948,.736515,-.172627,.460899,.30522,.743519,-.182487,.463225,.326717,.750041,-.191295,.464027,.350113,.758589,-.199746,.465227,.374782,.767703,-.207584,.465877,.400226,.777484,-.214973,.465996,.426442,.788792,-.221796,.466019,.453688,.800194,-.228038,.465083,.481246,.811234,-.233346,.462506,.509086,.822859,-.238073,.459257,.537338,.835082,-.241764,.454863,.566108,.846332,-.244241,.448163,.595126,.858355,-.244736,.439709,.625574,.87034,-.244278,.429837,.65617,.881027,-.24255,.418002,.686029,.891007,-.239912,.404325,.716039,.900874,-.236133,.389222,.745518,.911072,-.230672,.373269,.775026,.920359,-.22356,.355083,.804521,.928604,-.215591,.335533,.834045,.937175,-.206503,.315278,.861612,.942825,-.196684,.293653,.889131,.949805,-.185116,.271503,.916853,.955535,-.172703,.248821,.943541,.959843,-.159978,.225591,.970132,.964393,-.146375,.202719,.994709,.968008,-.131269,.179928,1.0186,.971013,-.11569,.158007,1.03928,.973334,-.1003,.13624,1.05887,.975775,-.0833352,.1138,1.07652,.979579,-.0668981,.0913141,1.09297,.984323,-.0500902,.0683051,1.10734,.990351,-.0332377,.0451771,1.12084,.995823,-.0161491,.0221705,1.13296,1.0001,234083e-9,-108712e-9,1.14441,.683895,-924677e-11,.46015,137429e-10,.68833,-233383e-9,.463134,346865e-9,.688368,-933547e-9,.463159,.00138748,.688367,-.00210049,.463159,.00312187,.688369,-.00373415,.463159,.00555004,.688377,-.00583449,.463163,.00867216,.688386,-.00840128,.463166,.0124884,.688398,-.0114343,.463169,.0169993,.688418,-.0149329,.463175,.0222054,.688453,-.0188964,.463188,.028108,.688515,-.0233239,.463214,.0347085,.68857,-.0282136,.463231,.0420091,.688679,-.033564,.463276,.0500132,.688854,-.0393733,.463356,.0587255,.689038,-.0456354,.46343,.0681476,.689321,-.0523433,.463553,.0782897,.689662,-.059412,.463693,.0891501,.690188,-.0665736,.4639,.100735,.690755,-.0743106,.464107,.113074,.691405,-.0824722,.464329,.126161,.692198,-.0910484,.464585,.140007,.693196,-.0998778,.464893,.154612,.69454,-.108651,.465285,.169984,.695921,-.117855,.465596,.186106,.697749,-.12734,.466056,.203034,.700375,-.136714,.466771,.220703,.703395,-.146386,.467579,.239062,.707904,-.156096,.469067,.258188,.711673,-.165904,.469851,.277759,.717489,-.175812,.471815,.297935,.724051,-.185931,.47389,.318916,.731965,-.195238,.47587,.341591,.741151,-.204021,.477523,.366062,.751416,-.212113,.478881,.391396,.761848,-.21979,.479226,.417599,.771886,-.2267,.478495,.444401,.783998,-.232991,.477622,.472084,.796523,-.238645,.475833,.500193,.808851,-.243396,.472568,.52865,.821191,-.247226,.467857,.557362,.834261,-.250102,.461871,.586768,.846762,-.251056,.453543,.617085,.859867,-.250604,.443494,.647659,.871948,-.248783,.431711,.678119,.882967,-.245855,.417911,.708399,.892826,-.242168,.401993,.738256,.90332,-.237062,.385371,.767999,.913633,-.22997,.366837,.798191,.922774,-.221687,.346372,.827756,.931371,-.212345,.325682,.856425,.938929,-.20206,.303665,.884299,.944821,-.190981,.280786,.912023,.951792,-.178065,.2573,.939669,.957712,-.164634,.233448,.96655,.961912,-.150863,.209504,.992366,.966382,-.13577,.18597,1.01633,.969588,-.119593,.162905,1.03843,.971777,-.103203,.14053,1.05841,.97433,-.0865888,.117909,1.07632,.978686,-.0690829,.0944101,1.09326,.983281,-.0516568,.0705671,1.10796,.989562,-.034558,.0468592,1.12182,.995465,-.0167808,.0229846,1.1342,.999991,373016e-9,-235606e-9,1.1459,.662251,-939016e-11,.468575,132714e-10,.666634,-237624e-9,.471675,335842e-9,.666411,-950385e-9,.471516,.00134321,.666399,-.00213833,.471509,.00302221,.666386,-.0038014,.471499,.00537283,.666405,-.00593958,.471511,.00839533,.666406,-.00855253,.471508,.0120898,.666428,-.0116401,.471519,.0164569,.666444,-.0152015,.471522,.0214971,.66649,-.0192362,.471543,.027212,.666537,-.0237428,.471558,.033603,.666617,-.0287198,.471591,.0406728,.666718,-.0341647,.471631,.0484238,.666889,-.0400759,.47171,.0568621,.667104,-.0464479,.471805,.0659915,.667374,-.0532677,.471923,.0758178,.667772,-.0603805,.472098,.0863425,.668371,-.0677392,.472363,.0975917,.668971,-.0756028,.472596,.109567,.669696,-.0839293,.472869,.122272,.670481,-.0926683,.473126,.135718,.6715,-.1016,.473442,.149914,.672911,-.110566,.47389,.164882,.674512,-.119984,.474354,.180602,.67651,-.129574,.474922,.19711,.679292,-.139106,.475764,.214371,.682798,-.148993,.476886,.232405,.686955,-.158737,.478179,.251153,.691406,-.168754,.479432,.270436,.697438,-.178703,.481481,.290374,.704761,-.188955,.484143,.311044,.713599,-.198814,.487007,.333003,.723194,-.207869,.488962,.357144,.732601,-.216189,.489815,.382169,.744193,-.22398,.490888,.408227,.754907,-.231156,.490355,.434928,.767403,-.23747,.489548,.462599,.78107,-.243503,.488274,.490908,.793893,-.248114,.484843,.519421,.807296,-.25222,.4803,.548561,.820529,-.255265,.474097,.577772,.833716,-.256741,.466041,.607782,.848403,-.25637,.456547,.638807,.860755,-.254804,.443946,.670058,.874012,-.251834,.430852,.700749,.885619,-.247867,.414903,.731446,.896069,-.242634,.397276,.761191,.906266,-.236093,.378535,.791053,.916759,-.227543,.358038,.821298,.92523,-.21783,.335705,.850747,.93436,-.207534,.313797,.879258,.941631,-.195983,.289671,.907734,.947564,-.183567,.265319,.935206,.953681,-.169345,.240815,.962739,.960008,-.154909,.216119,.989227,.964145,-.140161,.192096,1.01465,.968171,-.123411,.167855,1.03737,.969859,-.106525,.144817,1.05767,.972666,-.0891023,.12149,1.0761,.977055,-.0718094,.0975306,1.09336,.982527,-.0534213,.0730217,1.10878,.989001,-.0355579,.0483366,1.12285,.99512,-.0176383,.023938,1.13548,1.00007,368831e-9,-211581e-9,1.14744,.651047,-960845e-11,.484101,12922e-9,.644145,-241347e-9,.478968,324578e-9,.64396,-965142e-9,.478831,.00129798,.64396,-.00217154,.47883,.00292046,.643968,-.00386049,.478835,.00519202,.643974,-.00603186,.478838,.0081128,.643977,-.0086854,.478836,.011683,.643982,-.0118207,.478834,.0159031,.644024,-.0154374,.478856,.0207743,.644059,-.0195343,.478868,.0262975,.644122,-.0241103,.478896,.0324747,.644207,-.0291638,.478933,.039309,.64432,-.0346919,.478981,.0468029,.644481,-.0406919,.479053,.0549614,.644722,-.047159,.479169,.0637909,.645013,-.0540748,.479302,.0732974,.645503,-.0612001,.479541,.0834898,.646117,-.0687303,.479829,.0943873,.646707,-.0767846,.480061,.105991,.647431,-.0852465,.480343,.11831,.64831,-.0940719,.48066,.131348,.649486,-.103056,.481083,.14514,.650864,-.112261,.481528,.159676,.652604,-.121852,.482102,.174979,.654825,-.131505,.482813,.191079,.657876,-.141189,.483876,.207927,.661339,-.151239,.48499,.225586,.665463,-.161091,.486279,.243947,.670542,-.171235,.487968,.262957,.677361,-.181347,.49053,.282781,.685672,-.191679,.493862,.303311,.694551,-.201781,.49699,.324607,.703753,-.211164,.498884,.347916,.713703,-.219675,.500086,.372628,.725911,-.227836,.501554,.398694,.73862,-.23533,.502193,.425529,.752118,-.241786,.501811,.453209,.76579,-.247865,.500185,.481381,.779568,-.252696,.497159,.51011,.793991,-.256802,.492765,.539322,.808182,-.259942,.486827,.569078,.821698,-.261703,.478386,.598818,.836009,-.262006,.468772,.629762,.849824,-.260333,.456352,.661366,.863888,-.257398,.442533,.69295,.876585,-.253264,.426573,.723608,.888665,-.248026,.408964,.754378,.899537,-.241487,.389677,.784761,.9094,-.233463,.368516,.814688,.920166,-.223397,.346624,.845009,.928899,-.21255,.322717,.874431,.937156,-.200869,.298698,.902922,.943861,-.188387,.273491,.931356,.949557,-.174341,.247866,.958854,.955862,-.158994,.222496,.986098,.961721,-.143664,.197522,1.01229,.965976,-.127412,.17302,1.03571,.968652,-.109798,.148954,1.05699,.971084,-.0916787,.125044,1.07587,.975584,-.0739634,.100577,1.09372,.98122,-.055322,.0753666,1.10948,.988253,-.0366825,.0498899,1.12394,.99482,-.0180389,.024611,1.13694,1.00001,229839e-9,-188283e-9,1.14919,.613867,-964198e-11,.479449,123452e-10,.621485,-244534e-9,.485399,313091e-9,.621429,-978202e-9,.485353,.00125245,.62112,-.00220004,.485114,.00281687,.621119,-.0039111,.485112,.00500783,.621122,-.00611091,.485112,.00782498,.621133,-.00879922,.485117,.0112687,.621152,-.0119756,.485125,.0153394,.621183,-.0156396,.485139,.0200382,.621227,-.0197898,.485158,.0253663,.621298,-.0244253,.485192,.0313261,.621388,-.0295441,.485233,.0379204,.621507,-.0351432,.485286,.0451523,.621693,-.0412198,.485378,.0530277,.621933,-.0477673,.485495,.0615522,.622232,-.0547574,.485635,.0707316,.622809,-.0619417,.485943,.0805883,.623407,-.069625,.486232,.0911267,.62406,-.077796,.486516,.102354,.624835,-.0863731,.486838,.114279,.625758,-.095251,.487188,.126902,.627043,-.104299,.487695,.140285,.628438,-.113724,.488163,.154397,.630325,-.123417,.488858,.169267,.632801,-.133137,.489754,.184941,.635784,-.143052,.490815,.20136,.639406,-.153132,.492048,.218643,.643872,-.163143,.49363,.236615,.6499,-.17333,.496009,.255449,.657201,-.183622,.498994,.275006,.666221,-.194019,.502888,.295354,.674419,-.204192,.505459,.316244,.683729,-.21406,.507771,.33849,.695584,-.222854,.510245,.363166,.708583,-.231315,.512293,.389071,.721233,-.238911,.512747,.415737,.735134,-.245657,.512482,.443331,.750179,-.251879,.511526,.471891,.765073,-.256911,.508935,.500892,.779794,-.261144,.504341,.530294,.794801,-.264316,.498515,.560144,.810339,-.266276,.491015,.590213,.824818,-.266981,.481126,.620865,.839375,-.265778,.468685,.652687,.853043,-.262748,.453925,.684759,.867335,-.258474,.437912,.716209,.88037,-.253187,.419648,.747508,.891711,-.246476,.39982,.77797,.902896,-.238735,.37879,.808586,.913601,-.22885,.355891,.838843,.923019,-.217656,.331773,.869014,.933432,-.205539,.307356,.898512,.939691,-.192595,.281321,.9269,.946938,-.178945,.255441,.955297,.952372,-.163587,.229013,.983231,.95909,-.147214,.203179,1.00971,.963675,-.13064,.17792,1.03438,.968247,-.113121,.152898,1.05625,.97001,-.0945824,.128712,1.07598,.974458,-.0755648,.103349,1.094,.980168,-.0571998,.0776731,1.1104,.987295,-.0377994,.0514445,1.12491,.994432,-.0186417,.025429,1.13851,.999975,542714e-9,-282356e-9,1.15108,.592656,-980249e-11,.486018,119532e-10,.598467,-247275e-9,.490781,301531e-9,.597934,-988317e-9,.490343,.00120517,.597903,-.00222366,.490319,.0027116,.597913,-.00395315,.490327,.00482077,.597919,-.00617653,.490329,.00753264,.597936,-.00889375,.490339,.0108478,.597956,-.0121043,.490347,.0147668,.597992,-.0158073,.490365,.0192905,.598032,-.0200017,.490382,.0244204,.598109,-.0246865,.49042,.0301593,.598215,-.0298594,.490474,.03651,.59833,-.0355167,.490524,.0434757,.598525,-.0416559,.490624,.0510629,.598778,-.0482692,.490753,.0592781,.599135,-.0553114,.49094,.0681304,.599802,-.062542,.491328,.0776467,.600361,-.0703638,.491598,.0878184,.60101,-.0786256,.491882,.0986573,.601811,-.0872962,.492232,.11018,.602861,-.0962284,.492684,.1224,.604167,-.10538,.493213,.135354,.605693,-.114896,.493799,.149034,.607682,-.124654,.494576,.163469,.610672,-.13456,.4959,.178747,.613313,-.144581,.496713,.194723,.617603,-.154703,.498499,.211617,.622174,-.16489,.500188,.229183,.628855,-.175164,.503072,.247786,.636963,-.185565,.506798,.267116,.644866,-.195911,.509719,.28702,.653741,-.206104,.512776,.307763,.664942,-.216447,.516812,.329631,.67633,-.22552,.519181,.353515,.690012,-.234316,.521681,.379226,.704243,-.242032,.523129,.405901,.719396,-.249172,.523768,.433585,.734471,-.255543,.522541,.462085,.750539,-.260697,.520217,.491233,.766365,-.26501,.516293,.521094,.781677,-.268409,.509708,.551014,.797132,-.270399,.501944,.581463,.812655,-.271247,.492025,.612402,.828592,-.270708,.480424,.643798,.844044,-.268085,.465955,.67682,.857305,-.263459,.448425,.708496,.87114,-.258151,.430243,.74046,.884936,-.251171,.410578,.771583,.895772,-.243305,.38862,.802234,.906961,-.234037,.365214,.833179,.917775,-.222714,.34116,.86353,.927883,-.210175,.31572,.893557,.936617,-.196925,.289159,.922976,.943384,-.182788,.261996,.951606,.949713,-.167965,.235324,.979958,.955818,-.151109,.208408,1.00765,.961344,-.133834,.182591,1.03329,.965469,-.115987,.156958,1.0557,.968693,-.09746,.132239,1.07583,.973165,-.0778514,.106195,1.09451,.979387,-.0585067,.0797669,1.11137,.98671,-.0390409,.0530263,1.12643,.994093,-.019408,.0263163,1.14016,1.00002,540029e-9,-194487e-9,1.15299,.574483,-989066e-11,.494533,114896e-10,.574478,-249127e-9,.494528,289403e-9,.574607,-996811e-9,.494637,.00115797,.574396,-.00224241,.494458,.00260498,.574377,-.00398632,.49444,.00463102,.574386,-.00622836,.494445,.00723623,.574401,-.0089683,.494453,.010421,.574419,-.0122056,.49446,.0141859,.574459,-.0159396,.494481,.0185322,.574525,-.0201692,.49452,.0234617,.574587,-.0248924,.494547,.0289762,.574697,-.0301074,.494604,.0350797,.574853,-.0358114,.494688,.0417767,.575027,-.041999,.494772,.0490718,.575294,-.0486618,.494915,.0569728,.575733,-.0557148,.495173,.0654955,.576356,-.0630489,.495537,.0746612,.576944,-.0709285,.495836,.0844615,.57765,-.0792723,.496177,.0949142,.578491,-.0880167,.496563,.10603,.579639,-.0969462,.497096,.117841,.580989,-.10622,.497684,.130367,.582587,-.115861,.498337,.143609,.584951,-.125605,.499414,.157625,.587602,-.135608,.500518,.172413,.59076,-.145742,.501767,.187999,.594992,-.155934,.503542,.20445,.600656,-.166303,.506135,.221764,.607816,-.176681,.509542,.24002,.61522,-.187071,.51263,.258992,.623702,-.197465,.516021,.278773,.634192,-.207816,.520422,.299377,.644936,-.218183,.524073,.320802,.657888,-.2278,.528049,.34384,.670666,-.236747,.52986,.36916,.685626,-.24484,.531892,.395867,.701304,-.252071,.532727,.423488,.717727,-.258714,.532146,.452201,.733914,-.264211,.529883,.481579,.750529,-.26859,.5259,.511558,.76747,-.272046,.51999,.542042,.785189,-.274225,.513083,.572799,.800954,-.275189,.502936,.603816,.816962,-.274946,.490921,.635461,.83336,-.272695,.47684,.6676,.848143,-.268223,.459405,.70051,.861818,-.262768,.440319,.732902,.876828,-.255872,.420123,.765084,.889312,-.247703,.398379,.796391,.900412,-.238381,.374496,.827333,.912251,-.227783,.349874,.858385,.921792,-.214832,.323181,.888652,.931273,-.200949,.296624,.917763,.940295,-.186537,.269211,.947878,.946812,-.171538,.241447,.977016,.953588,-.155254,.213829,1.00501,.958841,-.137156,.186807,1.03179,.963746,-.118699,.160706,1.05502,.966468,-.0998358,.135504,1.07568,.971178,-.0805186,.109131,1.09479,.97831,-.0599348,.0818293,1.1123,.985886,-.0399661,.0545872,1.12771,.994021,-.0198682,.0269405,1.14186,1.00009,271022e-9,-12989e-8,1.15514,.538716,-990918e-11,.486732,109675e-10,.550656,-250642e-9,.497518,277412e-9,.55057,-.00100265,.497441,.00110974,.550903,-.00225672,.497733,.00249779,.550568,-.00401046,.497438,.00443906,.550574,-.00626613,.49744,.00693637,.550591,-.0090226,.497449,.00998921,.550623,-.0122795,.497469,.0135984,.550667,-.0160361,.497495,.0177654,.550724,-.0202908,.497526,.0224915,.550792,-.0250421,.497557,.0277795,.550918,-.0302878,.49763,.0336334,.551058,-.0360241,.497701,.0400573,.551276,-.0422473,.497824,.0470585,.551551,-.0489441,.497977,.0546433,.552074,-.0559596,.498312,.0628367,.552681,-.0633978,.498679,.071646,.553324,-.0713176,.499031,.0810746,.554011,-.0797268,.499365,.091129,.55488,-.0885238,.499779,.101837,.556171,-.0974417,.500444,.113239,.557498,-.106841,.501025,.125316,.559299,-.116533,.501864,.138128,.561647,-.126298,.502967,.151695,.564347,-.136388,.504129,.16604,.567863,-.146576,.505713,.181207,.572569,-.156832,.507953,.197259,.578919,-.167323,.511186,.214258,.585387,-.177712,.514042,.232038,.593134,-.188184,.517484,.250733,.603295,-.198717,.522345,.270454,.613854,-.209177,.526751,.290807,.626092,-.219644,.531595,.312202,.637868,-.229494,.534721,.334435,.652458,-.238718,.538304,.359184,.666985,-.247061,.539875,.385637,.683301,-.254652,.541042,.41328,.69998,-.261376,.540735,.441903,.717824,-.267085,.539139,.471609,.734617,-.271465,.534958,.501446,.753663,-.27528,.53032,.532571,.770512,-.277617,.522134,.563641,.787356,-.278525,.51206,.595067,.806252,-.278512,.50119,.627226,.822061,-.277023,.486791,.659402,.838959,-.273175,.470467,.692874,.85379,-.267238,.450688,.725702,.868268,-.260327,.429741,.75832,.881994,-.251946,.407223,.790189,.893885,-.242432,.383214,.821625,.905118,-.231904,.357297,.853011,.916045,-.219545,.330733,.883773,.927614,-.205378,.303916,.914435,.936005,-.190388,.275941,.944502,.944533,-.1749,.247493,.974439,.950758,-.158588,.218996,1.00286,.957078,-.141027,.191559,1.0304,.962448,-.121507,.164457,1.05466,.964993,-.102068,.138636,1.0761,.970017,-.0822598,.111861,1.09541,.97661,-.062033,.0843438,1.11317,.985073,-.0409832,.0558496,1.12911,.993515,-.020146,.0275331,1.1438,1.00006,27329e-8,-107883e-9,1.15736,.525324,-999341e-11,.498153,105385e-10,.526513,-251605e-9,.499277,265329e-9,.526517,-.00100641,.499282,.0010613,.526588,-.00226466,.499337,.00238823,.526539,-.0040255,.499302,.00424535,.526547,-.00628954,.499306,.00663364,.526561,-.00905628,.499313,.00955337,.526593,-.0123253,.499334,.0130054,.526642,-.0160957,.499365,.0169911,.5267,-.0203661,.499396,.0215122,.526792,-.0251347,.499451,.0265718,.526904,-.0303985,.499511,.0321732,.527079,-.0361554,.499617,.0383231,.527285,-.0423982,.499731,.045026,.527602,-.0491121,.499924,.0522936,.528166,-.0561127,.500306,.0601528,.52879,-.0635988,.5007,.0686059,.529421,-.071581,.501048,.0776518,.530144,-.0799854,.501421,.0873148,.531062,-.0888032,.501884,.0976084,.532374,-.0977643,.50259,.108588,.533828,-.107197,.50329,.120234,.53581,-.116887,.504312,.132602,.538063,-.126755,.505365,.145721,.5409,-.136819,.506668,.159617,.544882,-.147117,.508731,.174369,.550238,-.157446,.511601,.190028,.556038,-.167988,.514431,.206587,.563031,-.178364,.517808,.224046,.571543,-.189007,.521937,.242503,.582255,-.199546,.527415,.261977,.59272,-.210084,.531682,.282162,.605648,-.220448,.537123,.303426,.61785,-.230593,.540664,.325323,.632223,-.240238,.544467,.348993,.648819,-.24887,.547594,.375462,.665825,-.256657,.54912,.403024,.683389,-.263711,.549294,.431773,.701495,-.269666,.547649,.461494,.719197,-.274169,.543786,.491623,.737906,-.278124,.538644,.522994,.756652,-.280632,.531057,.554775,.775279,-.281741,.521972,.586441,.792688,-.281652,.509613,.618596,.811894,-.280345,.496497,.651462,.827938,-.277128,.47968,.684023,.844837,-.271646,.460688,.718024,.859239,-.264397,.438872,.751207,.874088,-.256144,.41577,.784232,.887693,-.246311,.391369,.816191,.899402,-.235497,.365872,.847828,.910973,-.223631,.338618,.87934,.92204,-.209874,.310803,.910325,.930987,-.194265,.281802,.940695,.94,-.178125,.252836,.970958,.948018,-.161479,.224239,1.00078,.955141,-.144038,.195857,1.0288,.960513,-.124915,.168487,1.05371,.963964,-.104284,.141495,1.07596,.968713,-.0838732,.114437,1.09628,.975524,-.0635579,.0863105,1.11448,.98431,-.042291,.0574774,1.13069,.992916,-.0209131,.0284343,1.14568,.999926,743097e-9,-379265e-9,1.15955,.501042,-998428e-11,.498726,100306e-10,.502992,-252112e-9,.500665,253283e-9,.502417,-.00100791,.500092,.00101259,.502965,-.00226919,.500621,.00227978,.502318,-.00403109,.499994,.00405011,.502333,-.00629832,.500005,.00632868,.502362,-.00906907,.500027,.00911446,.502369,-.0123423,.500023,.0124078,.50243,-.0161178,.500066,.016211,.502493,-.0203937,.500103,.0205256,.502592,-.0251684,.500166,.0253548,.502707,-.0304389,.50023,.0307029,.502881,-.0362015,.500335,.0365753,.503124,-.0424507,.500488,.0429798,.503443,-.0491582,.500686,.0499268,.504083,-.0561476,.501155,.0574541,.504668,-.0636846,.501524,.0655408,.505319,-.0716834,.501904,.0742072,.50609,-.0800925,.502321,.0834699,.507122,-.0888425,.502896,.0933603,.508414,-.097855,.503603,.10391,.509955,-.107304,.504416,.115113,.512061,-.116921,.505565,.127054,.514419,-.12689,.506732,.139709,.517529,-.136934,.508338,.153173,.522085,-.147327,.510987,.167528,.526986,-.157612,.513527,.182708,.533122,-.168213,.516717,.198881,.540807,-.178688,.520832,.215986,.550687,-.189511,.52632,.234335,.560567,-.199998,.531009,.253375,.571698,-.210652,.535839,.273499,.584364,-.220917,.541091,.294355,.599066,-.23137,.546875,.316525,.614148,-.241206,.551306,.339671,.631157,-.250379,.555187,.36531,.647919,-.258397,.556595,.392767,.666112,-.265528,.556949,.421397,.686158,-.271827,.556617,.451433,.704838,-.27674,.552975,.482131,.723957,-.280733,.547814,.513458,.74262,-.283359,.53997,.545446,.762009,-.284541,.530422,.57775,.781314,-.284507,.518546,.610434,.799116,-.283309,.504178,.643178,.817604,-.280378,.48843,.676248,.83459,-.275619,.469457,.709698,.850974,-.26856,.447698,.744245,.866747,-.260094,.424791,.777695,.881412,-.249929,.399913,.810392,.8936,-.239137,.37308,.842872,.905943,-.226818,.345705,.874677,.916408,-.213699,.31706,.906257,.927215,-.198428,.288444,.936881,.935625,-.181643,.258329,.96795,.944076,-.164386,.228488,.998216,.951229,-.146339,.199763,1.02689,.958793,-.127709,.172153,1.0535,.963219,-.107244,.144989,1.07646,.967562,-.0857764,.11685,1.09675,.974866,-.0645377,.0880571,1.11576,.983353,-.0431732,.0587352,1.13227,.992503,-.0218356,.0294181,1.1478,1.00003,605203e-9,-231013e-9,1.16207,.482935,-101177e-10,.504695,968142e-11,.477554,-251521e-9,.499071,240676e-9,.477904,-.00100683,.499436,96342e-8,.478368,-.00226636,.499899,.0021687,.477977,-.00402719,.499513,.00385384,.477993,-.00629226,.499525,.0060221,.478011,-.00906011,.499536,.00867289,.478051,-.0123305,.499566,.0118074,.478089,-.016102,.499587,.0154269,.478171,-.0203736,.499645,.0195341,.478254,-.025143,.499692,.0241318,.47839,-.0304071,.499779,.0292247,.478588,-.0361631,.499911,.0348196,.478812,-.0424023,.500046,.0409231,.479208,-.0490724,.500326,.047552,.479841,-.0560722,.500805,.0547377,.480392,-.0636125,.501152,.0624607,.481068,-.0716134,.501561,.0707473,.481898,-.0800062,.502054,.0796118,.483022,-.0886568,.502728,.0890974,.484332,-.0977553,.503479,.0992099,.486126,-.107173,.504546,.10999,.488066,-.11677,.50557,.121476,.490521,-.126725,.506849,.133672,.494232,-.136793,.50911,.146731,.498302,-.147116,.511345,.160577,.503565,-.157446,.514344,.175335,.510902,-.168121,.518824,.191207,.519263,-.178799,.523666,.208058,.528204,-.189407,.528296,.225875,.538854,-.200145,.533724,.244782,.551278,-.210701,.539833,.264753,.565222,-.221303,.546131,.285745,.579403,-.231688,.551496,.307592,.595469,-.241718,.556809,.330582,.610929,-.250992,.559641,.354995,.629433,-.259602,.562379,.382471,.648504,-.267038,.563676,.411126,.66756,-.273388,.562092,.440924,.689143,-.278788,.560807,.472118,.709056,-.282783,.555701,.503774,.729855,-.285836,.548698,.536364,.748954,-.287078,.538544,.56895,.768373,-.287133,.526711,.601991,.78827,-.285839,.512511,.635403,.807465,-.283238,.496323,.668797,.825194,-.27906,.477638,.702584,.842203,-.272286,.456253,.736393,.857749,-.263854,.432412,.77096,.874799,-.253943,.407806,.80489,.887497,-.24237,.38033,.83771,.89966,-.230278,.352446,.870376,.911753,-.21646,.323268,.902256,.923011,-.202071,.294314,.933306,.932375,-.185519,.264104,.965177,.940537,-.167604,.234035,.996303,.948904,-.149068,.20412,1.0261,.955263,-.129539,.175431,1.05304,.960303,-.109932,.148116,1.07617,.965512,-.0880572,.119693,1.09742,.973466,-.0660548,.0901619,1.11721,.98284,-.0439228,.0599875,1.13436,.992216,-.0219588,.0298975,1.15006,.999946,119402e-9,-208547e-10,1.16471,.447827,-100414e-10,.491543,914833e-11,.454778,-251257e-9,.499172,22891e-8,.453519,-.00100342,.497787,914184e-9,.45357,-.00225776,.497847,.00205701,.453578,-.00401371,.497855,.00365705,.45357,-.00627107,.497841,.00571453,.453598,-.00902968,.497864,.00823019,.453627,-.0122888,.497882,.0112049,.453684,-.0160475,.497923,.0146405,.453764,-.0203044,.49798,.0185394,.453866,-.0250576,.498049,.0229054,.453996,-.0303028,.49813,.0277424,.454196,-.0360379,.498267,.0330587,.454457,-.0422521,.498445,.0388613,.454926,-.0488393,.498812,.0451767,.455525,-.0558653,.499272,.0520153,.456074,-.0633772,.499625,.0593754,.456752,-.0713606,.500049,.0672751,.457648,-.07971,.500615,.0757447,.458849,-.0883032,.501399,.0848231,.46029,-.0974095,.502293,.0945135,.462,-.106729,.503301,.104848,.464121,-.116354,.504533,.115884,.466889,-.126214,.506172,.127652,.470744,-.136324,.508667,.14024,.47488,-.146595,.510995,.153673,.480845,-.157027,.514832,.168053,.488262,-.167658,.519506,.183508,.496547,-.178343,.524347,.199948,.506254,-.188916,.52983,.217503,.517961,-.199975,.536357,.236272,.531484,-.210624,.543641,.256096,.545496,-.221227,.550048,.277085,.559497,-.231568,.555076,.298615,.575752,-.241698,.560541,.321547,.591999,-.251172,.564156,.345602,.610654,-.260178,.567607,.371851,.630484,-.268094,.56923,.40076,.651807,-.274661,.569779,.430801,.67239,-.280331,.566791,.461939,.693024,-.284501,.562007,.493854,.715473,-.287852,.555791,.526992,.736323,-.28929,.546345,.560102,.755771,-.289405,.534,.593543,.775424,-.2881,.519114,.627256,.795447,-.285562,.502543,.661464,.815319,-.281416,.484773,.695206,.831769,-.275523,.463445,.729044,.849464,-.267516,.440269,.764069,.866775,-.257584,.415049,.799089,.881252,-.245817,.388049,.831948,.894209,-.233127,.35889,.865526,.906922,-.219579,.329915,.89818,.919686,-.204491,.300441,.930013,.929044,-.188962,.269445,.962061,.938393,-.171079,.238402,.994214,.94661,-.15199,.208204,1.02533,.953095,-.131953,.178653,1.0529,.958644,-.111233,.150684,1.0771,.963925,-.0903098,.122359,1.09855,.971995,-.0680505,.0923342,1.11874,.981658,-.0448512,.0614195,1.13635,.991649,-.0221931,.0303582,1.15238,.999985,393403e-9,-111086e-9,1.16772,.396806,-971563e-11,.457671,842355e-11,.429186,-249421e-9,.495017,21625e-8,.429324,-998052e-9,.495173,865322e-9,.429175,-.00224487,.494999,.00194637,.429129,-.00399041,.494952,.00346004,.429153,-.00623476,.494974,.00540684,.429168,-.0089773,.494983,.00778714,.429207,-.0122175,.495012,.0106022,.429257,-.0159542,.495047,.0138535,.429338,-.0201864,.495106,.0175443,.429431,-.0249104,.495165,.0216774,.429587,-.0301252,.495279,.0262594,.429796,-.0358249,.495432,.0312968,.430065,-.0419972,.495621,.0367985,.430588,-.0485144,.496061,.042798,.43113,-.0555028,.496472,.0492914,.431743,-.0629852,.496904,.0562907,.432448,-.0709256,.497369,.0638056,.433414,-.0791942,.498032,.071885,.434638,-.0877346,.498854,.0805517,.43611,-.0968056,.499812,.0898047,.437859,-.106002,.500891,.0997142,.440017,-.115648,.502198,.110289,.443236,-.125427,.504389,.121644,.44697,-.135492,.506809,.133769,.451689,-.145746,.509858,.146787,.45811,-.156219,.514247,.160793,.465305,-.166834,.518816,.175791,.474085,-.177546,.524331,.191906,.484808,-.188262,.53104,.209199,.49732,-.199346,.538511,.227825,.509693,-.209951,.544554,.247269,.524367,-.220533,.551616,.267978,.539228,-.231082,.557368,.289672,.55644,-.241342,.563782,.31268,.574204,-.250964,.568851,.33651,.593388,-.260306,.57312,.362219,.613358,-.268667,.574916,.390322,.634512,-.275591,.575053,.420478,.65563,-.281328,.572404,.451614,.678265,-.285948,.568893,.484112,.70011,-.289408,.561878,.517348,.723005,-.291328,.55359,.551355,.743744,-.291418,.541099,.585109,.763949,-.290252,.526489,.619487,.784186,-.287648,.509496,.65404,.804304,-.283782,.491484,.688649,.823629,-.278067,.470517,.723133,.84094,-.270588,.44705,.757163,.857852,-.261188,.421252,.792816,.874934,-.249313,.394191,.827248,.888709,-.236492,.365359,.861074,.902589,-.222185,.336016,.894417,.914201,-.207314,.30527,.926825,.925978,-.191146,.274532,.9595,.93512,-.174135,.243393,.991583,.943656,-.155231,.212414,1.02356,.951719,-.134403,.182005,1.05239,.957164,-.113023,.153043,1.07754,.962656,-.0914493,.124186,1.09984,.970695,-.0694179,.0941654,1.12,.980749,-.0466199,.0629671,1.13849,.991205,-.0227032,.0311146,1.15494,.999884,632388e-9,-254483e-9,1.1706,.379821,-957289e-11,.460637,789337e-11,.405188,-247483e-9,.491396,204064e-9,.404796,-989434e-9,.490914,815853e-9,.40483,-.00222607,.490949,.00183559,.40473,-.00395723,.49084,.00326332,.404731,-.00618287,.490836,.00509945,.404768,-.00890258,.490871,.00734463,.404791,-.0121156,.490883,.00999992,.404857,-.0158214,.490938,.0130676,.404943,-.0200178,.491004,.0165503,.405059,-.0247027,.491093,.0204521,.405213,-.0298729,.491205,.0247788,.405399,-.0355226,.491333,.0295373,.405731,-.0416352,.491604,.034741,.406303,-.0480807,.492116,.0404255,.406814,-.0550458,.492506,.0465732,.407404,-.0624652,.492926,.0532058,.408149,-.0702958,.493442,.0603442,.409128,-.0784623,.494136,.0680297,.410408,-.087007,.495054,.0762786,.411813,-.0959639,.495962,.0851046,.413735,-.105075,.497257,.0945878,.416137,-.114646,.498882,.104725,.41934,-.124394,.501132,.11563,.423326,-.134328,.503883,.127325,.428419,-.14458,.50747,.139911,.43484,-.154979,.511964,.153481,.442641,-.165628,.517328,.168114,.452511,-.176365,.524258,.183995,.463473,-.187298,.531248,.200953,.475564,-.198244,.538367,.219176,.488664,-.208938,.545175,.238514,.504073,-.219599,.553227,.259129,.520832,-.230378,.560653,.280997,.538455,-.240703,.567523,.303821,.55709,-.250548,.573287,.327948,.576646,-.259964,.577795,.353362,.596705,-.268721,.580077,.380336,.618053,-.276054,.58018,.4101,.640303,-.282176,.578747,.44161,.662365,-.286931,.574294,.474106,.684542,-.290521,.567035,.507549,.707984,-.292672,.558687,.541853,.730913,-.293189,.547606,.576581,.752948,-.292199,.533471,.61172,.773452,-.289508,.516395,.646339,.794715,-.285716,.497873,.682131,.814251,-.280051,.476845,.716396,.833057,-.272873,.453449,.751503,.84959,-.263982,.427857,.786085,.867022,-.252745,.400335,.821355,.882277,-.239655,.371304,.85646,.895375,-.225386,.340397,.890828,.909347,-.209587,.310005,.923532,.921885,-.193433,.2796,.956419,.932127,-.176135,.247276,.989445,.941869,-.157872,.216186,1.02221,.949735,-.137577,.185602,1.05195,.956617,-.115285,.155767,1.07822,.961974,-.0928418,.126103,1.10149,.96972,-.0700592,.0956758,1.12207,.98012,-.0474671,.0643269,1.1408,.990825,-.0238113,.0320863,1.1577,.999876,381574e-9,-812203e-10,1.17403,.367636,-961342e-11,.469176,753287e-11,.380377,-244772e-9,.485434,191797e-9,.380416,-978857e-9,.485475,767015e-9,.380376,-.00220165,.485435,.00172522,.380419,-.00391408,.485487,.00306734,.380438,-.00611549,.485505,.00479332,.380462,-.00880558,.485525,.00690391,.380496,-.0119837,.485551,.00940039,.38056,-.0156487,.485605,.0122848,.38064,-.0197988,.485666,.0155601,.380767,-.0244324,.48577,.0192313,.380909,-.0295444,.485871,.0233032,.381142,-.0351321,.48606,.0277861,.381472,-.0411535,.486336,.0326939,.382015,-.0475408,.486833,.0380565,.382523,-.0544395,.487231,.0438615,.383129,-.061784,.487683,.0501332,.383952,-.0695085,.488313,.0568996,.38498,-.0775819,.489077,.0641952,.386331,-.0860443,.490113,.0720324,.387788,-.0948406,.491099,.0804379,.389808,-.103899,.492566,.0894899,.39252,-.113313,.494601,.0992098,.395493,-.123007,.496619,.109641,.399826,-.132859,.499912,.120919,.405341,-.143077,.504061,.133107,.411932,-.153465,.508905,.146263,.420591,-.164108,.515482,.160544,.43101,-.174893,.523191,.176123,.441881,-.185839,.53026,.192757,.453919,-.196633,.537295,.210535,.468715,-.207611,.546156,.229886,.485182,-.218517,.555173,.250543,.501926,-.229249,.562728,.27221,.51785,-.239481,.567494,.294892,.536947,-.249395,.573889,.318987,.557115,-.259,.578831,.344348,.577966,-.268075,.582055,.371223,.599489,-.276115,.583307,.399834,.62479,-.282523,.583902,.431415,.647504,-.287663,.57953,.464301,.670601,-.291538,.573103,.498123,.693539,-.293842,.563731,.532662,.717385,-.294681,.553169,.567925,.741533,-.293717,.539908,.603502,.762142,-.291156,.521902,.639074,.783014,-.28719,.502815,.674439,.805158,-.281773,.482598,.710497,.823646,-.274682,.458949,.7456,.841879,-.266184,.433129,.781085,.859515,-.255682,.406064,.816,.875335,-.242849,.376509,.851074,.890147,-.228329,.345502,.886473,.903144,-.212491,.31428,.920751,.916618,-.195695,.282994,.954606,.927953,-.178267,.251091,.988402,.937414,-.159549,.219107,1.02141,.946823,-.140022,.18896,1.05167,.954651,-.118154,.158667,1.07819,.959955,-.0946636,.128808,1.1025,.96858,-.0711792,.0973787,1.12391,.97938,-.0475046,.0650965,1.14322,.990498,-.024059,.0326267,1.16077,.999844,-512408e-10,112444e-9,1.17727,.316912,-934977e-11,.425996,695559e-11,.356423,-241372e-9,.479108,179562e-9,.356272,-965292e-9,.478897,71811e-8,.356262,-.00217182,.478894,.00161574,.356265,-.00386092,.478895,.00287261,.356278,-.0060324,.478905,.00448907,.356293,-.00868565,.478914,.00646572,.356346,-.0118207,.478965,.00880438,.356395,-.0154355,.479001,.0115066,.356484,-.019529,.479075,.0145762,.356609,-.0240991,.47918,.018018,.356766,-.0291413,.479305,.0218379,.357009,-.0346498,.479512,.0260454,.357424,-.0405462,.479909,.0306657,.357899,-.0468825,.480337,.0357054,.358424,-.0536887,.480771,.0411728,.359041,-.0609416,.481242,.0470841,.359903,-.0685239,.481943,.0534831,.360932,-.0764883,.482741,.0603795,.362196,-.0848364,.483688,.0678028,.363847,-.0935002,.484947,.0758086,.365972,-.102471,.486588,.0844173,.368741,-.111751,.488787,.0937199,.372146,-.121334,.491405,.103732,.377114,-.131147,.495604,.114608,.38226,-.141213,.499436,.126345,.389609,-.151632,.505334,.139116,.397925,-.162073,.51168,.152995,.407824,-.172819,.518876,.168071,.420014,-.183929,.527639,.184495,.434266,-.195032,.537588,.20232,.447352,-.205792,.544379,.221189,.463726,-.216704,.553422,.241616,.481406,-.227531,.562074,.263298,.498707,-.238017,.568227,.286116,.518039,-.247936,.574473,.3101,.538277,-.257437,.579191,.335401,.561166,-.266829,.584807,.362246,.583189,-.275329,.586476,.390609,.606024,-.28234,.585578,.420998,.632419,-.287924,.584496,.454357,.656128,-.291972,.577766,.488233,.679953,-.29456,.56875,.523248,.704654,-.295816,.558388,.559168,.729016,-.295157,.544826,.595326,.752062,-.292779,.528273,.631864,.773138,-.288681,.508482,.667793,.794869,-.283358,.487341,.704035,.815101,-.27608,.46354,.739925,.834212,-.26767,.438672,.775539,.852368,-.257397,.411239,.810895,.870207,-.245689,.3829,.846472,.884063,-.231452,.351496,.881788,.898284,-.215561,.31895,.917438,.912964,-.198208,.287367,.952422,.924666,-.180426,.254487,.987551,.934429,-.161525,.222226,1.02142,.943485,-.141197,.191143,1.05218,.9521,-.120085,.161112,1.07937,.957876,-.0975881,.130982,1.10403,.966943,-.0726842,.0990553,1.12616,.978313,-.0483705,.0662818,1.14619,.990048,-.0239072,.0329243,1.16413,.999984,461885e-9,-772859e-10,1.18099,.321287,-935049e-11,.455413,659662e-11,.332595,-237513e-9,.471437,167562e-9,.332729,-949964e-9,.471618,670192e-9,.332305,-.00213618,.471028,.00150712,.332326,-.00379765,.471055,.00267959,.332344,-.00593353,.471072,.00418751,.332356,-.00854349,.471077,.00603172,.332403,-.0116268,.471121,.00821362,.332461,-.0151824,.47117,.0107357,.332552,-.0192088,.471251,.0136014,.332657,-.0237024,.47133,.0168152,.332835,-.0286615,.471487,.0203853,.333083,-.0340765,.471708,.0243212,.333547,-.0398563,.47219,.0286518,.333989,-.0460916,.472587,.0333763,.334532,-.0527897,.473054,.0385084,.335167,-.0599284,.473568,.0440638,.33608,-.0673514,.474362,.0500962,.337146,-.0752237,.475231,.0566022,.338462,-.083418,.476282,.0636272,.34014,-.0919382,.477615,.0712153,.342341,-.100741,.479404,.079417,.345088,-.109905,.481618,.0882631,.349049,-.119369,.485081,.0978851,.353939,-.129033,.489317,.108336,.359893,-.139038,.494309,.119698,.366945,-.149411,.499983,.132024,.375814,-.159843,.507185,.145558,.387112,-.170664,.516392,.160433,.40023,-.181897,.526519,.176648,.412555,-.192785,.53423,.193922,.427023,-.203663,.542741,.212662,.443685,-.214695,.552066,.232944,.461499,-.225561,.560762,.254495,.480975,-.236257,.569421,.277531,.501,-.24639,.576101,.301724,.521691,-.256101,.581493,.327112,.543478,-.265289,.585221,.353917,.566094,-.273938,.587614,.381941,.589578,-.281679,.587991,.41172,.614583,-.287655,.585928,.444148,.641813,-.292228,.582092,.478617,.666189,-.295172,.57398,.51397,.690475,-.29648,.561676,.550118,.715543,-.296203,.548758,.586933,.740405,-.293999,.532792,.62384,.762183,-.28998,.512735,.660723,.786069,-.28478,.492402,.69807,.806812,-.277568,.469058,.734422,.826987,-.268951,.443017,.770946,.844588,-.259049,.415501,.80699,.863725,-.2471,.387328,.842107,.879137,-.234157,.356108,.878078,.894634,-.218719,.324315,.914058,.909162,-.201293,.291813,.949922,.92072,-.18267,.258474,.985337,.93158,-.163212,.225593,1.0205,.941238,-.142771,.193986,1.05273,.949293,-.120956,.163392,1.08075,.956226,-.0985743,.132934,1.10559,.96546,-.075118,.101255,1.12823,.977403,-.0497921,.0675441,1.149,.989648,-.0241574,.0334681,1.16765,1.00001,5762e-7,-184807e-9,1.18519,.303474,-916603e-11,.4542,61243e-10,.308894,-232869e-9,.462306,155592e-9,.309426,-931661e-9,.463093,622499e-9,.308643,-.0020949,.461933,.00139979,.308651,-.0037242,.461941,.00248874,.308662,-.00581873,.46195,.00388933,.308687,-.00837818,.461974,.00560247,.308728,-.0114016,.462011,.00762948,.308789,-.0148884,.462067,.00997326,.308882,-.0188369,.462151,.0126375,.309007,-.0232436,.462263,.0156271,.30918,-.0281054,.462417,.0189498,.309442,-.0334065,.462667,.0226167,.309901,-.0390589,.463162,.0266614,.310331,-.0452042,.463555,.0310715,.310858,-.0517735,.464019,.0358698,.311576,-.0587359,.464669,.0410848,.312436,-.0660383,.465406,.0467453,.313526,-.0737266,.466339,.0528718,.314903,-.0817574,.467504,.0595039,.316814,-.090167,.469226,.0666888,.318965,-.0987555,.470981,.0744658,.322077,-.107792,.473814,.082912,.325947,-.117098,.477241,.0920846,.331008,-.126602,.48184,.102137,.337893,-.136619,.488334,.113135,.345106,-.146838,.494415,.12511,.355111,-.157357,.503275,.138356,.365095,-.167955,.510966,.152686,.378344,-.179157,.521508,.16856,.391599,-.190143,.530455,.18561,.407786,-.20123,.541275,.204308,.425294,-.212456,.551784,.224623,.444021,-.223568,.561493,.246172,.463418,-.234154,.569886,.268979,.484077,-.244546,.577116,.293411,.505513,-.254301,.582914,.318936,.527672,-.263564,.587208,.345856,.550565,-.272332,.589277,.374054,.573656,-.280011,.588426,.403276,.59827,-.286924,.587504,.43474,.624731,-.291994,.583401,.468767,.652396,-.295159,.576997,.504411,.67732,-.296954,.565863,.54114,.703147,-.296877,.552316,.57816,.728715,-.295147,.536773,.616124,.752448,-.291275,.51771,.653885,.775169,-.285905,.496087,.691537,.799307,-.279064,.474232,.729251,.819482,-.270294,.447676,.766267,.837659,-.260032,.419656,.802616,.856903,-.248497,.391328,.838583,.873325,-.235252,.360285,.874711,.889788,-.221126,.329215,.91077,.904486,-.204304,.296392,.94653,.917711,-.185562,.262159,.983828,.928969,-.165635,.229142,1.01955,.939707,-.14442,.19673,1.05317,.948167,-.122147,.165095,1.0823,.955222,-.099098,.13451,1.10791,.964401,-.0755332,.102476,1.1312,.976605,-.0513817,.0689667,1.15218,.989085,-.0258499,.034506,1.17129,.999908,617773e-9,-271268e-9,1.18961,.285803,-905752e-11,.452348,572272e-11,.284689,-22732e-8,.450581,143626e-9,.285263,-910214e-9,.451482,575099e-9,.285302,-.00204784,.451553,.00129395,.285318,-.00364057,.451574,.0023006,.28533,-.00568813,.451585,.00359547,.285361,-.00819001,.451618,.00517934,.285397,-.0111458,.45165,.007054,.285447,-.0145536,.451688,.00922167,.285527,-.0184127,.451758,.0116869,.285688,-.0227207,.451929,.0144555,.28584,-.0274712,.452055,.0175341,.286136,-.0326278,.452369,.0209406,.286574,-.0381792,.452853,.0246965,.287012,-.0441879,.453272,.0287996,.287542,-.0506096,.453752,.033268,.288299,-.0573634,.454488,.0381504,.289186,-.0645458,.455294,.0434447,.290302,-.0720405,.456301,.0491973,.291776,-.0799046,.457648,.0554453,.29372,-.088117,.459483,.0622311,.296052,-.0965328,.461571,.0695992,.299563,-.105409,.465085,.077658,.30335,-.114553,.468506,.0864176,.309167,-.123917,.474423,.0961078,.31529,-.13381,.47995,.106643,.324163,-.144021,.488592,.118322,.333272,-.154382,.496461,.131133,.344224,-.165015,.50562,.145208,.357733,-.176168,.516719,.16073,.373046,-.187468,.528513,.177807,.38788,-.198488,.537713,.196072,.405133,-.209545,.547999,.21605,.423845,-.220724,.55759,.237484,.443777,-.231518,.566246,.26039,.464824,-.242035,.574326,.284835,.486635,-.251898,.58037,.310518,.51012,-.261304,.58568,.337678,.535301,-.270384,.590197,.366242,.559193,-.27841,.590569,.395873,.583544,-.285325,.588161,.426857,.608834,-.291113,.584249,.459477,.635753,-.294882,.57763,.494734,.664367,-.297088,.569479,.532023,.689688,-.297364,.555064,.569629,.715732,-.295949,.539522,.608124,.741307,-.292259,.521613,.646231,.764949,-.287063,.49969,.684938,.788599,-.28012,.476747,.723548,.81048,-.27153,.45116,.761135,.831372,-.261289,.424101,.798916,.850092,-.249559,.39443,.835952,.867777,-.236348,.363849,.871606,.884632,-.221569,.332477,.907843,.90047,-.20618,.300667,.944187,.914524,-.188771,.266552,.981371,.926892,-.168362,.232349,1.01841,.937951,-.146761,.199359,1.05308,.947236,-.123813,.1675,1.0839,.954367,-.099984,.136166,1.11047,.963907,-.0759278,.103808,1.13414,.976218,-.0511367,.0697061,1.15575,.988772,-.0267415,.0352529,1.17531,.999888,-520778e-9,289926e-9,1.19389,.263546,-883274e-11,.441896,526783e-11,.262352,-221849e-9,.439889,132311e-9,.262325,-886683e-9,.439848,528824e-9,.26228,-.00199476,.439765,.00118975,.262372,-.00354671,.439922,.00211568,.26239,-.00554141,.439941,.00330652,.262412,-.00797888,.439961,.00476346,.262453,-.0108584,.440002,.00648818,.262528,-.0141788,.440085,.0084835,.262615,-.017938,.440166,.0107533,.262744,-.0221346,.440291,.0133044,.262939,-.026762,.440493,.0161445,.263277,-.0317573,.440889,.0192974,.26368,-.0371832,.441338,.0227699,.264106,-.0430371,.441753,.0265698,.264624,-.0493035,.442227,.0307178,.265378,-.0558669,.442985,.0352616,.266253,-.0628718,.443795,.0401968,.267478,-.0701569,.445008,.04559,.269062,-.077845,.446599,.0514539,.270926,-.0857941,.448349,.0578382,.273693,-.0940773,.451221,.0648363,.276746,-.102704,.454097,.0724389,.281693,-.111735,.459517,.0808744,.287335,-.121004,.46531,.0901551,.29448,-.130734,.472605,.100371,.30257,-.140777,.480251,.111644,.312465,-.15111,.489444,.124111,.324856,-.16189,.500919,.137979,.33774,-.172946,.511317,.153163,.35255,-.184152,.522684,.169817,.367786,-.19522,.53248,.187886,.385474,-.20632,.543326,.207634,.404976,-.217744,.554109,.229165,.425203,-.228691,.563395,.252068,.446704,-.239299,.571565,.276471,.468951,-.249348,.577935,.302323,.493487,-.258933,.584309,.329882,.517861,-.268009,.58773,.358525,.543309,-.276238,.589612,.388585,.569704,-.28356,.589294,.419787,.594871,-.289497,.585137,.452114,.622555,-.294452,.580356,.486466,.651167,-.296918,.57185,.523079,.677332,-.297647,.558428,.5611,.703718,-.296321,.542232,.599592,.730262,-.293339,.524541,.639138,.754304,-.288036,.502691,.677978,.778051,-.281018,.479212,.716537,.801557,-.272414,.454071,.75586,.822559,-.262419,.425952,.794477,.843051,-.250702,.397313,.832664,.86232,-.237264,.366534,.869876,.879044,-.222716,.334816,.906973,.896362,-.206827,.303143,.943558,.910342,-.189659,.269699,.979759,.924119,-.171108,.236411,1.01718,.935374,-.149579,.202224,1.05289,.944295,-.126295,.16989,1.08496,.952227,-.101511,.138089,1.11256,.962041,-.0766392,.105053,1.1375,.97528,-.0511967,.070329,1.15983,.988476,-.025463,.0351268,1.17987,.999962,286808e-10,145564e-10,1.19901,.227089,-841413e-11,.404216,472707e-11,.239725,-215083e-9,.426708,120833e-9,.239904,-860718e-9,.427028,483555e-9,.239911,-.00193661,.427039,.00108806,.239914,-.00344276,.42704,.00193457,.239933,-.00537907,.427064,.00302363,.239944,-.00774482,.427065,.00435604,.239993,-.01054,.427122,.00593398,.240052,-.0137626,.427179,.00775987,.240148,-.0174115,.427279,.00983854,.240278,-.021484,.42741,.0121763,.240472,-.0259729,.427618,.0147827,.240839,-.0308131,.428086,.0176837,.241201,-.0360893,.428482,.0208775,.241626,-.0417723,.428907,.0243821,.242207,-.0478337,.42952,.0282228,.24298,-.0542199,.430332,.0324333,.243881,-.0610015,.431222,.0370252,.245123,-.0680874,.432512,.0420535,.24667,-.0755482,.434088,.0475414,.248779,-.0832873,.436323,.0535542,.251665,-.0913546,.439509,.0601716,.255305,-.0998489,.443478,.0674282,.260049,-.108576,.448713,.0754673,.266192,-.117754,.455524,.084339,.273158,-.127294,.4627,.0941683,.282131,-.137311,.472068,.10515,.293332,-.147736,.483565,.117402,.304667,-.158357,.493702,.130824,.317785,-.169274,.504708,.145724,.333245,-.180595,.517107,.16215,.349843,-.191892,.528849,.180149,.367944,-.203168,.540301,.199746,.387579,-.214443,.551514,.221047,.408247,-.225624,.560906,.243981,.43014,-.236422,.56959,.268513,.452669,-.24654,.576098,.294409,.476196,-.256157,.580925,.322002,.501157,-.265289,.584839,.351052,.527632,-.273671,.587614,.3812,.555754,-.281254,.589119,.412994,.581682,-.287448,.585204,.445498,.608196,-.292614,.579006,.479505,.635661,-.296068,.571297,.514643,.664999,-.297395,.560855,.552213,.691039,-.296645,.544525,.591365,.7179,-.293785,.526535,.630883,.744059,-.289089,.50545,.670932,.76863,-.282239,.482514,.710904,.793273,-.273688,.457246,.750259,.814731,-.26328,.428872,.78948,.835603,-.251526,.399384,.828597,.85489,-.238339,.368811,.866892,.872828,-.223607,.336617,.90563,.889462,-.207538,.303997,.943538,.904929,-.190297,.270812,.980591,.919101,-.172034,.237453,1.01935,.930536,-.152058,.204431,1.05498,.941223,-.129515,.172495,1.08717,.94982,-.104263,.140175,1.11551,.960592,-.0781944,.106465,1.14098,.974629,-.051688,.0711592,1.16418,.98811,-.0253929,.0354432,1.18465,1.00004,804378e-9,-330876e-9,1.20462,.214668,-821282e-11,.406619,433582e-11,.218053,-208144e-9,.413025,109887e-9,.217987,-832212e-9,.412901,439362e-9,.217971,-.00187246,.412876,988623e-9,.217968,-.00332855,.41286,.00175772,.217985,-.00520055,.412882,.00274729,.218014,-.00748814,.412916,.00395842,.218054,-.0101901,.412957,.00539274,.218106,-.0133057,.413005,.00705348,.218217,-.0168342,.413139,.00894581,.218338,-.0207707,.413258,.0110754,.21855,-.0251001,.413509,.0134551,.218913,-.0297861,.413992,.0161081,.219265,-.0348956,.414383,.0190307,.219696,-.0403909,.414839,.0222458,.220329,-.0462003,.415567,.025792,.220989,-.0524208,.41621,.0296637,.222027,-.058948,.417385,.0339323,.223301,-.0658208,.418779,.0386055,.224988,-.0730347,.420665,.0437355,.227211,-.0805274,.423198,.0493844,.230131,-.088395,.426566,.0556135,.233908,-.0966208,.43091,.0624829,.239092,-.105223,.437148,.0701636,.245315,-.11424,.444302,.0786949,.253166,-.12368,.453262,.0882382,.262374,-.133569,.463211,.0988682,.273145,-.143836,.474271,.110727,.285512,-.154577,.4863,.123945,.299512,-.165501,.498817,.138581,.314287,-.176698,.510341,.154676,.331083,-.188066,.522583,.172459,.349615,-.199597,.534879,.191979,.369318,-.210843,.546083,.21309,.390377,-.222068,.5562,.235998,.412411,-.233059,.564704,.260518,.435715,-.24357,.572314,.286795,.461196,-.253356,.579395,.314559,.485587,-.262362,.581985,.343581,.511908,-.270895,.584347,.374367,.539798,-.278452,.58505,.406015,.567974,-.284877,.583344,.439168,.594303,-.290124,.577348,.473005,.622951,-.294183,.570751,.508534,.652404,-.296389,.561541,.544764,.679291,-.296605,.546426,.582927,.706437,-.294095,.528599,.622681,.734485,-.28978,.508676,.663567,.758841,-.283363,.484768,.704092,.78537,-.275015,.460434,.745101,.807315,-.264689,.432166,.784712,.8271,-.252597,.401807,.824241,.849191,-.239154,.371458,.863803,.867046,-.224451,.338873,.903063,.8852,-.208342,.306175,.942763,.901771,-.190684,.272759,.981559,.915958,-.172105,.239306,1.02048,.928046,-.152214,.206071,1.05765,.939961,-.130247,.17367,1.08999,.948711,-.10672,.142201,1.11829,.959305,-.0808688,.108454,1.14467,.973009,-.0539145,.0728109,1.16839,.987631,-.0262947,.0360625,1.19004,.999978,.00132758,-559424e-9,1.21058,.193925,-793421e-11,.391974,392537e-11,.196746,-200315e-9,.397675,991033e-10,.19667,-801099e-9,.397521,396342e-9,.196633,-.00180246,.397445,891829e-9,.196654,-.00320443,.397482,.00158582,.196659,-.00500647,.39748,.00247867,.196683,-.0072086,.397506,.00357167,.196728,-.00981001,.397562,.00486675,.196792,-.0128096,.397633,.00636707,.19689,-.0162055,.397746,.00807752,.197017,-.0199943,.397884,.0100052,.19729,-.024139,.39827,.0121691,.197583,-.0286671,.398639,.0145755,.197927,-.0335858,.399034,.0172355,.198383,-.0388806,.399554,.0201718,.199002,-.0444736,.400289,.0234194,.199739,-.0504583,.401111,.026984,.200784,-.056729,.402349,.0309217,.202075,-.0633643,.403841,.0352496,.203898,-.0703247,.406076,.0400313,.206199,-.0775565,.408841,.0453282,.209252,-.085184,.41259,.0511794,.213638,-.0931994,.418288,.0577459,.21881,-.101617,.424681,.0650508,.225642,-.11052,.433429,.0732759,.233717,-.119772,.442897,.0824683,.242823,-.129505,.452888,.0927484,.254772,-.139906,.466407,.104417,.266603,-.150402,.477413,.117211,.28073,-.161395,.490519,.131598,.295399,-.172465,.50201,.147407,.312705,-.183982,.515311,.165031,.331335,-.195532,.52786,.184336,.351037,-.206971,.5392,.205361,.372175,-.218117,.54941,.228043,.394548,-.229327,.558642,.25267,.419598,-.240052,.567861,.279071,.443922,-.249937,.573332,.306882,.471495,-.259407,.58013,.33661,.496769,-.267749,.580564,.367328,.524951,-.275524,.581696,.399753,.55318,-.282148,.579885,.433134,.581577,-.287533,.575471,.467534,.609231,-.291612,.567445,.502943,.637478,-.293911,.557657,.53871,.667795,-.295096,.546535,.576568,.694272,-.294073,.529561,.614929,.722937,-.290386,.510561,.655909,.749682,-.284481,.487846,.697663,.774754,-.276188,.462487,.738515,.799301,-.266215,.43481,.779802,.820762,-.254116,.404879,.820045,.843231,-.240393,.374559,.860294,.861857,-.225503,.341582,.900965,.880815,-.209382,.308778,.941727,.89766,-.19155,.275232,.980916,.912926,-.172346,.240938,1.02162,.926391,-.151799,.207223,1.0597,.938429,-.129968,.17484,1.09291,.947834,-.10651,.142984,1.12248,.958432,-.0824098,.109902,1.149,.972402,-.0565242,.0744454,1.1733,.987191,-.028427,.0373794,1.19538,.999975,385685e-10,-4203e-8,1.21676,.178114,-766075e-11,.385418,354027e-11,.176074,-191966e-9,.381002,887135e-10,.17601,-767549e-9,.380861,354715e-9,.17598,-.00172696,.380798,798168e-9,.175994,-.00307012,.380824,.00141928,.176017,-.00479684,.380858,.00221859,.176019,-.00690648,.380839,.00319714,.176072,-.00939888,.380913,.0043572,.176131,-.0122726,.380979,.005702,.176239,-.0155264,.38112,.00723689,.176371,-.0191551,.381272,.00896907,.176638,-.023117,.381669,.0109194,.176912,-.0274633,.382015,.0130903,.177279,-.032173,.382476,.0154949,.17774,-.0372219,.383041,.0181669,.178344,-.0426132,.38378,.0211209,.179153,-.0483309,.384773,.0243899,.180197,-.0543447,.386076,.0280062,.181581,-.0607122,.387809,.032004,.18344,-.0673855,.390205,.036453,.186139,-.0743989,.393944,.0414162,.189432,-.0817731,.39832,.0469394,.193795,-.0895464,.404188,.0531442,.199641,-.0978264,.4121,.0601374,.206679,-.106499,.421425,.0680078,.214865,-.115654,.431504,.076919,.224406,-.125268,.442526,.0868835,.235876,-.135475,.455465,.0981875,.248335,-.146023,.4681,.110759,.262868,-.157016,.482069,.124885,.278962,-.168245,.496182,.140645,.295082,-.17958,.507401,.157838,.313738,-.191227,.520252,.17695,.333573,-.202718,.531708,.197817,.356433,-.214424,.544509,.220785,.378853,-.225492,.55373,.245306,.402717,-.236236,.561348,.271593,.428375,-.246568,.568538,.299776,.454724,-.255941,.573462,.329433,.482291,-.264511,.576356,.360598,.509706,-.272129,.576446,.393204,.538805,-.278979,.575298,.427227,.568919,-.284528,.572154,.462157,.596804,-.288801,.564691,.497997,.625987,-.291334,.555134,.534467,.656414,-.292722,.545051,.571736,.683916,-.292185,.528813,.610158,.711809,-.290043,.51106,.649061,.739547,-.285246,.490103,.690081,.766914,-.277647,.465523,.732554,.791375,-.267603,.437718,.773982,.814772,-.256109,.40882,.81609,.836691,-.242281,.377823,.856849,.856984,-.227155,.34496,.898363,.876332,-.210395,.311335,.939471,.894988,-.192612,.277703,.980799,.911113,-.173236,.243019,1.02215,.924092,-.152258,.209037,1.06139,.936828,-.129575,.175909,1.09635,.946869,-.10594,.143852,1.12707,.958284,-.081318,.110289,1.15419,.972325,-.0556133,.0747232,1.17909,.986878,-.0297899,.0383149,1.20163,.999936,-.00197169,912402e-9,1.22338,.151174,-720365e-11,.351531,309789e-11,.155594,-18279e-8,.361806,78608e-9,.156099,-731569e-9,.362982,314615e-9,.156053,-.00164578,.362869,707845e-9,.156093,-.0029261,.362961,.00125884,.156099,-.00457155,.362959,.00196783,.15612,-.00658224,.362982,.00283622,.156168,-.00895774,.363048,.00386625,.156221,-.0116962,.363101,.00506109,.156324,-.0147973,.363241,.00642675,.156476,-.0182503,.363448,.00797175,.156731,-.0220266,.36384,.00971484,.156994,-.026176,.364179,.0116575,.157341,-.0306701,.36462,.0138207,.157867,-.0354591,.365364,.0162356,.15846,-.0406141,.366111,.0189092,.159308,-.0460519,.367248,.021885,.160426,-.0518096,.368767,.0252004,.161877,-.0578906,.370745,.0288825,.163995,-.0642812,.373831,.0330139,.16655,-.0710067,.377366,.0376283,.170237,-.0781522,.382799,.0428493,.175096,-.0857172,.389915,.0487324,.181069,-.0938025,.398487,.0554214,.188487,-.102363,.408799,.0630189,.197029,-.111343,.419991,.071634,.206684,-.120812,.431455,.0812797,.218698,-.131033,.445746,.0923651,.230726,-.141373,.457471,.104545,.245516,-.152387,.472388,.118449,.261551,-.163628,.486671,.133923,.277437,-.174814,.49762,.150849,.296662,-.186713,.51162,.169924,.31795,-.198513,.525435,.190848,.339422,-.210119,.536267,.213504,.362143,-.221354,.545982,.237947,.387198,-.23224,.555364,.264427,.412349,-.24257,.561489,.292519,.439274,-.252284,.566903,.322561,.466779,-.261023,.569614,.353952,.496011,-.26899,.571589,.387278,.524964,-.275498,.570325,.421356,.556518,-.281449,.568792,.457314,.584363,-.285526,.560268,.493199,.614214,-.28844,.55205,.530276,.645684,-.289777,.541906,.56855,.673446,-.289722,.526464,.606927,.701924,-.287792,.509872,.645945,.73037,-.284315,.490649,.685564,.757405,-.278804,.467964,.726511,.784025,-.269543,.441468,.768601,.808255,-.258117,.41216,.811321,.830739,-.244728,.380606,.853496,.851914,-.229428,.348111,.895374,.872586,-.212508,.314732,.937674,.891581,-.194025,.280338,.979869,.907641,-.174711,.245203,1.02253,.922233,-.153509,.21077,1.06371,.935878,-.130418,.177399,1.09972,.946338,-.105558,.144507,1.13124,.957265,-.080059,.110508,1.15973,.971668,-.0539766,.0742311,1.18515,.9866,-.0277101,.0375224,1.20858,1.00021,-515531e-9,135226e-9,1.23135,.137468,-686011e-11,.345041,273315e-11,.13703,-173378e-9,.343936,690761e-10,.136986,-693048e-9,.34383,276126e-9,.136964,-.00155931,.343761,621337e-9,.137003,-.00277211,.343863,.00110494,.137012,-.00433103,.343868,.00172744,.137043,-.00623606,.343916,.00249022,.13709,-.0084868,.343986,.00339559,.137145,-.0110814,.344045,.00444687,.137242,-.0140187,.344177,.00565007,.137431,-.0172713,.344491,.00701868,.137644,-.0208605,.344805,.00856042,.13791,-.024792,.345172,.0102863,.138295,-.0290461,.345734,.0122185,.138764,-.0335957,.346371,.0143771,.139415,-.038467,.347298,.0167894,.140272,-.0436176,.348527,.0194895,.141457,-.0491016,.350276,.0225043,.14303,-.0548764,.352646,.0258962,.145289,-.0610096,.356206,.0297168,.148502,-.0674777,.361488,.0340562,.152188,-.074345,.367103,.0389534,.157359,-.0817442,.375247,.0445541,.16379,-.0896334,.385064,.0509535,.171376,-.098005,.396082,.0582611,.179901,-.106817,.407418,.06654,.189892,-.116239,.420031,.075994,.201838,-.12627,.434321,.0867239,.214311,-.136701,.447631,.0987517,.228902,-.147616,.462046,.112353,.245107,-.158871,.476942,.127605,.262292,-.170261,.490285,.144469,.281215,-.182017,.503783,.163282,.301058,-.193729,.515505,.183873,.322752,-.205512,.52682,.206466,.347547,-.217214,.539473,.231194,.370969,-.227966,.546625,.257288,.397533,-.238555,.55472,.285789,.42398,-.248278,.559468,.315746,.452928,-.257422,.564095,.347724,.482121,-.265306,.565426,.380922,.510438,-.272043,.563205,.415639,.541188,-.277614,.561087,.451702,.571667,-.281927,.554922,.48845,.602432,-.285015,.546838,.526442,.634126,-.286512,.537415,.564896,.662816,-.286388,.522906,.604037,.692411,-.284734,.507003,.643795,.720946,-.281297,.488398,.68298,.748293,-.276262,.466353,.723466,.776931,-.269978,.443573,.764565,.801065,-.260305,.415279,.805838,.825843,-.247426,.384773,.849985,.84807,-.232437,.352555,.893174,.869122,-.215806,.318642,.936564,.888963,-.197307,.28381,.980253,.905547,-.177203,.247888,1.02463,.918554,-.155542,.212904,1.06714,.931395,-.131948,.1787,1.10451,.941749,-.106723,.145902,1.13694,.954551,-.0804939,.111193,1.1666,.970279,-.0534239,.0744697,1.19249,.986117,-.0257452,.0368788,1.21665,.999938,.00190634,-.0010291,1.23981,.118493,-647439e-11,.32272,23772e-10,.118765,-163023e-9,.323456,598573e-10,.118772,-65212e-8,.323477,239447e-9,.118843,-.00146741,.323657,538881e-9,.118804,-.00260846,.323553,95826e-8,.118826,-.00407576,.323595,.00149845,.118846,-.00586826,.323617,.00216047,.118886,-.00798578,.32367,.00294679,.118947,-.0104273,.323753,.00386124,.119055,-.0131909,.323922,.00490999,.119241,-.0162444,.324251,.00610804,.11944,-.0196339,.324544,.00745805,.119739,-.0233378,.325026,.00897805,.12011,-.0273179,.325586,.0106895,.120571,-.0316143,.326231,.0126073,.12124,-.0361939,.327264,.0147654,.122162,-.0410511,.328733,.0172001,.123378,-.0462233,.330659,.0199375,.125183,-.0517109,.333754,.0230498,.127832,-.0575652,.338507,.026597,.130909,-.0637441,.343666,.0306345,.135221,-.0704302,.351063,.035273,.14082,-.0776364,.360604,.0406137,.146781,-.0852293,.369638,.0466788,.155121,-.0935351,.3827,.0537628,.16398,-.102234,.39522,.0617985,.173926,-.111465,.40793,.07097,.185137,-.121296,.42105,.0813426,.19826,-.13169,.435735,.0931596,.212938,-.142614,.450932,.106547,.229046,-.153884,.465726,.121575,.246246,-.165382,.479461,.138286,.264637,-.176806,.492106,.15666,.284959,-.188793,.504774,.17728,.308157,-.200763,.518805,.19988,.330951,-.21239,.528231,.224293,.3549,-.223521,.536376,.250541,.381502,-.234169,.544846,.278902,.409529,-.244077,.551717,.309227,.437523,-.253363,.55517,.341426,.467624,-.261659,.557772,.37518,.497268,-.268498,.556442,.41007,.528294,-.274018,.553915,.446445,.559053,-.278169,.549153,.483779,.589329,-.281229,.539878,.522249,.622503,-.282902,.53162,.561754,.652382,-.282815,.518119,.601544,.681847,-.281247,.502187,.641574,.712285,-.277986,.484824,.682633,.740094,-.273017,.463483,.723426,.768478,-.266692,.441299,.763747,.794556,-.258358,.415238,.805565,.819408,-.248807,.386912,.847254,.843411,-.236214,.356165,.891091,.862397,-.219794,.320562,.936174,.883113,-.201768,.285322,.982562,.90023,-.181672,.249713,1.02862,.915192,-.159279,.214546,1.07163,.928458,-.134725,.180285,1.10995,.94069,-.10913,.147119,1.14354,.953409,-.0821315,.112492,1.17372,.969537,-.0542677,.0752014,1.20043,.985612,-.0259096,.0370361,1.22528,.999835,.00298198,-.00151801,1.24959,.10097,-602574e-11,.300277,202619e-11,.101577,-152164e-9,.302077,511662e-10,.101572,-608889e-9,.302066,204751e-9,.101566,-.00136997,.302047,460753e-9,.101592,-.00243557,.302114,819497e-9,.101608,-.0038053,.30214,.00128154,.101627,-.00547906,.30216,.0018483,.101669,-.00745647,.302224,.00252223,.101732,-.00973615,.302318,.00330716,.101844,-.0123097,.302513,.00421061,.102025,-.0151681,.30285,.00524481,.102224,-.0183334,.303166,.0064154,.102515,-.0217819,.303654,.00774063,.102886,-.0255067,.304243,.0092398,.103395,-.029514,.305089,.0109339,.104109,-.0337912,.306301,.0128561,.105074,-.0383565,.30798,.0150338,.10654,-.0432132,.310726,.0175228,.108478,-.0484244,.314351,.0203648,.111015,-.0539339,.319032,.0236325,.114682,-.0598885,.32605,.0274188,.11911,-.0663375,.334109,.0317905,.124736,-.0733011,.344013,.0368502,.131479,-.0807744,.355358,.0427104,.139283,-.0888204,.367614,.0494788,.148054,-.0973394,.380072,.0572367,.159037,-.10665,.395678,.0662704,.169794,-.116221,.40795,.0763192,.18314,-.126632,.423546,.087956,.197515,-.137383,.438213,.101042,.213514,-.148641,.453248,.115827,.23065,-.160117,.46688,.132283,.249148,-.171807,.479962,.150644,.270219,-.183695,.494618,.171073,.292338,-.195574,.506937,.193378,.314999,-.207205,.516463,.217585,.340991,-.218955,.528123,.24428,.367982,-.229917,.537025,.272784,.39432,-.239737,.541627,.302742,.423364,-.249048,.546466,.335112,.453751,-.257329,.549466,.369032,.48416,-.264623,.549503,.404577,.515262,-.270411,.547008,.441337,.547036,-.274581,.542249,.479162,.576614,-.277266,.533015,.517904,.611143,-.279144,.525512,.558508,.640989,-.279001,.51154,.598995,.671182,-.277324,.495641,.639935,.700848,-.273908,.477526,.681017,.729862,-.269063,.457955,.722764,.758273,-.262282,.434846,.764349,.784121,-.254281,.409203,.806206,.809798,-.24505,.382694,.848617,.834953,-.233861,.354034,.892445,.856817,-.221308,.321764,.936263,.877609,-.205996,.288118,.982401,.897489,-.186702,.253277,1.02975,.913792,-.164618,.217963,1.07488,.92785,-.140023,.183221,1.11487,.940378,-.11328,.149385,1.14947,.95273,-.0853958,.114152,1.1807,.969059,-.0568698,.0769845,1.20912,.985574,-.0276502,.0381186,1.23498,.999943,.00239052,-.00126861,1.25987,.0852715,-560067e-11,.279021,171162e-11,.0854143,-140871e-9,.279483,430516e-10,.0854191,-563385e-9,.2795,172184e-9,.0854188,-.00126753,.279493,387464e-9,.0854229,-.00225337,.279501,68918e-8,.0854443,-.00352086,.279549,.00107803,.0854697,-.00506962,.279591,.00155536,.0855093,-.00689873,.279652,.00212354,.0855724,-.00900821,.279752,.00278703,.0856991,-.0113799,.280011,.0035551,.085855,-.0140314,.280297,.00443449,.0860682,-.016963,.280682,.00543636,.086344,-.0201438,.281159,.0065788,.0867426,-.0235999,.281886,.00787977,.087239,-.0273069,.282745,.0093606,.0879815,-.031269,.284139,.011056,.0891258,-.035531,.28647,.0130065,.0906909,-.0400947,.289708,.0152495,.0927624,-.0449638,.293904,.0178454,.0958376,-.0502427,.300471,.0208915,.0995827,-.0559514,.30806,.0244247,.104526,-.0622152,.317874,.0285721,.110532,-.0690046,.329332,.0334227,.117385,-.0763068,.341217,.0390466,.12522,-.084184,.353968,.0455786,.134037,-.0925248,.366797,.0530773,.144014,-.101487,.380209,.0617424,.156013,-.111273,.395956,.071777,.168872,-.121431,.41053,.0830905,.183089,-.132105,.425073,.0959341,.198763,-.143286,.439833,.110448,.216159,-.154841,.454507,.126769,.234859,-.166588,.468368,.14495,.255879,-.178626,.482846,.165233,.27677,-.190218,.493489,.187217,.301184,-.202227,.506549,.211659,.325852,-.213764,.5158,.237922,.352824,-.22487,.525442,.26632,.380882,-.235246,.532487,.296691,.410137,-.244847,.537703,.329179,.439787,-.253122,.540361,.363135,.472291,-.260517,.542734,.399222,.501856,-.266519,.538826,.436352,.534816,-.270905,.535152,.474505,.565069,-.273826,.525979,.513988,.597154,-.275333,.516394,.554852,.630473,-.275314,.506206,.596592,.660574,-.273323,.489769,.638117,.692015,-.270008,.472578,.680457,.720647,-.265001,.452134,.723008,.750528,-.258311,.430344,.765954,.777568,-.250046,.405624,.809012,.80387,-.240114,.378339,.852425,.828439,-.228737,.349877,.895346,.851472,-.216632,.318968,.940695,.873906,-.202782,.287489,.987235,.89467,-.187059,.254394,1.03348,.912281,-.168818,.221294,1.07812,.927358,-.146494,.18675,1.11928,.940385,-.120009,.152322,1.15609,.952672,-.0917183,.117514,1.18875,.968496,-.0620321,.0797405,1.21821,.985236,-.0314945,.0402383,1.24523,.99998,-575153e-9,110644e-9,1.27133,.0702429,-512222e-11,.255273,140947e-11,.0702981,-128826e-9,.255469,354488e-10,.0703691,-515562e-9,.255727,141874e-9,.0703805,-.00116,.255754,31929e-8,.0703961,-.00206224,.255813,567999e-9,.0704102,-.00322223,.255839,88871e-8,.0704298,-.00463928,.255863,.00128272,.0704759,-.00631375,.255953,.00175283,.0705434,-.00824317,.256079,.00230342,.0706693,-.010412,.25636,.0029443,.0708189,-.0128439,.256647,.00368031,.0710364,-.0155177,.257084,.00452614,.0713223,-.0184374,.257637,.00549706,.0717182,-.0216002,.258416,.00661246,.072321,-.0249966,.259699,.00790147,.0731446,-.0286566,.261475,.0093884,.0743352,-.0325888,.264132,.0111186,.0760676,-.036843,.26815,.013145,.078454,-.0414292,.273636,.0155251,.0818618,-.0464634,.281653,.0183525,.0857382,-.0519478,.289992,.0216642,.0908131,-.0579836,.30066,.0255956,.0967512,-.0645124,.312204,.0301954,.103717,-.0716505,.325001,.0356017,.111596,-.0793232,.338129,.041896,.120933,-.087645,.352853,.0492447,.130787,-.096492,.366192,.0576749,.142311,-.105973,.380864,.0673969,.155344,-.116182,.396575,.0785899,.169535,-.126815,.411443,.0912377,.185173,-.138015,.426256,.105607,.201755,-.149325,.439607,.121551,.221334,-.161207,.455467,.139608,.241461,-.173162,.469096,.159591,.26294,-.18504,.481014,.18156,.286776,-.196881,.493291,.205781,.311596,-.208311,.503556,.231819,.338667,-.219671,.513268,.260274,.366021,-.230451,.519414,.290862,.395875,-.240131,.526766,.323196,.425564,-.248566,.52905,.357071,.457094,-.256195,.530796,.393262,.488286,-.262331,.528703,.430797,.522291,-.267141,.52727,.470231,.554172,-.270411,.519848,.510477,.586427,-.271986,.510307,.551594,.619638,-.27192,.499158,.593849,.650656,-.269817,.483852,.636314,.68284,-.266267,.467515,.679679,.714356,-.26113,.44931,.723884,.742717,-.254067,.425789,.767245,.770894,-.245652,.401144,.811819,.797358,-.235554,.374224,.856315,.823377,-.223896,.346167,.901077,.847456,-.210865,.316056,.946502,.870697,-.196574,.284503,.993711,.891068,-.180814,.251628,1.04134,.909267,-.163314,.219065,1.08609,.925653,-.143304,.186446,1.12702,.940017,-.121322,.153416,1.16371,.952398,-.0973872,.120334,1.19712,.967568,-.0698785,.08352,1.22791,.984772,-.0390031,.0439209,1.25672,1.00026,-.0070087,.00315668,1.28428,.0556653,-459654e-11,.227325,112556e-11,.0565238,-116382e-9,.230826,284985e-10,.0565717,-465666e-9,.231026,114036e-9,.0565859,-.00104773,.231079,256656e-9,.0565761,-.00186255,.231025,45663e-8,.0565913,-.00291002,.231058,714664e-9,.0566108,-.00418998,.231085,.00103224,.0566532,-.00570206,.231169,.00141202,.0567473,-.00743666,.231417,.00186018,.0568567,-.00940298,.231661,.00238264,.0569859,-.0115991,.231895,.00298699,.0572221,-.0140096,.232456,.00368957,.057519,-.0166508,.233096,.00450303,.0579534,-.01951,.234094,.00544945,.0585922,-.0225991,.235629,.00655564,.0595647,-.0259416,.238106,.00785724,.0609109,-.0295661,.241557,.00939127,.0628751,-.0335126,.246652,.0112198,.0656908,-.0378604,.254091,.0134168,.0691347,-.0426543,.262666,.0160374,.0732165,-.0478967,.272029,.0191514,.0782863,-.0536716,.283007,.0228597,.0843973,-.0600683,.295732,.0272829,.0913598,-.0670095,.308779,.032484,.0994407,-.0745516,.322886,.0385886,.108189,-.082712,.336408,.0457133,.118574,-.0914927,.351692,.0539832,.129989,-.100854,.366502,.0635162,.142722,-.110837,.381675,.0744386,.156654,-.121353,.3963,.0868483,.172151,-.132414,.411477,.100963,.188712,-.143809,.42508,.116795,.208093,-.155765,.441328,.134715,.227936,-.167608,.454328,.154396,.249495,-.179579,.467235,.176179,.27362,-.191488,.480248,.200193,.296371,-.202618,.487886,.225775,.324234,-.214133,.499632,.25441,.353049,-.225212,.509532,.285077,.381785,-.234875,.514265,.317047,.414038,-.244205,.521282,.351874,.445251,-.252145,.522931,.388279,.476819,-.258433,.520947,.425825,.509209,-.263411,.517669,.465104,.542759,-.266732,.512841,.505741,.574822,-.268263,.503317,.547611,.609324,-.268489,.493035,.590953,.641772,-.266941,.478816,.63488,.674049,-.263297,.462863,.679072,.705071,-.257618,.442931,.723487,.734709,-.250625,.421299,.768708,.763704,-.24179,.397085,.814375,.791818,-.231115,.370577,.859907,.817439,-.21922,.34232,.906715,.843202,-.205658,.312627,.953943,.866639,-.190563,.280933,1.00185,.888129,-.173978,.248393,1.05105,.907239,-.155485,.216007,1.09704,.923893,-.134782,.183233,1.13857,.938882,-.11249,.150376,1.17539,.952464,-.0890706,.117177,1.20924,.968529,-.0646523,.0813095,1.24055,.984763,-.038606,.0439378,1.27018,1.00053,-.01238,.00598668,1.29873,.0437928,-409594e-11,.204012,879224e-12,.0440166,-103395e-9,.205049,221946e-10,.0440529,-413633e-9,.205225,887981e-10,.0440493,-930594e-9,.2052,199858e-9,.0439884,-.00165352,.204901,355495e-9,.0440716,-.0025849,.205255,556983e-9,.0440968,-.00372222,.205311,805326e-9,.0441359,-.00506478,.205391,.00110333,.0442231,-.00660384,.205638,.00145768,.0443254,-.00835246,.205877,.00187275,.0444832,-.0102992,.20627,.00235938,.0447001,-.0124449,.206796,.0029299,.0450168,-.0147935,.207593,.0036005,.0454816,-.017336,.208819,.00439246,.0462446,-.0201156,.211036,.00533864,.0473694,-.0231568,.214388,.00646984,.0490191,-.0264941,.219357,.00783856,.0512776,-.030184,.226061,.00950182,.0541279,-.0342661,.234094,.0115156,.0578989,-.0388539,.244297,.0139687,.0620835,-.0438735,.254457,.0169015,.0673497,-.04951,.266706,.0204554,.0731759,-.0556263,.278753,.0246606,.0803937,-.0624585,.29309,.0297126,.0879287,-.0697556,.305856,.0355868,.0970669,-.0778795,.321059,.0425768,.106508,-.0863541,.333873,.05056,.11776,-.0955935,.349008,.0598972,.130081,-.105438,.363776,.0706314,.144454,-.115899,.380112,.0828822,.1596,-.126827,.394843,.0967611,.176097,-.138161,.409033,.112381,.194726,-.149904,.424257,.129952,.213944,-.161675,.436945,.149333,.235516,-.173659,.450176,.170892,.260564,-.185963,.466305,.194984,.285183,-.197582,.477328,.220805,.311095,-.208697,.486566,.248694,.338924,-.219519,.494811,.279015,.369757,-.229766,.504065,.311725,.3996,-.238879,.507909,.345844,.430484,-.246802,.509805,.381749,.46413,-.253924,.511436,.420251,.497077,-.259319,.508787,.459957,.530434,-.263297,.50394,.501356,.565725,-.265619,.49804,.544252,.599254,-.265842,.487346,.587856,.631251,-.263978,.472975,.631969,.663972,-.26043,.457135,.677471,.697724,-.255358,.439844,.723744,.727725,-.248308,.417872,.770653,.756417,-.239181,.39273,.817357,.785419,-.22814,.367839,.864221,.81266,-.215681,.339449,.912701,.839391,-.201623,.309279,.962419,.86366,-.185624,.278029,1.0122,.885028,-.16797,.245294,1.06186,.904639,-.148336,.212689,1.10934,.922048,-.12637,.179616,1.15063,.936952,-.102928,.146749,1.18885,.951895,-.0785268,.112733,1.22352,.967198,-.0530153,.0760056,1.25681,.984405,-.02649,.0383183,1.28762,1.00021,70019e-8,-20039e-8,1.31656,.0325964,-355447e-11,.176706,655682e-12,.0329333,-899174e-10,.178527,165869e-10,.0329181,-359637e-9,.178453,663498e-10,.0329085,-808991e-9,.178383,149332e-9,.0329181,-.00143826,.178394,265873e-9,.0329425,-.00224678,.178517,416597e-9,.0329511,-.00323575,.17849,603299e-9,.033011,-.00439875,.178695,829422e-9,.0330733,-.00574059,.178843,.00109908,.0331857,-.00725896,.179176,.00141933,.0333445,-.00895289,.179618,.0017999,.0335674,-.0108219,.180238,.00225316,.033939,-.0128687,.181417,.00279765,.0345239,-.015114,.183395,.0034564,.0354458,-.017596,.186616,.00425864,.0368313,-.0203524,.191547,.00524936,.0386115,-.0234105,.197508,.00647033,.0410303,-.0268509,.205395,.00798121,.0442245,-.0307481,.215365,.0098557,.0478659,-.0350863,.225595,.0121417,.0522416,-.0399506,.236946,.0149385,.0574513,-.045357,.249442,.0183189,.0631208,-.0512863,.261222,.0223644,.0701124,-.0579273,.275418,.0272418,.0777331,-.0650652,.288989,.0329458,.0862709,-.0728813,.302546,.0396819,.096103,-.081363,.317164,.04757,.106976,-.0904463,.331733,.0567012,.119175,-.100105,.34661,.067202,.132919,-.110375,.362249,.0792588,.147727,-.121115,.376978,.0928672,.163618,-.132299,.390681,.108228,.182234,-.143887,.406571,.125502,.201809,-.155827,.42042,.144836,.225041,-.168357,.438411,.166706,.247621,-.18004,.450368,.189909,.27097,-.191536,.460083,.215251,.296658,-.203024,.469765,.243164,.325892,-.214056,.481837,.273388,.35406,-.224104,.487474,.305344,.384372,-.233489,.492773,.339741,.41749,-.241874,.498451,.376287,.45013,-.248834,.499632,.414195,.481285,-.254658,.495233,.454077,.519183,-.259367,.496401,.496352,.551544,-.261818,.487686,.538798,.587349,-.262964,.479453,.583626,.621679,-.262128,.467709,.629451,.654991,-.258998,.452123,.67566,.686873,-.254119,.433495,.723248,.719801,-.246946,.413657,.771156,.750355,-.237709,.390366,.81989,.780033,-.226549,.364947,.868601,.809254,-.214186,.337256,.920034,.836576,-.199639,.307395,.971706,.861774,-.183169,.275431,1.02479,.885707,-.165111,.243431,1.07837,.904742,-.144363,.210921,1.12783,.915604,-.121305,.17647,1.17254,.930959,-.0962119,.143106,1.21012,.948404,-.069969,.108112,1.24474,.967012,-.0427586,.0708478,1.27718,.984183,-.0147043,.032335,1.3083,.999577,.0142165,-.00726867,1.3382,.0229227,-299799e-11,.148623,462391e-12,.0232194,-758796e-10,.15054,117033e-10,.0232315,-303636e-9,.15063,468397e-10,.0232354,-683189e-9,.150624,105472e-9,.0232092,-.0012136,.150445,187744e-9,.0232523,-.00189765,.150679,294847e-9,.0232828,-.00273247,.150789,428013e-9,.0233371,-.00371287,.150995,591134e-9,.0234015,-.00484794,.15118,787642e-9,.023514,-.00612877,.151562,.00102547,.023679,-.00756125,.152116,.00131351,.0239559,-.00914651,.153162,.00166594,.0244334,-.010904,.155133,.00210182,.025139,-.0128615,.158035,.00264406,.0262598,-.0150628,.162751,.00332923,.0277875,-.0175532,.168944,.00419773,.0298472,-.0203981,.176835,.00530034,.0325444,-.023655,.186686,.00669777,.0355581,-.0272982,.196248,.00842661,.0392841,-.0314457,.207352,.0105854,.0436815,-.0361157,.219279,.0132458,.0485272,-.0412932,.230728,.0164736,.0541574,-.0470337,.242994,.0203715,.0609479,-.0535002,.257042,.0250953,.0685228,-.0605409,.27102,.0306856,.0768042,-.0680553,.28406,.037193,.0864844,-.0765011,.299186,.0449795,.0969415,-.0852674,.3132,.0538316,.108478,-.0947333,.327138,.0641149,.121705,-.10481,.342345,.0759185,.136743,-.115474,.358472,.0894116,.152986,-.126536,.374067,.104562,.170397,-.138061,.388267,.121632,.191392,-.150203,.406467,.140996,.211566,-.161751,.418641,.161696,.233567,-.173407,.430418,.184557,.257769,-.185397,.44277,.210092,.28531,-.197048,.457191,.237827,.311726,-.20784,.464712,.267253,.340537,-.218345,.472539,.299332,.372921,-.228306,.482331,.333988,.402924,-.236665,.484378,.369722,.434475,-.244097,.484717,.407836,.469736,-.250547,.487093,.448465,.505045,-.25511,.485575,.490263,.540262,-.258444,.481225,.534495,.576347,-.259903,.473481,.579451,.608656,-.259572,.4603,.625604,.646679,-.257908,.450341,.674511,.679902,-.253663,.431561,.723269,.714159,-.247419,.412684,.773263,.745345,-.239122,.389388,.824182,.778248,-.228837,.365361,.876634,.807208,-.216197,.337667,.92945,.835019,-.201772,.307197,.985261,.860261,-.185291,.274205,1.04299,.877601,-.165809,.240178,1.09816,.898211,-.143897,.207571,1.14694,.915789,-.119513,.174904,1.19008,.931831,-.0932919,.141423,1.2297,.949244,-.0656528,.105603,1.26553,.967527,-.0370262,.0679551,1.29986,.984139,-.00730117,.0283133,1.33252,.999713,.0234648,-.0121785,1.36397,.0152135,-245447e-11,.122795,304092e-12,.0151652,-615778e-10,.122399,76292e-10,.0151181,-245948e-9,.122023,304802e-10,.0151203,-553394e-9,.12203,686634e-10,.015125,-983841e-9,.122037,122463e-9,.0151427,-.00153774,.12214,192706e-9,.0151708,-.0022103,.122237,281219e-9,.0152115,-.00300741,.12238,390804e-9,.0152877,-.00392494,.1227,526317e-9,.015412,-.00496597,.123244,69443e-8,.0156201,-.00613314,.124228,90547e-8,.0159658,-.00744113,.125945,.0011732,.0165674,-.00892546,.129098,.00151888,.017487,-.010627,.133865,.00197007,.018839,-.0126043,.140682,.0025637,.020554,-.0148814,.148534,.00333637,.0226727,-.0175123,.157381,.00433738,.0251879,-.0205266,.166685,.00561664,.0283635,-.0240319,.177796,.00725563,.0318694,-.0279432,.188251,.00928811,.0361044,-.0324313,.200038,.011835,.0406656,-.0373527,.210685,.0149146,.0463846,-.0430132,.224182,.0187254,.0525696,-.0491013,.23634,.0232283,.0598083,-.0559175,.250013,.0286521,.0679437,-.0633657,.263981,.0350634,.0771181,-.0714602,.278072,.0425882,.0881273,-.0803502,.29511,.0514487,.0996628,-.0896903,.309976,.0615766,.112702,-.099644,.325611,.0732139,.126488,-.109829,.339321,.0862324,.142625,-.120859,.35574,.101275,.15953,-.131956,.369845,.117892,.176991,-.143145,.38146,.136205,.199715,-.155292,.40052,.157252,.220787,-.167066,.412055,.179966,.243697,-.178396,.423133,.204418,.272106,-.190433,.439524,.232141,.297637,-.201265,.447041,.261109,.325273,-.211834,.454488,.292627,.357219,-.221889,.465004,.326669,.387362,-.230729,.468527,.362426,.423131,-.23924,.475836,.401533,.45543,-.246067,.475017,.441902,.493393,-.251557,.478017,.484239,.526253,-.255571,.4709,.528586,.560554,-.257752,.463167,.574346,.599306,-.258076,.456452,.621655,.634541,-.256471,.443725,.670492,.668907,-.253283,.428719,.721943,.705619,-.247562,.411348,.772477,.739034,-.240626,.388939,.8264,.771408,-.231493,.36425,.881702,.803312,-.220125,.337321,.9385,.828457,-.206645,.305364,.997437,.854819,-.190664,.273715,1.05693,.878666,-.171429,.242218,1.11251,.898404,-.149235,.209556,1.16398,.917416,-.12435,.176863,1.21014,.933133,-.0972703,.142775,1.25178,.95066,-.0683607,.106735,1.29028,.968589,-.0378724,.0681609,1.32703,.984776,-.00605712,.0273966,1.36158,.99994,.0263276,-.0138124,1.3943,.00867437,-186005e-11,.0928979,173682e-12,.00864003,-466389e-10,.0925237,435505e-11,.00864593,-186594e-9,.0925806,174322e-10,.00864095,-419639e-9,.0924903,392862e-10,.00863851,-746272e-9,.0924589,702598e-10,.00868531,-.00116456,.0929,111188e-9,.00869667,-.00167711,.0928529,163867e-9,.00874332,-.00228051,.0930914,23104e-8,.00882709,-.00297864,.0935679,31741e-8,.00898874,-.00377557,.0946165,430186e-9,.00929346,-.00469247,.0967406,580383e-9,.00978271,-.00575491,.100084,783529e-9,.0105746,-.00701514,.105447,.00106304,.0116949,-.00851797,.112494,.00144685,.0130419,-.0102757,.119876,.00196439,.0148375,-.012381,.129034,.00266433,.0168725,-.01482,.137812,.00358364,.0193689,-.0176563,.147696,.00478132,.0222691,-.0209211,.157795,.00631721,.0256891,-.0246655,.168431,.00826346,.0294686,-.0288597,.178587,.0106714,.0340412,-.0336441,.190251,.0136629,.0393918,-.039033,.202999,.0173272,.0453947,-.0450087,.215655,.0217448,.0521936,-.0515461,.228686,.0269941,.0600279,-.058817,.242838,.033272,.0692398,-.0667228,.258145,.0406457,.0793832,-.0752401,.273565,.0492239,.0902297,-.0841851,.287735,.0590105,.102014,-.0936479,.301161,.0702021,.116054,-.103967,.317438,.0832001,.13191,-.114622,.334166,.0977951,.148239,-.125452,.348192,.113985,.165809,-.136453,.361094,.131928,.184616,-.147648,.373534,.151811,.207491,-.159607,.39101,.174476,.230106,-.171119,.402504,.198798,.257036,-.182906,.418032,.225796,.281172,-.193605,.425468,.254027,.312034,-.204771,.440379,.285713,.340402,-.214988,.445406,.319196,.370231,-.224711,.44968,.35537,.407105,-.233516,.460747,.393838,.439037,-.240801,.460624,.433747,.47781,-.24762,.465957,.477234,.510655,-.251823,.460054,.52044,.550584,-.255552,.459172,.567853,.585872,-.257036,.450311,.615943,.620466,-.257535,.437763,.667693,.660496,-.255248,.426639,.718988,.695578,-.251141,.409185,.772503,.732176,-.244718,.39015,.827023,.760782,-.236782,.362594,.885651,.79422,-.225923,.33711,.943756,.824521,-.213855,.308272,1.00874,.854964,-.197723,.278529,1.06764,.878065,-.179209,.246208,1.12836,.899834,-.157569,.21329,1.18318,.918815,-.133206,.181038,1.23161,.934934,-.106545,.146993,1.27644,.952115,-.0780574,.111175,1.31842,.96906,-.0478279,.0728553,1.35839,.985178,-.0160014,.032579,1.39697,1.00039,.0173126,-.0095256,1.43312,.00384146,-124311e-11,.0613583,778271e-13,.00390023,-314043e-10,.0622919,196626e-11,.00389971,-125622e-9,.0622632,787379e-11,.00389491,-282352e-9,.0620659,1778e-8,.00391618,-502512e-9,.0624687,320918e-10,.00392662,-784458e-9,.0625113,515573e-10,.00396053,-.00112907,.0628175,778668e-10,.00401911,-.00153821,.0633286,113811e-9,.00414994,-.0020208,.0646443,16445e-8,.00441223,-.00260007,.0673886,237734e-9,.00484427,-.0033097,.0716528,345929e-9,.00549109,-.00418966,.0774998,505987e-9,.00636293,-.00527331,.0844758,739208e-9,.00746566,-.00660428,.0921325,.00107347,.00876625,-.00818826,.0997067,.00153691,.0103125,-.0100811,.107433,.00217153,.0123309,-.0123643,.117088,.00303427,.0146274,-.0150007,.126438,.00416018,.0172295,-.0180531,.135672,.00561513,.0204248,-.0215962,.146244,.007478,.0241597,-.0256234,.157481,.00981046,.0284693,-.0302209,.169125,.0127148,.033445,-.0353333,.181659,.0162453,.0391251,-.0410845,.1944,.0205417,.0454721,-.0473451,.207082,.0256333,.0530983,-.0542858,.221656,.0317036,.0615356,-.0618384,.236036,.0388319,.0703363,-.0697631,.248398,.046974,.0810391,-.0784757,.263611,.0565246,.0920144,-.0873488,.275857,.0671724,.105584,-.0973652,.292555,.0798105,.119506,-.107271,.306333,.0935945,.134434,-.117608,.318888,.109106,.153399,-.128938,.337552,.127074,.171258,-.139944,.349955,.14643,.191059,-.151288,.361545,.168,.215069,-.163018,.378421,.192082,.237838,-.174226,.38879,.217838,.266965,-.186063,.405857,.246931,.292827,-.196909,.414146,.277505,.324352,-.207473,.426955,.310711,.354427,-.217713,.433429,.346794,.389854,-.227183,.443966,.385237,.420749,-.235131,.44471,.424955,.459597,-.242786,.451729,.468446,.495316,-.248767,.45072,.513422,.534903,-.253351,.450924,.560618,.572369,-.256277,.445266,.609677,.612383,-.2576,.438798,.660995,.644037,-.256931,.421693,.713807,.686749,-.254036,.4109,.767616,.719814,-.249785,.390151,.82533,.754719,-.244283,.367847,.888311,.792022,-.235076,.345013,.948177,.822404,-.225061,.316193,1.01661,.853084,-.211113,.287013,1.08075,.879871,-.19449,.255424,1.14501,.901655,-.174023,.222879,1.20203,.919957,-.1509,.18989,1.25698,.938412,-.124923,.15606,1.30588,.953471,-.0968139,.120512,1.3529,.970451,-.066734,.0828515,1.3986,.985522,-.034734,.0424458,1.44148,1.00099,-.00102222,678929e-9,1.48398,965494e-9,-627338e-12,.0306409,197672e-13,99168e-8,-158573e-10,.0314638,499803e-12,991068e-9,-634012e-10,.031363,200682e-11,974567e-9,-14144e-8,.03036,457312e-11,998079e-9,-252812e-9,.031496,860131e-11,.00102243,-396506e-9,.0319955,148288e-10,.00107877,-577593e-9,.0331376,249141e-10,.00121622,-816816e-9,.0359396,423011e-10,.0014455,-.00113761,.0399652,724613e-10,.00178791,-.00156959,.0450556,123929e-9,.00225668,-.00214064,.0508025,208531e-9,.00285627,-.00287655,.0568443,341969e-9,.0035991,-.00380271,.0630892,544158e-9,.00455524,-.00496264,.0702204,842423e-9,.00569143,-.0063793,.0773426,.00126704,.00716928,-.00813531,.0860839,.00186642,.00885307,-.0101946,.0944079,.00267014,.0109316,-.0126386,.103951,.00374033,.0133704,-.0154876,.113786,.0051304,.0161525,-.0187317,.123477,.00688858,.0194267,-.0224652,.133986,.00910557,.0230967,-.0265976,.143979,.0118074,.0273627,-.0312848,.154645,.0151266,.0323898,-.0365949,.166765,.0191791,.0379225,-.0422914,.177932,.0239236,.0447501,-.0487469,.19167,.0296568,.0519391,-.0556398,.203224,.0362924,.0599464,-.0631646,.215652,.0440585,.0702427,-.0714308,.232089,.0531619,.0806902,-.0800605,.245258,.0634564,.0923194,-.0892815,.258609,.0752481,.106938,-.09931,.276654,.0888914,.121238,-.109575,.289847,.104055,.138817,-.120461,.307566,.121266,.15595,-.131209,.320117,.139944,.178418,-.143049,.339677,.161591,.197875,-.154074,.349886,.184303,.224368,-.166307,.369352,.210669,.252213,-.178051,.386242,.238895,.277321,-.189335,.395294,.269182,.310332,-.200683,.412148,.302508,.338809,-.210856,.418266,.337264,.372678,-.220655,.428723,.374881,.405632,-.230053,.433887,.415656,.442293,-.237993,.439911,.457982,.477256,-.244897,.440175,.502831,.515592,-.250657,.441079,.550277,.550969,-.255459,.435219,.601102,.592883,-.257696,.432882,.651785,.629092,-.259894,.421054,.708961,.672033,-.258592,.41177,.763806,.709147,-.256525,.395267,.824249,.745367,-.254677,.375013,.8951,.784715,-.247892,.353906,.959317,.818107,-.240162,.327801,1.03153,.847895,-.229741,.298821,1.10601,.879603,-.213084,.269115,1.164,.902605,-.195242,.236606,1.22854,.922788,-.174505,.203442,1.29017,.944831,-.150169,.169594,1.34157,.959656,-.124099,.135909,1.3956,.972399,-.0960626,.0990563,1.45128,.986549,-.0657097,.0602348,1.50312,1.00013,-.0333558,.0186694,1.55364,619747e-11,-1e-7,.00778326,796756e-16,237499e-13,-999999e-13,282592e-10,114596e-15,100292e-11,-166369e-11,250354e-9,677492e-14,350752e-11,-637769e-11,357289e-9,631655e-13,826445e-11,-174689e-10,516179e-9,31851e-11,242481e-10,-450868e-10,.0010223,130577e-11,455631e-10,-89044e-9,.00144302,374587e-11,971222e-10,-178311e-9,.00241912,102584e-10,171403e-9,-313976e-9,.00354938,236481e-10,292747e-9,-520026e-9,.00513765,496014e-10,789827e-9,-.00118187,.0238621,139056e-9,.00114093,-.00171827,.0286691,244093e-9,.00176119,-.00249667,.0368565,420623e-9,.0022233,-.00333742,.0400469,65673e-8,.00343382,-.00481976,.0535751,.00109323,.00427602,-.00600755,.057099,.00155268,.00461435,-.00737637,.0551084,.00215031,.00695698,-.00971401,.0715767,.00316529,.00867619,-.0120943,.0793314,.00436995,.0106694,-.0148202,.0869391,.0058959,.0140351,-.0183501,.101572,.00798757,.0168939,-.022006,.11018,.0104233,.020197,-.0261568,.119041,.0134167,.0254702,-.0312778,.135404,.0173009,.0298384,-.0362469,.1437,.0215428,.035159,-.042237,.15512,.0268882,.0427685,-.0488711,.17128,.033235,.0494848,-.0557997,.181813,.0404443,.0592394,-.0635578,.198745,.0490043,.0681463,-.071838,.210497,.0588239,.0804753,-.0809297,.228864,.0702835,.0942205,-.0906488,.247008,.0834012,.106777,-.100216,.258812,.0975952,.124471,-.110827,.278617,.114162,.138389,-.121193,.287049,.131983,.159543,-.13253,.307151,.152541,.176432,-.143611,.31564,.174673,.201723,-.15548,.33538,.199842,.229721,-.167166,.355256,.227097,.250206,-.178238,.360047,.256014,.282118,-.189905,.378761,.28855,.312821,-.201033,.39181,.323348,.341482,-.211584,.397716,.360564,.377368,-.221314,.410141,.400004,.418229,-.230474,.423485,.442371,.444881,-.239443,.418874,.488796,.488899,-.245987,.427545,.535012,.520317,-.253948,.422147,.589678,.568566,-.256616,.42719,.637683,.599607,-.26376,.415114,.703363,.64222,-.268687,.408715,.771363,.685698,-.2694,.399722,.83574,.732327,-.266642,.388651,.897764,.769873,-.267712,.369198,.983312,.806733,-.263479,.346802,1.06222,.843466,-.254575,.321368,1.13477,.873008,-.242749,.29211,1.20712,.908438,-.22725,.262143,1.27465,.936321,-.207621,.228876,1.33203,.950353,-.187932,.19484,1.40439,.96442,-.165154,.163178,1.4732,.979856,-.139302,.127531,1.53574,.982561,-.11134,.0903457,1.59982,.996389,-.0808124,.0489007,1.6577],n=[1,0,0,0,1,791421e-36,0,0,1,104392e-29,0,0,1,349405e-26,0,0,1,109923e-23,0,0,1,947414e-22,0,0,1,359627e-20,0,0,1,772053e-19,0,0,1,108799e-17,0,0,1,110655e-16,0,0,1,865818e-16,0,0,.999998,545037e-15,0,0,.999994,285095e-14,0,0,.999989,126931e-13,0,0,.999973,489938e-13,0,0,.999947,166347e-12,0,0,.999894,502694e-12,0,0,.999798,136532e-11,0,0,.999617,335898e-11,0,0,.999234,752126e-11,0,0,.998258,152586e-10,0,0,.99504,266207e-10,0,0,.980816,236802e-10,0,0,.967553,207684e-11,0,0,.966877,403733e-11,0,0,.965752,741174e-11,0,0,.96382,127746e-10,0,0,.960306,202792e-10,0,0,.953619,280232e-10,0,0,.941103,278816e-10,0,0,.926619,160221e-10,0,0,.920983,235164e-10,0,0,.912293,311924e-10,0,.0158731,.899277,348118e-10,0,.0476191,.880884,26041e-9,0,.0793651,.870399,338726e-10,0,.111111,.856138,392906e-10,0,.142857,.837436,372874e-10,0,.174603,.820973,392558e-10,0,.206349,.803583,434658e-10,0,.238095,.782168,40256e-9,0,.269841,.764107,448159e-10,0,.301587,.743092,457627e-10,0,.333333,.721626,455314e-10,0,.365079,.700375,477335e-10,0,.396825,.677334,461072e-10,0,.428571,.655702,484393e-10,0,.460317,.632059,464583e-10,0,.492064,.610125,483923e-10,0,.52381,.58653,464342e-10,0,.555556,.564508,477033e-10,0,.587302,.541405,459263e-10,0,.619048,.519556,46412e-9,0,.650794,.497292,448913e-10,0,.68254,.475898,445789e-10,0,.714286,.454722,433496e-10,0,.746032,.434042,423054e-10,0,.777778,.414126,413737e-10,0,.809524,.394387,397265e-10,0,.84127,.375841,390709e-10,0,.873016,.357219,369938e-10,0,.904762,.340084,365618e-10,0,.936508,.322714,342533e-10,0,.968254,.306974,339596e-10,0,1,1,101524e-23,0,0,1,10292e-22,0,0,1,130908e-23,0,0,1,473331e-23,0,0,1,625319e-22,0,0,1,107932e-20,0,0,1,163779e-19,0,0,1,203198e-18,0,0,1,204717e-17,0,0,.999999,168995e-16,0,0,.999998,115855e-15,0,0,.999996,66947e-14,0,0,.999991,330863e-14,0,0,.999983,141737e-13,0,0,.999968,532626e-13,0,0,.99994,177431e-12,0,0,.999891,528835e-12,0,0,.999797,142169e-11,0,0,.999617,347057e-11,0,0,.999227,77231e-10,0,0,.998239,155753e-10,0,0,.994937,268495e-10,0,0,.980225,213742e-10,0,0,.967549,21631e-10,0,0,.966865,417989e-11,0,0,.965739,763341e-11,0,0,.963794,130892e-10,0,0,.960244,206456e-10,0,0,.953495,282016e-10,0,148105e-9,.940876,271581e-10,0,.002454,.926569,164159e-10,0,.00867491,.920905,239521e-10,0,.01956,.912169,315127e-10,0,.035433,.899095,346626e-10,0,.056294,.882209,290223e-10,0,.0818191,.870272,342992e-10,0,.111259,.855977,394164e-10,0,.142857,.837431,372343e-10,0,.174603,.820826,396691e-10,0,.206349,.803408,435395e-10,0,.238095,.782838,419579e-10,0,.269841,.763941,450953e-10,0,.301587,.742904,455847e-10,0,.333333,.721463,458833e-10,0,.365079,.700197,477159e-10,0,.396825,.677501,470641e-10,0,.428571,.655527,484732e-10,0,.460317,.6324,476834e-10,0,.492064,.609964,484213e-10,0,.52381,.586839,475541e-10,0,.555556,.564353,476951e-10,0,.587302,.541589,467611e-10,0,.619048,.519413,463493e-10,0,.650794,.497337,453994e-10,0,.68254,.475797,445308e-10,0,.714286,.454659,435787e-10,0,.746032,.434065,424839e-10,0,.777778,.414018,41436e-9,0,.809524,.39455,401902e-10,0,.84127,.375742,390813e-10,0,.873016,.357501,377116e-10,0,.904762,.339996,36535e-9,0,.936508,.323069,351265e-10,0,.968254,.306897,339112e-10,0,1,1,10396e-19,0,0,1,104326e-20,0,0,1,110153e-20,0,0,1,144668e-20,0,0,1,34528e-19,0,0,1,175958e-19,0,0,1,12627e-17,0,0,1,936074e-18,0,0,1,645742e-17,0,0,.999998,401228e-16,0,0,.999997,222338e-15,0,0,.999995,10967e-13,0,0,.999991,482132e-14,0,0,.999981,189434e-13,0,0,.999967,667716e-13,0,0,.999938,212066e-12,0,0,.999886,60977e-11,0,0,.999792,159504e-11,0,0,.999608,381191e-11,0,0,.999209,833727e-11,0,0,.998179,165288e-10,0,0,.994605,274387e-10,0,0,.979468,167316e-10,0,0,.967529,242877e-11,0,0,.966836,461696e-11,0,0,.96569,830977e-11,0,0,.963706,140427e-10,0,244659e-11,.960063,217353e-10,0,760774e-9,.953113,286606e-10,0,.00367261,.940192,247691e-10,0,.00940263,.927731,195814e-10,0,.018333,.920669,252531e-10,0,.0306825,.911799,324277e-10,0,.0465556,.89857,340982e-10,0,.0659521,.883283,319622e-10,0,.0887677,.86989,35548e-9,0,.114784,.855483,397143e-10,0,.143618,.837987,391665e-10,0,.174606,.820546,411306e-10,0,.206349,.802878,436753e-10,0,.238095,.783402,444e-7,0,.269841,.763439,458726e-10,0,.301587,.742925,467097e-10,0,.333333,.721633,478887e-10,0,.365079,.69985,481251e-10,0,.396825,.67783,491811e-10,0,.428571,.655126,488199e-10,0,.460318,.632697,496025e-10,0,.492064,.609613,48829e-9,0,.52381,.587098,492754e-10,0,.555556,.564119,482625e-10,0,.587302,.541813,482807e-10,0,.619048,.519342,471552e-10,0,.650794,.497514,466765e-10,0,.68254,.475879,455582e-10,0,.714286,.454789,446007e-10,0,.746032,.434217,435382e-10,0,.777778,.414086,421753e-10,0,.809524,.394744,412093e-10,0,.84127,.375782,396634e-10,0,.873016,.357707,386419e-10,0,.904762,.340038,370345e-10,0,.936508,.323284,359725e-10,0,.968254,.306954,3436e-8,0,1,1,599567e-19,0,0,1,600497e-19,0,0,1,614839e-19,0,0,1,686641e-19,0,0,1,972658e-19,0,0,1,221271e-18,0,0,1,833195e-18,0,0,1,403601e-17,0,0,.999999,206001e-16,0,0,.999998,101739e-15,0,0,.999997,470132e-15,0,0,.999993,200436e-14,0,0,.999988,783682e-14,0,0,.999979,280338e-13,0,0,.999962,917033e-13,0,0,.999933,274514e-12,0,0,.999881,753201e-12,0,0,.999783,189826e-11,0,0,.999594,440279e-11,0,0,.999178,93898e-10,0,0,.998073,181265e-10,0,0,.993993,280487e-10,0,0,.979982,149422e-10,0,0,.968145,378481e-11,0,0,.966786,53771e-10,0,0,.965611,947508e-11,0,388934e-10,.963557,156616e-10,0,9693e-7,.959752,235144e-10,0,.00370329,.952461,291568e-10,0,.00868428,.940193,240102e-10,0,.0161889,.929042,231235e-10,0,.0263948,.920266,273968e-10,0,.0394088,.911178,337915e-10,0,.0552818,.897873,333629e-10,0,.0740138,.884053,351405e-10,0,.0955539,.869455,378034e-10,0,.119795,.854655,399378e-10,0,.14656,.838347,419108e-10,0,.175573,.820693,440831e-10,0,.206388,.802277,445599e-10,0,.238095,.783634,472691e-10,0,.269841,.763159,476984e-10,0,.301587,.742914,491487e-10,0,.333333,.721662,502312e-10,0,.365079,.699668,502817e-10,0,.396825,.677839,51406e-9,0,.428571,.655091,511095e-10,0,.460317,.632665,516067e-10,0,.492064,.609734,512255e-10,0,.52381,.587043,510263e-10,0,.555556,.564298,50565e-9,0,.587302,.541769,497951e-10,0,.619048,.519529,492698e-10,0,.650794,.497574,482066e-10,0,.68254,.476028,473689e-10,0,.714286,.454961,461941e-10,0,.746032,.434341,450618e-10,0,.777778,.414364,438355e-10,0,.809524,.394832,424196e-10,0,.84127,.376109,412563e-10,0,.873016,.35779,396226e-10,0,.904762,.340379,384886e-10,0,.936508,.323385,368214e-10,0,.968254,.307295,356636e-10,0,1,1,106465e-17,0,0,1,106555e-17,0,0,1,107966e-17,0,0,1,114601e-17,0,0,1,137123e-17,0,0,1,21243e-16,0,0,.999999,489653e-17,0,0,.999999,160283e-16,0,0,.999998,62269e-15,0,0,.999997,251859e-15,0,0,.999996,996192e-15,0,0,.999992,374531e-14,0,0,.999986,132022e-13,0,0,.999975,433315e-13,0,0,.999959,131956e-12,0,0,.999927,372249e-12,0,0,.999871,972461e-12,0,0,.999771,235343e-11,0,0,.999572,52768e-10,0,0,.999133,109237e-10,0,0,.997912,203675e-10,0,0,.993008,279396e-10,0,0,.980645,139604e-10,0,0,.970057,646596e-11,0,0,.966717,65089e-10,0,474145e-10,.965497,111863e-10,0,89544e-8,.96334,179857e-10,0,.0032647,.959294,259045e-10,0,.0075144,.951519,292327e-10,0,.0138734,.940517,249769e-10,0,.0224952,.93014,26803e-9,0,.0334828,.91972,303656e-10,0,.0468973,.910294,353323e-10,0,.0627703,.897701,351002e-10,0,.0811019,.884522,388104e-10,0,.10186,.869489,412932e-10,0,.124985,.853983,415781e-10,0,.150372,.838425,454066e-10,0,.177868,.820656,471624e-10,0,.207245,.801875,475243e-10,0,.238143,.783521,505621e-10,0,.269841,.763131,50721e-9,0,.301587,.74261,523293e-10,0,.333333,.72148,528699e-10,0,.365079,.699696,538677e-10,0,.396825,.677592,539255e-10,0,.428571,.65525,546367e-10,0,.460317,.632452,541348e-10,0,.492064,.609903,544976e-10,0,.52381,.586928,536201e-10,0,.555556,.564464,535185e-10,0,.587302,.541801,524949e-10,0,.619048,.519681,51812e-9,0,.650794,.497685,507687e-10,0,.68254,.47622,496243e-10,0,.714286,.455135,485714e-10,0,.746032,.4346,471847e-10,0,.777778,.414564,459294e-10,0,.809524,.395165,444705e-10,0,.84127,.376333,430772e-10,0,.873016,.358197,416229e-10,0,.904762,.34064,401019e-10,0,.936508,.323816,386623e-10,0,.968254,.307581,370933e-10,0,1,1,991541e-17,0,0,1,992077e-17,0,0,1,100041e-16,0,0,1,10385e-15,0,0,1,115777e-16,0,0,1,150215e-16,0,0,.999999,254738e-16,0,0,.999999,598822e-16,0,0,.999998,179597e-15,0,0,.999997,602367e-15,0,0,.999994,206835e-14,0,0,.99999,694952e-14,0,0,.999984,223363e-13,0,0,.999972,678578e-13,0,0,.999952,193571e-12,0,0,.999919,516594e-12,0,0,.99986,128739e-11,0,0,.999753,299298e-11,0,0,.999546,648258e-11,0,0,.999074,129985e-10,0,0,.997671,232176e-10,0,0,.991504,256701e-10,0,0,.981148,131141e-10,0,0,.971965,869048e-11,0,280182e-10,.966624,808301e-11,0,695475e-9,.965344,135235e-10,0,.00265522,.963048,210592e-10,0,.00622975,.958673,287473e-10,0,.0116234,.950262,281379e-10,0,.018976,.940836,271089e-10,0,.0283844,.930996,30926e-9,0,.0399151,.919848,348359e-10,0,.0536063,.909136,366092e-10,0,.0694793,.897554,384162e-10,0,.0875342,.884691,430971e-10,0,.107749,.869414,447803e-10,0,.130087,.853462,452858e-10,0,.154481,.838187,495769e-10,0,.180833,.820381,502709e-10,0,.209005,.801844,522713e-10,0,.238791,.783061,541505e-10,0,.269869,.763205,553712e-10,0,.301587,.742362,564909e-10,0,.333333,.721393,572646e-10,0,.365079,.699676,581012e-10,0,.396825,.677395,58096e-9,0,.428571,.655208,585766e-10,0,.460317,.632451,583602e-10,0,.492064,.609839,580234e-10,0,.52381,.587093,577161e-10,0,.555556,.564467,568447e-10,0,.587302,.542043,563166e-10,0,.619048,.519826,55156e-9,0,.650794,.497952,541682e-10,0,.68254,.476477,528971e-10,0,.714286,.455412,514952e-10,0,.746032,.434926,502222e-10,0,.777778,.4149,485779e-10,0,.809524,.395552,472242e-10,0,.84127,.376712,454891e-10,0,.873016,.358622,440924e-10,0,.904762,.341048,422984e-10,0,.936508,.324262,408582e-10,0,.968254,.308013,390839e-10,0,1,1,613913e-16,0,0,1,614145e-16,0,0,1,617708e-16,0,0,1,633717e-16,0,0,1,681648e-16,0,0,1,808291e-16,0,0,1,114608e-15,0,0,.999998,210507e-15,0,0,.999997,499595e-15,0,0,.999995,139897e-14,0,0,.999994,419818e-14,0,0,.999988,127042e-13,0,0,.999979,375153e-13,0,0,.999965,106206e-12,0,0,.999945,285381e-12,0,0,.999908,723611e-12,0,0,.999846,17255e-10,0,0,.999733,386104e-11,0,0,.999511,808493e-11,0,0,.998993,156884e-10,0,0,.997326,265538e-10,0,0,.989706,206466e-10,0,0,.981713,130756e-10,0,70005e-10,.973636,106473e-10,0,464797e-9,.966509,10194e-9,0,.00201743,.965149,165881e-10,0,.00497549,.962669,249147e-10,0,.00953262,.95786,317449e-10,0,.0158211,.949334,281045e-10,0,.0239343,.941041,303263e-10,0,.0339372,.931575,356754e-10,0,.0458738,.920102,397075e-10,0,.059772,.908002,384886e-10,0,.075645,.897269,43027e-9,0,.0934929,.884559,479925e-10,0,.113302,.869161,48246e-9,0,.135045,.853342,509505e-10,0,.158678,.837633,542846e-10,0,.184136,.820252,554139e-10,0,.211325,.801872,581412e-10,0,.240113,.782418,585535e-10,0,.270306,.7631,610923e-10,0,.301594,.742183,613678e-10,0,.333333,.721098,627275e-10,0,.365079,.699512,629413e-10,0,.396825,.677372,636351e-10,0,.428571,.655059,633555e-10,0,.460317,.632567,636513e-10,0,.492064,.609784,628965e-10,0,.52381,.587237,625546e-10,0,.555556,.564525,615825e-10,0,.587302,.542181,605048e-10,0,.619048,.520017,596329e-10,0,.650794,.498204,581516e-10,0,.68254,.476742,569186e-10,0,.714286,.455803,553833e-10,0,.746032,.435251,537807e-10,0,.777778,.415374,522025e-10,0,.809524,.395921,503421e-10,0,.84127,.377253,488211e-10,0,.873016,.359021,468234e-10,0,.904762,.341637,453269e-10,0,.936508,.3247,433014e-10,0,.968254,.308625,418007e-10,0,1,1,286798e-15,0,0,1,286877e-15,0,0,1,288094e-15,0,0,1,293506e-15,0,0,1,309262e-15,0,0,.999999,348593e-15,0,0,.999999,444582e-15,0,0,.999998,688591e-15,0,0,.999996,134391e-14,0,0,.999993,317438e-14,0,0,.999989,835609e-14,0,0,.999983,228677e-13,0,0,.999974,623361e-13,0,0,.999959,165225e-12,0,0,.999936,419983e-12,0,0,.999896,101546e-11,0,0,.99983,232376e-11,0,0,.999709,50156e-10,0,0,.999469,10167e-9,0,0,.998886,190775e-10,0,0,.996819,300511e-10,0,0,.988837,185092e-10,0,168222e-12,.982178,134622e-10,0,259622e-9,.975017,125961e-10,0,.00142595,.967101,13507e-9,0,.00382273,.964905,205003e-10,0,.00764164,.96218,29546e-9,0,.0130121,.956821,343738e-10,0,.0200253,.948829,305063e-10,0,.0287452,.941092,346487e-10,0,.039218,.931883,412061e-10,0,.0514748,.920211,444651e-10,0,.0655351,.907307,431252e-10,0,.0814082,.89684,490382e-10,0,.0990939,.884119,53334e-9,0,.118583,.869148,54114e-9,0,.139856,.853377,578536e-10,0,.162882,.836753,592285e-10,0,.187615,.820063,622787e-10,0,.213991,.801694,645492e-10,0,.241918,.782116,65353e-9,0,.271267,.762673,674344e-10,0,.301847,.742133,682788e-10,0,.333333,.720779,691959e-10,0,.365079,.699386,696817e-10,0,.396826,.67732,699583e-10,0,.428572,.654888,698447e-10,0,.460318,.632499,694063e-10,0,.492064,.609825,691612e-10,0,.52381,.587287,681576e-10,0,.555556,.564743,674138e-10,0,.587302,.542409,661617e-10,0,.619048,.520282,647785e-10,0,.650794,.498506,633836e-10,0,.68254,.477102,615905e-10,0,.714286,.456167,601013e-10,0,.746032,.435728,581457e-10,0,.777778,.415809,564215e-10,0,.809524,.396517,544997e-10,0,.84127,.377737,525061e-10,0,.873016,.359698,506831e-10,0,.904762,.342164,48568e-9,0,.936508,.325417,467826e-10,0,.968254,.309186,446736e-10,0,1,1,109018e-14,0,0,1,10904e-13,0,0,1,109393e-14,0,0,1,11095e-13,0,0,1,1154e-12,0,0,1,126089e-14,0,0,.999999,15059e-13,0,0,.999997,207899e-14,0,0,.999994,348164e-14,0,0,.999993,705728e-14,0,0,.999987,163692e-13,0,0,.999981,406033e-13,0,0,.999969,10245e-11,0,0,.999953,255023e-12,0,0,.999925,61511e-11,0,0,.999881,142218e-11,0,0,.99981,313086e-11,0,0,.99968,653119e-11,0,0,.999418,12832e-9,0,0,.998748,232497e-10,0,0,.996066,329522e-10,0,0,.988379,179613e-10,0,108799e-9,.982567,143715e-10,0,921302e-9,.976097,148096e-10,0,.00280738,.968475,178905e-10,0,.00596622,.964606,253921e-10,0,.0105284,.961564,348623e-10,0,.0165848,.955517,357612e-10,0,.0242,.948381,343493e-10,0,.03342,.941095,405849e-10,0,.0442777,.931923,475394e-10,0,.0567958,.91996,484328e-10,0,.0709879,.907419,502146e-10,0,.086861,.89618,561654e-10,0,.104415,.88337,587612e-10,0,.123643,.869046,618057e-10,0,.144531,.853278,657392e-10,0,.167057,.836091,66303e-9,0,.191188,.819644,704445e-10,0,.216878,.801246,714071e-10,0,.244062,.782031,740093e-10,0,.272649,.762066,74685e-9,0,.302509,.741964,766647e-10,0,.333442,.720554,766328e-10,0,.365079,.699098,777857e-10,0,.396826,.677189,774633e-10,0,.428572,.65484,776235e-10,0,.460318,.632496,770316e-10,0,.492064,.609908,762669e-10,0,.52381,.587312,753972e-10,0,.555556,.564938,739994e-10,0,.587302,.542577,728382e-10,0,.619048,.52062,71112e-9,0,.650794,.498819,694004e-10,0,.68254,.477555,675575e-10,0,.714286,.456568,653449e-10,0,.746032,.436278,636068e-10,0,.777778,.41637,613466e-10,0,.809524,.397144,594177e-10,0,.84127,.378412,570987e-10,0,.873016,.360376,550419e-10,0,.904762,.342906,527422e-10,0,.936508,.326136,506544e-10,0,.968254,.30997,484307e-10,0,1,1,354014e-14,0,0,1,354073e-14,0,0,1,354972e-14,0,0,1,358929e-14,0,0,1,370093e-14,0,0,.999999,396194e-14,0,0,.999998,453352e-14,0,0,.999997,578828e-14,0,0,.999994,863812e-14,0,0,.999991,153622e-13,0,0,.999985,316356e-13,0,0,.999977,712781e-13,0,0,.999964,166725e-12,0,0,.999945,390501e-12,0,0,.999912,895622e-12,0,0,.999866,198428e-11,0,0,.999786,421038e-11,0,0,.999647,850239e-11,0,0,.999356,162059e-10,0,0,.998563,282652e-10,0,0,.994928,336309e-10,0,244244e-10,.987999,178458e-10,0,523891e-9,.982893,159162e-10,0,.00194729,.977044,178056e-10,0,.00451099,.969972,230624e-10,0,.00835132,.964237,313922e-10,0,.013561,.960791,406145e-10,0,.0202056,.954292,372796e-10,0,.0283321,.948052,403199e-10,0,.0379739,.940938,479537e-10,0,.0491551,.931689,545292e-10,0,.0618918,.91987,54038e-9,0,.0761941,.907665,589909e-10,0,.0920672,.895281,642651e-10,0,.109511,.882621,659707e-10,0,.12852,.86873,709973e-10,0,.149085,.853008,742221e-10,0,.171189,.835944,761754e-10,0,.194809,.818949,797052e-10,0,.21991,.800951,812434e-10,0,.246447,.781847,838075e-10,0,.274352,.761649,84501e-9,0,.303535,.74152,860258e-10,0,.333857,.720495,866233e-10,0,.365104,.698742,868326e-10,0,.396826,.677096,87133e-9,0,.428572,.654782,863497e-10,0,.460318,.632335,860206e-10,0,.492064,.610031,849337e-10,0,.52381,.587457,838279e-10,0,.555556,.56513,82309e-9,0,.587302,.542877,803542e-10,0,.619048,.5209,786928e-10,0,.650794,.499291,765171e-10,0,.68254,.477971,744753e-10,0,.714286,.457221,72209e-9,0,.746032,.436803,697448e-10,0,.777778,.417083,675333e-10,0,.809524,.397749,648058e-10,0,.84127,.379177,625759e-10,0,.873016,.361061,598584e-10,0,.904762,.343713,575797e-10,0,.936508,.326894,549999e-10,0,.968254,.310816,527482e-10,0,1,1,10153e-12,0,0,1,101544e-13,0,0,1,101751e-13,0,0,1,102662e-13,0,0,1,10521e-12,0,0,.999999,111049e-13,0,0,.999999,123408e-13,0,0,.999996,14924e-12,0,0,.999992,204471e-13,0,0,.999989,326539e-13,0,0,.99998,603559e-13,0,0,.999971,123936e-12,0,0,.999955,269058e-12,0,0,.999933,593604e-12,0,0,.999901,129633e-11,0,0,.999847,275621e-11,0,0,.999761,564494e-11,0,0,.999607,110485e-10,0,0,.999282,204388e-10,0,0,.99831,341084e-10,0,22038e-11,.993288,294949e-10,0,242388e-9,.987855,192736e-10,0,.0012503,.983167,182383e-10,0,.0032745,.977908,218633e-10,0,.00646321,.971194,290662e-10,0,.0109133,.963867,386401e-10,0,.0166927,.95982,462827e-10,0,.0238494,.953497,420705e-10,0,.0324178,.947621,477743e-10,0,.0424225,.940611,568258e-10,0,.0538808,.931174,618061e-10,0,.0668047,.919919,627098e-10,0,.0812014,.907856,694714e-10,0,.0970745,.894509,735008e-10,0,.114424,.881954,763369e-10,0,.133246,.868309,821896e-10,0,.153534,.852511,83769e-9,0,.175275,.835821,881615e-10,0,.198453,.817981,896368e-10,0,.223042,.800504,930906e-10,0,.249009,.78141,945056e-10,0,.276304,.761427,963605e-10,0,.304862,.74094,968088e-10,0,.334584,.720233,981481e-10,0,.365322,.698592,979122e-10,0,.396826,.676763,981057e-10,0,.428571,.654808,973956e-10,0,.460318,.632326,962619e-10,0,.492064,.610049,952996e-10,0,.52381,.58763,933334e-10,0,.555556,.565261,917573e-10,0,.587302,.543244,896636e-10,0,.619048,.521273,873304e-10,0,.650794,.499818,852648e-10,0,.68254,.478536,823961e-10,0,.714286,.457826,79939e-9,0,.746032,.437549,77126e-9,0,.777778,.41776,743043e-10,0,.809524,.39863,716426e-10,0,.84127,.379954,686456e-10,0,.873016,.362025,660514e-10,0,.904762,.344581,630755e-10,0,.936508,.327909,605439e-10,0,.968254,.311736,576345e-10,0,1,1,263344e-13,0,0,1,263373e-13,0,0,1,263815e-13,0,0,1,265753e-13,0,0,1,271132e-13,0,0,.999999,283279e-13,0,0,.999997,30833e-12,0,0,.999995,358711e-13,0,0,.999992,461266e-13,0,0,.999985,67574e-12,0,0,.999977,11358e-11,0,0,.999966,213657e-12,0,0,.999948,431151e-12,0,0,.999923,896656e-12,0,0,.999884,186603e-11,0,0,.999826,381115e-11,0,0,.999732,754184e-11,0,0,.999561,143192e-10,0,0,.999191,257061e-10,0,0,.997955,405724e-10,0,744132e-10,.992228,276537e-10,0,716477e-9,.987638,208885e-10,0,.0022524,.983395,215226e-10,0,.00484816,.978614,270795e-10,0,.00860962,.972389,365282e-10,0,.0136083,.964392,474747e-10,0,.0198941,.95861,509141e-10,0,.0275023,.952806,48963e-9,0,.0364584,.94712,571119e-10,0,.04678,.940104,671704e-10,0,.0584799,.930398,687586e-10,0,.0715665,.919866,738161e-10,0,.086045,.907853,813235e-10,0,.101918,.894078,834582e-10,0,.119186,.881177,892093e-10,0,.137845,.867575,944548e-10,0,.157891,.852107,969607e-10,0,.179316,.835502,101456e-9,0,.202106,.81756,103256e-9,0,.226243,.79984,106954e-9,0,.251704,.780998,108066e-9,0,.278451,.761132,110111e-9,0,.306436,.740429,110459e-9,0,.335586,.719836,111219e-9,0,.365796,.698467,11145e-8,0,.3969,.676446,110393e-9,0,.428571,.654635,110035e-9,0,.460318,.632411,108548e-9,0,.492064,.609986,106963e-9,0,.52381,.587872,105238e-9,0,.555556,.565528,102665e-9,0,.587302,.543563,100543e-9,0,.619048,.52176,976182e-10,0,.650794,.500188,947099e-10,0,.68254,.479204,919929e-10,0,.714286,.458413,886139e-10,0,.746032,.438314,857839e-10,0,.777778,.418573,82411e-9,0,.809524,.39947,792211e-10,0,.84127,.380892,759546e-10,0,.873016,.362953,727571e-10,0,.904762,.345601,695738e-10,0,.936508,.328895,664907e-10,0,.968254,.312808,634277e-10,0,1,1,628647e-13,0,0,1,628705e-13,0,0,1,629587e-13,0,0,1,633441e-13,0,0,.999999,644087e-13,0,0,.999998,667856e-13,0,0,.999997,715889e-13,0,0,.999995,809577e-13,0,0,.999989,992764e-13,0,0,.999983,135834e-12,0,0,.999974,210482e-12,0,0,.999959,365215e-12,0,0,.999939,686693e-12,0,0,.999911,13472e-10,0,0,.999868,26731e-10,0,0,.999804,524756e-11,0,0,.9997,100403e-10,0,0,.99951,185019e-10,0,0,.999078,322036e-10,0,620676e-11,.997428,470002e-10,0,341552e-9,.99162,287123e-10,0,.00143727,.987479,234706e-10,0,.00349201,.983582,260083e-10,0,.0066242,.979186,337927e-10,0,.0109113,.97325,454689e-10,0,.0164064,.965221,573759e-10,0,.0231463,.957262,544114e-10,0,.0311571,.952211,587006e-10,0,.0404572,.946631,692256e-10,0,.0510592,.939391,787819e-10,0,.0629723,.929795,792368e-10,0,.0762025,.91965,875075e-10,0,.090753,.907737,950903e-10,0,.106626,.893899,972963e-10,0,.123822,.880239,10459e-8,0,.142337,.866562,107689e-9,0,.16217,.85164,113081e-9,0,.183314,.835021,116636e-9,0,.20576,.817311,120074e-9,0,.229496,.798845,121921e-9,0,.254502,.780479,12475e-8,0,.280753,.760694,125255e-9,0,.308212,.740142,126719e-9,0,.336825,.719248,12636e-8,0,.366517,.698209,126712e-9,0,.397167,.676398,125769e-9,0,.428578,.654378,124432e-9,0,.460318,.632484,123272e-9,0,.492064,.610113,12085e-8,0,.52381,.587931,118411e-9,0,.555556,.565872,11569e-8,0,.587302,.543814,112521e-9,0,.619048,.522265,109737e-9,0,.650794,.500835,106228e-9,0,.68254,.479818,102591e-9,0,.714286,.459258,991288e-10,0,.746032,.439061,952325e-10,0,.777778,.419552,91895e-9,0,.809524,.400399,879051e-10,0,.84127,.381976,844775e-10,0,.873016,.364009,806316e-10,0,.904762,.346761,771848e-10,0,.936508,.330049,735429e-10,0,.968254,.314018,702103e-10,0,1,1,139968e-12,0,0,1,139979e-12,0,0,1,140145e-12,0,0,1,14087e-11,0,0,.999999,142865e-12,0,0,.999998,147279e-12,0,0,.999997,156057e-12,0,0,.999992,17276e-11,0,0,.999989,204352e-12,0,0,.99998,26494e-11,0,0,.999969,383435e-12,0,0,.999953,618641e-12,0,0,.999929,108755e-11,0,0,.999898,201497e-11,0,0,.999849,381346e-11,0,0,.999778,719815e-11,0,0,.999661,133215e-10,0,0,.999451,238313e-10,0,0,.998936,401343e-10,0,113724e-9,.99662,517346e-10,0,820171e-9,.991094,304323e-10,0,.00238143,.987487,281757e-10,0,.00493527,.983731,320048e-10,0,.00856859,.979647,423905e-10,0,.0133393,.973837,562935e-10,0,.0192863,.96584,677442e-10,0,.0264369,.956309,623073e-10,0,.03481,.951523,704131e-10,0,.0444184,.946003,836594e-10,0,.0552713,.938454,911736e-10,0,.0673749,.929279,938264e-10,0,.0807329,.919239,103754e-9,0,.0953479,.907293,109928e-9,0,.111221,.893936,115257e-9,0,.128352,.879674,122265e-9,0,.14674,.865668,125733e-9,0,.166382,.850998,132305e-9,0,.187276,.834498,134844e-9,0,.209413,.816903,139276e-9,0,.232786,.798235,140984e-9,0,.257382,.779724,14378e-8,0,.283181,.760251,144623e-9,0,.310156,.739808,145228e-9,0,.338269,.718762,14539e-8,0,.367461,.697815,144432e-9,0,.397646,.67631,143893e-9,0,.428685,.654278,141846e-9,0,.460318,.632347,13935e-8,0,.492064,.610296,137138e-9,0,.52381,.588039,133806e-9,0,.555556,.566218,130755e-9,0,.587302,.544346,127128e-9,0,.619048,.522701,123002e-9,0,.650794,.501542,119443e-9,0,.68254,.480508,115055e-9,0,.714286,.460092,111032e-9,0,.746032,.440021,106635e-9,0,.777778,.420446,102162e-9,0,.809524,.401512,98184e-9,0,.84127,.38299,936497e-10,0,.873016,.365232,89813e-9,0,.904762,.347865,853073e-10,0,.936508,.331342,817068e-10,0,.968254,.315202,773818e-10,0,1,1,29368e-11,0,0,1,2937e-10,0,0,1,293998e-12,0,0,1,295298e-12,0,0,.999999,298865e-12,0,0,.999998,3067e-10,0,0,.999995,322082e-12,0,0,.999992,350767e-12,0,0,.999986,403538e-12,0,0,.999976,501372e-12,0,0,.999964,68562e-11,0,0,.999945,10374e-10,0,0,.999919,171269e-11,0,0,.999882,300175e-11,0,0,.999829,542144e-11,0,0,.999749,984182e-11,0,0,.99962,176213e-10,0,0,.999382,305995e-10,0,138418e-10,.998751,496686e-10,0,389844e-9,.995344,510733e-10,0,.00150343,.990768,345829e-10,0,.00352451,.987464,342841e-10,0,.00655379,.983846,399072e-10,0,.0106554,.980007,533219e-10,0,.0158723,.974494,696992e-10,0,.0222333,.96622,776754e-10,0,.029758,.956273,747718e-10,0,.0384596,.950952,864611e-10,0,.0483473,.945215,100464e-9,0,.0594266,.937287,103729e-9,0,.0717019,.928649,111665e-9,0,.0851752,.918791,12353e-8,0,.0998479,.906685,127115e-9,0,.115721,.893706,13628e-8,0,.132794,.879248,142427e-9,0,.151067,.864685,148091e-9,0,.170538,.850032,153517e-9,0,.191204,.833853,157322e-9,0,.213063,.816353,161086e-9,0,.236107,.797834,164111e-9,0,.260329,.778831,165446e-9,0,.285714,.759756,167492e-9,0,.312243,.739419,166928e-9,0,.339887,.718491,167e-6,0,.368604,.697392,165674e-9,0,.398329,.676102,163815e-9,0,.428961,.654243,162003e-9,0,.460331,.632176,158831e-9,0,.492064,.610407,155463e-9,0,.52381,.588394,152062e-9,0,.555556,.56645,147665e-9,0,.587302,.5449,14375e-8,0,.619048,.523276,138905e-9,0,.650794,.502179,134189e-9,0,.68254,.481359,129392e-9,0,.714286,.46092,124556e-9,0,.746032,.441084,11957e-8,0,.777778,.421517,114652e-9,0,.809524,.402721,109688e-9,0,.84127,.384222,104667e-9,0,.873016,.366534,999633e-10,0,.904762,.349205,950177e-10,0,.936508,.332702,907301e-10,0,.968254,.316599,859769e-10,0,1,1,585473e-12,0,0,1,585507e-12,0,0,1,58602e-11,0,0,.999999,588259e-12,0,0,.999999,594381e-12,0,0,.999998,607754e-12,0,0,.999995,633729e-12,0,0,.99999,68137e-11,0,0,.999984,767003e-12,0,0,.999973,921212e-12,0,0,.999959,120218e-11,0,0,.999936,172024e-11,0,0,.999907,268088e-11,0,0,.999866,445512e-11,0,0,.999806,768481e-11,0,0,.999716,1342e-8,0,0,.999576,232473e-10,0,0,.9993,391694e-10,0,129917e-9,.998498,608429e-10,0,845035e-9,.994132,489743e-10,0,.00237616,.99031,384644e-10,0,.00484456,.987409,421768e-10,0,.00832472,.983981,504854e-10,0,.0128643,.980268,671028e-10,0,.0184947,.974875,852749e-10,0,.025237,.966063,85531e-9,0,.0331046,.956779,900588e-10,0,.0421067,.950259,10577e-8,0,.0522487,.944239,119458e-9,0,.0635343,.936341,122164e-9,0,.0759654,.928047,134929e-9,0,.0895434,.918065,145544e-9,0,.104269,.906267,150531e-9,0,.120142,.893419,161652e-9,0,.137163,.878758,16593e-8,0,.15533,.863699,174014e-9,0,.174645,.848876,177877e-9,0,.195106,.833032,184049e-9,0,.21671,.815557,186088e-9,0,.239454,.797323,19054e-8,0,.263332,.778124,191765e-9,0,.288336,.758929,192535e-9,0,.314451,.738979,192688e-9,0,.341658,.718213,191522e-9,0,.369924,.696947,190491e-9,0,.399202,.675807,187913e-9,0,.429416,.654147,184451e-9,0,.460447,.63229,181442e-9,0,.492064,.610499,177139e-9,0,.523809,.588747,172596e-9,0,.555555,.566783,167457e-9,0,.587301,.545359,162518e-9,0,.619048,.523984,156818e-9,0,.650794,.502917,151884e-9,0,.68254,.482294,145514e-9,0,.714286,.461945,140199e-9,0,.746032,.442133,134101e-9,0,.777778,.422705,128374e-9,0,.809524,.403916,122996e-9,0,.84127,.38554,116808e-9,0,.873016,.367909,111973e-9,0,.904762,.350651,105938e-9,0,.936508,.334208,101355e-9,0,.968254,.318123,957629e-10,0,1,1,111633e-11,0,0,1,111639e-11,0,0,1,111725e-11,0,0,1,112096e-11,0,0,.999999,11311e-10,0,0,.999997,115315e-11,0,0,.999995,11956e-10,0,0,.999989,127239e-11,0,0,.999981,140772e-11,0,0,.999969,164541e-11,0,0,.999952,206607e-11,0,0,.999928,281783e-11,0,0,.999895,416835e-11,0,0,.999848,658728e-11,0,0,.999781,108648e-10,0,0,.999682,182579e-10,0,0,.999523,306003e-10,0,159122e-10,.999205,499862e-10,0,391184e-9,.998131,73306e-9,0,.00147534,.993334,513229e-10,0,.0034227,.99016,467783e-10,0,.00632232,.987321,523413e-10,0,.0102295,.984099,64267e-9,0,.0151794,.980432,843042e-10,0,.0211947,.974976,102819e-9,0,.0282899,.966429,996234e-10,0,.0364739,.957633,111074e-9,0,.0457522,.949422,128644e-9,0,.0561278,.943045,140076e-9,0,.0676023,.935448,146349e-9,0,.0801762,.927225,161854e-9,0,.0938499,.917033,169135e-9,0,.108623,.905762,179987e-9,0,.124496,.892879,189832e-9,0,.141469,.878435,195881e-9,0,.159541,.863114,20466e-8,0,.178713,.84776,209473e-9,0,.198985,.832084,214861e-9,0,.220355,.814915,217695e-9,0,.242823,.796711,220313e-9,0,.266385,.777603,22313e-8,0,.291036,.757991,222471e-9,0,.316767,.738371,222869e-9,0,.343563,.717872,221243e-9,0,.371402,.696619,218089e-9,0,.400248,.675379,21562e-8,0,.430047,.65411,21169e-8,0,.460709,.63241,206947e-9,0,.492079,.61046,201709e-9,0,.52381,.58903,196753e-9,0,.555556,.567267,189637e-9,0,.587302,.545886,184735e-9,0,.619048,.524714,177257e-9,0,.650794,.503789,171424e-9,0,.68254,.483204,164688e-9,0,.714286,.462976,157172e-9,0,.746032,.443294,151341e-9,0,.777778,.423988,143737e-9,0,.809524,.405325,138098e-9,0,.84127,.386981,130698e-9,0,.873016,.369436,125276e-9,0,.904762,.35219,118349e-9,0,.936508,.335804,11312e-8,0,.968254,.319749,106687e-9,0,1,1,204685e-11,0,0,1,204694e-11,0,0,1,204831e-11,0,0,.999999,205428e-11,0,0,.999999,207056e-11,0,0,.999997,210581e-11,0,0,.999993,21732e-10,0,0,.999987,229365e-11,0,0,.999979,250243e-11,0,0,.999965,286127e-11,0,0,.999947,348028e-11,0,0,.999918,455588e-11,0,0,.999881,643303e-11,0,0,.999828,970064e-11,0,0,.999753,153233e-10,0,0,.999642,24793e-9,0,0,.999464,402032e-10,0,122947e-9,.999089,635852e-10,0,807414e-9,.997567,857026e-10,0,.00227206,.992903,594912e-10,0,.00462812,.990011,578515e-10,0,.00794162,.987192,65399e-9,0,.0122534,.98418,819675e-10,0,.0175888,.980491,105514e-9,0,.0239635,.974779,121532e-9,0,.031387,.96675,119144e-9,0,.0398644,.958248,136125e-9,0,.0493982,.948884,155408e-9,0,.0599896,.941673,162281e-9,0,.0716382,.934521,176754e-9,0,.0843437,.926205,192873e-9,0,.0981056,.916089,200038e-9,0,.112923,.904963,213624e-9,0,.128796,.892089,221834e-9,0,.145725,.878028,232619e-9,0,.163709,.86249,238632e-9,0,.182749,.846587,247002e-9,0,.202847,.830988,250702e-9,0,.224001,.814165,255562e-9,0,.246214,.796135,257505e-9,0,.269482,.777052,258625e-9,0,.293805,.757201,258398e-9,0,.319176,.737655,256714e-9,0,.345587,.717477,255187e-9,0,.373021,.696433,251792e-9,0,.401454,.675084,247223e-9,0,.430844,.653907,242213e-9,0,.461125,.632561,237397e-9,0,.492187,.610658,229313e-9,0,.52381,.589322,224402e-9,0,.555556,.567857,216116e-9,0,.587302,.54652,209124e-9,0,.619048,.525433,201601e-9,0,.650794,.504679,192957e-9,0,.68254,.484203,186052e-9,0,.714286,.464203,177672e-9,0,.746032,.444549,170005e-9,0,.777778,.425346,162401e-9,0,.809524,.406706,1544e-7,0,.84127,.388576,147437e-9,0,.873016,.37094,139493e-9,0,.904762,.353996,133219e-9,0,.936508,.337391,125573e-9,0,.968254,.321648,119867e-9,0,1,1,362511e-11,0,0,1,362525e-11,0,0,1,362739e-11,0,0,.999999,363673e-11,0,0,.999998,366214e-11,0,0,.999996,371698e-11,0,0,.999992,382116e-11,0,0,.999986,400554e-11,0,0,.999976,432058e-11,0,0,.999961,485194e-11,0,0,.999938,574808e-11,0,0,.999908,726643e-11,0,0,.999865,984707e-11,0,0,.999807,142217e-10,0,0,.999723,215581e-10,0,0,.999602,336114e-10,0,119113e-10,.999398,527353e-10,0,355813e-9,.998946,805809e-10,0,.00137768,.996647,942908e-10,0,.00322469,.992298,668733e-10,0,.00597897,.989802,716564e-10,0,.00968903,.987019,821355e-10,0,.0143845,.984219,104555e-9,0,.0200831,.980425,131245e-9,0,.0267948,.974241,139613e-9,0,.034525,.967006,145931e-9,0,.0432757,.95893,167153e-9,0,.0530471,.949157,188146e-9,0,.0638386,.94062,194625e-9,0,.0756487,.933509,213721e-9,0,.0884762,.925088,229616e-9,0,.10232,.915178,239638e-9,0,.117178,.904093,254814e-9,0,.133051,.891337,263685e-9,0,.149939,.877326,274789e-9,0,.167841,.861794,280534e-9,0,.18676,.845758,289534e-9,0,.206696,.829792,294446e-9,0,.22765,.813037,296877e-9,0,.249625,.795285,300217e-9,0,.27262,.776323,299826e-9,0,.296636,.756673,299787e-9,0,.321671,.736856,297867e-9,0,.347718,.716883,294052e-9,0,.374768,.696089,289462e-9,0,.402804,.67505,285212e-9,0,.431796,.653509,27653e-8,0,.461695,.63258,271759e-9,0,.49242,.61104,262811e-9,0,.523822,.589567,255151e-9,0,.555556,.568322,246434e-9,0,.587302,.547235,237061e-9,0,.619048,.52616,228343e-9,0,.650794,.505716,219236e-9,0,.68254,.485274,209595e-9,0,.714286,.465411,201011e-9,0,.746032,.445854,19109e-8,0,.777778,.426911,182897e-9,0,.809524,.408222,173569e-9,0,.84127,.390307,165496e-9,0,.873016,.372624,156799e-9,0,.904762,.355804,14917e-8,0,.936508,.33924,140907e-9,0,.968254,.323534,134062e-9,0,1,1,622487e-11,0,0,1,62251e-10,0,0,1,622837e-11,0,0,.999999,624259e-11,0,0,.999998,628127e-11,0,0,.999996,636451e-11,0,0,.999991,65218e-10,0,0,.999984,679782e-11,0,0,.999973,726361e-11,0,0,.999955,803644e-11,0,0,.999931,931397e-11,0,0,.999896,114299e-10,0,0,.999847,149402e-10,0,0,.999784,207461e-10,0,0,.999692,302493e-10,0,0,.999554,454957e-10,0,997275e-10,.999326,690762e-10,0,724813e-9,.998757,101605e-9,0,.0020972,.995367,958745e-10,0,.00432324,.99209,832808e-10,0,.00746347,.989517,887601e-10,0,.0115534,.987008,10564e-8,0,.0166134,.98421,133179e-9,0,.0226552,.98021,161746e-9,0,.0296838,.973676,161821e-9,0,.0377016,.967052,178635e-9,0,.0467079,.959385,206765e-9,0,.0567013,.949461,22476e-8,0,.0676796,.939578,23574e-8,0,.0796403,.932416,25893e-8,0,.0925812,.923759,271228e-9,0,.106501,.914223,289165e-9,0,.121397,.902942,301156e-9,0,.13727,.890419,313852e-9,0,.15412,.876639,324408e-9,0,.171946,.861316,33249e-8,0,.190751,.84496,338497e-9,0,.210537,.828427,345861e-9,0,.231305,.811871,347863e-9,0,.253057,.794397,350225e-9,0,.275797,.775726,349915e-9,0,.299525,.75617,347297e-9,0,.324242,.736091,344232e-9,0,.349947,.716213,340835e-9,0,.376633,.695736,332369e-9,0,.404289,.674961,327943e-9,0,.432895,.653518,318533e-9,0,.462415,.632574,310391e-9,0,.492788,.61134,300755e-9,0,.523909,.590017,290506e-9,0,.555556,.568752,280446e-9,0,.587302,.548061,269902e-9,0,.619048,.52711,258815e-9,0,.650794,.506682,248481e-9,0,.68254,.486524,237141e-9,0,.714286,.466812,226872e-9,0,.746032,.44732,216037e-9,0,.777778,.428473,205629e-9,0,.809524,.409921,195691e-9,0,.84127,.392028,185457e-9,0,.873016,.374606,176436e-9,0,.904762,.357601,166508e-9,0,.936508,.341348,158385e-9,0,.968254,.32542,149203e-9,0,1,1,103967e-10,0,0,1,10397e-9,0,0,1,104019e-10,0,0,.999999,104231e-10,0,0,.999998,104806e-10,0,0,.999995,106042e-10,0,0,.999991,108366e-10,0,0,.999982,112415e-10,0,0,.999968,119174e-10,0,0,.99995,130227e-10,0,0,.999922,148176e-10,0,0,.999884,177303e-10,0,0,.99983,224564e-10,0,0,.999758,300966e-10,0,0,.999654,423193e-10,0,549083e-11,.999503,614848e-10,0,296087e-9,.999237,903576e-10,0,.00123144,.998491,1271e-7,0,.00295954,.994594,107754e-9,0,.00555829,.99178,103025e-9,0,.00907209,.989265,11154e-8,0,.0135257,.986998,136296e-9,0,.0189327,.984137,169154e-9,0,.0252993,.979798,196671e-9,0,.0326272,.97337,196678e-9,0,.0409157,.967239,223121e-9,0,.0501623,.959543,253809e-9,0,.0603638,.949466,265972e-9,0,.0715171,.939074,288372e-9,0,.0836187,.931118,310983e-9,0,.0966657,.922525,325561e-9,0,.110656,.912983,345725e-9,0,.125588,.901617,3556e-7,0,.141461,.889487,374012e-9,0,.158275,.875787,383445e-9,0,.176031,.860654,393972e-9,0,.19473,.844417,400311e-9,0,.214374,.82741,405004e-9,0,.234967,.810545,407378e-9,0,.256512,.793312,407351e-9,0,.279011,.774847,406563e-9,0,.302468,.755621,404903e-9,0,.326887,.735511,397486e-9,0,.352266,.715435,39357e-8,0,.378605,.695403,384739e-9,0,.405897,.674681,376108e-9,0,.43413,.65359,365997e-9,0,.463277,.632471,354957e-9,0,.493295,.61151,343593e-9,0,.524106,.59064,331841e-9,0,.555561,.569386,318891e-9,0,.587302,.548785,3072e-7,0,.619048,.528146,29361e-8,0,.650794,.507872,281709e-9,0,.68254,.487805,268627e-9,0,.714286,.468196,255887e-9,0,.746032,.448922,243997e-9,0,.777778,.430093,231662e-9,0,.809524,.411845,220339e-9,0,.84127,.393808,208694e-9,0,.873016,.376615,198045e-9,0,.904762,.359655,187375e-9,0,.936508,.343452,177371e-9,0,.968254,.32765,167525e-9,0,1,1,169351e-10,0,0,1,169356e-10,0,0,1,169427e-10,0,0,.999999,169736e-10,0,0,.999998,170575e-10,0,0,.999995,172372e-10,0,0,.99999,175739e-10,0,0,.999979,181568e-10,0,0,.999966,191206e-10,0,0,.999944,20677e-9,0,0,.999912,231644e-10,0,0,.999869,271268e-10,0,0,.999811,334272e-10,0,0,.99973,433979e-10,0,0,.999617,590083e-10,0,680315e-10,.999445,829497e-10,0,612796e-9,.999138,118019e-9,0,.00187408,.998095,156712e-9,0,.00395791,.993919,125054e-9,0,.00692144,.991333,126091e-9,0,.0107962,.989226,144912e-9,0,.0155986,.986954,175737e-9,0,.0213364,.983982,213883e-9,0,.0280114,.979128,234526e-9,0,.0356226,.973327,243725e-9,0,.0441668,.967416,2773e-7,0,.0536399,.959729,308799e-9,0,.0640376,.949758,322447e-9,0,.0753554,.939173,350021e-9,0,.0875893,.9296,370089e-9,0,.100736,.921181,391365e-9,0,.114793,.91164,413636e-9,0,.129759,.900435,427068e-9,0,.145632,.888183,441046e-9,0,.162412,.874772,454968e-9,0,.180101,.859566,461882e-9,0,.1987,.843579,471556e-9,0,.218213,.826453,474335e-9,0,.238641,.809164,477078e-9,0,.259989,.792179,47755e-8,0,.282262,.773866,472573e-9,0,.305464,.754944,469765e-9,0,.329599,.735133,462371e-9,0,.35467,.714858,453674e-9,0,.380678,.694829,443888e-9,0,.407622,.674453,432052e-9,0,.435493,.653685,420315e-9,0,.464275,.632666,406829e-9,0,.493938,.611676,392234e-9,0,.524422,.591193,379208e-9,0,.555624,.570145,36319e-8,0,.587302,.549566,349111e-9,0,.619048,.529278,334166e-9,0,.650794,.509026,318456e-9,0,.68254,.489186,30449e-8,0,.714286,.469662,289051e-9,0,.746032,.450691,275494e-9,0,.777778,.431841,261437e-9,0,.809524,.413752,247846e-9,0,.84127,.395951,235085e-9,0,.873016,.378633,222245e-9,0,.904762,.36194,210533e-9,0,.936508,.345599,198494e-9,0,.968254,.329999,188133e-9,0,1,1,269663e-10,0,0,1,26967e-9,0,0,1,269772e-10,0,0,.999999,270214e-10,0,0,.999998,271415e-10,0,0,.999994,27398e-9,0,0,.999988,278771e-10,0,0,.999977,287019e-10,0,0,.999961,300544e-10,0,0,.999937,322138e-10,0,0,.999904,356163e-10,0,0,.999854,409465e-10,0,0,.99979,492651e-10,0,0,.999699,621722e-10,0,88288e-11,.999572,819715e-10,0,223369e-9,.999381,111689e-9,0,.00105414,.999016,153862e-9,0,.0026493,.997437,187667e-9,0,.00508608,.993545,155672e-9,0,.00840554,.991135,161455e-9,0,.012629,.989157,188241e-9,0,.0177661,.986874,226229e-9,0,.0238198,.983714,268668e-9,0,.0307887,.978301,277109e-9,0,.0386688,.973227,303446e-9,0,.0474554,.967317,341851e-9,0,.0571428,.959477,370885e-9,0,.0677256,.950012,392753e-9,0,.0791988,.939484,42781e-8,0,.0915576,.928135,443866e-9,0,.104798,.919819,472959e-9,0,.118918,.910049,491551e-9,0,.133915,.899181,512616e-9,0,.149788,.886881,523563e-9,0,.166537,.87359,540183e-9,0,.184164,.858613,547386e-9,0,.202669,.842809,554809e-9,0,.222056,.825727,558316e-9,0,.242329,.808086,557824e-9,0,.263492,.790728,556346e-9,0,.285551,.772987,552672e-9,0,.30851,.7541,543738e-9,0,.332376,.734669,536107e-9,0,.357153,.714411,523342e-9,0,.382845,.694196,512238e-9,0,.409454,.674252,497465e-9,0,.436977,.65357,481096e-9,0,.465404,.632999,467054e-9,0,.494713,.611994,448771e-9,0,.524864,.591604,431889e-9,0,.555779,.571134,415238e-9,0,.587302,.550528,396369e-9,0,.619048,.530292,379477e-9,0,.650794,.510364,361488e-9,0,.68254,.490749,343787e-9,0,.714286,.471266,327822e-9,0,.746032,.452462,310626e-9,0,.777778,.433907,295352e-9,0,.809524,.415659,279179e-9,0,.84127,.398138,264685e-9,0,.873016,.380833,249905e-9,0,.904762,.364247,236282e-9,0,.936508,.348041,222905e-9,0,.968254,.332389,210522e-9,0,1,1,420604e-10,0,0,1,420614e-10,0,0,1,420757e-10,0,0,.999999,42138e-9,0,0,.999997,423067e-10,0,0,.999993,426668e-10,0,0,.999986,433372e-10,0,0,.999974,444857e-10,0,0,.999956,463554e-10,0,0,.99993,493105e-10,0,0,.999892,539077e-10,0,0,.999838,610005e-10,0,0,.999767,718822e-10,0,0,.999666,884581e-10,0,365471e-10,.999525,113398e-9,0,485623e-9,.999311,150043e-9,0,.00162096,.998865,200063e-9,0,.00355319,.996278,211014e-9,0,.00633818,.992956,189672e-9,0,.0100043,.991017,210262e-9,0,.0145648,.989055,244292e-9,0,.0200237,.986741,290481e-9,0,.0263798,.983288,334303e-9,0,.033629,.977784,340307e-9,0,.0417652,.973037,377864e-9,0,.0507821,.967181,4239e-7,0,.060673,.958971,443854e-9,0,.0714314,.950093,483039e-9,0,.0830518,.939552,517934e-9,0,.0955288,.927678,539449e-9,0,.108859,.918278,568604e-9,0,.123038,.908449,588505e-9,0,.138065,.897713,612473e-9,0,.153938,.885533,625575e-9,0,.170657,.872131,63854e-8,0,.188224,.857517,647034e-9,0,.20664,.841796,65209e-8,0,.225909,.824726,6544e-7,0,.246035,.807297,655744e-9,0,.267022,.789058,646716e-9,0,.288878,.77189,643898e-9,0,.311607,.753082,629973e-9,0,.335216,.7341,621564e-9,0,.359713,.714094,605171e-9,0,.385103,.693839,588752e-9,0,.41139,.673891,573294e-9,0,.438576,.653565,552682e-9,0,.466656,.633326,533446e-9,0,.495617,.612582,514635e-9,0,.525431,.59205,49303e-8,0,.556041,.571918,471842e-9,0,.587338,.551572,451713e-9,0,.619048,.531553,430049e-9,0,.650794,.51175,410445e-9,0,.68254,.49238,390098e-9,0,.714286,.473143,370033e-9,0,.746032,.45423,351205e-9,0,.777778,.435963,332049e-9,0,.809524,.41787,315021e-9,0,.84127,.400387,297315e-9,0,.873016,.383332,281385e-9,0,.904762,.366665,265397e-9,0,.936508,.350633,250601e-9,0,.968254,.334964,23589e-8,0,1,1,643736e-10,0,0,1,64375e-9,0,0,1,643947e-10,0,0,.999999,64481e-9,0,0,.999997,647143e-10,0,0,.999994,652119e-10,0,0,.999985,661359e-10,0,0,.999972,677116e-10,0,0,.999952,702599e-10,0,0,.999922,742517e-10,0,0,.99988,803906e-10,0,0,.99982,897315e-10,0,0,.999741,103838e-9,0,0,.999629,12496e-8,0,149024e-9,.999474,156161e-9,0,861027e-9,.999229,201034e-9,0,.00231198,.998662,259069e-9,0,.00458147,.995299,245439e-9,0,.00770895,.992732,24498e-8,0,.0117126,.990847,273211e-9,0,.0165989,.988911,316492e-9,0,.0223674,.98654,37161e-8,0,.0290135,.982636,410352e-9,0,.0365309,.977346,421756e-9,0,.0449117,.972909,475578e-9,0,.0541481,.966821,522482e-9,0,.0642326,.958686,545008e-9,0,.075158,.949754,589286e-9,0,.0869181,.939184,619995e-9,0,.0995074,.927505,654266e-9,0,.112922,.916606,682362e-9,0,.127157,.906707,704286e-9,0,.142212,.895937,725909e-9,0,.158085,.883913,743939e-9,0,.174776,.870642,755157e-9,0,.192287,.856241,764387e-9,0,.210619,.84069,771032e-9,0,.229775,.823728,765906e-9,0,.249761,.806481,767604e-9,0,.270582,.787924,754385e-9,0,.292243,.770588,749668e-9,0,.314753,.751991,731613e-9,0,.338118,.733407,717655e-9,0,.362347,.713688,700604e-9,0,.387447,.693595,678765e-9,0,.413424,.673426,657042e-9,0,.440284,.65359,635892e-9,0,.468027,.633576,611569e-9,0,.496645,.613144,586011e-9,0,.526122,.592711,563111e-9,0,.556417,.572722,537699e-9,0,.587451,.552762,512556e-9,0,.619048,.532985,489757e-9,0,.650794,.513219,464139e-9,0,.68254,.493992,442193e-9,0,.714286,.47509,418629e-9,0,.746032,.456287,397045e-9,0,.777778,.438152,375504e-9,0,.809524,.420294,35492e-8,0,.84127,.402749,335327e-9,0,.873016,.385879,316422e-9,0,.904762,.369352,298333e-9,0,.936508,.353301,281417e-9,0,.968254,.337781,265203e-9,0,1,1,968267e-10,0,0,1,968284e-10,0,0,1,968556e-10,0,0,.999999,969733e-10,0,0,.999997,972913e-10,0,0,.999993,979688e-10,0,0,.999984,992239e-10,0,0,.999969,101356e-9,0,0,.999946,104784e-9,0,0,.999913,110111e-9,0,0,.999868,118217e-9,0,0,.999801,130396e-9,0,0,.999712,148523e-9,0,124907e-10,.999589,175233e-9,0,355405e-9,.999416,213999e-9,0,.0013528,.999136,268529e-9,0,.00312557,.998367,333088e-9,0,.00573045,.994701,304757e-9,0,.00919397,.992497,318031e-9,0,.0135261,.990608,353863e-9,0,.0187278,.988715,409044e-9,0,.0247947,.986241,472967e-9,0,.0317196,.981696,495104e-9,0,.039494,.977097,532873e-9,0,.0481087,.972583,594447e-9,0,.0575549,.966142,636867e-9,0,.0678242,.95823,669899e-9,0,.0789089,.949677,719499e-9,0,.0908023,.939226,750584e-9,0,.103499,.927501,793183e-9,0,.116993,.915199,81995e-8,0,.131282,.90498,847654e-9,0,.146364,.894243,868929e-9,0,.162237,.882154,884278e-9,0,.178902,.869161,898108e-9,0,.196358,.854751,901254e-9,0,.21461,.839368,90679e-8,0,.23366,.822874,901541e-9,0,.253512,.805514,897297e-9,0,.274174,.78716,881856e-9,0,.29565,.769061,870032e-9,0,.31795,.751,851719e-9,0,.341081,.732614,830671e-9,0,.365053,.713171,806569e-9,0,.389874,.693472,78338e-8,0,.415553,.673528,756404e-9,0,.442098,.653397,726872e-9,0,.469512,.633781,700494e-9,0,.497794,.613877,67105e-8,0,.526935,.593506,640361e-9,0,.556908,.573667,613502e-9,0,.587657,.553932,583177e-9,0,.61906,.534345,554375e-9,0,.650794,.515042,527811e-9,0,.68254,.495674,499367e-9,0,.714286,.477132,47429e-8,0,.746032,.458609,447726e-9,0,.777778,.440354,424205e-9,0,.809524,.422765,399549e-9,0,.84127,.405472,378315e-9,0,.873016,.388482,355327e-9,0,.904762,.372191,336122e-9,0,.936508,.356099,315247e-9,0,.968254,.340737,29794e-8,0,1,1,143327e-9,0,0,1,14333e-8,0,0,1,143366e-9,0,0,.999999,143524e-9,0,0,.999996,143952e-9,0,0,.999991,144862e-9,0,0,.999981,146544e-9,0,0,.999966,149391e-9,0,0,.999941,153946e-9,0,0,.999905,160971e-9,0,0,.999852,171562e-9,0,0,.99978,18729e-8,0,0,.999681,210386e-9,0,826239e-10,.999546,243906e-9,0,664807e-9,.999352,291739e-9,0,.00196192,.999027,357419e-9,0,.00405941,.997886,422349e-9,0,.00699664,.99419,385008e-9,0,.0107896,.99214,409775e-9,0,.0154415,.990274,456418e-9,0,.0209488,.988455,527008e-9,0,.0273037,.985804,597685e-9,0,.0344969,.98103,613124e-9,0,.0425183,.976674,668321e-9,0,.0513575,.972021,736985e-9,0,.0610046,.965274,773789e-9,0,.0714508,.958046,830852e-9,0,.0826877,.949333,875766e-9,0,.0947085,.939135,917088e-9,0,.107507,.927119,952244e-9,0,.121078,.91469,990626e-9,0,.135419,.903006,.00101304,0,.150526,.892368,.00103834,0,.166399,.880231,.00105002,0,.183038,.867432,.00106331,0,.200443,.853208,.00106783,0,.218618,.837956,.00106458,0,.237566,.821772,.00105945,0,.257291,.804328,.00104685,0,.2778,.786465,.00103178,0,.2991,.768004,.00101077,0,.321199,.74972,985504e-9,0,.344106,.731682,962893e-9,0,.36783,.712813,932146e-9,0,.392383,.693139,89871e-8,0,.417774,.673566,869678e-9,0,.444013,.653483,835525e-9,0,.471107,.633891,799853e-9,0,.49906,.614433,766838e-9,0,.527869,.594586,732227e-9,0,.557517,.574769,696442e-9,0,.587966,.555149,663935e-9,0,.61913,.535898,629826e-9,0,.650794,.516753,596486e-9,0,.68254,.497816,567078e-9,0,.714286,.479034,534399e-9,0,.746032,.460975,507013e-9,0,.777778,.442935,477421e-9,0,.809524,.425263,451101e-9,0,.84127,.408248,424964e-9,0,.873016,.391339,39993e-8,0,.904762,.37513,377619e-9,0,.936508,.359172,354418e-9,0,.968254,.343876,334823e-9,0,1,1,209042e-9,0,0,1,209045e-9,0,0,1,209093e-9,0,0,.999999,209304e-9,0,0,.999996,209871e-9,0,0,.999991,211078e-9,0,0,.999979,213304e-9,0,0,.999963,217061e-9,0,0,.999933,223042e-9,0,0,.999894,232206e-9,0,0,.999837,245901e-9,0,0,.999756,266023e-9,0,102927e-11,.999648,295204e-9,0,233468e-9,.999499,336958e-9,0,.00108237,.999283,395563e-9,0,.00268832,.998896,473785e-9,0,.00511138,.997006,520008e-9,0,.00837705,.993819,497261e-9,0,.0124928,.991632,523722e-9,0,.0174561,.989875,587258e-9,0,.0232596,.988109,676329e-9,0,.0298932,.985155,747701e-9,0,.0373453,.980479,768803e-9,0,.0456045,.976271,841054e-9,0,.0546593,.971347,911469e-9,0,.0644994,.964528,953057e-9,0,.0751152,.957632,.00102221,0,.0864981,.948681,.00106122,0,.0986407,.938716,.00111857,0,.111537,.926629,.00114762,0,.125182,.914025,.00118995,0,.139571,.901026,.00121228,0,.154703,.890358,.00123946,0,.170576,.878283,.0012527,0,.18719,.865459,.00125536,0,.204547,.851407,.00126134,0,.222648,.836276,.00124759,0,.241498,.820436,.00124443,0,.261101,.803253,.00122071,0,.281465,.785562,.00120107,0,.302595,.76718,.00117762,0,.324501,.748551,.00114289,0,.347192,.730564,.00110872,0,.370679,.712253,.00107636,0,.394973,.692867,.00103646,0,.420085,.673695,996793e-9,0,.446027,.653912,95675e-8,0,.47281,.634129,916739e-9,0,.500441,.615004,874401e-9,0,.528921,.595587,833411e-9,0,.558244,.575965,794556e-9,0,.588384,.5566,75196e-8,0,.619281,.537428,716381e-9,0,.650795,.518623,676558e-9,0,.68254,.499964,64074e-8,0,.714286,.481356,605984e-9,0,.746032,.463279,570256e-9,0,.777778,.445673,540138e-9,0,.809524,.428032,507299e-9,0,.84127,.411112,479553e-9,0,.873016,.394444,450737e-9,0,.904762,.378247,424269e-9,0,.936508,.362415,399111e-9,0,.968254,.347103,375274e-9,0,1,1,300729e-9,0,0,1,300733e-9,0,0,1,300797e-9,0,0,.999998,301072e-9,0,0,.999996,301817e-9,0,0,.999989,303398e-9,0,0,.999977,306309e-9,0,0,.999958,311209e-9,0,0,.999927,318975e-9,0,0,.999884,330804e-9,0,0,.99982,34834e-8,0,0,.999733,373854e-9,0,326995e-10,.999613,410424e-9,0,477174e-9,.999447,462047e-9,0,.00161099,.999204,533322e-9,0,.00353153,.998725,624964e-9,0,.00627965,.995871,631786e-9,0,.0098693,.993194,632017e-9,0,.0143011,.991541,68923e-8,0,.019568,.989773,766892e-9,0,.0256593,.987647,863668e-9,0,.0325625,.984193,922089e-9,0,.0402647,.980016,970749e-9,0,.0487532,.975859,.00106027,0,.058016,.970514,.00112239,0,.0680419,.963625,.00117212,0,.0788208,.956959,.00125211,0,.0903439,.947956,.00129411,0,.102604,.93809,.00135879,0,.115594,.92659,.00139309,0,.129309,.913829,.00143253,0,.143745,.90005,.00145809,0,.158901,.888129,.0014748,0,.174774,.87607,.00148756,0,.191365,.863461,.00148714,0,.208674,.849594,.00148892,0,.226705,.834531,.00146496,0,.245461,.81903,.0014579,0,.264947,.802122,.00143039,0,.28517,.78445,.00139717,0,.306137,.766434,.00136312,0,.327857,.747816,.00132597,0,.350341,.729519,.00128323,0,.373598,.711454,.00123803,0,.397642,.692699,.00119097,0,.422485,.673723,.00114565,0,.448139,.654386,.00109552,0,.474619,.634673,.00104553,0,.501933,.615554,99985e-8,0,.530089,.596462,948207e-9,0,.559087,.577385,902299e-9,0,.588913,.558257,856448e-9,0,.619525,.5392,810395e-9,0,.650826,.520543,768558e-9,0,.68254,.502206,7239e-7,0,.714286,.48402,685794e-9,0,.746032,.465779,64471e-8,0,.777778,.448455,609583e-9,0,.809524,.431091,57227e-8,0,.84127,.414147,54042e-8,0,.873016,.39765,506545e-9,0,.904762,.381576,477635e-9,0,.936508,.365881,448446e-9,0,.968254,.350582,421424e-9,0,1,1,427144e-9,0,0,1,427151e-9,0,0,1,427232e-9,0,0,.999998,42759e-8,0,0,.999995,428555e-9,0,0,.999988,430603e-9,0,0,.999976,434368e-9,0,0,.999952,440688e-9,0,0,.999919,450667e-9,0,0,.999871,46578e-8,0,0,.999801,488024e-9,0,0,.999704,520092e-9,0,129791e-9,.999572,565553e-9,0,821056e-9,.999389,628906e-9,0,.00225241,.999114,714911e-9,0,.00449109,.998488,819218e-9,0,.00756249,.995234,80415e-8,0,.0114716,.993021,830181e-9,0,.0162131,.991407,902645e-9,0,.021776,.989625,996934e-9,0,.0281471,.987064,.00109707,0,.0353118,.983265,.00114353,0,.0432562,.979535,.0012272,0,.0519665,.975224,.00132642,0,.0614298,.969574,.00138092,0,.0716348,.963021,.00145896,0,.0825709,.956046,.00152834,0,.094229,.947136,.00158217,0,.106602,.937313,.0016347,0,.119682,.926073,.00168383,0,.133465,.913121,.00171627,0,.147947,.899165,.00174229,0,.163125,.885891,.00176137,0,.178998,.873783,.00176406,0,.195566,.861331,.00176156,0,.21283,.847569,.00175346,0,.230793,.832785,.00172753,0,.249459,.817442,.00170204,0,.268832,.800613,.00166576,0,.28892,.783597,.00162909,0,.30973,.76571,.0015826,0,.331271,.747021,.00153106,0,.353554,.728593,.00148036,0,.37659,.710661,.00142808,0,.400391,.692426,.00136906,0,.424973,.673623,.00131066,0,.450347,.65494,.00125569,0,.476531,.635448,.00119517,0,.503535,.616221,.00113828,0,.531372,.597531,.0010816,0,.560047,.578795,.00102673,0,.589554,.559892,970985e-9,0,.619869,.541307,919773e-9,0,.650923,.522608,868479e-9,0,.68254,.504484,82137e-8,0,.714286,.486603,772916e-9,0,.746032,.468802,730353e-9,0,.777778,.451172,684955e-9,0,.809524,.434348,647565e-9,0,.84127,.417445,605863e-9,0,.873016,.401077,571885e-9,0,.904762,.385039,536034e-9,0,.936508,.369483,504227e-9,0,.968254,.354272,473165e-9,0,1,1,599525e-9,0,0,1,599533e-9,0,0,1,599639e-9,0,0,.999998,600097e-9,0,0,.999994,601336e-9,0,0,.999987,603958e-9,0,0,.999972,608775e-9,0,0,.999949,616842e-9,0,0,.999912,629534e-9,0,0,.999857,648658e-9,0,0,.999781,676615e-9,0,538873e-11,.999674,716574e-9,0,308602e-9,.999528,772641e-9,0,.00127003,.999326,849806e-9,0,.00300783,.999009,952682e-9,0,.00556637,.998112,.00106394,0,.00895889,.994496,.00102228,0,.0131827,.992806,.00108586,0,.0182277,.991211,.0011759,0,.0240795,.989415,.00128955,0,.030723,.986499,.00139038,0,.0381418,.982679,.00144539,0,.046321,.978839,.00153954,0,.0552459,.974295,.00164417,0,.0649034,.968784,.00171517,0,.0752814,.962324,.00180282,0,.0863693,.954956,.00186387,0,.0981578,.94624,.00193817,0,.110639,.936517,.00198156,0,.123806,.925186,.00203042,0,.137655,.91252,.0020664,0,.15218,.898441,.00207822,0,.16738,.884394,.0020992,0,.183253,.871273,.00208748,0,.199799,.859057,.00208686,0,.21702,.845243,.00205519,0,.234918,.830723,.00202868,0,.253496,.815801,.00199501,0,.272761,.79914,.00194193,0,.292719,.782372,.00188824,0,.313377,.76482,.00183695,0,.334745,.746586,.00177418,0,.356833,.7281,.00170628,0,.379654,.709842,.00164063,0,.403221,.692019,.00157355,0,.427548,.67364,.00150262,0,.452651,.655277,.00143473,0,.478545,.636438,.00136371,0,.505246,.617364,.00129911,0,.532768,.598603,.00123014,0,.561122,.580195,.00116587,0,.590309,.561786,.00110398,0,.620318,.543377,.00104148,0,.651102,.525093,983984e-9,0,.682545,.506791,92667e-8,0,.714286,.489291,874326e-9,0,.746032,.471811,821734e-9,0,.777778,.454435,774698e-9,0,.809524,.437493,727302e-9,0,.84127,.420977,684039e-9,0,.873016,.404729,64373e-8,0,.904762,.388756,60285e-8,0,.936508,.373344,56765e-8,0,.968254,.358191,531929e-9,0,1,1,832169e-9,0,0,1,832178e-9,0,0,1,83231e-8,0,0,.999998,832893e-9,0,0,.999995,834465e-9,0,0,.999985,837791e-9,0,0,.999969,843893e-9,0,0,.999944,854086e-9,0,0,.999903,870071e-9,0,0,.999843,894042e-9,0,0,.999759,928865e-9,0,531805e-10,.999643,978242e-9,0,579365e-9,.99948,.00104684,0,.00182774,.999255,.00114012,0,.00387804,.998885,.00126188,0,.00675709,.997405,.00135888,0,.010468,.99424,.00133626,0,.0150018,.992458,.00140905,0,.0203443,.990929,.00152305,0,.0264786,.989116,.00165882,0,.0333875,.985624,.00174128,0,.0410536,.982003,.00182108,0,.0494609,.978336,.00194498,0,.0585941,.973184,.00202708,0,.0684396,.9678,.00212166,0,.0789851,.961348,.00221366,0,.0902199,.953841,.00228219,0,.102134,.94534,.00235662,0,.114721,.935552,.00240572,0,.127972,.924064,.00244405,0,.141884,.911827,.00247557,0,.156451,.897731,.00248374,0,.171672,.883409,.00249863,0,.187545,.868625,.00246688,0,.20407,.856529,.00246523,0,.221249,.842999,.00242368,0,.239083,.828505,.00237354,0,.257578,.813825,.00232588,0,.276738,.797813,.00226731,0,.296569,.781097,.00219704,0,.31708,.764038,.00212394,0,.338281,.746067,.00204786,0,.360181,.727687,.00196728,0,.382794,.709571,.00188779,0,.406133,.691503,.00180532,0,.430213,.673673,.00171849,0,.45505,.655732,.00164147,0,.480662,.637399,.00155858,0,.507065,.618616,.00147641,0,.534278,.60005,.00140125,0,.562313,.581713,.00132441,0,.59118,.563546,.00125014,0,.620875,.545605,.00118249,0,.651373,.527559,.0011116,0,.682593,.509764,.00104979,0,.714286,.49193,985977e-9,0,.746032,.475011,928592e-9,0,.777778,.457878,873466e-9,0,.809524,.440979,819585e-9,0,.84127,.424613,772365e-9,0,.873016,.408549,722195e-9,0,.904762,.392771,680014e-9,0,.936508,.377317,636797e-9,0,.968254,.362352,598318e-9,0,1,1,.00114313,0,0,1,.00114314,0,0,.999999,.00114331,0,0,.999998,.00114404,0,0,.999994,.00114601,0,0,.999984,.00115019,0,0,.999967,.00115784,0,0,.999937,.0011706,0,0,.999894,.00119054,0,0,.999828,.00122031,0,0,.999735,.00126331,0,169263e-9,.999606,.00132382,0,949167e-9,.999426,.0014071,0,.00249668,.999173,.00151895,0,.00486392,.99873,.00166102,0,.00806323,.996243,.0017023,0,.0120895,.993779,.00172782,0,.0169288,.9919,.0018108,0,.0225633,.990524,.00196028,0,.028974,.98868,.00212014,0,.036142,.984663,.00217598,0,.044049,.981457,.00230563,0,.0526781,.977608,.00243966,0,.0620137,.972215,.00251336,0,.0720418,.966798,.0026285,0,.0827499,.960241,.00271409,0,.0941271,.952489,.00278381,0,.106164,.944127,.00285399,0,.118852,.934282,.00290994,0,.132185,.923271,.00294558,0,.146157,.910803,.00296269,0,.160766,.896705,.00296803,0,.176007,.88238,.00296637,0,.19188,.867116,.00293163,0,.208385,.853636,.00289418,0,.225523,.840469,.00284663,0,.243296,.82639,.00278594,0,.261709,.811759,.00271618,0,.280767,.796113,.00263187,0,.300476,.779518,.00254589,0,.320845,.763142,.00246003,0,.341883,.745464,.00236529,0,.363601,.727491,.00226536,0,.386011,.709414,.00216375,0,.409128,.691396,.00207127,0,.432967,.67368,.00197106,0,.457545,.656049,.00187022,0,.482881,.638188,.00177605,0,.508992,.620177,.00168482,0,.535899,.601506,.00158909,0,.563619,.58362,.00150583,0,.592165,.565496,.00141791,0,.621544,.54789,.00133693,0,.651743,.530323,.00126038,0,.682709,.512795,.00118556,0,.714286,.495199,.00111527,0,.746032,.478101,.0010489,0,.777778,.461511,984264e-9,0,.809524,.444879,92591e-8,0,.84127,.428424,866582e-9,0,.873016,.412495,814463e-9,0,.904762,.396975,764498e-9,0,.936508,.381614,715967e-9,0,.968254,.366732,672483e-9,0,1,1,.00155501,0,0,1,.00155503,0,0,1,.00155524,0,0,.999998,.00155615,0,0,.999994,.0015586,0,0,.999983,.00156379,0,0,.999963,.0015733,0,0,.999932,.00158911,0,0,.999882,.00161376,0,0,.99981,.00165041,0,100875e-10,.999708,.00170304,0,367658e-9,.999565,.00177658,0,.0014234,.999368,.00187688,0,.00327939,.999081,.00200989,0,.00596629,.99852,.00217177,0,.0094852,.99549,.0021745,0,.013824,.993252,.00222357,0,.0189642,.991727,.00235022,0,.0248856,.989951,.00250561,0,.0315669,.988029,.00268829,0,.0389882,.984029,.0027496,0,.0471302,.980683,.00289793,0,.0559754,.976554,.00303315,0,.0655081,.97139,.00313257,0,.0757138,.965544,.00323656,0,.08658,.95912,.00333432,0,.0980954,.951183,.0034039,0,.110251,.942974,.00347515,0,.123038,.932642,.00350381,0,.13645,.922158,.00354519,0,.150482,.909404,.00353851,0,.165129,.896071,.0035435,0,.18039,.881206,.00349936,0,.196263,.866077,.00347256,0,.212748,.85093,.003415,0,.229847,.837703,.00333367,0,.247561,.823878,.003249,0,.265895,.809449,.00316347,0,.284854,.794379,.00306351,0,.304445,.778138,.0029499,0,.324675,.761997,.00284099,0,.345555,.744938,.00272104,0,.367095,.727212,.00260715,0,.389309,.709549,.00248855,0,.41221,.691704,.00236783,0,.435814,.673689,.00225178,0,.460138,.656453,.00213765,0,.485203,.639128,.00202178,0,.511028,.621512,.00191443,0,.537634,.603598,.00180977,0,.565041,.58559,.00170456,0,.593268,.567852,.00160927,0,.622327,.5503,.00151395,0,.652217,.533033,.00142499,0,.682907,.515942,.00133955,0,.714296,.498814,.0012602,0,.746032,.481595,.00118188,0,.777778,.465117,.00111171,0,.809524,.448865,.00104091,0,.84127,.432711,976618e-9,0,.873016,.416822,91859e-8,0,.904762,.401272,857704e-9,0,.936508,.386226,807172e-9,0,.968254,.371321,75464e-8,0,1,1,.00209596,0,0,1,.00209598,0,0,1,.00209624,0,0,.999997,.00209736,0,0,.999991,.00210039,0,0,.999979,.00210678,0,0,.999959,.00211847,0,0,.999925,.0021379,0,0,.99987,.00216809,0,0,.999791,.00221281,0,681487e-10,.999677,.00227669,0,658161e-9,.999521,.00236533,0,.00200635,.999301,.00248514,0,.0041779,.998977,.00264185,0,.00718648,.998191,.00281695,0,.0110239,.994801,.00278518,0,.015672,.993091,.00288774,0,.0211091,.991571,.00303931,0,.0273123,.9897,.00321643,0,.034259,.987023,.00337332,0,.0419282,.983289,.00346146,0,.0502998,.979892,.00363704,0,.0593562,.975111,.00373601,0,.069081,.970351,.0038842,0,.0794598,.964131,.00397053,0,.0904798,.957747,.00408078,0,.10213,.949536,.00413533,0,.1144,.941372,.00420305,0,.127284,.931049,.00422815,0,.140772,.920647,.00425048,0,.154862,.908033,.0042281,0,.169548,.895028,.00422026,0,.184828,.879968,.00415042,0,.200701,.864875,.00408821,0,.217167,.84918,.00400909,0,.234227,.834934,.00391178,0,.251884,.821397,.00380066,0,.270141,.807135,.00367974,0,.289004,.792363,.00355172,0,.308479,.776661,.003411,0,.328575,.760705,.00328123,0,.349301,.744408,.00314003,0,.370668,.726994,.0029906,0,.392689,.709598,.00285034,0,.415379,.692112,.00271179,0,.438754,.674435,.00257185,0,.46283,.65676,.00243425,0,.48763,.639982,.00230351,0,.513173,.622983,.0021777,0,.539482,.605471,.00204991,0,.566579,.58796,.00193759,0,.594488,.570463,.00181976,0,.623226,.553058,.00171497,0,.6528,.535894,.00161109,0,.683198,.519089,.00151394,0,.714354,.502454,.00142122,0,.746032,.485681,.00133488,0,.777778,.468935,.00124975,0,.809524,.452951,.00117309,0,.84127,.437139,.00110155,0,.873016,.421446,.00103124,0,.904762,.405951,966387e-9,0,.936508,.391003,908119e-9,0,.968254,.376198,848057e-9,0,1,1,.00280076,0,0,1,.00280078,0,0,.999999,.00280109,0,0,.999997,.00280246,0,0,.999992,.00280616,0,0,.999979,.00281396,0,0,.999956,.00282822,0,0,.999916,.00285186,0,0,.999857,.0028885,0,0,.999768,.00294259,0,196026e-9,.999645,.00301946,0,.00104842,.99947,.00312541,0,.00270199,.999229,.00326733,0,.00519449,.998852,.00344992,0,.00852602,.997558,.00361052,0,.0126804,.994417,.0035898,0,.017635,.992824,.00372393,0,.023365,.991344,.00390695,0,.0298456,.989337,.00410392,0,.0370529,.985811,.00420987,0,.0449651,.982772,.00437488,0,.0535615,.979001,.00455069,0,.0628243,.974102,.00464462,0,.0727368,.969197,.00480577,0,.0832844,.962759,.00487818,0,.0944545,.956207,.00498176,0,.106236,.947909,.00503392,0,.118619,.939596,.00507474,0,.131595,.929642,.00509798,0,.145159,.918807,.00508476,0,.159305,.906921,.00505634,0,.174028,.893312,.00498845,0,.189327,.878933,.0049133,0,.2052,.863986,.0048259,0,.221647,.847936,.00470848,0,.23867,.832253,.00456889,0,.25627,.818619,.00442726,0,.274453,.804788,.00427677,0,.293222,.790241,.00411906,0,.312585,.775162,.00394833,0,.33255,.759463,.00377366,0,.353126,.743598,.00361026,0,.374324,.72697,.00343627,0,.396158,.709646,.00326422,0,.418641,.69277,.00309717,0,.44179,.675371,.0029356,0,.465624,.657863,.00277712,0,.490163,.640772,.00261738,0,.515429,.624441,.0024737,0,.541445,.607497,.00233125,0,.568236,.590438,.00218994,0,.595828,.573224,.0020664,0,.624242,.556168,.00193526,0,.653496,.539232,.00182463,0,.683588,.522352,.00170735,0,.714482,.506172,.00160555,0,.746032,.489842,.00150451,0,.777778,.473463,.00140938,0,.809524,.457266,.00132568,0,.84127,.441609,.0012376,0,.873016,.426348,.00116265,0,.904762,.411002,.00108935,0,.936508,.396045,.00101946,0,.968254,.381448,955665e-9,0,1,1,.0037121,0,0,1,.00371213,0,0,1,.00371251,0,0,.999997,.00371417,0,0,.99999,.00371863,0,0,.999977,.00372807,0,0,.99995,.00374529,0,0,.999908,.0037738,0,0,.999843,.00381789,0,123596e-10,.999745,.00388273,0,407442e-9,.999608,.00397443,0,.0015447,.999415,.00409998,0,.00351385,.999143,.00426662,0,.0063316,.9987,.00447625,0,.00998679,.996363,.00455323,0,.0144569,.994021,.00461052,0,.0197151,.992372,.00476359,0,.0257344,.991007,.00499101,0,.0324882,.988767,.0051972,0,.0399517,.984872,.00528407,0,.0481022,.982004,.00548926,0,.0569191,.977714,.00564385,0,.0663839,.973076,.0057693,0,.0764801,.967565,.0058924,0,.0871928,.961384,.00599629,0,.0985095,.954435,.00605998,0,.110419,.946303,.0061133,0,.122912,.937662,.00612028,0,.13598,.927867,.00612209,0,.149617,.916475,.00604813,0,.163817,.90541,.00603088,0,.178577,.891591,.00592218,0,.193894,.877573,.00578854,0,.209767,.862511,.00566648,0,.226196,.846861,.00551481,0,.243182,.83068,.00533754,0,.260728,.815725,.00515487,0,.278837,.802321,.0049655,0,.297515,.787826,.00475421,0,.316768,.773454,.00456002,0,.336605,.758224,.00434727,0,.357034,.74265,.00414444,0,.378067,.726729,.00393738,0,.399717,.710155,.00373575,0,.421998,.693312,.00353736,0,.444928,.67653,.00334368,0,.468523,.659444,.00315981,0,.492806,.642051,.00297809,0,.517798,.625758,.00280592,0,.543525,.609615,.00264254,0,.570012,.592919,.00248459,0,.597288,.576298,.00233327,0,.625379,.559489,.00219519,0,.654307,.542891,.00205441,0,.684084,.526255,.00193385,0,.714693,.509853,.00180745,0,.746044,.494131,.00169817,0,.777778,.478114,.0015913,0,.809524,.462274,.00148981,0,.84127,.446412,.00139537,0,.873016,.431274,.00130984,0,.904762,.41635,.00122403,0,.936508,.401476,.00114809,0,.968254,.386993,.00107563,0,1,1,.00488216,0,0,1,.0048822,0,0,1,.00488265,0,0,.999997,.00488463,0,0,.999988,.00488999,0,0,.999974,.00490129,0,0,.999946,.00492191,0,0,.999897,.00495598,0,0,.999825,.00500855,0,744791e-10,.999718,.00508559,0,712744e-9,.999565,.005194,0,.00215249,.999352,.00534147,0,.00444576,.999046,.00553523,0,.00759218,.998492,.00577016,0,.0115714,.995564,.00578487,0,.0163557,.993339,.00586414,0,.021915,.991834,.00606002,0,.0282201,.990496,.00633312,0,.0352433,.987826,.00651941,0,.042959,.98383,.00660842,0,.0513439,.98109,.00685523,0,.0603772,.976131,.00695778,0,.0700402,.971922,.00714236,0,.0803163,.965901,.00721437,0,.0911908,.959606,.00732017,0,.102651,.952504,.00735788,0,.114686,.944365,.00738493,0,.127286,.935652,.00737969,0,.140443,.925813,.00733612,0,.154151,.914397,.00723094,0,.168405,.903257,.00714002,0,.183201,.890015,.00700149,0,.198536,.876014,.00682813,0,.214409,.861436,.00665567,0,.23082,.845752,.00644526,0,.24777,.829169,.00621635,0,.265263,.813435,.00597789,0,.283301,.799701,.00575694,0,.301889,.785726,.00549866,0,.321035,.77152,.0052503,0,.340746,.75683,.00499619,0,.361032,.741951,.0047543,0,.381904,.726367,.0045084,0,.403374,.710537,.00426784,0,.425457,.693965,.00403487,0,.448169,.677724,.0038075,0,.47153,.66117,.00359431,0,.495561,.644274,.00338354,0,.520284,.627449,.00318163,0,.545725,.611645,.00299672,0,.571911,.595614,.00281016,0,.598873,.579426,.00264252,0,.62664,.563016,.00247509,0,.655239,.546728,.00232647,0,.684692,.530539,.00217803,0,.714999,.514164,.00204216,0,.746106,.498344,.00191403,0,.777778,.482957,.00179203,0,.809524,.467336,.00167695,0,.84127,.451994,.00157567,0,.873016,.436514,.00147113,0,.904762,.42178,.00138034,0,.936508,.407271,.00129219,0,.968254,.392822,.0012098,0,1,1,.00637427,0,0,1,.00637431,0,0,.999999,.00637485,0,0,.999996,.00637721,0,0,.999987,.00638357,0,0,.999971,.006397,0,0,.999939,.00642142,0,0,.999888,.00646177,0,0,.999807,.00652387,0,207916e-9,.999689,.00661454,0,.00112051,.99952,.00674155,0,.00287719,.999283,.00691313,0,.00550145,.998936,.00713598,0,.00897928,.998165,.00738501,0,.0132829,.994847,.00734388,0,.01838,.993182,.00749991,0,.0242381,.991665,.0077246,0,.030826,.989708,.00797579,0,.0381152,.986663,.00813011,0,.0460794,.983288,.00830365,0,.0546951,.980104,.00853496,0,.0639411,.974855,.00861045,0,.0737988,.97045,.00879133,0,.0842516,.964509,.00886377,0,.0952848,.957594,.00890346,0,.106886,.950546,.00893289,0,.119044,.942225,.00890074,0,.131749,.933365,.00886826,0,.144994,.923202,.0087316,0,.158772,.912605,.00863082,0,.173078,.901099,.00847403,0,.187908,.888177,.00825838,0,.203261,.873955,.00801834,0,.219134,.860091,.00779026,0,.235527,.84434,.00752478,0,.252443,.828517,.00724074,0,.269883,.81239,.00693769,0,.287851,.79721,.00664817,0,.306352,.783489,.00634763,0,.325393,.769514,.00604221,0,.344981,.755419,.00573568,0,.365126,.741083,.00544359,0,.385839,.726059,.00515515,0,.407132,.710809,.00487139,0,.42902,.695052,.00459846,0,.45152,.678886,.00433412,0,.474651,.663042,.00407981,0,.498433,.646634,.00384264,0,.52289,.630117,.00360897,0,.548048,.613804,.00338863,0,.573936,.598338,.00318486,0,.600584,.582687,.00298377,0,.628027,.566809,.00280082,0,.656295,.550817,.00262255,0,.685417,.534937,.00245835,0,.715406,.519151,.00230574,0,.74624,.503118,.0021549,0,.777778,.487723,.00202008,0,.809524,.472725,.00189355,0,.84127,.457599,.00177108,0,.873016,.442558,.00165843,0,.904762,.427624,.00155494,0,.936508,.413171,.00145273,0,.968254,.399122,.00136454,0,1,1,.00826496,0,0,1,.00826499,0,0,1,.00826564,0,0,.999996,.00826842,0,0,.999987,.00827589,0,0,.999967,.00829167,0,0,.999933,.00832037,0,0,.999876,.00836768,0,109338e-10,.999786,.00844031,0,427145e-9,.999655,.00854603,0,.0016384,.999468,.00869337,0,.00372392,.999203,.008891,0,.00668513,.998803,.00914387,0,.0104968,.99748,.00935838,0,.015125,.994446,.00933309,0,.0205338,.99292,.00953084,0,.0266884,.991414,.0097893,0,.0335565,.989049,.0100228,0,.0411086,.98582,.0101664,0,.0493181,.982441,.0103582,0,.0581613,.978595,.0105292,0,.0676169,.973495,.0106274,0,.0776661,.968405,.0107261,0,.0882926,.962717,.0108234,0,.0994817,.955478,.0108102,0,.111221,.948275,.0107914,0,.123499,.940006,.0107161,0,.136308,.930831,.0106309,0,.149639,.920648,.0104083,0,.163485,.910205,.0102312,0,.177843,.898445,.0100051,0,.192707,.885986,.00971928,0,.208077,.872204,.00940747,0,.22395,.858436,.0091085,0,.240326,.843454,.00876595,0,.257208,.827437,.00839794,0,.274596,.811488,.00803692,0,.292496,.796039,.00767352,0,.310911,.781083,.0073097,0,.329849,.767642,.00694032,0,.349316,.753901,.00657476,0,.369323,.740131,.00622699,0,.38988,.725845,.0058838,0,.410999,.710991,.00555586,0,.432696,.696002,.00523089,0,.454987,.680461,.00492494,0,.47789,.664875,.00463464,0,.501426,.649273,.00435422,0,.52562,.63302,.0040875,0,.550498,.61705,.00384075,0,.576089,.601154,.00359557,0,.602427,.586008,.00337636,0,.629544,.570699,.00316019,0,.657479,.555166,.00296033,0,.686264,.539645,.00277552,0,.715924,.524159,.00259499,0,.746459,.508682,.00243257,0,.777789,.493163,.00227851,0,.809524,.478004,.00213083,0,.84127,.46347,.00199502,0,.873016,.448778,.00186967,0,.904762,.434105,.00174732,0,.936508,.419576,.00163861,0,.968254,.405541,.00153341,0,1,1,.0106462,0,0,1,.0106462,0,0,.999999,.010647,0,0,.999995,.0106502,0,0,.999985,.0106589,0,0,.999964,.0106773,0,0,.999925,.0107106,0,0,.999861,.0107655,0,712986e-10,.999763,.0108497,0,743959e-9,.999616,.0109716,0,.00227361,.999408,.0111408,0,.0046983,.999112,.0113659,0,.00800158,.998637,.0116475,0,.0121493,.996223,.0117231,0,.0171023,.994006,.0118064,0,.0228218,.992444,.0120254,0,.0292711,.991028,.0123314,0,.036417,.98803,.0124954,0,.0442295,.984816,.0126538,0,.0526815,.981399,.0128537,0,.0617492,.977085,.0129694,0,.0714114,.972154,.013091,0,.0816495,.966617,.0131166,0,.0924472,.960628,.0131583,0,.10379,.953295,.0131094,0,.115665,.94575,.0129966,0,.128062,.937654,.0128796,0,.140972,.927716,.0126477,0,.154387,.917932,.0123889,0,.168301,.907719,.012131,0,.182709,.89584,.0118013,0,.197608,.883526,.0114145,0,.212994,.870301,.0110075,0,.228867,.856272,.0106019,0,.245227,.842251,.0101938,0,.262074,.826466,.00973254,0,.279412,.810859,.0092846,0,.297244,.795051,.00883304,0,.315575,.780053,.00840272,0,.334412,.76575,.00796438,0,.35376,.752298,.00752526,0,.373631,.739153,.00711486,0,.394034,.725514,.00670361,0,.414983,.711473,.00632656,0,.436491,.696936,.00595206,0,.458575,.682126,.00559191,0,.481253,.667027,.00525362,0,.504547,.651875,.00493805,0,.528481,.636463,.00462848,0,.553081,.620641,.00433936,0,.578377,.604931,.00407,0,.604404,.589549,.00380864,0,.631197,.574712,.00357049,0,.658795,.559775,.00334466,0,.687238,.544514,.00312505,0,.716559,.529555,.00293199,0,.746776,.514402,.00274204,0,.777849,.499302,.00256647,0,.809524,.484114,.00239901,0,.84127,.469308,.00225148,0,.873016,.455133,.00210178,0,.904762,.440939,.0019727,0,.936508,.426627,.00184382,0,.968254,.412509,.00172548,0,1,1,.013628,0,0,1,.0136281,0,0,.999999,.0136289,0,0,.999995,.0136327,0,0,.999983,.0136427,0,0,.99996,.0136638,0,0,.999917,.0137022,0,0,.999846,.0137652,0,204597e-9,.999736,.0138615,0,.00116837,.999573,.0140007,0,.00303325,.99934,.0141927,0,.00580613,.999004,.0144457,0,.00945626,.998407,.0147489,0,.0139421,.995464,.014731,0,.0192202,.993328,.0148283,0,.0252495,.991799,.0150797,0,.0319921,.990397,.0154316,0,.0394138,.986835,.0155005,0,.0474843,.983938,.0157308,0,.0561763,.980154,.0158753,0,.0654661,.975659,.0159581,0,.0753326,.970171,.0159832,0,.0857571,.964803,.0160084,0,.0967236,.958366,.0159484,0,.108218,.950613,.0158001,0,.120227,.942874,.0155845,0,.132741,.935005,.0154292,0,.145751,.924991,.0150742,0,.159249,.914814,.0146757,0,.17323,.904743,.0143097,0,.187687,.893216,.0138695,0,.202619,.880769,.0133706,0,.218021,.868136,.0128606,0,.233894,.85469,.0123403,0,.250238,.840593,.0118091,0,.267052,.825808,.011253,0,.284341,.81009,.0107099,0,.302106,.79504,.0101636,0,.320354,.779757,.00964041,0,.33909,.764697,.00911896,0,.358322,.750913,.00859533,0,.378059,.738175,.00811592,0,.398311,.725242,.00764504,0,.41909,.711864,.00718885,0,.440412,.698009,.00675843,0,.462292,.683841,.00634984,0,.484748,.669391,.00595502,0,.507802,.654731,.00558671,0,.531477,.639805,.00523578,0,.555802,.624789,.00490834,0,.580805,.609325,.00459448,0,.606522,.593975,.00430342,0,.63299,.578983,.00403019,0,.66025,.564442,.0037707,0,.688346,.549835,.0035316,0,.717319,.535039,.00330255,0,.7472,.520403,.00308932,0,.777982,.505687,.00289335,0,.809524,.490939,.00270818,0,.84127,.476233,.0025343,0,.873016,.461624,.00237097,0,.904762,.447833,.00222065,0,.936508,.433992,.00207561,0,.968254,.420147,.00194955,0,1,1,.0173415,0,0,1,.0173416,0,0,.999999,.0173426,0,0,.999995,.0173468,0,0,.999983,.0173582,0,0,.999954,.0173822,0,0,.999908,.0174258,0,669501e-11,.999828,.0174973,0,427399e-9,.999705,.0176063,0,.00171019,.999524,.0177631,0,.0039248,.999263,.0179781,0,.00705382,.998878,.018258,0,.0110552,.998012,.0185551,0,.0158812,.994614,.0184264,0,.0214852,.993132,.0186385,0,.0278239,.991563,.0189067,0,.0348585,.989298,.0191577,0,.0425544,.986036,.0192522,0,.050881,.982558,.0194063,0,.059811,.978531,.019486,0,.0693209,.974198,.0195847,0,.0793895,.968148,.0194749,0,.0899984,.962565,.0194277,0,.101132,.956041,.0192991,0,.112775,.947749,.0189893,0,.124917,.94018,.018704,0,.137547,.93165,.0183458,0,.150655,.921798,.0178775,0,.164236,.911573,.0173618,0,.178281,.901569,.0168482,0,.192788,.890341,.016265,0,.207752,.877835,.0156199,0,.223171,.865472,.0149516,0,.239044,.852905,.0143274,0,.255371,.838906,.0136643,0,.272153,.824888,.0129903,0,.289393,.809977,.0123218,0,.307093,.794697,.0116572,0,.325259,.780028,.0110307,0,.343896,.765124,.0104236,0,.363012,.750411,.0098219,0,.382617,.737264,.00924397,0,.402719,.724799,.00868719,0,.423332,.712253,.00816476,0,.444469,.699267,.00767262,0,.466146,.685618,.00719746,0,.488383,.671736,.00673916,0,.511199,.657777,.00631937,0,.534618,.643497,.00592411,0,.558668,.62889,.00553928,0,.58338,.614299,.0051934,0,.608787,.599197,.00485985,0,.634929,.584175,.00454357,0,.661849,.569541,.00425787,0,.689594,.555193,.00397905,0,.718211,.540947,.00372364,0,.747742,.526593,.00348599,0,.778205,.512335,.00326103,0,.80953,.498017,.00305137,0,.84127,.483609,.00285485,0,.873016,.469368,.00267472,0,.904762,.455037,.00249945,0,.936508,.441493,.00234792,0,.968254,.428147,.00219936,0,1,1,.0219422,0,0,1,.0219423,0,0,.999998,.0219434,0,0,.999993,.0219481,0,0,.999981,.021961,0,0,.999949,.0219879,0,0,.999896,.0220367,0,593194e-10,.999808,.0221167,0,75364e-8,.99967,.0222383,0,.00237884,.999466,.0224125,0,.00495612,.999174,.0226495,0,.00844887,.998725,.0229525,0,.0128058,.996979,.0231123,0,.0179742,.994317,.0230742,0,.0239047,.992781,.0232895,0,.0305526,.991191,.0235734,0,.0378786,.987787,.0236152,0,.0458475,.985092,.0237994,0,.0544287,.981121,.0238553,0,.0635952,.976924,.0238706,0,.0733233,.97218,.0238704,0,.0835922,.965956,.0236598,0,.0943839,.959998,.0234735,0,.105682,.953245,.0232277,0,.117474,.944445,.0226973,0,.129747,.937087,.0223527,0,.142491,.928341,.0218144,0,.155697,.9184,.0211516,0,.169358,.907959,.0204553,0,.183469,.89808,.0197673,0,.198024,.887047,.0189915,0,.21302,.875221,.0182082,0,.228455,.86269,.0173584,0,.244329,.850735,.0165718,0,.260639,.837545,.0157524,0,.277389,.823639,.0149482,0,.29458,.809699,.0141431,0,.312216,.794797,.0133527,0,.3303,.780578,.0126193,0,.34884,.766019,.0118914,0,.367842,.751447,.0111839,0,.387315,.737275,.010514,0,.40727,.724545,.00987277,0,.427717,.712644,.00926569,0,.448671,.700432,.00869029,0,.470149,.687664,.00814691,0,.492167,.674288,.00763012,0,.514746,.660966,.00714437,0,.537911,.647264,.00668457,0,.561688,.633431,.00626581,0,.586108,.619133,.00585593,0,.611206,.604935,.00548188,0,.637022,.590236,.00513288,0,.663599,.575473,.0047906,0,.690989,.561228,.00448895,0,.719242,.547054,.00420233,0,.748411,.533175,.00392869,0,.778531,.519163,.00367445,0,.809583,.505328,.00344097,0,.84127,.491446,.00322003,0,.873016,.477356,.00301283,0,.904762,.46356,.00282592,0,.936508,.449623,.00264956,0,.968254,.436068,.00246956,0,1,1,.0276135,0,0,1,.0276136,0,0,.999998,.0276148,0,0,.999993,.0276201,0,0,.999976,.0276342,0,0,.999945,.027664,0,0,.999884,.0277179,0,18679e-8,.999784,.027806,0,.00119607,.99963,.0279394,0,.00318407,.999401,.0281295,0,.00613601,.999066,.0283858,0,.00999963,.998524,.0287027,0,.0147164,.995702,.0286256,0,.0202295,.993593,.0286733,0,.0264876,.992067,.0288989,0,.0334452,.990548,.0292135,0,.0410621,.986775,.0291296,0,.0493032,.984054,.0293099,0,.0581381,.979481,.0291881,0,.0675397,.975297,.0291598,0,.0774848,.96981,.028954,0,.0879528,.963524,.028628,0,.0989258,.957398,.0283135,0,.110388,.950088,.0278469,0,.122327,.941538,.0271798,0,.134729,.933332,.0265388,0,.147587,.924392,.0257776,0,.160889,.914581,.024916,0,.174631,.904347,.0240242,0,.188806,.894324,.0231229,0,.203409,.883724,.022153,0,.218437,.872207,.0211355,0,.233888,.859927,.0201048,0,.249761,.848373,.0191263,0,.266056,.836023,.0181306,0,.282774,.82289,.0171718,0,.299917,.809324,.0162196,0,.317488,.795361,.0152622,0,.335493,.781253,.01439,0,.353936,.767338,.013533,0,.372825,.753156,.0127244,0,.392168,.739122,.0119454,0,.411976,.725358,.0112054,0,.432259,.712949,.010487,0,.453032,.701621,.00984032,0,.47431,.689703,.00921495,0,.496111,.677216,.00862492,0,.518456,.664217,.00806882,0,.541367,.65137,.00755922,0,.564872,.638,.00705705,0,.589001,.62453,.00661266,0,.613789,.610601,.00618432,0,.639277,.59676,.00578033,0,.66551,.582433,.00540927,0,.692539,.568026,.00506104,0,.720422,.55414,.0047353,0,.749216,.540178,.00442889,0,.778974,.526513,.00414363,0,.809711,.512954,.00388237,0,.84127,.499403,.00362875,0,.873016,.486026,.00340827,0,.904762,.472345,.00318598,0,.936508,.458828,.00297635,0,.968254,.445379,.00279447,0,1,1,.0345716,0,0,1,.0345717,0,0,.999999,.034573,0,0,.999991,.0345787,0,0,.999974,.0345941,0,0,.999937,.0346263,0,188589e-11,.999869,.0346847,0,409238e-9,.999757,.0347798,0,.0017674,.999582,.0349233,0,.00413658,.999322,.0351265,0,.00747408,.998939,.0353967,0,.0117157,.998219,.0357018,0,.0167966,.994974,.0354726,0,.0226572,.993201,.0355621,0,.0292445,.991573,.0357641,0,.0365123,.989301,.0359252,0,.0444203,.985712,.0358017,0,.0529334,.982411,.0358353,0,.0620214,.977827,.035617,0,.0716574,.973278,.0354398,0,.0818186,.967397,.0350483,0,.0924846,.960696,.0344795,0,.103638,.954349,.0339861,0,.115263,.946066,.0331323,0,.127348,.938012,.032359,0,.13988,.929413,.0314413,0,.152849,.920355,.0304103,0,.166248,.910586,.0292785,0,.18007,.900609,.0281391,0,.194308,.890093,.0269103,0,.208958,.880013,.0257269,0,.224018,.869001,.0244671,0,.239485,.85751,.0232252,0,.255359,.84582,.0220117,0,.271638,.834383,.0208274,0,.288324,.822158,.0196628,0,.305419,.809056,.0185306,0,.322927,.795832,.0174174,0,.340851,.782547,.0163758,0,.359199,.7689,.015391,0,.377975,.755526,.0144488,0,.397189,.741681,.0135372,0,.416851,.728178,.0126957,0,.436971,.714642,.0118812,0,.457564,.702756,.0111165,0,.478644,.69175,.0104145,0,.500229,.680159,.00974439,0,.522339,.668073,.00911926,0,.544997,.655405,.00851393,0,.56823,.642921,.00797637,0,.592068,.629993,.00745119,0,.616546,.616828,.00696972,0,.641705,.603305,.00652425,0,.66759,.589833,.00610188,0,.694255,.575945,.00570834,0,.72176,.561745,.00533384,0,.750168,.548277,.00500001,0,.779545,.534467,.00467582,0,.809933,.521032,.00438092,0,.841272,.507877,.00410348,0,.873016,.494654,.00383618,0,.904762,.481592,.00358699,0,.936508,.468509,.00337281,0,.968254,.455293,.00316196,0,1,1,.0430698,0,0,1,.0430699,0,0,.999998,.0430713,0,0,.999991,.0430773,0,0,.99997,.0430936,0,0,.999928,.0431277,0,406396e-10,.999852,.0431893,0,744376e-9,.999724,.0432895,0,.0024806,.999527,.0434397,0,.00524779,.99923,.0436507,0,.00898164,.998783,.0439255,0,.0136083,.997507,.0441104,0,.0190582,.994418,.0438225,0,.0252694,.992864,.0439396,0,.0321879,.991127,.0440962,0,.039767,.987331,.0438408,0,.0479667,.984819,.0438991,0,.056752,.980384,.0435906,0,.0660929,.975846,.0432543,0,.075963,.970748,.0428293,0,.0863398,.964303,.042153,0,.0972035,.95772,.0414111,0,.108537,.950747,.0405893,0,.120325,.942533,.0394887,0,.132554,.934045,.0383544,0,.145215,.924942,.037057,0,.158296,.915811,.0356993,0,.17179,.90612,.0342401,0,.185691,.896434,.0328078,0,.199993,.886021,.031288,0,.214691,.876081,.0297776,0,.229782,.865608,.0282334,0,.245265,.854924,.026749,0,.261138,.843607,.02526,0,.277401,.832456,.0238214,0,.294056,.821342,.0224682,0,.311104,.809303,.0211297,0,.328548,.796468,.0198387,0,.346394,.784046,.0186227,0,.364645,.771262,.0174561,0,.38331,.758118,.0163806,0,.402396,.745075,.0153287,0,.421912,.731926,.0143647,0,.44187,.71863,.0134363,0,.462283,.705414,.0125603,0,.483165,.693792,.0117508,0,.504535,.683108,.0110016,0,.52641,.67183,.0102757,0,.548816,.66015,.00962044,0,.571776,.647907,.00898031,0,.595323,.635734,.00840811,0,.619489,.623208,.00786211,0,.644317,.610438,.00734953,0,.669852,.597345,.00687688,0,.696148,.584138,.00643469,0,.723267,.5707,.00602236,0,.75128,.556966,.0056324,0,.780258,.543607,.00528277,0,.810268,.530213,.00493999,0,.841311,.516912,.00462265,0,.873016,.503916,.0043307,0,.904762,.491146,.00406858,0,.936508,.478439,.00381436,0,.968254,.465834,.00358003,0,1,1,.0534039,0,0,1,.053404,0,0,.999998,.0534055,0,0,.999989,.0534116,0,0,.999968,.0534283,0,0,.999918,.0534633,0,155895e-9,.99983,.0535262,0,.00120914,.999685,.0536281,0,.00334944,.999461,.0537799,0,.00653077,.999119,.0539902,0,.0106718,.998582,.0542524,0,.0156907,.995919,.0540318,0,.0215147,.993735,.0538914,0,.0280801,.992126,.0539557,0,.0353323,.990266,.0540401,0,.0432247,.986317,.0536064,0,.0517172,.983213,.0534425,0,.0607754,.978303,.0528622,0,.0703698,.973665,.0523363,0,.0804742,.968091,.0516165,0,.0910667,.961026,.0505434,0,.102128,.954333,.049523,0,.113641,.946372,.0481698,0,.125591,.938254,.0467674,0,.137965,.929516,.0452341,0,.150754,.920106,.0435083,0,.163947,.910899,.0417399,0,.177537,.901532,.0399389,0,.191516,.891919,.0380901,0,.205881,.882006,.0362341,0,.220626,.871965,.0343444,0,.235749,.862145,.0324832,0,.251248,.852058,.0306681,0,.267121,.84161,.0289097,0,.283368,.830806,.0272079,0,.299992,.820476,.0256089,0,.316992,.809514,.0240394,0,.334374,.797865,.0225379,0,.35214,.785621,.0211235,0,.370296,.773765,.0197908,0,.388849,.761629,.0185235,0,.407807,.748891,.0173358,0,.427178,.736437,.0162305,0,.446974,.723707,.0151778,0,.467207,.710606,.0141791,0,.487892,.698019,.0132592,0,.509046,.686203,.0123887,0,.530687,.675692,.0115976,0,.552839,.664826,.0108325,0,.575527,.65349,.0101348,0,.59878,.641774,.00947756,0,.622634,.629794,.00886058,0,.647128,.617647,.00828526,0,.672308,.60534,.00775312,0,.698231,.592718,.00726033,0,.724958,.579746,.00679731,0,.752563,.566763,.00636111,0,.781127,.553515,.00595228,0,.810733,.540118,.00556876,0,.841426,.527325,.00523051,0,.873016,.514265,.00490712,0,.904762,.501406,.00460297,0,.936508,.488922,.00431247,0,.968254,.476541,.0040472,0,1,1,.0659184,0,0,1,.0659185,0,0,.999998,.06592,0,0,.999988,.0659259,0,0,.999963,.0659423,0,0,.999907,.0659764,0,374198e-9,.999806,.0660376,0,.00182071,.999639,.0661361,0,.0043894,.999378,.0662814,0,.00800055,.998985,.0664779,0,.0125594,.998285,.0666914,0,.0179786,.995071,.0661989,0,.0241822,.993172,.0660454,0,.031106,.991438,.0660105,0,.0386952,.988428,.0656875,0,.0469032,.985218,.0652913,0,.0556905,.981128,.0647107,0,.065023,.976015,.0638491,0,.0748717,.97097,.062993,0,.0852112,.964582,.0617927,0,.0960199,.957383,.0603626,0,.107279,.949969,.0588128,0,.118971,.941843,.0570274,0,.131084,.933624,.0551885,0,.143604,.924543,.053122,0,.156521,.914919,.0508897,0,.169825,.905773,.0486418,0,.18351,.896434,.0463364,0,.197569,.887195,.0440623,0,.211997,.877706,.0417799,0,.226789,.867719,.03945,0,.241944,.858587,.037243,0,.257458,.849317,.0350956,0,.273331,.839585,.0329852,0,.289563,.829856,.0310028,0,.306154,.819589,.0290953,0,.323108,.809714,.0272738,0,.340426,.79934,.0255631,0,.358113,.788224,.0239175,0,.376175,.776619,.0223831,0,.394616,.76521,.0209298,0,.413445,.753716,.0195786,0,.432671,.741564,.0183001,0,.452305,.729413,.0171259,0,.472358,.717146,.0159933,0,.492845,.70436,.0149495,0,.513783,.69219,.0139681,0,.535189,.680289,.0130577,0,.557087,.669611,.0122198,0,.5795,.659113,.0114174,0,.602459,.648148,.0106729,0,.625997,.636905,.00998997,0,.650154,.625154,.00934313,0,.674976,.613481,.00874839,0,.700518,.60154,.00818265,0,.726845,.58943,.00766889,0,.754032,.576828,.00717153,0,.782167,.564194,.00672696,0,.811344,.551501,.00630863,0,.841644,.538635,.00592177,0,.873016,.525724,.00554888,0,.904762,.513209,.00520225,0,.936508,.500457,.00488231,0,.968254,.48799,.00457153,0,1,1,.0810131,0,0,1,.0810133,0,0,.999997,.0810145,0,0,.999985,.08102,0,0,.999956,.0810347,0,195026e-10,.999893,.0810656,0,719316e-9,.999777,.0811205,0,.00259774,.999583,.081208,0,.00561807,.999281,.0813343,0,.00967472,.998813,.0814969,0,.0146627,.997597,.0815217,0,.0204902,.994379,.0808502,0,.0270802,.992744,.0806792,0,.0343674,.990745,.0804589,0,.0422974,.986646,.0796107,0,.0508242,.983611,.0790913,0,.0599087,.978869,.0780746,0,.0695175,.973475,.0768218,0,.0796223,.967845,.0754926,0,.0901983,.960778,.0737063,0,.101224,.953333,.0718052,0,.112682,.945274,.0695946,0,.124555,.936955,.0672492,0,.136831,.928319,.0647732,0,.149496,.919075,.0620947,0,.162542,.909114,.0591816,0,.175958,.900137,.0563917,0,.189739,.891069,.0535392,0,.203877,.882262,.0507642,0,.218368,.873232,.0479793,0,.233208,.864042,.045226,0,.248393,.855002,.0425413,0,.263923,.846569,.0400126,0,.279796,.837714,.0375269,0,.296012,.828918,.0352027,0,.312573,.819783,.0330011,0,.329479,.810129,.0308908,0,.346734,.800866,.0289112,0,.364342,.79093,.0270255,0,.382307,.780593,.0252758,0,.400637,.769511,.0236178,0,.419337,.758558,.0220652,0,.438418,.747632,.0206289,0,.457889,.736146,.0192873,0,.477761,.724093,.0180333,0,.49805,.71234,.0168264,0,.51877,.700201,.015746,0,.53994,.687949,.0147027,0,.561581,.676163,.0137512,0,.583718,.665001,.0128655,0,.60638,.65472,.0120366,0,.629599,.644213,.0112604,0,.653415,.633382,.0105413,0,.677874,.62212,.00986498,0,.70303,.610631,.00923308,0,.728948,.599078,.00864206,0,.755706,.587519,.00811784,0,.783396,.575505,.00761237,0,.812121,.563148,.00713949,0,.841989,.550828,.00668379,0,.873035,.538458,.00627715,0,.904762,.525905,.00588336,0,.936508,.513517,.00552687,0,.968254,.501395,.00519681,0,1,1,.0991506,0,0,1,.0991504,0,0,.999996,.0991515,0,0,.999984,.0991558,0,0,.999947,.0991672,0,114389e-9,.999874,.0991912,0,.00121503,.999739,.0992331,0,.00356108,.999514,.0992983,0,.00705578,.999159,.0993877,0,.011574,.998586,.0994837,0,.017003,.995731,.0988425,0,.0232484,.993384,.098276,0,.0302318,.991615,.0979269,0,.0378884,.989029,.0973432,0,.0461641,.985373,.0963539,0,.0550136,.981278,.0952306,0,.0643988,.975777,.0936233,0,.0742868,.970526,.0920219,0,.0846501,.963755,.0898912,0,.0954644,.956676,.0876064,0,.106709,.948099,.0847751,0,.118367,.939718,.0818638,0,.130423,.931305,.078857,0,.142862,.922342,.0756127,0,.155674,.912842,.0721473,0,.168849,.903304,.0686195,0,.182378,.89411,.0650589,0,.196255,.885512,.0616022,0,.210473,.877193,.0582434,0,.225027,.86877,.0548979,0,.239915,.860267,.0516095,0,.255132,.851915,.048468,0,.270678,.843912,.0454447,0,.286551,.83604,.0425612,0,.302751,.828245,.0398752,0,.31928,.820159,.0373198,0,.336138,.81167,.034916,0,.35333,.802659,.0326402,0,.370858,.793921,.0304901,0,.388728,.784713,.0284857,0,.406944,.774946,.0266186,0,.425515,.76448,.0248593,0,.444449,.753793,.0232114,0,.463756,.743506,.0217039,0,.483447,.732555,.0202841,0,.503535,.720965,.0189648,0,.524036,.709422,.0177189,0,.544968,.697756,.0165626,0,.56635,.685565,.015483,0,.588208,.673987,.0144892,0,.610569,.66244,.0135607,0,.633466,.651675,.0126956,0,.656936,.641598,.0118788,0,.681025,.63121,.0111261,0,.705788,.620514,.010437,0,.731289,.609366,.00978747,0,.757606,.598137,.00917257,0,.784834,.586966,.00859778,0,.813085,.575549,.00806803,0,.842485,.563797,.00757294,0,.87313,.551758,.00710592,0,.904762,.539894,.0066841,0,.936508,.527901,.00627901,0,.968254,.515819,.00590506,0,1,1,.120864,0,0,1,.120864,0,0,.999996,.120864,0,0,.99998,.120867,0,0,.99994,.120872,0,323781e-9,.999852,.120884,0,.00188693,.999693,.120903,0,.00473489,.999426,.120929,0,.00872704,.999002,.120955,0,.0137237,.998235,.120918,0,.0196068,.994608,.119764,0,.0262803,.992997,.119265,0,.0336657,.990968,.11863,0,.0416987,.987002,.117261,0,.0503261,.983524,.116009,0,.0595035,.97875,.114252,0,.0691935,.972652,.11193,0,.0793645,.966613,.109555,0,.0899894,.959275,.106612,0,.101045,.951272,.103375,0,.112512,.942323,.0996594,0,.124372,.933679,.0958841,0,.136611,.924822,.0919265,0,.149216,.915742,.0878061,0,.162176,.906348,.0834894,0,.175482,.896883,.079085,0,.189125,.88774,.0746745,0,.203098,.87986,.0705773,0,.217396,.871998,.0665005,0,.232015,.864325,.0625413,0,.24695,.856685,.0586781,0,.2622,.84925,.0550063,0,.277761,.841719,.0514727,0,.293634,.834755,.0481398,0,.309819,.827853,.0450172,0,.326315,.820888,.0420969,0,.343126,.813616,.0393702,0,.360254,.805767,.0367771,0,.377701,.797338,.0343274,0,.395474,.789122,.0320529,0,.413577,.780601,.0299485,0,.432018,.771424,.0279812,0,.450804,.761502,.0261054,0,.469944,.751166,.0243942,0,.489451,.741276,.0228087,0,.509337,.730898,.0213265,0,.529617,.719878,.0199307,0,.550307,.708379,.0186574,0,.571428,.697165,.0174446,0,.593003,.685554,.0163144,0,.615059,.673631,.015276,0,.637628,.662385,.0143003,0,.660746,.651059,.0134112,0,.68446,.640451,.0125794,0,.70882,.630536,.011793,0,.733893,.620316,.0110547,0,.759756,.609722,.0103668,0,.786505,.598804,.00973009,0,.814259,.587871,.00912812,0,.843157,.577121,.00858916,0,.87334,.566019,.00807333,0,.904762,.554664,.00759687,0,.936508,.543101,.00714759,0,.968254,.531558,.00673418,0,1,1,.146767,0,0,1,.146767,0,0,.999997,.146767,0,0,.999977,.146765,0,320658e-11,.999929,.146762,0,682576e-9,.999823,.146753,0,.00276402,.999633,.146735,0,.00614771,.999314,.146699,0,.0106613,.998796,.14662,0,.0161546,.997124,.146107,0,.0225063,.994062,.144857,0,.0296198,.992154,.144011,0,.037417,.989186,.142712,0,.0458348,.985279,.140926,0,.0548211,.980826,.13885,0,.0643326,.975056,.136168,0,.074333,.969005,.133217,0,.0847917,.961554,.12959,0,.0956828,.954206,.125886,0,.106984,.945046,.121335,0,.118675,.935678,.116492,0,.130741,.926748,.111635,0,.143166,.917764,.106625,0,.155939,.908358,.101325,0,.169049,.899219,.0960249,0,.182487,.890089,.0906527,0,.196245,.881488,.0853905,0,.210317,.874031,.0804177,0,.224697,.866932,.0756005,0,.23938,.859976,.0709019,0,.254364,.853375,.0664391,0,.269646,.846971,.0622012,0,.285223,.840483,.058129,0,.301096,.833969,.0542762,0,.317265,.82806,.0507042,0,.333729,.822128,.047368,0,.350491,.815989,.044272,0,.367554,.809336,.0413444,0,.38492,.802177,.038601,0,.402594,.79441,.0360227,0,.420582,.786573,.0336383,0,.438891,.778619,.0314321,0,.457527,.77,.029362,0,.476499,.760698,.0274102,0,.49582,.750932,.0256146,0,.5155,.740993,.023974,0,.535555,.731159,.0224182,0,.556,.720836,.0209889,0,.576855,.709913,.0196411,0,.598143,.698415,.0183824,0,.619888,.68745,.0172222,0,.642123,.676154,.0161509,0,.664883,.664383,.0151397,0,.688211,.6533,.0141873,0,.71216,.642072,.0133105,0,.736792,.631412,.0124932,0,.762186,.621622,.0117408,0,.788439,.611681,.0110358,0,.815672,.60142,.0103775,0,.844034,.59083,.00975623,0,.873699,.580254,.00918084,0,.904765,.569841,.00864721,0,.936508,.559224,.00815731,0,.968254,.548315,.00767924,0,1,1,.177563,0,0,1,.177563,0,0,.999994,.177562,0,0,.999972,.177555,0,664171e-10,.999914,.177536,0,.0012276,.999787,.177496,0,.00388025,.999556,.17742,0,.00783463,.999165,.177285,0,.0128953,.9985,.177037,0,.0189053,.995388,.175634,0,.025742,.993102,.174375,0,.033309,.990992,.173121,0,.0415298,.986932,.170896,0,.0503425,.982786,.16847,0,.0596964,.977592,.165455,0,.0695498,.971075,.161676,0,.0798676,.963967,.157458,0,.0906201,.956397,.152836,0,.101783,.947489,.147467,0,.113333,.937564,.14145,0,.125254,.928182,.135383,0,.137529,.919027,.129212,0,.150144,.909618,.12276,0,.163088,.900492,.116273,0,.176351,.891671,.1098,0,.189924,.883146,.103362,0,.203799,.875151,.0970799,0,.21797,.868338,.0911732,0,.232433,.862033,.0854966,0,.247182,.856107,.0800691,0,.262216,.850644,.0749618,0,.27753,.845261,.070079,0,.293124,.839885,.0654321,0,.308997,.834609,.0610975,0,.325149,.829083,.0569741,0,.341581,.82404,.0531736,0,.358294,.818968,.049665,0,.37529,.813496,.0463856,0,.392573,.807533,.0433217,0,.410148,.80099,.0404402,0,.428019,.793891,.0377578,0,.446192,.786281,.0352616,0,.464676,.778773,.0329577,0,.483478,.770737,.030808,0,.502608,.762094,.0287964,0,.522079,.752898,.0269254,0,.541905,.743306,.0251926,0,.5621,.733416,.023595,0,.582684,.723742,.0221155,0,.603677,.713542,.0207435,0,.625106,.702755,.019434,0,.646998,.691484,.0182046,0,.66939,.680531,.0170771,0,.692324,.66953,.0160339,0,.715849,.658126,.0150677,0,.740028,.646933,.0141551,0,.764937,.636107,.0133179,0,.790673,.625271,.0125284,0,.817358,.615225,.0117937,0,.84515,.605678,.0111181,0,.874244,.59583,.0104759,0,.904828,.585704,.00986672,0,.936508,.575413,.00929712,0,.968254,.565373,.00876713,0,1,1,.214058,0,0,.999999,.214058,0,0,.999994,.214055,0,0,.999966,.214039,0,259642e-9,.999893,.213998,0,.00200075,.999737,.21391,0,.00527775,.999449,.213745,0,.00983959,.99896,.213458,0,.0154755,.9979,.212855,0,.0220249,.994278,.210779,0,.0293654,.992254,.20926,0,.0374021,.98881,.206908,0,.0460604,.984715,.204009,0,.0552802,.979738,.200471,0,.0650127,.972884,.195813,0,.0752175,.965996,.190856,0,.0858612,.957974,.185077,0,.0969155,.949155,.17868,0,.108356,.939288,.171513,0,.120163,.928996,.163838,0,.132319,.919563,.156246,0,.144808,.910004,.148359,0,.157618,.900791,.140417,0,.170737,.892135,.132569,0,.184155,.883803,.124741,0,.197866,.876034,.117091,0,.211861,.869219,.109835,0,.226134,.863062,.102859,0,.240682,.857795,.0962928,0,.255499,.853009,.0900725,0,.270583,.848603,.0842101,0,.285931,.844335,.0786527,0,.301542,.840208,.0734397,0,.317415,.836035,.0685334,0,.33355,.83172,.0639275,0,.349948,.827135,.0595909,0,.36661,.822797,.0556204,0,.383539,.818387,.0519394,0,.400738,.813565,.0485317,0,.41821,.808142,.0453138,0,.435961,.802212,.0423354,0,.453997,.79573,.0395553,0,.472324,.788741,.036988,0,.490951,.781093,.0345688,0,.509887,.773597,.0323297,0,.529144,.765622,.0302719,0,.548735,.757083,.0283477,0,.568674,.747992,.0265562,0,.588979,.738591,.0248844,0,.609671,.728719,.0233342,0,.630773,.719146,.0219081,0,.652314,.709165,.0205711,0,.674328,.69875,.0193248,0,.696854,.687884,.0181582,0,.719942,.676818,.0170746,0,.743651,.666247,.0160718,0,.768057,.655284,.0151262,0,.793253,.64401,.0142561,0,.819363,.633353,.0134327,0,.846547,.622674,.012653,0,.875017,.612265,.0119354,0,.905021,.602455,.0112533,0,.936508,.593147,.0106234,0,.968254,.583592,.0100213,0,1,1,.25717,0,0,1,.25717,0,0,.999992,.257164,0,0,.999958,.257135,0,641715e-9,.999864,.25706,0,.00305314,.999666,.256897,0,.00700975,.999302,.256596,0,.0122194,.998663,.25607,0,.0184622,.995607,.254123,0,.0255773,.993094,.252081,0,.0334439,.9907,.249867,0,.0419696,.98594,.246118,0,.0510823,.981214,.242049,0,.0607242,.974966,.236869,0,.0708486,.967589,.230724,0,.081417,.95915,.223635,0,.0923974,.950257,.21596,0,.103763,.940165,.207296,0,.115491,.929396,.197901,0,.127562,.919288,.188437,0,.13996,.909428,.178762,0,.15267,.900105,.169072,0,.165679,.891418,.159478,0,.178979,.883347,.15002,0,.192558,.875992,.140813,0,.20641,.869466,.13196,0,.220529,.863699,.123501,0,.234907,.858553,.115436,0,.249542,.854379,.107901,0,.264428,.850894,.10088,0,.279564,.847632,.0942296,0,.294947,.844571,.0879861,0,.310575,.84163,.0821534,0,.326448,.838542,.0766409,0,.342566,.835412,.0715322,0,.358929,.831899,.0666883,0,.37554,.828177,.0622175,0,.392399,.82416,.0580452,0,.409511,.820393,.054267,0,.426878,.816068,.0507172,0,.444506,.811201,.0474041,0,.4624,.805785,.0443174,0,.480566,.799878,.0414562,0,.499013,.793469,.0388147,0,.517749,.786473,.0363453,0,.536785,.778874,.0340225,0,.556134,.771277,.0318599,0,.575809,.763426,.0298859,0,.595827,.755044,.0280357,0,.616207,.746161,.0262979,0,.636973,.737124,.0247295,0,.65815,.72761,.0232514,0,.679772,.717822,.0218755,0,.701876,.708279,.0205942,0,.724509,.698333,.0193947,0,.74773,.68802,.0182717,0,.771609,.677321,.0172044,0,.79624,.666504,.0162122,0,.821743,.656184,.0152924,0,.84828,.64556,.0144326,0,.876069,.634636,.0136157,0,.905404,.624124,.0128612,0,.936508,.613914,.0121435,0,.968254,.603589,.0114887,0,1,1,.307946,0,0,.999999,.307945,0,0,.999988,.307934,0,204479e-10,.999944,.307886,0,.00127833,.999824,.307756,0,.00445047,.999565,.30748,0,.00914673,.999085,.306966,0,.0150498,.998103,.306004,0,.0219367,.994249,.303028,0,.0296485,.991807,.300435,0,.038068,.987773,.296554,0,.0471062,.982673,.2916,0,.0566942,.976623,.285641,0,.0667768,.968757,.27815,0,.0773099,.959849,.269529,0,.088257,.950663,.260248,0,.0995879,.940129,.249704,0,.111277,.92895,.238291,0,.123304,.917996,.226501,0,.13565,.907813,.214669,0,.148299,.898305,.202835,0,.161237,.889626,.191158,0,.174455,.88175,.179695,0,.187941,.874715,.168548,0,.201687,.868746,.15792,0,.215687,.863703,.147807,0,.229933,.859315,.138149,0,.24442,.855538,.128993,0,.259145,.852428,.120414,0,.274103,.850168,.112498,0,.289293,.848132,.105054,0,.304711,.846291,.0981087,0,.320357,.844431,.0915942,0,.33623,.842493,.0855056,0,.35233,.840368,.0798204,0,.368658,.83798,.0745097,0,.385214,.83523,.0695424,0,.402002,.832091,.0649092,0,.419023,.828667,.0606291,0,.436282,.824805,.0566523,0,.453782,.820988,.0530229,0,.471529,.816635,.0496364,0,.489528,.811725,.0464658,0,.507788,.806316,.0435082,0,.526317,.800469,.0407873,0,.545124,.794107,.038255,0,.564221,.787218,.0358825,0,.583621,.779872,.0336785,0,.603341,.772097,.0316379,0,.623397,.764484,.0297379,0,.643812,.756428,.0279581,0,.664611,.748022,.0263153,0,.685824,.739268,.0247799,0,.707488,.73024,.0233385,0,.729646,.720893,.0220035,0,.752354,.71119,.0207555,0,.77568,.701791,.0195843,0,.799715,.692184,.0184891,0,.824574,.682258,.0174541,0,.850417,.67206,.0164873,0,.877466,.661717,.0155959,0,.90604,.651462,.0147519,0,.936528,.641467,.0139727,0,.968254,.631229,.0132363,0,1,1,.367573,0,0,.999999,.367571,0,0,.999984,.367553,0,183382e-9,.999925,.367473,0,.00225254,.999759,.367259,0,.00628165,.99941,.366801,0,.0117858,.998739,.365946,0,.0184359,.995529,.363191,0,.0260114,.992875,.360171,0,.0343581,.989135,.355981,0,.0433637,.984166,.350401,0,.0529438,.977871,.343348,0,.0630334,.96951,.334341,0,.0735805,.959964,.323862,0,.0845437,.950162,.312521,0,.095889,.938882,.299577,0,.107588,.926992,.285573,0,.119617,.915589,.271212,0,.131957,.904791,.256611,0,.144591,.895177,.242224,0,.157503,.886403,.227952,0,.170682,.878957,.214192,0,.184117,.872418,.200795,0,.197799,.867029,.188015,0,.21172,.862835,.175975,0,.225873,.859411,.164526,0,.240253,.856655,.153693,0,.254854,.854519,.14352,0,.269673,.852828,.13397,0,.284707,.851412,.124984,0,.299953,.850609,.116748,0,.315408,.849855,.10905,0,.331073,.849017,.101839,0,.346946,.848079,.0951359,0,.363028,.846911,.0888774,0,.379318,.845445,.0830375,0,.395818,.84362,.0775844,0,.41253,.841411,.0725054,0,.429457,.838768,.0677691,0,.446602,.835801,.0634016,0,.463968,.832341,.0593095,0,.481561,.828424,.0555121,0,.499386,.824312,.052024,0,.51745,.819918,.0487865,0,.535761,.815072,.0457801,0,.554328,.809863,.0430184,0,.573162,.804164,.0404245,0,.592275,.798034,.0380146,0,.611681,.791436,.0357436,0,.631398,.784498,.0336475,0,.651445,.777125,.0316666,0,.671845,.769365,.0298122,0,.692628,.761579,.0281001,0,.713827,.753746,.0265049,0,.735484,.745573,.0250067,0,.75765,.737083,.0236026,0,.78039,.728545,.0223302,0,.803789,.719691,.0211243,0,.82796,.710569,.0199983,0,.853056,.701216,.0189569,0,.879298,.692094,.0179702,0,.907014,.682909,.0170418,0,.936691,.673509,.0161732,0,.968254,.663863,.0153406,0,1,1,.437395,0,0,.999998,.437394,0,0,.99998,.437363,0,616704e-9,.999891,.437232,0,.00367925,.999656,.436877,0,.00867446,.999148,.436121,0,.0150679,.997959,.434564,0,.022531,.993464,.430134,0,.0308507,.990606,.426077,0,.0398805,.985027,.419397,0,.0495148,.978491,.41118,0,.0596749,.969643,.40048,0,.0703001,.959189,.38769,0,.0813427,.948223,.373575,0,.0927641,.935955,.357622,0,.104533,.923237,.34043,0,.116624,.911074,.322735,0,.129015,.899724,.30479,0,.141687,.890189,.287392,0,.154626,.881796,.270248,0,.167818,.874781,.253659,0,.181252,.869166,.237786,0,.194918,.864725,.222618,0,.208807,.861565,.208356,0,.222913,.859284,.194867,0,.237229,.857677,.18212,0,.25175,.856714,.17018,0,.266473,.856155,.158969,0,.281392,.8558,.148413,0,.296505,.855672,.138578,0,.311811,.855538,.129345,0,.327306,.855689,.120861,0,.342991,.855767,.112969,0,.358864,.855618,.105593,0,.374925,.85525,.0987451,0,.391176,.854583,.0923727,0,.407616,.853534,.0864143,0,.424249,.852061,.0808338,0,.441076,.850253,.0756771,0,.4581,.848004,.0708612,0,.475324,.845333,.0663784,0,.492754,.842376,.0622631,0,.510394,.838956,.0584112,0,.528251,.835121,.0548328,0,.546331,.830842,.0514838,0,.564644,.826212,.048355,0,.583198,.821522,.0454714,0,.602005,.816551,.0428263,0,.621078,.811211,.0403612,0,.640434,.805479,.038039,0,.660089,.799409,.0358739,0,.680066,.79306,.0338727,0,.70039,.786395,.0319985,0,.721094,.779416,.030241,0,.742215,.77214,.0285951,0,.7638,.764636,.0270747,0,.785912,.756836,.0256354,0,.808628,.749315,.0243027,0,.832055,.741561,.0230497,0,.856338,.733589,.0218801,0,.88169,.725479,.020784,0,.908441,.717255,.0197702,0,.937125,.708829,.0188168,0,.968254,.700191,.0179113,0,1,1,.518937,0,0,.999998,.518933,0,0,.999967,.518883,0,.00147741,.999832,.51866,0,.00573221,.999466,.518057,0,.011826,.998644,.516752,0,.0192116,.994458,.512347,0,.027573,.991223,.507675,0,.0367099,.985515,.500188,0,.046487,.978308,.490408,0,.0568071,.968359,.477357,0,.0675984,.95682,.461752,0,.0788059,.943929,.443796,0,.090386,.930224,.423893,0,.102304,.916514,.402682,0,.114532,.903653,.380914,0,.127047,.892315,.359212,0,.139828,.882942,.338102,0,.152861,.875438,.31773,0,.16613,.869642,.298186,0,.179624,.865304,.279491,0,.193332,.862382,.261804,0,.207247,.860666,.245146,0,.22136,.859788,.229406,0,.235666,.859608,.214605,0,.250158,.859912,.200691,0,.264832,.86053,.187623,0,.279684,.861368,.17539,0,.294711,.862237,.163901,0,.309911,.863127,.153175,0,.32528,.863923,.143147,0,.340819,.864567,.133781,0,.356524,.865013,.125042,0,.372397,.86539,.116952,0,.388438,.865591,.109476,0,.404645,.865517,.102542,0,.421022,.865084,.0960688,0,.437569,.864309,.0900499,0,.454287,.863151,.0844328,0,.471181,.861649,.0792218,0,.488253,.859742,.0743482,0,.505507,.857446,.0697963,0,.522947,.854757,.0655364,0,.54058,.851783,.061608,0,.558412,.848516,.0579701,0,.576449,.844897,.0545742,0,.594701,.840956,.0514167,0,.613178,.836676,.0484598,0,.631892,.832075,.0456934,0,.650856,.827191,.0431178,0,.670088,.822295,.0407718,0,.689606,.817294,.0386032,0,.709434,.812013,.0365675,0,.7296,.806465,.0346547,0,.750138,.800691,.0328717,0,.771093,.794709,.031211,0,.792519,.788493,.0296504,0,.814488,.782049,.0281782,0,.837097,.775403,.0267965,0,.860481,.76857,.0255002,0,.884842,.761536,.0242759,0,.910494,.754303,.0231142,0,.937985,.74692,.0220305,0,.968254,.739745,.0210192,0,1,1,.613914,0,0,.999996,.613907,0,963597e-10,.999942,.613814,0,.00301247,.999704,.613407,0,.00870385,.999046,.612302,0,.0160714,.995516,.608266,0,.0245899,.991726,.602863,0,.0339681,.985157,.593956,0,.0440254,.97642,.581748,0,.0546409,.964404,.565183,0,.0657284,.950601,.545273,0,.0772246,.935158,.522129,0,.0890812,.919364,.496782,0,.10126,.904754,.470571,0,.113731,.89176,.444037,0,.126469,.881492,.418322,0,.139454,.873656,.393522,0,.15267,.868053,.369795,0,.166101,.864336,.347171,0,.179736,.862259,.325737,0,.193565,.861556,.305532,0,.207578,.861776,.286416,0,.221769,.862661,.268355,0,.23613,.864015,.251334,0,.250656,.865711,.235352,0,.265343,.867519,.220302,0,.280187,.869351,.206161,0,.295183,.871144,.192908,0,.31033,.872839,.180505,0,.325624,.874307,.168848,0,.341065,.875667,.158021,0,.35665,.876758,.147877,0,.37238,.87764,.138441,0,.388253,.878237,.129627,0,.404269,.878563,.121415,0,.42043,.878572,.113741,0,.436735,.87842,.106652,0,.453187,.878057,.100097,0,.469786,.877413,.0940128,0,.486536,.87646,.0883462,0,.503439,.875233,.0830924,0,.520498,.8737,.0781975,0,.537717,.871873,.07364,0,.555102,.86978,.0694103,0,.572657,.867405,.0654696,0,.59039,.864751,.0617914,0,.608307,.861818,.0583491,0,.626419,.858645,.0551443,0,.644733,.855307,.0521894,0,.663264,.851736,.0494334,0,.682025,.847927,.0468504,0,.701032,.843888,.0444261,0,.720308,.839629,.0421497,0,.739875,.835158,.0400082,0,.759764,.830509,.0380076,0,.780014,.825714,.0361488,0,.800673,.820729,.0343956,0,.821803,.815751,.0327781,0,.843492,.810752,.031275,0,.86586,.805587,.0298542,0,.889087,.800317,.0285397,0,.913466,.79489,.0272948,0,.93952,.789314,.0261139,0,.96835,.783593,.0249938,0,1,1,.724258,0,0,.999992,.724243,0,726889e-9,.99987,.724044,0,.00569574,.999336,.72317,0,.0131702,.996271,.719432,0,.0220738,.991159,.712576,0,.0319405,.982465,.700927,0,.0425202,.97049,.684297,0,.0536599,.953973,.661244,0,.065258,.935546,.633804,0,.0772427,.916596,.603071,0,.0895616,.899353,.57105,0,.102175,.885216,.539206,0,.11505,.875076,.508714,0,.128164,.868334,.479571,0,.141495,.864414,.451796,0,.155026,.862678,.425328,0,.168745,.862835,.400352,0,.182639,.864067,.376532,0,.196699,.866086,.35391,0,.210915,.868557,.332424,0,.225282,.871271,.312053,0,.239792,.874058,.292764,0,.25444,.8768,.27453,0,.269223,.87939,.257297,0,.284135,.8819,.24114,0,.299174,.884187,.225934,0,.314337,.886262,.211669,0,.329622,.888119,.198311,0,.345026,.889709,.185783,0,.360549,.891054,.174063,0,.376189,.892196,.163143,0,.391946,.893101,.152952,0,.407819,.893803,.143475,0,.423808,.894277,.134647,0,.439914,.894532,.126434,0,.456137,.894576,.1188,0,.472479,.894393,.111694,0,.48894,.893976,.105069,0,.505523,.893346,.0989077,0,.52223,.892502,.0931724,0,.539064,.891441,.0878276,0,.556028,.890276,.082903,0,.573125,.888972,.0783505,0,.590361,.887469,.0741083,0,.607741,.885785,.0701633,0,.62527,.883914,.0664835,0,.642957,.881872,.0630567,0,.660809,.879651,.0598527,0,.678836,.877267,.0568615,0,.69705,.874717,.05406,0,.715465,.872012,.0514378,0,.734098,.869157,.0489805,0,.752968,.866155,.0466727,0,.772101,.863014,.0445056,0,.791529,.859748,.0424733,0,.81129,.856416,.0405957,0,.831438,.852958,.0388273,0,.852044,.849382,.0371619,0,.87321,.845694,.0355959,0,.89509,.841893,.0341155,0,.917932,.837981,.0327141,0,.942204,.833963,.0313856,0,.968981,.829847,.0301275,0,1,1,.85214,0,0,.999969,.852095,0,.00279627,.999483,.851408,0,.0107635,.994545,.84579,0,.0206454,.986188,.835231,0,.0315756,.969847,.814687,0,.0432021,.945951,.783735,0,.0553396,.91917,.746074,0,.0678766,.895488,.706938,0,.0807395,.878232,.669534,0,.0938767,.868252,.635168,0,.10725,.863873,.603069,0,.120832,.863369,.572514,0,.134598,.86545,.543169,0,.148533,.868803,.514578,0,.16262,.872794,.486762,0,.176849,.87702,.459811,0,.19121,.881054,.433654,0,.205694,.884974,.408574,0,.220294,.888587,.384525,0,.235005,.891877,.36156,0,.24982,.894793,.339661,0,.264737,.89743,.318913,0,.279751,.899796,.299302,0,.294859,.901943,.280843,0,.310058,.903858,.263481,0,.325346,.905574,.247197,0,.340721,.907069,.231915,0,.356181,.908379,.217614,0,.371725,.90952,.20425,0,.387353,.910483,.191758,0,.403063,.91128,.180092,0,.418854,.911936,.169222,0,.434727,.912454,.159098,0,.450682,.912835,.149668,0,.466718,.913078,.140884,0,.482837,.913192,.132709,0,.499038,.913175,.125095,0,.515324,.91304,.118012,0,.531695,.912781,.111417,0,.548153,.91241,.105281,0,.5647,.911924,.0995691,0,.581338,.911331,.0942531,0,.59807,.910637,.0893076,0,.6149,.90984,.0846998,0,.63183,.908941,.0804044,0,.648865,.907944,.0763984,0,.666011,.906857,.0726638,0,.683273,.90568,.0691783,0,.700659,.904416,.0659222,0,.718176,.903067,.0628782,0,.735834,.901637,.0600307,0,.753646,.900128,.0573647,0,.771625,.898544,.0548668,0,.78979,.89689,.052527,0,.808162,.895165,.0503306,0,.826771,.893371,.0482668,0,.845654,.891572,.0463605,0,.864863,.889763,.0445998,0,.884472,.887894,.0429451,0,.904592,.885967,.0413884,0,.925407,.883984,.0399225,0,.947271,.881945,.0385405,0,.97105,.879854,.0372362,0,1,.999804,.995833,0,0,.938155,.933611,0,.0158731,.864755,.854311,0,.0317461,.888594,.865264,0,.0476191,.905575,.863922,0,.0634921,.915125,.850558,0,.0793651,.920665,.829254,0,.0952381,.924073,.802578,0,.111111,.926304,.772211,0,.126984,.927829,.739366,0,.142857,.928924,.705033,0,.15873,.92973,.670019,0,.174603,.930339,.634993,0,.190476,.930811,.600485,0,.206349,.931191,.566897,0,.222222,.93149,.534485,0,.238095,.931737,.503429,0,.253968,.931939,.473811,0,.269841,.932108,.445668,0,.285714,.93225,.418993,0,.301587,.932371,.393762,0,.31746,.932474,.369939,0,.333333,.932562,.347479,0,.349206,.932638,.326336,0,.365079,.932703,.306462,0,.380952,.93276,.287805,0,.396825,.932809,.270313,0,.412698,.932851,.253933,0,.428571,.932887,.23861,0,.444444,.932917,.224289,0,.460317,.932943,.210917,0,.47619,.932965,.19844,0,.492063,.932982,.186807,0,.507937,.932995,.175966,0,.52381,.933005,.165869,0,.539683,.933011,.156468,0,.555556,.933013,.147719,0,.571429,.933013,.139579,0,.587302,.93301,.132007,0,.603175,.933004,.124965,0,.619048,.932994,.118416,0,.634921,.932982,.112326,0,.650794,.932968,.106663,0,.666667,.93295,.101397,0,.68254,.932931,.0964993,0,.698413,.932908,.0919438,0,.714286,.932883,.0877057,0,.730159,.932856,.0837623,0,.746032,.932827,.0800921,0,.761905,.932796,.0766754,0,.777778,.932762,.0734936,0,.793651,.932727,.0705296,0,.809524,.932689,.0677676,0,.825397,.93265,.0651929,0,.84127,.932609,.0627917,0,.857143,.932565,.0605515,0,.873016,.932521,.0584606,0,.888889,.932474,.0565082,0,.904762,.932427,.0546841,0,.920635,.932377,.0529793,0,.936508,.932326,.0513851,0,.952381,.932274,.0498936,0,.968254,.93222,.0484975,0,.984127,.932164,.0471899,0,1],r=new Float32Array(e),C=new Float32Array(n),w=new DataTexture(r,64,64,RGBAFormat,FloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1),E=new DataTexture(C,64,64,RGBAFormat,FloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1);w.needsUpdate=!0,E.needsUpdate=!0;const O=new Uint16Array(e.length);e.forEach(function(ze,ke){O[ke]=DataUtils.toHalfFloat(ze)});const le=new Uint16Array(n.length);n.forEach(function(ze,ke){le[ke]=DataUtils.toHalfFloat(ze)});const fe=new DataTexture(O,64,64,RGBAFormat,HalfFloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1),Se=new DataTexture(le,64,64,RGBAFormat,HalfFloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1);return fe.needsUpdate=!0,Se.needsUpdate=!0,this.LTC_HALF_1=fe,this.LTC_HALF_2=Se,this.LTC_FLOAT_1=w,this.LTC_FLOAT_2=E,this}}RectAreaLightTexturesLib.LTC_HALF_1=null;RectAreaLightTexturesLib.LTC_HALF_2=null;RectAreaLightTexturesLib.LTC_FLOAT_1=null;RectAreaLightTexturesLib.LTC_FLOAT_2=null;class RectAreaLightUniformsLib{static init(){RectAreaLightTexturesLib.init();const{LTC_FLOAT_1:e,LTC_FLOAT_2:n,LTC_HALF_1:r,LTC_HALF_2:C}=RectAreaLightTexturesLib;UniformsLib.LTC_FLOAT_1=e,UniformsLib.LTC_FLOAT_2=n,UniformsLib.LTC_HALF_1=r,UniformsLib.LTC_HALF_2=C}}const _viewport=new Vector4,_start=new Vector3,_end=new Vector3,_start4=new Vector4,_end4=new Vector4,_ssOrigin=new Vector4,_ssOrigin3=new Vector3,_mvMatrix=new Matrix4,_line=new Line3,_closestPoint=new Vector3,_box=new Box3,_sphere=new Sphere$1,_clipToWorldVector=new Vector4;let _ray,_lineWidth;function getWorldSpaceHalfWidth(v,e,n){return _clipToWorldVector.set(0,0,-e,1).applyMatrix4(v.projectionMatrix),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),_clipToWorldVector.x=_lineWidth/n.width,_clipToWorldVector.y=_lineWidth/n.height,_clipToWorldVector.applyMatrix4(v.projectionMatrixInverse),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),Math.abs(Math.max(_clipToWorldVector.x,_clipToWorldVector.y))}function raycastWorldUnits(v,e){const n=v.matrixWorld,r=v.geometry,C=r.attributes.instanceStart,w=r.attributes.instanceEnd,E=Math.min(r.instanceCount,C.count);for(let O=0,le=E;O<le;O++){_line.start.fromBufferAttribute(C,O),_line.end.fromBufferAttribute(w,O),_line.applyMatrix4(n);const fe=new Vector3,Se=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,Se,fe),Se.distanceTo(fe)<_lineWidth*.5&&e.push({point:Se,pointOnLine:fe,distance:_ray.origin.distanceTo(Se),object:v,face:null,faceIndex:O,uv:null,uv1:null})}}function raycastScreenSpace(v,e,n){const r=e.projectionMatrix,w=v.material.resolution,E=v.matrixWorld,O=v.geometry,le=O.attributes.instanceStart,fe=O.attributes.instanceEnd,Se=Math.min(O.instanceCount,le.count),ze=-e.near;_ray.at(1,_ssOrigin),_ssOrigin.w=1,_ssOrigin.applyMatrix4(e.matrixWorldInverse),_ssOrigin.applyMatrix4(r),_ssOrigin.multiplyScalar(1/_ssOrigin.w),_ssOrigin.x*=w.x/2,_ssOrigin.y*=w.y/2,_ssOrigin.z=0,_ssOrigin3.copy(_ssOrigin),_mvMatrix.multiplyMatrices(e.matrixWorldInverse,E);for(let ke=0,Fe=Se;ke<Fe;ke++){if(_start4.fromBufferAttribute(le,ke),_end4.fromBufferAttribute(fe,ke),_start4.w=1,_end4.w=1,_start4.applyMatrix4(_mvMatrix),_end4.applyMatrix4(_mvMatrix),_start4.z>ze&&_end4.z>ze)continue;if(_start4.z>ze){const xt=_start4.z-_end4.z,Xt=(_start4.z-ze)/xt;_start4.lerp(_end4,Xt)}else if(_end4.z>ze){const xt=_end4.z-_start4.z,Xt=(_end4.z-ze)/xt;_end4.lerp(_start4,Xt)}_start4.applyMatrix4(r),_end4.applyMatrix4(r),_start4.multiplyScalar(1/_start4.w),_end4.multiplyScalar(1/_end4.w),_start4.x*=w.x/2,_start4.y*=w.y/2,_end4.x*=w.x/2,_end4.y*=w.y/2,_line.start.copy(_start4),_line.start.z=0,_line.end.copy(_end4),_line.end.z=0;const Lt=_line.closestPointToPointParameter(_ssOrigin3,!0);_line.at(Lt,_closestPoint);const bt=MathUtils.lerp(_start4.z,_end4.z,Lt),Ue=bt>=-1&&bt<=1,Gt=_ssOrigin3.distanceTo(_closestPoint)<_lineWidth*.5;if(Ue&&Gt){_line.start.fromBufferAttribute(le,ke),_line.end.fromBufferAttribute(fe,ke),_line.start.applyMatrix4(E),_line.end.applyMatrix4(E);const xt=new Vector3,Xt=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,Xt,xt),n.push({point:Xt,pointOnLine:xt,distance:_ray.origin.distanceTo(Xt),object:v,face:null,faceIndex:ke,uv:null,uv1:null})}}}class LineSegments2 extends Mesh{constructor(e=new LineSegmentsGeometry,n=new LineMaterial({color:Math.random()*16777215})){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,r=e.attributes.instanceEnd,C=new Float32Array(2*n.count);for(let E=0,O=0,le=n.count;E<le;E++,O+=2)_start.fromBufferAttribute(n,E),_end.fromBufferAttribute(r,E),C[O]=O===0?0:C[O-1],C[O+1]=C[O]+_start.distanceTo(_end);const w=new InstancedInterleavedBuffer(C,2,1);return e.setAttribute("instanceDistanceStart",new InterleavedBufferAttribute(w,1,0)),e.setAttribute("instanceDistanceEnd",new InterleavedBufferAttribute(w,1,1)),this}raycast(e,n){const r=this.material.worldUnits,C=e.camera;C===null&&!r&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const w=e.params.Line2!==void 0&&e.params.Line2.threshold||0;_ray=e.ray;const E=this.matrixWorld,O=this.geometry,le=this.material;_lineWidth=le.linewidth+w,O.boundingSphere===null&&O.computeBoundingSphere(),_sphere.copy(O.boundingSphere).applyMatrix4(E);let fe;if(r)fe=_lineWidth*.5;else{const ze=Math.max(C.near,_sphere.distanceToPoint(_ray.origin));fe=getWorldSpaceHalfWidth(C,ze,le.resolution)}if(_sphere.radius+=fe,_ray.intersectsSphere(_sphere)===!1)return;O.boundingBox===null&&O.computeBoundingBox(),_box.copy(O.boundingBox).applyMatrix4(E);let Se;if(r)Se=_lineWidth*.5;else{const ze=Math.max(C.near,_box.distanceToPoint(_ray.origin));Se=getWorldSpaceHalfWidth(C,ze,le.resolution)}_box.expandByScalar(Se),_ray.intersectsBox(_box)!==!1&&(r?raycastWorldUnits(this,n):raycastScreenSpace(this,C,n))}onBeforeRender(e){const n=this.material.uniforms;n&&n.resolution&&(e.getViewport(_viewport),this.material.uniforms.resolution.value.set(_viewport.z,_viewport.w))}}var Je$1=Object.defineProperty,Qe$1=Object.defineProperties,Ke$1=Object.getOwnPropertyDescriptors,he=Object.getOwnPropertySymbols,Be$1=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable,Ie$1=(v,e,n)=>e in v?Je$1(v,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):v[e]=n,z$2=(v,e)=>{for(var n in e||(e={}))Be$1.call(e,n)&&Ie$1(v,n,e[n]);if(he)for(var n of he(e))Oe.call(e,n)&&Ie$1(v,n,e[n]);return v},ue$1=(v,e)=>Qe$1(v,Ke$1(e)),ye$1=(v,e)=>{var n={};for(var r in v)Be$1.call(v,r)&&e.indexOf(r)<0&&(n[r]=v[r]);if(v!=null&&he)for(var r of he(v))e.indexOf(r)<0&&Oe.call(v,r)&&(n[r]=v[r]);return n},oe$1=(v,e,n)=>new Promise((r,C)=>{var w=le=>{try{O(n.next(le))}catch(fe){C(fe)}},E=le=>{try{O(n.throw(le))}catch(fe){C(fe)}},O=le=>le.done?r(le.value):Promise.resolve(le.value).then(w,E);O((n=n.apply(v,e)).next())});function V$1(v,e=0){const n=v[0].index!==null,r=new Set(Object.keys(v[0].attributes)),C=new Set(Object.keys(v[0].morphAttributes)),w={},E={},O=v[0].morphTargetsRelative,le=new BufferGeometry;let fe=0;for(let Se=0;Se<v.length;++Se){const ze=v[Se];let ke=0;if(n!==(ze.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const Fe in ze.attributes){if(!r.has(Fe))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+'. All geometries must have compatible attributes; make sure "'+Fe+'" attribute exists among all geometries, or in none of them.'),null;w[Fe]===void 0&&(w[Fe]=[]),w[Fe].push(ze.attributes[Fe]),ke++}if(ke!==r.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". Make sure all geometries have the same number of attributes."),null;if(O!==ze.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const Fe in ze.morphAttributes){if(!C.has(Fe))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". .morphAttributes must be consistent throughout all geometries."),null;E[Fe]===void 0&&(E[Fe]=[]),E[Fe].push(ze.morphAttributes[Fe])}if(e){let Fe;if(n)Fe=ze.index.count;else if(ze.attributes.position!==void 0)Fe=ze.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". The geometry must have either an index or a position attribute"),null;if(e===1)le.addGroup(fe,Fe,Se);else if(e===2&&ze.groups.length>0)for(let mt of ze.groups){let Lt=mt.materialIndex;le.addGroup(fe+mt.start,Math.min(mt.count,Fe),Lt)}fe+=Fe}}if(n){let Se=0;const ze=[];for(let ke=0;ke<v.length;++ke){const Fe=v[ke].index;for(let mt=0;mt<Fe.count;++mt)ze.push(Fe.getX(mt)+Se);Se+=v[ke].attributes.position.count}le.setIndex(ze)}for(const Se in w){const ze=mergeAttributes(w[Se]);if(!ze)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+Se+" attribute."),null;le.setAttribute(Se,ze)}for(const Se in E){const ze=E[Se][0].length;if(ze===0)break;le.morphAttributes=le.morphAttributes||{},le.morphAttributes[Se]=[];for(let ke=0;ke<ze;++ke){const Fe=[];for(let Lt=0;Lt<E[Se].length;++Lt)Fe.push(E[Se][Lt][ke]);const mt=mergeAttributes(Fe);if(!mt)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+Se+" morphAttribute."),null;le.morphAttributes[Se].push(mt)}}return e===2?mergeGroups(le):le}const De=v=>{const e=v,{coordinate:n,startHeight:r,height:C}=e,w=ye$1(e,["coordinate","startHeight","height"]);let E=r||0;return typeof r!="undefined"&&typeof C!="undefined"&&(E=r+C),new zt([n],ue$1(z$2({},w),{startHeight:r,endHeight:E}))};class Jt extends pe$1{constructor(e){super(),this.options=z$2({},e)}create(){const e=this.options,{geometry:n,coordinateArr:r,coordinate:C,material:w,useGroups:E}=e,O=ye$1(e,["geometry","coordinateArr","coordinate","material","useGroups"]);let le=n;if(!le&&C)le=De(z$2({coordinate:C},O));else if(!le&&r){const fe=r.map(Se=>De(z$2({coordinate:Se},O)));le=V$1(fe,E!=null?E:0)}this.createMesh(le,w)}}const Bt={ArcCurve,CatmullRomCurve3,CubicBezierCurve,CubicBezierCurve3,EllipseCurve,LineCurve,LineCurve3,QuadraticBezierCurve,QuadraticBezierCurve3,SplineCurve};let K$1=class zn extends BufferGeometry{constructor(e=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),n={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:n},e=Array.isArray(e)?e:[e];const r=this,C=[],w=[];for(let O=0,le=e.length;O<le;O++){const fe=e[O];E(fe)}this.setAttribute("position",new Float32BufferAttribute(C,3)),this.setAttribute("uv",new Float32BufferAttribute(w,2)),this.computeVertexNormals();function E(O){var le,fe,Se;const ze=[],ke=n.curveSegments!==void 0?n.curveSegments:12,Fe=n.steps!==void 0?n.steps:1,mt=n.depth!==void 0?n.depth:1;let Lt=n.bevelEnabled!==void 0?n.bevelEnabled:!0,bt=n.bevelThickness!==void 0?n.bevelThickness:.2,Ue=n.bevelSize!==void 0?n.bevelSize:bt-.1,Gt=n.bevelOffset!==void 0?n.bevelOffset:0,xt=n.bevelSegments!==void 0?n.bevelSegments:3;const Xt=n.extrudePath,Zt=n.UVGenerator!==void 0?n.UVGenerator:Ot$1,wt=(le=n.hasTop)!=null?le:!0,Vt=(fe=n.hasBottom)!=null?fe:!0,Wt=(Se=n.hasSide)!=null?Se:!0;let It,Nt=!1,Ft,jt,n0,s0;Xt&&(It=Xt.getSpacedPoints(Fe),Nt=!0,Lt=!1,Ft=Xt.computeFrenetFrames(Fe,!1),jt=new Vector3,n0=new Vector3,s0=new Vector3),Lt||(xt=0,bt=0,Ue=0,Gt=0);const qt=O.extractPoints(ke);let Ht=qt.shape;const $t=qt.holes;if(!ShapeUtils.isClockWise(Ht)){Ht=Ht.reverse();for(let S0=0,L0=$t.length;S0<L0;S0++){const A0=$t[S0];ShapeUtils.isClockWise(A0)&&($t[S0]=A0.reverse())}}function Kt(S0){const L0=10000000000000001e-36;let A0=S0[0];for(let B0=1;B0<=S0.length;B0++){const r0=B0%S0.length,t0=S0[r0],m0=t0.x-A0.x,v0=t0.y-A0.y,k0=m0*m0+v0*v0,C0=Math.max(Math.abs(t0.x),Math.abs(t0.y),Math.abs(A0.x),Math.abs(A0.y)),Ci=L0*C0*C0;if(k0<=Ci){S0.splice(r0,1),B0--;continue}A0=t0}}Kt(Ht),$t.forEach(Kt);const e0=$t.length,u0=Ht;for(let S0=0;S0<e0;S0++){const L0=$t[S0];Ht=Ht.concat(L0)}function d0(S0,L0,A0){return L0||error("ExtrudeGeometry: vec does not exist"),S0.clone().addScaledVector(L0,A0)}const _0=Ht.length;function J0(S0,L0,A0){let B0,r0,t0;const m0=S0.x-L0.x,v0=S0.y-L0.y,k0=A0.x-S0.x,C0=A0.y-S0.y,Ci=m0*m0+v0*v0,yi=m0*C0-v0*k0;if(Math.abs(yi)>Number.EPSILON){const wi=Math.sqrt(Ci),Ei=Math.sqrt(k0*k0+C0*C0),gi=L0.x-v0/wi,Ti=L0.y+m0/wi,Ii=A0.x-C0/Ei,Ni=A0.y+k0/Ei,Gi=((Ii-gi)*C0-(Ni-Ti)*k0)/(m0*C0-v0*k0);B0=gi+m0*Gi-S0.x,r0=Ti+v0*Gi-S0.y;const zi=B0*B0+r0*r0;if(zi<=2)return new Vector2(B0,r0);t0=Math.sqrt(zi/2)}else{let wi=!1;m0>Number.EPSILON?k0>Number.EPSILON&&(wi=!0):m0<-Number.EPSILON?k0<-Number.EPSILON&&(wi=!0):Math.sign(v0)===Math.sign(C0)&&(wi=!0),wi?(B0=-v0,r0=m0,t0=Math.sqrt(Ci)):(B0=m0,r0=v0,t0=Math.sqrt(Ci/2))}return new Vector2(B0/t0,r0/t0)}const H0=[];for(let S0=0,L0=u0.length,A0=L0-1,B0=S0+1;S0<L0;S0++,A0++,B0++)A0===L0&&(A0=0),B0===L0&&(B0=0),H0[S0]=J0(u0[S0],u0[A0],u0[B0]);const bi=[];let b0,V0=H0.concat();for(let S0=0,L0=e0;S0<L0;S0++){const A0=$t[S0];b0=[];for(let B0=0,r0=A0.length,t0=r0-1,m0=B0+1;B0<r0;B0++,t0++,m0++)t0===r0&&(t0=0),m0===r0&&(m0=0),b0[B0]=J0(A0[B0],A0[t0],A0[m0]);bi.push(b0),V0=V0.concat(b0)}let D0;if(xt===0)D0=ShapeUtils.triangulateShape(u0,$t);else{const S0=[],L0=[];for(let A0=0;A0<xt;A0++){const B0=A0/xt,r0=bt*Math.cos(B0*Math.PI/2),t0=Ue*Math.sin(B0*Math.PI/2)+Gt;for(let m0=0,v0=u0.length;m0<v0;m0++){const k0=d0(u0[m0],H0[m0],t0);P0(k0.x,k0.y,-r0),B0===0&&S0.push(k0)}for(let m0=0,v0=e0;m0<v0;m0++){const k0=$t[m0];b0=bi[m0];const C0=[];for(let Ci=0,yi=k0.length;Ci<yi;Ci++){const wi=d0(k0[Ci],b0[Ci],t0);P0(wi.x,wi.y,-r0),B0===0&&C0.push(wi)}B0===0&&L0.push(C0)}}D0=ShapeUtils.triangulateShape(S0,L0)}const Si=D0.length,q0=Ue+Gt;for(let S0=0;S0<_0;S0++){const L0=Lt?d0(Ht[S0],V0[S0],q0):Ht[S0];Nt?(n0.copy(Ft.normals[0]).multiplyScalar(L0.x),jt.copy(Ft.binormals[0]).multiplyScalar(L0.y),s0.copy(It[0]).add(n0).add(jt),P0(s0.x,s0.y,s0.z)):P0(L0.x,L0.y,0)}for(let S0=1;S0<=Fe;S0++)for(let L0=0;L0<_0;L0++){const A0=Lt?d0(Ht[L0],V0[L0],q0):Ht[L0];Nt?(n0.copy(Ft.normals[S0]).multiplyScalar(A0.x),jt.copy(Ft.binormals[S0]).multiplyScalar(A0.y),s0.copy(It[S0]).add(n0).add(jt),P0(s0.x,s0.y,s0.z)):P0(A0.x,A0.y,mt/Fe*S0)}for(let S0=xt-1;S0>=0;S0--){const L0=S0/xt,A0=bt*Math.cos(L0*Math.PI/2),B0=Ue*Math.sin(L0*Math.PI/2)+Gt;for(let r0=0,t0=u0.length;r0<t0;r0++){const m0=d0(u0[r0],H0[r0],B0);P0(m0.x,m0.y,mt+A0)}for(let r0=0,t0=$t.length;r0<t0;r0++){const m0=$t[r0];b0=bi[r0];for(let v0=0,k0=m0.length;v0<k0;v0++){const C0=d0(m0[v0],b0[v0],B0);Nt?P0(C0.x,C0.y+It[Fe-1].y,It[Fe-1].x+A0):P0(C0.x,C0.y,mt+A0)}}}Wi(),Wt&&Ai();function Wi(){const S0=C.length/3;if(Lt){let L0=0,A0=_0*L0;if(Vt)for(let B0=0;B0<Si;B0++){const r0=D0[B0];F0(r0[2]+A0,r0[1]+A0,r0[0]+A0)}if(L0=Fe+xt*2,A0=_0*L0,wt)for(let B0=0;B0<Si;B0++){const r0=D0[B0];F0(r0[0]+A0,r0[1]+A0,r0[2]+A0)}}else{if(Vt)for(let L0=0;L0<Si;L0++){const A0=D0[L0];F0(A0[2],A0[1],A0[0])}if(wt)for(let L0=0;L0<Si;L0++){const A0=D0[L0];F0(A0[0]+_0*Fe,A0[1]+_0*Fe,A0[2]+_0*Fe)}}r.addGroup(S0,C.length/3-S0,0)}function Ai(){const S0=C.length/3;let L0=0;a0(u0,L0),L0+=u0.length;for(let A0=0,B0=$t.length;A0<B0;A0++){const r0=$t[A0];a0(r0,L0),L0+=r0.length}r.addGroup(S0,C.length/3-S0,1)}function a0(S0,L0){let A0=S0.length;for(;--A0>=0;){const B0=A0;let r0=A0-1;r0<0&&(r0=S0.length-1);for(let t0=0,m0=Fe+xt*2;t0<m0;t0++){const v0=_0*t0,k0=_0*(t0+1),C0=L0+B0+v0,Ci=L0+r0+v0,yi=L0+r0+k0,wi=L0+B0+k0;K0(C0,Ci,yi,wi)}}}function P0(S0,L0,A0){ze.push(S0),ze.push(L0),ze.push(A0)}function F0(S0,L0,A0){I0(S0),I0(L0),I0(A0);const B0=C.length/3,r0=Zt.generateTopUV(r,C,B0-3,B0-2,B0-1);Q0(r0[0]),Q0(r0[1]),Q0(r0[2])}function K0(S0,L0,A0,B0){I0(S0),I0(L0),I0(B0),I0(L0),I0(A0),I0(B0);const r0=C.length/3,t0=Zt.generateSideWallUV(r,C,r0-6,r0-3,r0-2,r0-1);Q0(t0[0]),Q0(t0[1]),Q0(t0[3]),Q0(t0[1]),Q0(t0[2]),Q0(t0[3])}function I0(S0){C.push(ze[S0*3+0]),C.push(ze[S0*3+1]),C.push(ze[S0*3+2])}function Q0(S0){w.push(S0.x),w.push(S0.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),n=this.parameters.shapes,r=this.parameters.options;return Rt$1(n,r,e)}static fromJSON(e,n){const r=[];for(let w=0,E=e.shapes.length;w<E;w++){const O=n[e.shapes[w]];r.push(O)}const C=e.options.extrudePath;return C!==void 0&&(e.options.extrudePath=new Bt[C.type]().fromJSON(C)),new zn(r,e.options)}};const Ot$1={generateTopUV:function(v,e,n,r,C){const w=e[n*3],E=e[n*3+1],O=e[r*3],le=e[r*3+1],fe=e[C*3],Se=e[C*3+1];return[new Vector2(w,E),new Vector2(O,le),new Vector2(fe,Se)]},generateSideWallUV:function(v,e,n,r,C,w){const E=e[n*3],O=e[n*3+1],le=e[n*3+2],fe=e[r*3],Se=e[r*3+1],ze=e[r*3+2],ke=e[C*3],Fe=e[C*3+1],mt=e[C*3+2],Lt=e[w*3],bt=e[w*3+1],Ue=e[w*3+2];return Math.abs(O-Se)<Math.abs(E-fe)?[new Vector2(E,1-le),new Vector2(fe,1-ze),new Vector2(ke,1-mt),new Vector2(Lt,1-Ue)]:[new Vector2(O,1-le),new Vector2(Se,1-ze),new Vector2(Fe,1-mt),new Vector2(bt,1-Ue)]}};function Rt$1(v,e,n){if(n.shapes=[],Array.isArray(v))for(let r=0,C=v.length;r<C;r++){const w=v[r];n.shapes.push(w.uuid)}else n.shapes.push(v.uuid);return n.options=Object.assign({},e),e.extrudePath!==void 0&&(n.options.extrudePath=e.extrudePath.toJSON()),n}class Ut extends K$1{constructor(e,n){super(e,n);const r=new Brush(new K$1(e,ue$1(z$2({},n),{hasTop:!0,hasSide:!0,hasBottom:!1})));r.updateMatrixWorld();const C=new Box3().setFromObject(r),w=new Vector3;C.getSize(w);const E=new Vector3(C.min.x+w.x/2,C.min.y+w.y/2,0);let O=n.topSegments,le=n.box3;if(le){le=le.union(C);const bt=new Vector3;le.getSize(bt);const Ue=Math.max(w.x/bt.x,w.y/bt.y);O=Math.ceil(n.topSegments*Ue)}if(O<4)return this;const fe=new PlaneGeometry(w.x,w.y,O,O),Se=new Brush(fe);Se.position.set(E.x,E.y,E.z),Se.updateMatrixWorld();const ze=new Evaluator().evaluate(Se,r,INTERSECTION),ke=ze.geometry.getAttribute("position"),Fe=new Float32BufferAttribute(ke.count*2,2);for(let bt=0;bt<ke.count;bt++){const Ue=ke.getZ(bt);ke.setZ(bt,n.depth+Ue)}if(le){const bt=le.min,Ue=le.max,Gt=new Vector3().subVectors(Ue,bt);for(let xt=0;xt<ke.count;xt++){const Xt=ke.getX(xt),Zt=ke.getY(xt),wt=(Xt-bt.x)/Gt.x,Vt=(Zt-bt.y)/Gt.y;Fe.setXY(xt,wt,Vt)}ze.geometry.setAttribute("uv",Fe)}ke.needsUpdate=!0;const mt=new K$1(e,ue$1(z$2({},n),{hasTop:!1})),Lt=V$1([ze.geometry,mt],2);this.copy(Lt.toNonIndexed())}}const Ve$1=v=>{const{split:e,depth:n,points:r,box3:C,hasTop:w,hasBottom:E,hasSide:O,sideRepeat:le,topSegments:fe}=v,Se=fe?Ut:K$1,ze=new Se(new Shape(r),{depth:n,bevelEnabled:!1,box3:C,UVGenerator:R$1({split:e,box3:C,sideRepeat:le}),hasTop:w,hasBottom:E,hasSide:O,topSegments:fe});return P$1(),ze};class Qt extends pe$1{constructor(e){super(),this.options=z$2({depth:1},e)}create(){return oe$1(this,null,function*(){const{points:e,pointsArr:n,useGroups:r,depth:C,geometry:w,geometryArr:E,material:O,box3:le,split:fe,hasTop:Se,hasBottom:ze,hasSide:ke}=this.options,Fe=Array.isArray(C)?C:[C],mt=Array.isArray(le)?le:[le],Lt=O;let bt=w;Lt||console.log("material is null"),!bt&&e?bt=Ve$1({points:e,depth:Fe[0],box3:mt[0],split:fe,hasTop:Se,hasBottom:ze,hasSide:ke}):!bt&&n?bt=V$1(n.map((Ue,Gt)=>{var xt,Xt;return Ve$1({points:Ue,depth:(xt=Fe[Gt])!=null?xt:Fe[0],box3:(Xt=mt[Gt])!=null?Xt:mt[0],split:fe,hasTop:Se,hasBottom:ze,hasSide:ke})}),r!=null?r:0):!bt&&E&&E.length>1?bt=V$1(E,r!=null?r:0):!bt&&E&&E.length===1&&([bt]=E),this.createMesh(bt,Lt)})}addGeometries(e){const n=this.object3d,r=V$1([n.geometry,...e]);n.geometry=r}setTextureAnisotropic(e,n){e.anisotropy=n||this.pencil.renderer.capabilities.getMaxAnisotropy()}}class en extends pe$1{create(){this.createGroup()}}class tn extends pe$1{constructor(e){super(),this.rectAreaLightUniformsLibInit=!1,this.options=e}create(){var e,n,r,C,w,E,O,le,fe,Se,ze,ke,Fe,mt,Lt,bt,Ue;const Gt=this.options;if(Gt.type==="AmbientLight"){const xt=new AmbientLight(Gt.color);xt.name="环境光",this.object3d=xt}else if(Gt.type==="DirectionalLight"){const xt=new DirectionalLight(Gt.color,Gt.intensity);xt.name="平行光",xt.target.position.set(0,0,0),this.object3d=xt,xt.target.name="平行光目标",xt.shadow.camera.name="平行光阴影相机",xt.shadow.camera.userData.directionalLightShadow=!0,this.directionalLight=xt}else if(Gt.type==="PointLight"){const xt=new PointLight((e=Gt.color)!=null?e:16777215,(n=Gt.intensity)!=null?n:1,(r=Gt.distance)!=null?r:0,(C=Gt.decay)!=null?C:2);xt.name="点光源",this.object3d=xt,this.pointLight=xt}else if(Gt.type==="SpotLight"){const xt=new SpotLight((w=Gt.color)!=null?w:16777215,(E=Gt.intensity)!=null?E:1,(O=Gt.distance)!=null?O:0,(le=Gt.angle)!=null?le:Math.PI/3,(fe=Gt.penumbra)!=null?fe:1,(Se=Gt.decay)!=null?Se:2);xt.name="聚光灯",this.object3d=xt,this.spotLight=xt,xt.target.name="聚光灯目标"}else if(Gt.type==="HemisphereLight"){const xt=new HemisphereLight((ze=Gt.color)!=null?ze:16777215,(ke=Gt.groundColor)!=null?ke:16777215,(Fe=Gt.intensity)!=null?Fe:1);xt.name="半球光",this.object3d=xt,this.hemisphereLight=xt}else if(Gt.type==="RectAreaLight"){this.rectAreaLightUniformsLibInit||(RectAreaLightUniformsLib.init(),this.rectAreaLightUniformsLibInit=!0);const xt=new RectAreaLight((mt=Gt.color)!=null?mt:16777215,(Lt=Gt.intensity)!=null?Lt:1,(bt=Gt.width)!=null?bt:10,(Ue=Gt.height)!=null?Ue:10);xt.name="矩形区域光",this.object3d=xt,this.rectAreaLight=xt}}render(){const e=this.object3d;e.target&&this.pencil.scene.add(e.target);const n=this.pencil.cameraTarget;if(this.spotLight||this.directionalLight){const r=this.spotLight||this.directionalLight;r.position.copy(n),r.target.position.copy(n)}else this.pointLight&&this.pointLight.position.copy(n)}dispose(){const e=this.object3d;e.target&&this.pencil.scene.remove(e.target),super.dispose()}}let Dt$1=class extends BufferGeometry{constructor(e=[],n="none",r){super(),this.type="MeshLineGeometry",this.pointCount=0,this._points=[],this.shape="none",this.shapeFunction=C=>1,this.matrixWorld=new Matrix4,this.shape=n,r&&(this.shapeFunction=r),e.length>0&&this.setPoints(e)}convertToVector3Array(e){if(typeof e[0]=="number"){const n=[],r=e;for(let C=0;C<r.length;C+=3)n.push(new Vector3(r[C],r[C+1],r[C+2]));return n}else return e.map(n=>{if(n instanceof Vector2)return new Vector3(n.x,n.y,0);if(n instanceof Vector3)return n;if(Array.isArray(n)&&n.length===2)return new Vector3(n[0],n[1],0);if(Array.isArray(n)&&n.length===3)return new Vector3(n[0],n[1],n[2])}).filter(Boolean)}setMatrixWorld(e){this.matrixWorld=e}setPoints(e,n){!e||e.length===0||(this._points=this.convertToVector3Array(e),this.pointCount=this._points.length,n&&(this.shapeFunction=n,this.shape="custom"),this.initializeGeometry(),this.updateGeometry())}initializeGeometry(){const e=new BufferAttribute(new Float32Array(this.pointCount*6),3),n=new BufferAttribute(new Float32Array(this.pointCount*6),3),r=new BufferAttribute(new Float32Array(this.pointCount*6),3),C=new BufferAttribute(new Float32Array(this.pointCount*2),1),w=new BufferAttribute(new Float32Array(this.pointCount*2),1),E=new BufferAttribute(new Float32Array(this.pointCount*2),1),O=new BufferAttribute(new Float32Array(this.pointCount*4),2),le=new BufferAttribute(new Uint16Array((this.pointCount-1)*6),1);this.shape==="taper"&&(this.shapeFunction=fe=>1*Math.pow(4*fe*(1-fe),1));for(let fe=0,Se=0,ze=0;fe<this.pointCount;fe+=1,Se+=2,ze+=6){C.setX(Se,fe/this.pointCount),C.setX(Se+1,fe/this.pointCount),w.setX(Se,1),w.setX(Se+1,-1);const ke=this.shape==="none"?1:this.shapeFunction(fe/(this.pointCount-1));E.setX(Se,ke),E.setX(Se+1,ke);const Fe=fe/(this.pointCount-1);if(O.setXY(Se,Fe,0),O.setXY(Se+1,Fe,1),fe<this.pointCount-1){const mt=fe*2;le.setX(ze+0,mt+0),le.setX(ze+1,mt+1),le.setX(ze+2,mt+2),le.setX(ze+3,mt+2),le.setX(ze+4,mt+1),le.setX(ze+5,mt+3)}}this.setAttribute("position",e),this.setAttribute("previous",n),this.setAttribute("next",r),this.setAttribute("counters",C),this.setAttribute("side",w),this.setAttribute("width",E),this.setAttribute("uv",O),this.setIndex(le)}updateGeometry(){if(!this._points[0])return;const e=this.getAttribute("position"),n=this.getAttribute("previous"),r=this.getAttribute("next");let C=0,w=0,E=0;const O=this._points[0];n.setXYZ(w,O.x,O.y,O.z),w+=1,n.setXYZ(w,O.x,O.y,O.z),w+=1;for(let fe=0;fe<this.pointCount;fe++){const Se=this._points[fe];e.setXYZ(C,Se.x,Se.y,Se.z),C+=1,e.setXYZ(C,Se.x,Se.y,Se.z),C+=1,fe<this.pointCount-1&&(n.setXYZ(w,Se.x,Se.y,Se.z),w+=1,n.setXYZ(w,Se.x,Se.y,Se.z),w+=1),fe>0&&fe+1<=this.pointCount&&(r.setXYZ(E,Se.x,Se.y,Se.z),E+=1,r.setXYZ(E,Se.x,Se.y,Se.z),E+=1)}const le=this._points[this.pointCount-1];r.setXYZ(E,le.x,le.y,le.z),E+=1,r.setXYZ(E,le.x,le.y,le.z),E+=1,e.needsUpdate=!0,n.needsUpdate=!0,r.needsUpdate=!0,this.computeBoundingSphere(),this.computeBoundingBox()}get points(){return this._points}set points(e){this.setPoints(e)}updatePoints(e,n){const r=this.convertToVector3Array(e);if(r.length!==this.pointCount){console.warn("MeshLineGeometry: Cannot update points with different length. Use setPoints() instead.");return}this._points=r,n&&(this.shapeFunction=n,this.shape="custom",this.initializeGeometry()),this.updateGeometry()}setShape(e,n){this.shape=e,n&&(this.shapeFunction=n),this._points.length>0&&(this.initializeGeometry(),this.updateGeometry())}};const be$1=v=>{const{setPointWidth:e,nodes:n}=v,r=new Dt$1;return r.setPoints(n,e),r},He$1=new WeakMap,de$1=new Map;let sn=class extends pe$1{constructor(v={}){super(),this.options=z$2({},v)}get material(){var v;return(v=this.object3d)==null?void 0:v.material}create(){return oe$1(this,null,function*(){const{nodes:v,nodesArr:e,geometry:n,geometryArr:r,material:C,useGroups:w,setPointWidth:E,lineWidthArr:O,materialParameters:le}=this.options;let fe=C,Se=n;!fe&&le&&(fe=this.getMaterial(le)),!Se&&v?Se=be$1({nodes:v,setPointWidth:E}):!Se&&e?Se=V$1(e.map((ze,ke)=>{let Fe=E;return!Fe&&O&&(Fe=()=>{var mt;return(mt=O[ke])!=null?mt:O[0]}),be$1({nodes:ze,setPointWidth:Fe})}),w!=null?w:0):!Se&&r&&r.length>1?Se=V$1(r,w!=null?w:0):!Se&&r&&r.length===1&&([Se]=r),this.createMesh(Se,fe)})}setGeometry(v,e){const n=be$1({nodes:v,setPointWidth:e}),r=this.object3d,C=r.geometry;r.geometry=n,C.dispose()}getMaterial(v){const{width:e,height:n}=this.pencil.getSize(),r=new Ot$2(z$2({color:new Color$1("#ffffff")},v));return r.uniforms.resolution.value.set(e,n),r}addGeometries(v){const e=this.object3d,n=V$1([e.geometry,...v]);e.geometry=n}resize(v,e){var n,r;(r=(n=this.material)==null?void 0:n.uniforms)==null||r.resolution.value.set(v,e)}handleMaterialChange(v){if(v){const{width:e,height:n}=this.pencil.getSize();this.resize(e,n)}}animate({duration:v=1e3,delay:e=0,repeat:n=0,lineLoop:r,onRepeat:C,onUpdate:w,onComplete:E,startShow:O}={}){const{offset:le,offsetLoop:fe}=this.material.uniforms,Se=this.pencil.userData.debugLine?de$1:He$1;if(Se.get(this.material)&&this.stopAnimation(),v===0)return;const ze=r!=null?r:!0;le.value.x=1,fe.value=ze&&O?1:0;let ke=0;const Fe=new Tween(le.value).to({x:-1},v).delay(e).repeat(n).onUpdate(({x:mt})=>{ze&&mt<=0&&fe.value===0&&(fe.value=1),w==null||w(mt)}).onRepeat(()=>{ke+=1,C==null||C(ke)}).onComplete(()=>{E==null||E()}).start();Se.set(this.material,Fe),this.material.addEventListener("dispose",()=>{this.stopAnimation()}),this.pencil.userData.debugLine&&console.log("animate",de$1.size)}stopAnimation(){const v=this.pencil.userData.debugLine?de$1:He$1,e=v.get(this.material);e&&(e.stop(),remove(e),v.delete(this.material),this.material.uniforms.offset.value.x=0,this.material.uniforms.offsetLoop.value=1),this.pencil.userData.debugLine&&console.log("stopAnimation",de$1.size)}render(){const{width:v,height:e}=this.pencil.getSize();this.resize(v,e)}};const Xe$1=v=>{const{points:e}=v,n=e.reduce((r,C,w)=>(w<e.length-1&&r.push(C,e[w+1]),r),[]);return new BufferGeometry().setFromPoints(n)};class rn extends pe$1{constructor(e={}){super(),this.options=z$2({},e)}get material(){var e;return(e=this.object3d)==null?void 0:e.material}create(){return oe$1(this,null,function*(){const{points:e,pointsArr:n,geometry:r,geometryArr:C,material:w,useGroups:E,setPointWidth:O,lineWidthArr:le,materialParameters:fe,instanceCount:Se}=this.options;let ze=w,ke=r;!ze&&fe&&(ze=this.getMaterial(fe)),!ke&&e?ke=Xe$1({points:e}):!ke&&n?ke=V$1(n.map(mt=>Xe$1({points:mt})),E!=null?E:0):!ke&&C&&C.length>1?ke=V$1(C,E!=null?E:0):!ke&&C&&C.length===1&&([ke]=C);const Fe=new LineSegmentsGeometry().fromLineSegments(new LineSegments(ke));if(this.pencil.options.WebGPUTHREE){Se&&(Fe.instanceCount=Se);const mt=new _t$1(Fe,ze);mt.computeLineDistances(),this.object3d=mt}else{const mt=new LineSegments2(Fe,ze);mt.computeLineDistances(),this.object3d=mt}})}getMaterial(e){return new LineMaterial(z$2({color:new Color$1("#ffffff")},e))}}class an extends pe$1{constructor(e){super(),this.objectType="Node",this.onNodePointerIndex=[],this.options=z$2({type:"2d"},e)}create(){const{position:e,children:n}=this.options,r=document.createElement("div");this.element=r,n&&r.appendChild(n),this.options.type==="3d"?this.createCSS3DObject(r):this.options.type==="3dSprite"?this.createCSS3DSprite(r):this.createCSS2DObject(r),e&&this.object3d.position.copy(e)}setChildren(e){this.options.children=e,this.element.innerHTML="",this.element.appendChild(e)}showAndEnsureVisible(){const e=this.options.children;e&&(e.style.visibility="hidden",this.show(),setTimeout(()=>{e.style.visibility="",this.ensureVisible()}))}moveElementToViewport(){const e=this.options.children;if(!e)return;const n=e.getBoundingClientRect(),r=window.innerWidth,C=window.innerHeight;let w=0,E=0;n.left<0?w=-n.left:n.right>r&&(w=r-n.right),n.top<0?E=-n.top:n.bottom>C&&(E=C-n.bottom),n.left+w<0&&(w=-n.left),n.top+E<0&&(E=-n.top),(w!==0||E!==0)&&(e.style.transform=`translate(${w}px, ${E}px)`)}ensureVisible(){const e=this.options.children;if(!e)return;e.style.transform&&(e.style.transform="");const n=new IntersectionObserver(r=>{r.forEach(C=>{C.isIntersecting&&(this.moveElementToViewport(),n.disconnect())})});n.observe(e)}onPointerEvent(e,n){const r=this.lead.handlePickNode([this],e,n);this.onNodePointerIndex.push(r)}dispose(){this.onNodePointerIndex.forEach(e=>{this.lead.removePickNode(e)}),super.dispose()}}class Light extends tn{constructor(e){super(e),this.keyType=e.type}update(e,n){var C;super.update(e,n);const r=this.object3d;(C=r.shadow)!=null&&C.camera&&(r.shadow.camera.near!==this.pencil.camera.near&&(r.shadow.camera.near=this.pencil.camera.near),r.shadow.camera.far!==this.pencil.camera.far&&(r.shadow.camera.far=this.pencil.camera.far))}render(){super.render();const e=this.object3d;e.userData=new Proxy({},{set:(w,E,O)=>(E==="keepCamera"&&(O?(this.pencil.render(),this.pencil.camera.attach(e),e.target&&this.pencil.camera.attach(e.target),this.userData.disabledTC=!0):O||(this.pencil.render(),this.lead.group.object3d.attach(e),e.target&&this.lead.scene.object3d.attach(e.target),this.userData.disabledTC=!1)),Reflect.set(w,E,O))}),e.target&&(e.target.userData.light=e);const n=this.object3d;n.isDirectionalLight&&(n.shadow.mapSize.width=1024,n.shadow.mapSize.height=1024);const r=this.object3d;r.isSpotLight&&r.shadow.mapSize.set(1024,1024);const C=this.object3d;C.isPointLight&&(C.shadow.mapSize.width=1024,C.shadow.mapSize.height=1024)}}function getDefaultExportFromCjs(v){return v&&v.__esModule&&Object.prototype.hasOwnProperty.call(v,"default")?v.default:v}var isMergeableObject=function(e){return isNonNullObject(e)&&!isSpecial(e)};function isNonNullObject(v){return!!v&&typeof v=="object"}function isSpecial(v){var e=Object.prototype.toString.call(v);return e==="[object RegExp]"||e==="[object Date]"||isReactElement(v)}var canUseSymbol=typeof Symbol=="function"&&Symbol.for,REACT_ELEMENT_TYPE=canUseSymbol?Symbol.for("react.element"):60103;function isReactElement(v){return v.$$typeof===REACT_ELEMENT_TYPE}function emptyTarget(v){return Array.isArray(v)?[]:{}}function cloneUnlessOtherwiseSpecified(v,e){return e.clone!==!1&&e.isMergeableObject(v)?deepmerge(emptyTarget(v),v,e):v}function defaultArrayMerge(v,e,n){return v.concat(e).map(function(r){return cloneUnlessOtherwiseSpecified(r,n)})}function getMergeFunction(v,e){if(!e.customMerge)return deepmerge;var n=e.customMerge(v);return typeof n=="function"?n:deepmerge}function getEnumerableOwnPropertySymbols(v){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(v).filter(function(e){return Object.propertyIsEnumerable.call(v,e)}):[]}function getKeys(v){return Object.keys(v).concat(getEnumerableOwnPropertySymbols(v))}function propertyIsOnObject(v,e){try{return e in v}catch(n){return!1}}function propertyIsUnsafe(v,e){return propertyIsOnObject(v,e)&&!(Object.hasOwnProperty.call(v,e)&&Object.propertyIsEnumerable.call(v,e))}function mergeObject(v,e,n){var r={};return n.isMergeableObject(v)&&getKeys(v).forEach(function(C){r[C]=cloneUnlessOtherwiseSpecified(v[C],n)}),getKeys(e).forEach(function(C){propertyIsUnsafe(v,C)||(propertyIsOnObject(v,C)&&n.isMergeableObject(e[C])?r[C]=getMergeFunction(C,n)(v[C],e[C],n):r[C]=cloneUnlessOtherwiseSpecified(e[C],n))}),r}function deepmerge(v,e,n){n=n||{},n.arrayMerge=n.arrayMerge||defaultArrayMerge,n.isMergeableObject=n.isMergeableObject||isMergeableObject,n.cloneUnlessOtherwiseSpecified=cloneUnlessOtherwiseSpecified;var r=Array.isArray(e),C=Array.isArray(v),w=r===C;return w?r?n.arrayMerge(v,e,n):mergeObject(v,e,n):cloneUnlessOtherwiseSpecified(e,n)}deepmerge.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(r,C){return deepmerge(r,C,n)},{})};var deepmerge_1=deepmerge,cjs=deepmerge_1;const Dt=getDefaultExportFromCjs(cjs);class Panel{constructor(e,n,r){this.id=0,this.name=e,this.fg=n,this.bg=r,this.gradient=null,this.PR=Math.round(window.devicePixelRatio||1),this.WIDTH=90*this.PR,this.HEIGHT=48*this.PR,this.TEXT_X=3*this.PR,this.TEXT_Y=2*this.PR,this.GRAPH_X=3*this.PR,this.GRAPH_Y=15*this.PR,this.GRAPH_WIDTH=84*this.PR,this.GRAPH_HEIGHT=30*this.PR,this.canvas=document.createElement("canvas"),this.canvas.width=this.WIDTH,this.canvas.height=this.HEIGHT,this.canvas.style.width="90px",this.canvas.style.height="48px",this.canvas.style.position="absolute",this.canvas.style.cssText="width:90px;height:48px;background-color: transparent !important;",this.context=this.canvas.getContext("2d"),this.initializeCanvas()}createGradient(){if(!this.context)throw new Error("No context");const e=this.context.createLinearGradient(0,this.GRAPH_Y,0,this.GRAPH_Y+this.GRAPH_HEIGHT);let n;const r=this.fg;switch(this.fg.toLowerCase()){case"#0ff":n="#006666";break;case"#0f0":n="#006600";break;case"#ff0":n="#666600";break;case"#e1e1e1":n="#666666";break;default:n=this.bg;break}return e.addColorStop(0,n),e.addColorStop(1,r),e}initializeCanvas(){this.context&&(this.context.imageSmoothingEnabled=!1,this.context.font="bold "+9*this.PR+"px Helvetica,Arial,sans-serif",this.context.textBaseline="top",this.gradient=this.createGradient(),this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.HEIGHT),this.context.fillStyle=this.fg,this.context.fillText(this.name,this.TEXT_X,this.TEXT_Y),this.context.fillStyle=this.bg,this.context.globalAlpha=.9,this.context.fillRect(this.GRAPH_X,this.GRAPH_Y,this.GRAPH_WIDTH,this.GRAPH_HEIGHT))}update(e,n,r=0){if(!this.context||!this.gradient)return;const C=Math.min(1/0,e),w=Math.max(n,e);this.context.globalAlpha=1,this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.GRAPH_Y),this.context.fillStyle=this.fg,this.context.fillText(`${e.toFixed(r)} ${this.name} (${C.toFixed(r)}-${parseFloat(w.toFixed(r))})`,this.TEXT_X,this.TEXT_Y)}updateGraph(e,n){if(!this.context||!this.gradient)return;e===0&&n===0&&(n=1),n=Math.max(n,e,.1),e=Math.max(e,0);const r=Math.round(this.GRAPH_X),C=Math.round(this.GRAPH_Y),w=Math.round(this.GRAPH_WIDTH),E=Math.round(this.GRAPH_HEIGHT),O=Math.round(this.PR);this.context.drawImage(this.canvas,r+O,C,w-O,E,r,C,w-O,E),this.context.fillStyle=this.bg,this.context.fillRect(r+w-O,C,O,E);const le=Math.min(E,Math.round(e/n*E));le>0&&(this.context.globalAlpha=.9,this.context.fillStyle=this.gradient,this.context.fillRect(r+w-O,C+(E-le),O,le)),this.context.globalAlpha=1}}class PanelVSync extends Panel{constructor(e,n,r){super(e,n,r),this.vsyncValue=0,this.SMALL_HEIGHT=9*this.PR,this.HEIGHT=this.SMALL_HEIGHT,this.WIDTH=35*this.PR,this.TEXT_Y=0*this.PR,this.canvas.height=this.HEIGHT,this.canvas.width=this.WIDTH,this.canvas.style.height="9px",this.canvas.style.width="35px",this.canvas.style.cssText=`
|
|
4349
|
+
`;let Ot$2=class extends ShaderMaterial{constructor(e={}){const n=e,{lineWidth:r=1,color:C="#ffffff",opacity:w=1,map:E=null,dashOffset:O=0,dashArray:le=0,dashRatio:fe=0,sizeAttenuation:Se=!0,offsetLoop:ze=!0,offset:ke=new Vector2(0,0),scaleDown:Fe=0,alphaMap:mt=void 0,alphaTest:Lt=0,repeat:bt=new Vector2(1,1),resolution:Ue=new Vector2(1,1)}=n,Gt=ne$1(n,["lineWidth","color","opacity","map","dashOffset","dashArray","dashRatio","sizeAttenuation","offsetLoop","offset","scaleDown","alphaMap","alphaTest","repeat","resolution"]);super($$1(k$1({},Gt),{uniforms:{lineWidth:{value:r},color:{value:new Color$1(C)},opacity:{value:w},map:{value:E},useMap:{value:E?1:0},resolution:{value:Ue},sizeAttenuation:{value:Se?1:0},offset:{value:ke},offsetLoop:{value:ze?1:0},dashArray:{value:le},dashOffset:{value:O},dashRatio:{value:fe},useDash:{value:le>0?1:0},scaleDown:{value:Fe/10},alphaTest:{value:Lt},alphaMap:{value:mt},useAlphaMap:{value:mt?1:0},repeat:{value:bt}},vertexShader:dt,fragmentShader:ft$1})),this.type="MeshLineMaterial"}get color(){return this.uniforms.color.value}set color(e){this.uniforms.color.value=new Color$1(e)}get opacity(){var e;return((e=this.uniforms)==null?void 0:e.opacity.value)||1}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get alphaTest(){return this.uniforms.alphaTest.value}set alphaTest(e){this.uniforms&&(this.uniforms.alphaTest.value=e)}get map(){return this.uniforms.map.value}set map(e){this.uniforms.map.value=e,this.uniforms.useMap.value=e?1:0}get repeat(){return this.uniforms.repeat.value}set repeat(e){this.uniforms.repeat.value.copy(e)}get lineWidth(){return this.uniforms.lineWidth.value}set lineWidth(e){this.uniforms.lineWidth.value=e}get sizeAttenuation(){return this.uniforms.sizeAttenuation.value===1}set sizeAttenuation(e){this.uniforms.sizeAttenuation.value=e?1:0}};const K$2=new Vector4,ye$2=new Vector3,be$2=new Vector3,b$1=new Vector4,g=new Vector4,D$1=new Vector4,Q$2=new Vector3,X$1=new Matrix4,M$2=new Line3,ge$1=new Vector3,U$1=new Box3,W$1=new Sphere$1,T$2=new Vector4;let z$3,_;function Me$1(v,e,n){return T$2.set(0,0,-e,1).applyMatrix4(v.projectionMatrix),T$2.multiplyScalar(1/T$2.w),T$2.x=_/n.width,T$2.y=_/n.height,T$2.applyMatrix4(v.projectionMatrixInverse),T$2.multiplyScalar(1/T$2.w),Math.abs(Math.max(T$2.x,T$2.y))}function ht(v,e){const n=v.matrixWorld,r=v.geometry,C=r.attributes.instanceStart,w=r.attributes.instanceEnd,E=Math.min(r.instanceCount,C.count);for(let O=0,le=E;O<le;O++){M$2.start.fromBufferAttribute(C,O),M$2.end.fromBufferAttribute(w,O),M$2.applyMatrix4(n);const fe=new Vector3,Se=new Vector3;z$3.distanceSqToSegment(M$2.start,M$2.end,Se,fe),Se.distanceTo(fe)<_*.5&&e.push({point:Se,pointOnLine:fe,distance:z$3.origin.distanceTo(Se),object:v,face:null,faceIndex:O,uv:null,uv1:null})}}function pt(v,e,n){const r=e.projectionMatrix,C=v.material.resolution,w=v.matrixWorld,E=v.geometry,O=E.attributes.instanceStart,le=E.attributes.instanceEnd,fe=Math.min(E.instanceCount,O.count),Se=-e.near;z$3.at(1,D$1),D$1.w=1,D$1.applyMatrix4(e.matrixWorldInverse),D$1.applyMatrix4(r),D$1.multiplyScalar(1/D$1.w),D$1.x*=C.x/2,D$1.y*=C.y/2,D$1.z=0,Q$2.copy(D$1),X$1.multiplyMatrices(e.matrixWorldInverse,w);for(let ze=0,ke=fe;ze<ke;ze++){if(b$1.fromBufferAttribute(O,ze),g.fromBufferAttribute(le,ze),b$1.w=1,g.w=1,b$1.applyMatrix4(X$1),g.applyMatrix4(X$1),b$1.z>Se&&g.z>Se)continue;if(b$1.z>Se){const Ue=b$1.z-g.z,Gt=(b$1.z-Se)/Ue;b$1.lerp(g,Gt)}else if(g.z>Se){const Ue=g.z-b$1.z,Gt=(g.z-Se)/Ue;g.lerp(b$1,Gt)}b$1.applyMatrix4(r),g.applyMatrix4(r),b$1.multiplyScalar(1/b$1.w),g.multiplyScalar(1/g.w),b$1.x*=C.x/2,b$1.y*=C.y/2,g.x*=C.x/2,g.y*=C.y/2,M$2.start.copy(b$1),M$2.start.z=0,M$2.end.copy(g),M$2.end.z=0;const Fe=M$2.closestPointToPointParameter(Q$2,!0);M$2.at(Fe,ge$1);const mt=MathUtils.lerp(b$1.z,g.z,Fe),Lt=mt>=-1&&mt<=1,bt=Q$2.distanceTo(ge$1)<_*.5;if(Lt&&bt){M$2.start.fromBufferAttribute(O,ze),M$2.end.fromBufferAttribute(le,ze),M$2.start.applyMatrix4(w),M$2.end.applyMatrix4(w);const Ue=new Vector3,Gt=new Vector3;z$3.distanceSqToSegment(M$2.start,M$2.end,Gt,Ue),n.push({point:Gt,pointOnLine:Ue,distance:z$3.origin.distanceTo(Gt),object:v,face:null,faceIndex:ze,uv:null,uv1:null})}}}let _t$1=class extends Mesh{constructor(e=new LineSegmentsGeometry,n){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,r=e.attributes.instanceEnd,C=new Float32Array(2*n.count);for(let E=0,O=0,le=n.count;E<le;E++,O+=2)ye$2.fromBufferAttribute(n,E),be$2.fromBufferAttribute(r,E),C[O]=O===0?0:C[O-1],C[O+1]=C[O]+ye$2.distanceTo(be$2);const w=new InstancedInterleavedBuffer(C,2,1);return e.setAttribute("instanceDistanceStart",new InterleavedBufferAttribute(w,1,0)),e.setAttribute("instanceDistanceEnd",new InterleavedBufferAttribute(w,1,1)),this}raycast(e,n){const r=this.material.worldUnits,C=e.camera;C===null&&!r&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const w=e.params.Line2!==void 0&&e.params.Line2.threshold||0;z$3=e.ray;const E=this.matrixWorld,O=this.geometry,le=this.material;_=le.linewidth+w,O.boundingSphere===null&&O.computeBoundingSphere(),W$1.copy(O.boundingSphere).applyMatrix4(E);let fe;if(r)fe=_*.5;else{const ze=Math.max(C.near,W$1.distanceToPoint(z$3.origin));fe=Me$1(C,ze,le.resolution)}if(W$1.radius+=fe,z$3.intersectsSphere(W$1)===!1)return;O.boundingBox===null&&O.computeBoundingBox(),U$1.copy(O.boundingBox).applyMatrix4(E);let Se;if(r)Se=_*.5;else{const ze=Math.max(C.near,U$1.distanceToPoint(z$3.origin));Se=Me$1(C,ze,le.resolution)}U$1.expandByScalar(Se),z$3.intersectsBox(U$1)!==!1&&(r?ht(this,n):pt(this,C,n))}onBeforeRender(e){const n=this.material.uniforms;n&&n.resolution&&(e.getViewport(K$2),this.material.uniforms.resolution.value.set(K$2.z,K$2.w))}};function mergeAttributes(v){let e,n,r,C=-1,w=0;for(let fe=0;fe<v.length;++fe){const Se=v[fe];if(e===void 0&&(e=Se.array.constructor),e!==Se.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(n===void 0&&(n=Se.itemSize),n!==Se.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(r===void 0&&(r=Se.normalized),r!==Se.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(C===-1&&(C=Se.gpuType),C!==Se.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;w+=Se.count*n}const E=new e(w),O=new BufferAttribute(E,n,r);let le=0;for(let fe=0;fe<v.length;++fe){const Se=v[fe];if(Se.isInterleavedBufferAttribute){const ze=le/n;for(let ke=0,Fe=Se.count;ke<Fe;ke++)for(let mt=0;mt<n;mt++){const Lt=Se.getComponent(ke,mt);O.setComponent(ke+ze,mt,Lt)}}else E.set(Se.array,le);le+=Se.count*n}return C!==void 0&&(O.gpuType=C),O}function toTrianglesDrawMode(v,e){if(e===TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),v;if(e===TriangleFanDrawMode||e===TriangleStripDrawMode){let n=v.getIndex();if(n===null){const E=[],O=v.getAttribute("position");if(O!==void 0){for(let le=0;le<O.count;le++)E.push(le);v.setIndex(E),n=v.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),v}const r=n.count-2,C=[];if(e===TriangleFanDrawMode)for(let E=1;E<=r;E++)C.push(n.getX(0)),C.push(n.getX(E)),C.push(n.getX(E+1));else for(let E=0;E<r;E++)E%2===0?(C.push(n.getX(E)),C.push(n.getX(E+1)),C.push(n.getX(E+2))):(C.push(n.getX(E+2)),C.push(n.getX(E+1)),C.push(n.getX(E)));C.length/3!==r&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const w=v.clone();return w.setIndex(C),w.clearGroups(),w}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),v}function mergeGroups(v){if(v.groups.length===0)return console.warn("THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge."),v;let e=v.groups;if(e=e.sort((E,O)=>E.materialIndex!==O.materialIndex?E.materialIndex-O.materialIndex:E.start-O.start),v.getIndex()===null){const E=v.getAttribute("position"),O=[];for(let le=0;le<E.count;le+=3)O.push(le,le+1,le+2);v.setIndex(O)}const n=v.getIndex(),r=[];for(let E=0;E<e.length;E++){const O=e[E],le=O.start,fe=le+O.count;for(let Se=le;Se<fe;Se++)r.push(n.getX(Se))}v.dispose(),v.setIndex(r);let C=0;for(let E=0;E<e.length;E++){const O=e[E];O.start=C,C+=O.count}let w=e[0];v.groups=[w];for(let E=1;E<e.length;E++){const O=e[E];w.materialIndex===O.materialIndex?w.count+=O.count:(w=O,v.groups.push(w))}return v}const b=new Map,R$1=(v={})=>({generateTopUV(e,n,r,C,w){const E=n[r*3],O=n[r*3+1],le=n[C*3],fe=n[C*3+1],Se=n[w*3],ze=n[w*3+1];let ke;if(b.has(e))ke=b.get(e);else{let bt=v.box3;if(!bt){bt=new Box3;const Gt=e.parameters.shapes.getPoints().map(xt=>[xt.x,xt.y,0]).flat();bt.setFromArray(Gt)}const Ue=bt.getSize(new Vector3);v.split&&(Ue.y/=v.split),ke={box:bt,size:Ue},b.set(e,ke)}const{box:Fe,size:mt}=ke,Lt=v.split?1-v.split:0;return[new Vector2((E-Fe.min.x)/mt.x,(O-Fe.min.y)/mt.y+Lt),new Vector2((le-Fe.min.x)/mt.x,(fe-Fe.min.y)/mt.y+Lt),new Vector2((Se-Fe.min.x)/mt.x,(ze-Fe.min.y)/mt.y+Lt)]},generateSideWallUV(e,n,r,C,w,E){const O=n[r*3],le=n[r*3+1],fe=n[r*3+2],Se=n[C*3],ze=n[C*3+1],ke=n[C*3+2],Fe=n[w*3],mt=n[w*3+1],Lt=n[w*3+2],bt=n[E*3],Ue=n[E*3+1],Gt=n[E*3+2];let xt;if(b.has(n))xt=b.get(n);else{const wt=new Box3;wt.setFromArray(n);const Vt=wt.getSize(new Vector3);v.split&&(Vt.z/=1-v.split),v.sideRepeat&&(Vt.z/=v.sideRepeat),xt={box:wt,size:Vt},b.set(n,xt)}const{box:Xt,size:Zt}=xt;return Math.abs(le-ze)<Math.abs(O-Se)?[new Vector2((O-Xt.min.x)/Zt.x,(fe-Xt.min.z)/Zt.z),new Vector2((Se-Xt.min.x)/Zt.x,(ke-Xt.min.z)/Zt.z),new Vector2((Fe-Xt.min.x)/Zt.x,(Lt-Xt.min.z)/Zt.z),new Vector2((bt-Xt.min.x)/Zt.x,(Gt-Xt.min.z)/Zt.z)]:[new Vector2((le-Xt.min.y)/Zt.y,(fe-Xt.min.z)/Zt.z),new Vector2((ze-Xt.min.y)/Zt.y,(ke-Xt.min.z)/Zt.z),new Vector2((mt-Xt.min.y)/Zt.y,(Lt-Xt.min.z)/Zt.z),new Vector2((Ue-Xt.min.y)/Zt.y,(Gt-Xt.min.z)/Zt.z)]}}),P$1=()=>{b.clear()},CENTER=0,AVERAGE=1,SAH=2,CONTAINED=2,TRIANGLE_INTERSECT_COST=1.25,TRAVERSAL_COST=1,BYTES_PER_NODE=6*4+4+4,IS_LEAFNODE_FLAG=65535,FLOAT32_EPSILON=Math.pow(2,-24),SKIP_GENERATION=Symbol("SKIP_GENERATION");function getVertexCount$1(v){return v.index?v.index.count:v.attributes.position.count}function getTriCount$1(v){return getVertexCount$1(v)/3}function getIndexArray$1(v,e=ArrayBuffer){return v>65535?new Uint32Array(new e(4*v)):new Uint16Array(new e(2*v))}function ensureIndex$1(v,e){if(!v.index){const n=v.attributes.position.count,r=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,C=getIndexArray$1(n,r);v.setIndex(new BufferAttribute(C,1));for(let w=0;w<n;w++)C[w]=w}}function getFullGeometryRange(v,e){const n=getTriCount$1(v),r=e||v.drawRange,C=r.start/3,w=(r.start+r.count)/3,E=Math.max(0,C),O=Math.min(n,w)-E;return[{offset:Math.floor(E),count:Math.floor(O)}]}function getRootIndexRanges(v,e){if(!v.groups||!v.groups.length)return getFullGeometryRange(v,e);const n=[],r=new Set,C=e||v.drawRange,w=C.start/3,E=(C.start+C.count)/3;for(const le of v.groups){const fe=le.start/3,Se=(le.start+le.count)/3;r.add(Math.max(w,fe)),r.add(Math.min(E,Se))}const O=Array.from(r.values()).sort((le,fe)=>le-fe);for(let le=0;le<O.length-1;le++){const fe=O[le],Se=O[le+1];n.push({offset:Math.floor(fe),count:Math.floor(Se-fe)})}return n}function hasGroupGaps(v,e){const n=getTriCount$1(v),r=getRootIndexRanges(v,e).sort((E,O)=>E.offset-O.offset),C=r[r.length-1];C.count=Math.min(n-C.offset,C.count);let w=0;return r.forEach(({count:E})=>w+=E),n!==w}function getBounds(v,e,n,r,C){let w=1/0,E=1/0,O=1/0,le=-1/0,fe=-1/0,Se=-1/0,ze=1/0,ke=1/0,Fe=1/0,mt=-1/0,Lt=-1/0,bt=-1/0;for(let Ue=e*6,Gt=(e+n)*6;Ue<Gt;Ue+=6){const xt=v[Ue+0],Xt=v[Ue+1],Zt=xt-Xt,wt=xt+Xt;Zt<w&&(w=Zt),wt>le&&(le=wt),xt<ze&&(ze=xt),xt>mt&&(mt=xt);const Vt=v[Ue+2],Wt=v[Ue+3],It=Vt-Wt,Nt=Vt+Wt;It<E&&(E=It),Nt>fe&&(fe=Nt),Vt<ke&&(ke=Vt),Vt>Lt&&(Lt=Vt);const Ft=v[Ue+4],jt=v[Ue+5],n0=Ft-jt,s0=Ft+jt;n0<O&&(O=n0),s0>Se&&(Se=s0),Ft<Fe&&(Fe=Ft),Ft>bt&&(bt=Ft)}r[0]=w,r[1]=E,r[2]=O,r[3]=le,r[4]=fe,r[5]=Se,C[0]=ze,C[1]=ke,C[2]=Fe,C[3]=mt,C[4]=Lt,C[5]=bt}function computeTriangleBounds(v,e=null,n=null,r=null){const C=v.attributes.position,w=v.index?v.index.array:null,E=getTriCount$1(v),O=C.normalized;let le;e===null?(le=new Float32Array(E*6),n=0,r=E):(le=e,n=n||0,r=r||E);const fe=C.array,Se=C.offset||0;let ze=3;C.isInterleavedBufferAttribute&&(ze=C.data.stride);const ke=["getX","getY","getZ"];for(let Fe=n;Fe<n+r;Fe++){const mt=Fe*3,Lt=Fe*6;let bt=mt+0,Ue=mt+1,Gt=mt+2;w&&(bt=w[bt],Ue=w[Ue],Gt=w[Gt]),O||(bt=bt*ze+Se,Ue=Ue*ze+Se,Gt=Gt*ze+Se);for(let xt=0;xt<3;xt++){let Xt,Zt,wt;O?(Xt=C[ke[xt]](bt),Zt=C[ke[xt]](Ue),wt=C[ke[xt]](Gt)):(Xt=fe[bt+xt],Zt=fe[Ue+xt],wt=fe[Gt+xt]);let Vt=Xt;Zt<Vt&&(Vt=Zt),wt<Vt&&(Vt=wt);let Wt=Xt;Zt>Wt&&(Wt=Zt),wt>Wt&&(Wt=wt);const It=(Wt-Vt)/2,Nt=xt*2;le[Lt+Nt+0]=Vt+It,le[Lt+Nt+1]=It+(Math.abs(Vt)+It)*FLOAT32_EPSILON}}return le}function arrayToBox(v,e,n){return n.min.x=e[v],n.min.y=e[v+1],n.min.z=e[v+2],n.max.x=e[v+3],n.max.y=e[v+4],n.max.z=e[v+5],n}function getLongestEdgeIndex(v){let e=-1,n=-1/0;for(let r=0;r<3;r++){const C=v[r+3]-v[r];C>n&&(n=C,e=r)}return e}function copyBounds(v,e){e.set(v)}function unionBounds(v,e,n){let r,C;for(let w=0;w<3;w++){const E=w+3;r=v[w],C=e[w],n[w]=r<C?r:C,r=v[E],C=e[E],n[E]=r>C?r:C}}function expandByTriangleBounds(v,e,n){for(let r=0;r<3;r++){const C=e[v+2*r],w=e[v+2*r+1],E=C-w,O=C+w;E<n[r]&&(n[r]=E),O>n[r+3]&&(n[r+3]=O)}}function computeSurfaceArea(v){const e=v[3]-v[0],n=v[4]-v[1],r=v[5]-v[2];return 2*(e*n+n*r+r*e)}const BIN_COUNT=32,binsSort=(v,e)=>v.candidate-e.candidate,sahBins=new Array(BIN_COUNT).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),leftBounds=new Float32Array(6);function getOptimalSplit(v,e,n,r,C,w){let E=-1,O=0;if(w===CENTER)E=getLongestEdgeIndex(e),E!==-1&&(O=(e[E]+e[E+3])/2);else if(w===AVERAGE)E=getLongestEdgeIndex(v),E!==-1&&(O=getAverage(n,r,C,E));else if(w===SAH){const le=computeSurfaceArea(v);let fe=TRIANGLE_INTERSECT_COST*C;const Se=r*6,ze=(r+C)*6;for(let ke=0;ke<3;ke++){const Fe=e[ke],bt=(e[ke+3]-Fe)/BIN_COUNT;if(C<BIN_COUNT/4){const Ue=[...sahBins];Ue.length=C;let Gt=0;for(let Xt=Se;Xt<ze;Xt+=6,Gt++){const Zt=Ue[Gt];Zt.candidate=n[Xt+2*ke],Zt.count=0;const{bounds:wt,leftCacheBounds:Vt,rightCacheBounds:Wt}=Zt;for(let It=0;It<3;It++)Wt[It]=1/0,Wt[It+3]=-1/0,Vt[It]=1/0,Vt[It+3]=-1/0,wt[It]=1/0,wt[It+3]=-1/0;expandByTriangleBounds(Xt,n,wt)}Ue.sort(binsSort);let xt=C;for(let Xt=0;Xt<xt;Xt++){const Zt=Ue[Xt];for(;Xt+1<xt&&Ue[Xt+1].candidate===Zt.candidate;)Ue.splice(Xt+1,1),xt--}for(let Xt=Se;Xt<ze;Xt+=6){const Zt=n[Xt+2*ke];for(let wt=0;wt<xt;wt++){const Vt=Ue[wt];Zt>=Vt.candidate?expandByTriangleBounds(Xt,n,Vt.rightCacheBounds):(expandByTriangleBounds(Xt,n,Vt.leftCacheBounds),Vt.count++)}}for(let Xt=0;Xt<xt;Xt++){const Zt=Ue[Xt],wt=Zt.count,Vt=C-Zt.count,Wt=Zt.leftCacheBounds,It=Zt.rightCacheBounds;let Nt=0;wt!==0&&(Nt=computeSurfaceArea(Wt)/le);let Ft=0;Vt!==0&&(Ft=computeSurfaceArea(It)/le);const jt=TRAVERSAL_COST+TRIANGLE_INTERSECT_COST*(Nt*wt+Ft*Vt);jt<fe&&(E=ke,fe=jt,O=Zt.candidate)}}else{for(let xt=0;xt<BIN_COUNT;xt++){const Xt=sahBins[xt];Xt.count=0,Xt.candidate=Fe+bt+xt*bt;const Zt=Xt.bounds;for(let wt=0;wt<3;wt++)Zt[wt]=1/0,Zt[wt+3]=-1/0}for(let xt=Se;xt<ze;xt+=6){let wt=~~((n[xt+2*ke]-Fe)/bt);wt>=BIN_COUNT&&(wt=BIN_COUNT-1);const Vt=sahBins[wt];Vt.count++,expandByTriangleBounds(xt,n,Vt.bounds)}const Ue=sahBins[BIN_COUNT-1];copyBounds(Ue.bounds,Ue.rightCacheBounds);for(let xt=BIN_COUNT-2;xt>=0;xt--){const Xt=sahBins[xt],Zt=sahBins[xt+1];unionBounds(Xt.bounds,Zt.rightCacheBounds,Xt.rightCacheBounds)}let Gt=0;for(let xt=0;xt<BIN_COUNT-1;xt++){const Xt=sahBins[xt],Zt=Xt.count,wt=Xt.bounds,Wt=sahBins[xt+1].rightCacheBounds;Zt!==0&&(Gt===0?copyBounds(wt,leftBounds):unionBounds(wt,leftBounds,leftBounds)),Gt+=Zt;let It=0,Nt=0;Gt!==0&&(It=computeSurfaceArea(leftBounds)/le);const Ft=C-Gt;Ft!==0&&(Nt=computeSurfaceArea(Wt)/le);const jt=TRAVERSAL_COST+TRIANGLE_INTERSECT_COST*(It*Gt+Nt*Ft);jt<fe&&(E=ke,fe=jt,O=Xt.candidate)}}}}else console.warn(`MeshBVH: Invalid build strategy value ${w} used.`);return{axis:E,pos:O}}function getAverage(v,e,n,r){let C=0;for(let w=e,E=e+n;w<E;w++)C+=v[w*6+r*2];return C/n}class MeshBVHNode{constructor(){this.boundingData=new Float32Array(6)}}function partition(v,e,n,r,C,w){let E=r,O=r+C-1;const le=w.pos,fe=w.axis*2;for(;;){for(;E<=O&&n[E*6+fe]<le;)E++;for(;E<=O&&n[O*6+fe]>=le;)O--;if(E<O){for(let Se=0;Se<3;Se++){let ze=e[E*3+Se];e[E*3+Se]=e[O*3+Se],e[O*3+Se]=ze}for(let Se=0;Se<6;Se++){let ze=n[E*6+Se];n[E*6+Se]=n[O*6+Se],n[O*6+Se]=ze}E++,O--}else return E}}function partition_indirect(v,e,n,r,C,w){let E=r,O=r+C-1;const le=w.pos,fe=w.axis*2;for(;;){for(;E<=O&&n[E*6+fe]<le;)E++;for(;E<=O&&n[O*6+fe]>=le;)O--;if(E<O){let Se=v[E];v[E]=v[O],v[O]=Se;for(let ze=0;ze<6;ze++){let ke=n[E*6+ze];n[E*6+ze]=n[O*6+ze],n[O*6+ze]=ke}E++,O--}else return E}}function IS_LEAF(v,e){return e[v+15]===65535}function OFFSET(v,e){return e[v+6]}function COUNT(v,e){return e[v+14]}function LEFT_NODE(v){return v+8}function RIGHT_NODE(v,e){return e[v+6]}function SPLIT_AXIS(v,e){return e[v+7]}function BOUNDING_DATA_INDEX(v){return v}let float32Array,uint32Array,uint16Array,uint8Array;const MAX_POINTER=Math.pow(2,32);function countNodes(v){return"count"in v?1:1+countNodes(v.left)+countNodes(v.right)}function populateBuffer(v,e,n){return float32Array=new Float32Array(n),uint32Array=new Uint32Array(n),uint16Array=new Uint16Array(n),uint8Array=new Uint8Array(n),_populateBuffer(v,e)}function _populateBuffer(v,e){const n=v/4,r=v/2,C="count"in e,w=e.boundingData;for(let E=0;E<6;E++)float32Array[n+E]=w[E];if(C)if(e.buffer){const E=e.buffer;uint8Array.set(new Uint8Array(E),v);for(let O=v,le=v+E.byteLength;O<le;O+=BYTES_PER_NODE){const fe=O/2;IS_LEAF(fe,uint16Array)||(uint32Array[O/4+6]+=n)}return v+E.byteLength}else{const E=e.offset,O=e.count;return uint32Array[n+6]=E,uint16Array[r+14]=O,uint16Array[r+15]=IS_LEAFNODE_FLAG,v+BYTES_PER_NODE}else{const E=e.left,O=e.right,le=e.splitAxis;let fe;if(fe=_populateBuffer(v+BYTES_PER_NODE,E),fe/4>MAX_POINTER)throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return uint32Array[n+6]=fe/4,fe=_populateBuffer(fe,O),uint32Array[n+7]=le,fe}}function generateIndirectBuffer(v,e){const n=(v.index?v.index.count:v.attributes.position.count)/3,r=n>bn(2,16),C=r?4:2,w=e?new SharedArrayBuffer(n*C):new ArrayBuffer(n*C),E=r?new Uint32Array(w):new Uint16Array(w);for(let O=0,le=E.length;O<le;O++)E[O]=O;return E}function buildTree(v,e,n,r,C){const{maxDepth:w,verbose:E,maxLeafTris:O,strategy:le,onProgress:fe,indirect:Se}=C,ze=v._indirectBuffer,ke=v.geometry,Fe=ke.index?ke.index.array:null,mt=Se?partition_indirect:partition,Lt=getTriCount$1(ke),bt=new Float32Array(6);let Ue=!1;const Gt=new MeshBVHNode;return getBounds(e,n,r,Gt.boundingData,bt),Xt(Gt,n,r,bt),Gt;function xt(Zt){fe&&fe(Zt/Lt)}function Xt(Zt,wt,Vt,Wt=null,It=0){if(!Ue&&It>=w&&(Ue=!0,E&&(console.warn(`MeshBVH: Max depth of ${w} reached when generating BVH. Consider increasing maxDepth.`),console.warn(ke))),Vt<=O||It>=w)return xt(wt+Vt),Zt.offset=wt,Zt.count=Vt,Zt;const Nt=getOptimalSplit(Zt.boundingData,Wt,e,wt,Vt,le);if(Nt.axis===-1)return xt(wt+Vt),Zt.offset=wt,Zt.count=Vt,Zt;const Ft=mt(ze,Fe,e,wt,Vt,Nt);if(Ft===wt||Ft===wt+Vt)xt(wt+Vt),Zt.offset=wt,Zt.count=Vt;else{Zt.splitAxis=Nt.axis;const jt=new MeshBVHNode,n0=wt,s0=Ft-wt;Zt.left=jt,getBounds(e,n0,s0,jt.boundingData,bt),Xt(jt,n0,s0,bt,It+1);const qt=new MeshBVHNode,Ht=Ft,$t=Vt-s0;Zt.right=qt,getBounds(e,Ht,$t,qt.boundingData,bt),Xt(qt,Ht,$t,bt,It+1)}return Zt}}function buildPackedTree(v,e){const n=v.geometry;e.indirect&&(v._indirectBuffer=generateIndirectBuffer(n,e.useSharedArrayBuffer),hasGroupGaps(n,e.range)&&!e.verbose&&console.warn('MeshBVH: Provided geometry contains groups or a range that do not fully span the vertex contents while using the "indirect" option. BVH may incorrectly report intersections on unrendered portions of the geometry.')),v._indirectBuffer||ensureIndex$1(n,e);const r=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,C=computeTriangleBounds(n),w=e.indirect?getFullGeometryRange(n,e.range):getRootIndexRanges(n,e.range);v._roots=w.map(E=>{const O=buildTree(v,C,E.offset,E.count,e),le=countNodes(O),fe=new r(BYTES_PER_NODE*le);return populateBuffer(0,O,fe),fe})}class SeparatingAxisBounds{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,n){let r=1/0,C=-1/0;for(let w=0,E=e.length;w<E;w++){const le=e[w][n];r=le<r?le:r,C=le>C?le:C}this.min=r,this.max=C}setFromPoints(e,n){let r=1/0,C=-1/0;for(let w=0,E=n.length;w<E;w++){const O=n[w],le=e.dot(O);r=le<r?le:r,C=le>C?le:C}this.min=r,this.max=C}isSeparated(e){return this.min>e.max||e.min>this.max}}SeparatingAxisBounds.prototype.setFromBox=function(){const v=new Vector3;return function(n,r){const C=r.min,w=r.max;let E=1/0,O=-1/0;for(let le=0;le<=1;le++)for(let fe=0;fe<=1;fe++)for(let Se=0;Se<=1;Se++){v.x=C.x*le+w.x*(1-le),v.y=C.y*fe+w.y*(1-fe),v.z=C.z*Se+w.z*(1-Se);const ze=n.dot(v);E=Math.min(ze,E),O=Math.max(ze,O)}this.min=E,this.max=O}}();const closestPointLineToLine=function(){const v=new Vector3,e=new Vector3,n=new Vector3;return function(C,w,E){const O=C.start,le=v,fe=w.start,Se=e;n.subVectors(O,fe),v.subVectors(C.end,C.start),e.subVectors(w.end,w.start);const ze=n.dot(Se),ke=Se.dot(le),Fe=Se.dot(Se),mt=n.dot(le),bt=le.dot(le)*Fe-ke*ke;let Ue,Gt;bt!==0?Ue=(ze*ke-mt*Fe)/bt:Ue=0,Gt=(ze+Ue*ke)/Fe,E.x=Ue,E.y=Gt}}(),closestPointsSegmentToSegment=function(){const v=new Vector2,e=new Vector3,n=new Vector3;return function(C,w,E,O){closestPointLineToLine(C,w,v);let le=v.x,fe=v.y;if(le>=0&&le<=1&&fe>=0&&fe<=1){C.at(le,E),w.at(fe,O);return}else if(le>=0&&le<=1){fe<0?w.at(0,O):w.at(1,O),C.closestPointToPoint(O,!0,E);return}else if(fe>=0&&fe<=1){le<0?C.at(0,E):C.at(1,E),w.closestPointToPoint(E,!0,O);return}else{let Se;le<0?Se=C.start:Se=C.end;let ze;fe<0?ze=w.start:ze=w.end;const ke=e,Fe=n;if(C.closestPointToPoint(ze,!0,e),w.closestPointToPoint(Se,!0,n),ke.distanceToSquared(ze)<=Fe.distanceToSquared(Se)){E.copy(ke),O.copy(ze);return}else{E.copy(Se),O.copy(Fe);return}}}}(),sphereIntersectTriangle=function(){const v=new Vector3,e=new Vector3,n=new Plane$1,r=new Line3;return function(w,E){const{radius:O,center:le}=w,{a:fe,b:Se,c:ze}=E;if(r.start=fe,r.end=Se,r.closestPointToPoint(le,!0,v).distanceTo(le)<=O||(r.start=fe,r.end=ze,r.closestPointToPoint(le,!0,v).distanceTo(le)<=O)||(r.start=Se,r.end=ze,r.closestPointToPoint(le,!0,v).distanceTo(le)<=O))return!0;const Lt=E.getPlane(n);if(Math.abs(Lt.distanceToPoint(le))<=O){const Ue=Lt.projectPoint(le,e);if(E.containsPoint(Ue))return!0}return!1}}(),ZERO_EPSILON=1e-15;function isNearZero(v){return Math.abs(v)<ZERO_EPSILON}class ExtendedTriangle extends Triangle{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new Vector3),this.satBounds=new Array(4).fill().map(()=>new SeparatingAxisBounds),this.points=[this.a,this.b,this.c],this.sphere=new Sphere$1,this.plane=new Plane$1,this.needsUpdate=!0}intersectsSphere(e){return sphereIntersectTriangle(e,this)}update(){const e=this.a,n=this.b,r=this.c,C=this.points,w=this.satAxes,E=this.satBounds,O=w[0],le=E[0];this.getNormal(O),le.setFromPoints(O,C);const fe=w[1],Se=E[1];fe.subVectors(e,n),Se.setFromPoints(fe,C);const ze=w[2],ke=E[2];ze.subVectors(n,r),ke.setFromPoints(ze,C);const Fe=w[3],mt=E[3];Fe.subVectors(r,e),mt.setFromPoints(Fe,C),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(O,e),this.needsUpdate=!1}}ExtendedTriangle.prototype.closestPointToSegment=function(){const v=new Vector3,e=new Vector3,n=new Line3;return function(C,w=null,E=null){const{start:O,end:le}=C,fe=this.points;let Se,ze=1/0;for(let ke=0;ke<3;ke++){const Fe=(ke+1)%3;n.start.copy(fe[ke]),n.end.copy(fe[Fe]),closestPointsSegmentToSegment(n,C,v,e),Se=v.distanceToSquared(e),Se<ze&&(ze=Se,w&&w.copy(v),E&&E.copy(e))}return this.closestPointToPoint(O,v),Se=O.distanceToSquared(v),Se<ze&&(ze=Se,w&&w.copy(v),E&&E.copy(O)),this.closestPointToPoint(le,v),Se=le.distanceToSquared(v),Se<ze&&(ze=Se,w&&w.copy(v),E&&E.copy(le)),Math.sqrt(ze)}}();ExtendedTriangle.prototype.intersectsTriangle=function(){const v=new ExtendedTriangle,e=new Array(3),n=new Array(3),r=new SeparatingAxisBounds,C=new SeparatingAxisBounds,w=new Vector3,E=new Vector3,O=new Vector3,le=new Vector3,fe=new Vector3,Se=new Line3,ze=new Line3,ke=new Line3,Fe=new Vector3;function mt(Lt,bt,Ue){const Gt=Lt.points;let xt=0,Xt=-1;for(let Zt=0;Zt<3;Zt++){const{start:wt,end:Vt}=Se;wt.copy(Gt[Zt]),Vt.copy(Gt[(Zt+1)%3]),Se.delta(E);const Wt=isNearZero(bt.distanceToPoint(wt));if(isNearZero(bt.normal.dot(E))&&Wt){Ue.copy(Se),xt=2;break}const It=bt.intersectLine(Se,Fe);if(!It&&Wt&&Fe.copy(wt),(It||Wt)&&!isNearZero(Fe.distanceTo(Vt))){if(xt<=1)(xt===1?Ue.start:Ue.end).copy(Fe),Wt&&(Xt=xt);else if(xt>=2){(Xt===1?Ue.start:Ue.end).copy(Fe),xt=2;break}if(xt++,xt===2&&Xt===-1)break}}return xt}return function(bt,Ue=null,Gt=!1){this.needsUpdate&&this.update(),bt.isExtendedTriangle?bt.needsUpdate&&bt.update():(v.copy(bt),v.update(),bt=v);const xt=this.plane,Xt=bt.plane;if(Math.abs(xt.normal.dot(Xt.normal))>1-1e-10){const Zt=this.satBounds,wt=this.satAxes;n[0]=bt.a,n[1]=bt.b,n[2]=bt.c;for(let It=0;It<4;It++){const Nt=Zt[It],Ft=wt[It];if(r.setFromPoints(Ft,n),Nt.isSeparated(r))return!1}const Vt=bt.satBounds,Wt=bt.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let It=0;It<4;It++){const Nt=Vt[It],Ft=Wt[It];if(r.setFromPoints(Ft,e),Nt.isSeparated(r))return!1}for(let It=0;It<4;It++){const Nt=wt[It];for(let Ft=0;Ft<4;Ft++){const jt=Wt[Ft];if(w.crossVectors(Nt,jt),r.setFromPoints(w,e),C.setFromPoints(w,n),r.isSeparated(C))return!1}}return Ue&&(Gt||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),Ue.start.set(0,0,0),Ue.end.set(0,0,0)),!0}else{const Zt=mt(this,Xt,ze);if(Zt===1&&bt.containsPoint(ze.end))return Ue&&(Ue.start.copy(ze.end),Ue.end.copy(ze.end)),!0;if(Zt!==2)return!1;const wt=mt(bt,xt,ke);if(wt===1&&this.containsPoint(ke.end))return Ue&&(Ue.start.copy(ke.end),Ue.end.copy(ke.end)),!0;if(wt!==2)return!1;if(ze.delta(O),ke.delta(le),O.dot(le)<0){let n0=ke.start;ke.start=ke.end,ke.end=n0}const Vt=ze.start.dot(O),Wt=ze.end.dot(O),It=ke.start.dot(O),Nt=ke.end.dot(O),Ft=Wt<It,jt=Vt<Nt;return Vt!==Nt&&It!==Wt&&Ft===jt?!1:(Ue&&(fe.subVectors(ze.start,ke.start),fe.dot(O)>0?Ue.start.copy(ze.start):Ue.start.copy(ke.start),fe.subVectors(ze.end,ke.end),fe.dot(O)<0?Ue.end.copy(ze.end):Ue.end.copy(ke.end)),!0)}}}();ExtendedTriangle.prototype.distanceToPoint=function(){const v=new Vector3;return function(n){return this.closestPointToPoint(n,v),n.distanceTo(v)}}();ExtendedTriangle.prototype.distanceToTriangle=function(){const v=new Vector3,e=new Vector3,n=["a","b","c"],r=new Line3,C=new Line3;return function(E,O=null,le=null){const fe=O||le?r:null;if(this.intersectsTriangle(E,fe))return(O||le)&&(O&&fe.getCenter(O),le&&fe.getCenter(le)),0;let Se=1/0;for(let ze=0;ze<3;ze++){let ke;const Fe=n[ze],mt=E[Fe];this.closestPointToPoint(mt,v),ke=mt.distanceToSquared(v),ke<Se&&(Se=ke,O&&O.copy(v),le&&le.copy(mt));const Lt=this[Fe];E.closestPointToPoint(Lt,v),ke=Lt.distanceToSquared(v),ke<Se&&(Se=ke,O&&O.copy(Lt),le&&le.copy(v))}for(let ze=0;ze<3;ze++){const ke=n[ze],Fe=n[(ze+1)%3];r.set(this[ke],this[Fe]);for(let mt=0;mt<3;mt++){const Lt=n[mt],bt=n[(mt+1)%3];C.set(E[Lt],E[bt]),closestPointsSegmentToSegment(r,C,v,e);const Ue=v.distanceToSquared(e);Ue<Se&&(Se=Ue,O&&O.copy(v),le&&le.copy(e))}}return Math.sqrt(Se)}}();class OrientedBox{constructor(e,n,r){this.isOrientedBox=!0,this.min=new Vector3,this.max=new Vector3,this.matrix=new Matrix4,this.invMatrix=new Matrix4,this.points=new Array(8).fill().map(()=>new Vector3),this.satAxes=new Array(3).fill().map(()=>new Vector3),this.satBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds),this.alignedSatBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds),this.needsUpdate=!1,e&&this.min.copy(e),n&&this.max.copy(n),r&&this.matrix.copy(r)}set(e,n,r){this.min.copy(e),this.max.copy(n),this.matrix.copy(r),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}}OrientedBox.prototype.update=function(){return function(){const e=this.matrix,n=this.min,r=this.max,C=this.points;for(let fe=0;fe<=1;fe++)for(let Se=0;Se<=1;Se++)for(let ze=0;ze<=1;ze++){const ke=1*fe|2*Se|4*ze,Fe=C[ke];Fe.x=fe?r.x:n.x,Fe.y=Se?r.y:n.y,Fe.z=ze?r.z:n.z,Fe.applyMatrix4(e)}const w=this.satBounds,E=this.satAxes,O=C[0];for(let fe=0;fe<3;fe++){const Se=E[fe],ze=w[fe],ke=1<<fe,Fe=C[ke];Se.subVectors(O,Fe),ze.setFromPoints(Se,C)}const le=this.alignedSatBounds;le[0].setFromPointsField(C,"x"),le[1].setFromPointsField(C,"y"),le[2].setFromPointsField(C,"z"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1}}();OrientedBox.prototype.intersectsBox=function(){const v=new SeparatingAxisBounds;return function(n){this.needsUpdate&&this.update();const r=n.min,C=n.max,w=this.satBounds,E=this.satAxes,O=this.alignedSatBounds;if(v.min=r.x,v.max=C.x,O[0].isSeparated(v)||(v.min=r.y,v.max=C.y,O[1].isSeparated(v))||(v.min=r.z,v.max=C.z,O[2].isSeparated(v)))return!1;for(let le=0;le<3;le++){const fe=E[le],Se=w[le];if(v.setFromBox(fe,n),Se.isSeparated(v))return!1}return!0}}();OrientedBox.prototype.intersectsTriangle=function(){const v=new ExtendedTriangle,e=new Array(3),n=new SeparatingAxisBounds,r=new SeparatingAxisBounds,C=new Vector3;return function(E){this.needsUpdate&&this.update(),E.isExtendedTriangle?E.needsUpdate&&E.update():(v.copy(E),v.update(),E=v);const O=this.satBounds,le=this.satAxes;e[0]=E.a,e[1]=E.b,e[2]=E.c;for(let ke=0;ke<3;ke++){const Fe=O[ke],mt=le[ke];if(n.setFromPoints(mt,e),Fe.isSeparated(n))return!1}const fe=E.satBounds,Se=E.satAxes,ze=this.points;for(let ke=0;ke<3;ke++){const Fe=fe[ke],mt=Se[ke];if(n.setFromPoints(mt,ze),Fe.isSeparated(n))return!1}for(let ke=0;ke<3;ke++){const Fe=le[ke];for(let mt=0;mt<4;mt++){const Lt=Se[mt];if(C.crossVectors(Fe,Lt),n.setFromPoints(C,e),r.setFromPoints(C,ze),n.isSeparated(r))return!1}}return!0}}();OrientedBox.prototype.closestPointToPoint=function(){return function(e,n){return this.needsUpdate&&this.update(),n.copy(e).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),n}}();OrientedBox.prototype.distanceToPoint=function(){const v=new Vector3;return function(n){return this.closestPointToPoint(n,v),n.distanceTo(v)}}();OrientedBox.prototype.distanceToBox=function(){const v=["x","y","z"],e=new Array(12).fill().map(()=>new Line3),n=new Array(12).fill().map(()=>new Line3),r=new Vector3,C=new Vector3;return function(E,O=0,le=null,fe=null){if(this.needsUpdate&&this.update(),this.intersectsBox(E))return(le||fe)&&(E.getCenter(C),this.closestPointToPoint(C,r),E.closestPointToPoint(r,C),le&&le.copy(r),fe&&fe.copy(C)),0;const Se=O*O,ze=E.min,ke=E.max,Fe=this.points;let mt=1/0;for(let bt=0;bt<8;bt++){const Ue=Fe[bt];C.copy(Ue).clamp(ze,ke);const Gt=Ue.distanceToSquared(C);if(Gt<mt&&(mt=Gt,le&&le.copy(Ue),fe&&fe.copy(C),Gt<Se))return Math.sqrt(Gt)}let Lt=0;for(let bt=0;bt<3;bt++)for(let Ue=0;Ue<=1;Ue++)for(let Gt=0;Gt<=1;Gt++){const xt=(bt+1)%3,Xt=(bt+2)%3,Zt=Ue<<xt|Gt<<Xt,wt=1<<bt|Ue<<xt|Gt<<Xt,Vt=Fe[Zt],Wt=Fe[wt];e[Lt].set(Vt,Wt);const Nt=v[bt],Ft=v[xt],jt=v[Xt],n0=n[Lt],s0=n0.start,qt=n0.end;s0[Nt]=ze[Nt],s0[Ft]=Ue?ze[Ft]:ke[Ft],s0[jt]=Gt?ze[jt]:ke[Ft],qt[Nt]=ke[Nt],qt[Ft]=Ue?ze[Ft]:ke[Ft],qt[jt]=Gt?ze[jt]:ke[Ft],Lt++}for(let bt=0;bt<=1;bt++)for(let Ue=0;Ue<=1;Ue++)for(let Gt=0;Gt<=1;Gt++){C.x=bt?ke.x:ze.x,C.y=Ue?ke.y:ze.y,C.z=Gt?ke.z:ze.z,this.closestPointToPoint(C,r);const xt=C.distanceToSquared(r);if(xt<mt&&(mt=xt,le&&le.copy(r),fe&&fe.copy(C),xt<Se))return Math.sqrt(xt)}for(let bt=0;bt<12;bt++){const Ue=e[bt];for(let Gt=0;Gt<12;Gt++){const xt=n[Gt];closestPointsSegmentToSegment(Ue,xt,r,C);const Xt=r.distanceToSquared(C);if(Xt<mt&&(mt=Xt,le&&le.copy(r),fe&&fe.copy(C),Xt<Se))return Math.sqrt(Xt)}}return Math.sqrt(mt)}}();class PrimitivePool{constructor(e){this._getNewPrimitive=e,this._primitives=[]}getPrimitive(){const e=this._primitives;return e.length===0?this._getNewPrimitive():e.pop()}releasePrimitive(e){this._primitives.push(e)}}class ExtendedTrianglePoolBase extends PrimitivePool{constructor(){super(()=>new ExtendedTriangle)}}const ExtendedTrianglePool=new ExtendedTrianglePoolBase;class _BufferStack{constructor(){this.float32Array=null,this.uint16Array=null,this.uint32Array=null;const e=[];let n=null;this.setBuffer=r=>{n&&e.push(n),n=r,this.float32Array=new Float32Array(r),this.uint16Array=new Uint16Array(r),this.uint32Array=new Uint32Array(r)},this.clearBuffer=()=>{n=null,this.float32Array=null,this.uint16Array=null,this.uint32Array=null,e.length!==0&&this.setBuffer(e.pop())}}}const BufferStack=new _BufferStack;let _box1,_box2;const boxStack=[],boxPool=new PrimitivePool(()=>new Box3);function shapecast(v,e,n,r,C,w){_box1=boxPool.getPrimitive(),_box2=boxPool.getPrimitive(),boxStack.push(_box1,_box2),BufferStack.setBuffer(v._roots[e]);const E=shapecastTraverse(0,v.geometry,n,r,C,w);BufferStack.clearBuffer(),boxPool.releasePrimitive(_box1),boxPool.releasePrimitive(_box2),boxStack.pop(),boxStack.pop();const O=boxStack.length;return O>0&&(_box2=boxStack[O-1],_box1=boxStack[O-2]),E}function shapecastTraverse(v,e,n,r,C=null,w=0,E=0){const{float32Array:O,uint16Array:le,uint32Array:fe}=BufferStack;let Se=v*2;if(IS_LEAF(Se,le)){const ke=OFFSET(v,fe),Fe=COUNT(Se,le);return arrayToBox(v,O,_box1),r(ke,Fe,!1,E,w+v,_box1)}else{let Nt=function(jt){const{uint16Array:n0,uint32Array:s0}=BufferStack;let qt=jt*2;for(;!IS_LEAF(qt,n0);)jt=LEFT_NODE(jt),qt=jt*2;return OFFSET(jt,s0)},Ft=function(jt){const{uint16Array:n0,uint32Array:s0}=BufferStack;let qt=jt*2;for(;!IS_LEAF(qt,n0);)jt=RIGHT_NODE(jt,s0),qt=jt*2;return OFFSET(jt,s0)+COUNT(qt,n0)};const ke=LEFT_NODE(v),Fe=RIGHT_NODE(v,fe);let mt=ke,Lt=Fe,bt,Ue,Gt,xt;if(C&&(Gt=_box1,xt=_box2,arrayToBox(mt,O,Gt),arrayToBox(Lt,O,xt),bt=C(Gt),Ue=C(xt),Ue<bt)){mt=Fe,Lt=ke;const jt=bt;bt=Ue,Ue=jt,Gt=xt}Gt||(Gt=_box1,arrayToBox(mt,O,Gt));const Xt=IS_LEAF(mt*2,le),Zt=n(Gt,Xt,bt,E+1,w+mt);let wt;if(Zt===CONTAINED){const jt=Nt(mt),s0=Ft(mt)-jt;wt=r(jt,s0,!0,E+1,w+mt,Gt)}else wt=Zt&&shapecastTraverse(mt,e,n,r,C,w,E+1);if(wt)return!0;xt=_box2,arrayToBox(Lt,O,xt);const Vt=IS_LEAF(Lt*2,le),Wt=n(xt,Vt,Ue,E+1,w+Lt);let It;if(Wt===CONTAINED){const jt=Nt(Lt),s0=Ft(Lt)-jt;It=r(jt,s0,!0,E+1,w+Lt,xt)}else It=Wt&&shapecastTraverse(Lt,e,n,r,C,w,E+1);return!!It}}const temp=new Vector3,temp1$2=new Vector3;function closestPointToPoint(v,e,n={},r=0,C=1/0){const w=r*r,E=C*C;let O=1/0,le=null;if(v.shapecast({boundsTraverseOrder:Se=>(temp.copy(e).clamp(Se.min,Se.max),temp.distanceToSquared(e)),intersectsBounds:(Se,ze,ke)=>ke<O&&ke<E,intersectsTriangle:(Se,ze)=>{Se.closestPointToPoint(e,temp);const ke=e.distanceToSquared(temp);return ke<O&&(temp1$2.copy(temp),O=ke,le=ze),ke<w}}),O===1/0)return null;const fe=Math.sqrt(O);return n.point?n.point.copy(temp1$2):n.point=temp1$2.clone(),n.distance=fe,n.faceIndex=le,n}const IS_GT_REVISION_169=parseInt(REVISION)>=169,_vA=new Vector3,_vB=new Vector3,_vC=new Vector3,_uvA=new Vector2,_uvB=new Vector2,_uvC=new Vector2,_normalA=new Vector3,_normalB=new Vector3,_normalC=new Vector3,_intersectionPoint=new Vector3;function checkIntersection(v,e,n,r,C,w,E,O){let le;if(w===BackSide?le=v.intersectTriangle(r,n,e,!0,C):le=v.intersectTriangle(e,n,r,w!==DoubleSide,C),le===null)return null;const fe=v.origin.distanceTo(C);return fe<E||fe>O?null:{distance:fe,point:C.clone()}}function checkBufferGeometryIntersection(v,e,n,r,C,w,E,O,le,fe,Se){_vA.fromBufferAttribute(e,w),_vB.fromBufferAttribute(e,E),_vC.fromBufferAttribute(e,O);const ze=checkIntersection(v,_vA,_vB,_vC,_intersectionPoint,le,fe,Se);if(ze){const ke=new Vector3;Triangle.getBarycoord(_intersectionPoint,_vA,_vB,_vC,ke),r&&(_uvA.fromBufferAttribute(r,w),_uvB.fromBufferAttribute(r,E),_uvC.fromBufferAttribute(r,O),ze.uv=Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2)),C&&(_uvA.fromBufferAttribute(C,w),_uvB.fromBufferAttribute(C,E),_uvC.fromBufferAttribute(C,O),ze.uv1=Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2)),n&&(_normalA.fromBufferAttribute(n,w),_normalB.fromBufferAttribute(n,E),_normalC.fromBufferAttribute(n,O),ze.normal=Triangle.getInterpolation(_intersectionPoint,_vA,_vB,_vC,_normalA,_normalB,_normalC,new Vector3),ze.normal.dot(v.direction)>0&&ze.normal.multiplyScalar(-1));const Fe={a:w,b:E,c:O,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA,_vB,_vC,Fe.normal),ze.face=Fe,ze.faceIndex=w,IS_GT_REVISION_169&&(ze.barycoord=ke)}return ze}function intersectTri(v,e,n,r,C,w,E){const O=r*3;let le=O+0,fe=O+1,Se=O+2;const ze=v.index;v.index&&(le=ze.getX(le),fe=ze.getX(fe),Se=ze.getX(Se));const{position:ke,normal:Fe,uv:mt,uv1:Lt}=v.attributes,bt=checkBufferGeometryIntersection(n,ke,Fe,mt,Lt,le,fe,Se,e,w,E);return bt?(bt.faceIndex=r,C&&C.push(bt),bt):null}function setTriangle(v,e,n,r){const C=v.a,w=v.b,E=v.c;let O=e,le=e+1,fe=e+2;n&&(O=n.getX(O),le=n.getX(le),fe=n.getX(fe)),C.x=r.getX(O),C.y=r.getY(O),C.z=r.getZ(O),w.x=r.getX(le),w.y=r.getY(le),w.z=r.getZ(le),E.x=r.getX(fe),E.y=r.getY(fe),E.z=r.getZ(fe)}function intersectTris(v,e,n,r,C,w,E,O){const{geometry:le,_indirectBuffer:fe}=v;for(let Se=r,ze=r+C;Se<ze;Se++)intersectTri(le,e,n,Se,w,E,O)}function intersectClosestTri(v,e,n,r,C,w,E){const{geometry:O,_indirectBuffer:le}=v;let fe=1/0,Se=null;for(let ze=r,ke=r+C;ze<ke;ze++){let Fe;Fe=intersectTri(O,e,n,ze,null,w,E),Fe&&Fe.distance<fe&&(Se=Fe,fe=Fe.distance)}return Se}function iterateOverTriangles(v,e,n,r,C,w,E){const{geometry:O}=n,{index:le}=O,fe=O.attributes.position;for(let Se=v,ze=e+v;Se<ze;Se++){let ke;if(ke=Se,setTriangle(E,ke*3,le,fe),E.needsUpdate=!0,r(E,ke,C,w))return!0}return!1}function refit(v,e=null){e&&Array.isArray(e)&&(e=new Set(e));const n=v.geometry,r=n.index?n.index.array:null,C=n.attributes.position;let w,E,O,le,fe=0;const Se=v._roots;for(let ke=0,Fe=Se.length;ke<Fe;ke++)w=Se[ke],E=new Uint32Array(w),O=new Uint16Array(w),le=new Float32Array(w),ze(0,fe),fe+=w.byteLength;function ze(ke,Fe,mt=!1){const Lt=ke*2;if(O[Lt+15]===IS_LEAFNODE_FLAG){const Ue=E[ke+6],Gt=O[Lt+14];let xt=1/0,Xt=1/0,Zt=1/0,wt=-1/0,Vt=-1/0,Wt=-1/0;for(let It=3*Ue,Nt=3*(Ue+Gt);It<Nt;It++){let Ft=r[It];const jt=C.getX(Ft),n0=C.getY(Ft),s0=C.getZ(Ft);jt<xt&&(xt=jt),jt>wt&&(wt=jt),n0<Xt&&(Xt=n0),n0>Vt&&(Vt=n0),s0<Zt&&(Zt=s0),s0>Wt&&(Wt=s0)}return le[ke+0]!==xt||le[ke+1]!==Xt||le[ke+2]!==Zt||le[ke+3]!==wt||le[ke+4]!==Vt||le[ke+5]!==Wt?(le[ke+0]=xt,le[ke+1]=Xt,le[ke+2]=Zt,le[ke+3]=wt,le[ke+4]=Vt,le[ke+5]=Wt,!0):!1}else{const Ue=ke+8,Gt=E[ke+6],xt=Ue+Fe,Xt=Gt+Fe;let Zt=mt,wt=!1,Vt=!1;e?Zt||(wt=e.has(xt),Vt=e.has(Xt),Zt=!wt&&!Vt):(wt=!0,Vt=!0);const Wt=Zt||wt,It=Zt||Vt;let Nt=!1;Wt&&(Nt=ze(Ue,Fe,Zt));let Ft=!1;It&&(Ft=ze(Gt,Fe,Zt));const jt=Nt||Ft;if(jt)for(let n0=0;n0<3;n0++){const s0=Ue+n0,qt=Gt+n0,Ht=le[s0],$t=le[s0+3],Kt=le[qt],e0=le[qt+3];le[ke+n0]=Ht<Kt?Ht:Kt,le[ke+n0+3]=$t>e0?$t:e0}return jt}}}function intersectRay(v,e,n,r,C){let w,E,O,le,fe,Se;const ze=1/n.direction.x,ke=1/n.direction.y,Fe=1/n.direction.z,mt=n.origin.x,Lt=n.origin.y,bt=n.origin.z;let Ue=e[v],Gt=e[v+3],xt=e[v+1],Xt=e[v+3+1],Zt=e[v+2],wt=e[v+3+2];return ze>=0?(w=(Ue-mt)*ze,E=(Gt-mt)*ze):(w=(Gt-mt)*ze,E=(Ue-mt)*ze),ke>=0?(O=(xt-Lt)*ke,le=(Xt-Lt)*ke):(O=(Xt-Lt)*ke,le=(xt-Lt)*ke),w>le||O>E||((O>w||isNaN(w))&&(w=O),(le<E||isNaN(E))&&(E=le),Fe>=0?(fe=(Zt-bt)*Fe,Se=(wt-bt)*Fe):(fe=(wt-bt)*Fe,Se=(Zt-bt)*Fe),w>Se||fe>E)?!1:((fe>w||w!==w)&&(w=fe),(Se<E||E!==E)&&(E=Se),w<=C&&E>=r)}function intersectTris_indirect(v,e,n,r,C,w,E,O){const{geometry:le,_indirectBuffer:fe}=v;for(let Se=r,ze=r+C;Se<ze;Se++){let ke=fe?fe[Se]:Se;intersectTri(le,e,n,ke,w,E,O)}}function intersectClosestTri_indirect(v,e,n,r,C,w,E){const{geometry:O,_indirectBuffer:le}=v;let fe=1/0,Se=null;for(let ze=r,ke=r+C;ze<ke;ze++){let Fe;Fe=intersectTri(O,e,n,le?le[ze]:ze,null,w,E),Fe&&Fe.distance<fe&&(Se=Fe,fe=Fe.distance)}return Se}function iterateOverTriangles_indirect(v,e,n,r,C,w,E){const{geometry:O}=n,{index:le}=O,fe=O.attributes.position;for(let Se=v,ze=e+v;Se<ze;Se++){let ke;if(ke=n.resolveTriangleIndex(Se),setTriangle(E,ke*3,le,fe),E.needsUpdate=!0,r(E,ke,C,w))return!0}return!1}function raycast(v,e,n,r,C,w,E){BufferStack.setBuffer(v._roots[e]),_raycast$1(0,v,n,r,C,w,E),BufferStack.clearBuffer()}function _raycast$1(v,e,n,r,C,w,E){const{float32Array:O,uint16Array:le,uint32Array:fe}=BufferStack,Se=v*2;if(IS_LEAF(Se,le)){const ke=OFFSET(v,fe),Fe=COUNT(Se,le);intersectTris(e,n,r,ke,Fe,C,w,E)}else{const ke=LEFT_NODE(v);intersectRay(ke,O,r,w,E)&&_raycast$1(ke,e,n,r,C,w,E);const Fe=RIGHT_NODE(v,fe);intersectRay(Fe,O,r,w,E)&&_raycast$1(Fe,e,n,r,C,w,E)}}const _xyzFields$1=["x","y","z"];function raycastFirst(v,e,n,r,C,w){BufferStack.setBuffer(v._roots[e]);const E=_raycastFirst$1(0,v,n,r,C,w);return BufferStack.clearBuffer(),E}function _raycastFirst$1(v,e,n,r,C,w){const{float32Array:E,uint16Array:O,uint32Array:le}=BufferStack;let fe=v*2;if(IS_LEAF(fe,O)){const ze=OFFSET(v,le),ke=COUNT(fe,O);return intersectClosestTri(e,n,r,ze,ke,C,w)}else{const ze=SPLIT_AXIS(v,le),ke=_xyzFields$1[ze],mt=r.direction[ke]>=0;let Lt,bt;mt?(Lt=LEFT_NODE(v),bt=RIGHT_NODE(v,le)):(Lt=RIGHT_NODE(v,le),bt=LEFT_NODE(v));const Gt=intersectRay(Lt,E,r,C,w)?_raycastFirst$1(Lt,e,n,r,C,w):null;if(Gt){const Zt=Gt.point[ke];if(mt?Zt<=E[bt+ze]:Zt>=E[bt+ze+3])return Gt}const Xt=intersectRay(bt,E,r,C,w)?_raycastFirst$1(bt,e,n,r,C,w):null;return Gt&&Xt?Gt.distance<=Xt.distance?Gt:Xt:Gt||Xt||null}}const boundingBox$1=new Box3,triangle$1=new ExtendedTriangle,triangle2$1=new ExtendedTriangle,invertedMat$1=new Matrix4,obb$4=new OrientedBox,obb2$3=new OrientedBox;function intersectsGeometry(v,e,n,r){BufferStack.setBuffer(v._roots[e]);const C=_intersectsGeometry$1(0,v,n,r);return BufferStack.clearBuffer(),C}function _intersectsGeometry$1(v,e,n,r,C=null){const{float32Array:w,uint16Array:E,uint32Array:O}=BufferStack;let le=v*2;if(C===null&&(n.boundingBox||n.computeBoundingBox(),obb$4.set(n.boundingBox.min,n.boundingBox.max,r),C=obb$4),IS_LEAF(le,E)){const Se=e.geometry,ze=Se.index,ke=Se.attributes.position,Fe=n.index,mt=n.attributes.position,Lt=OFFSET(v,O),bt=COUNT(le,E);if(invertedMat$1.copy(r).invert(),n.boundsTree)return arrayToBox(v,w,obb2$3),obb2$3.matrix.copy(invertedMat$1),obb2$3.needsUpdate=!0,n.boundsTree.shapecast({intersectsBounds:Gt=>obb2$3.intersectsBox(Gt),intersectsTriangle:Gt=>{Gt.a.applyMatrix4(r),Gt.b.applyMatrix4(r),Gt.c.applyMatrix4(r),Gt.needsUpdate=!0;for(let xt=Lt*3,Xt=(bt+Lt)*3;xt<Xt;xt+=3)if(setTriangle(triangle2$1,xt,ze,ke),triangle2$1.needsUpdate=!0,Gt.intersectsTriangle(triangle2$1))return!0;return!1}});for(let Ue=Lt*3,Gt=(bt+Lt)*3;Ue<Gt;Ue+=3){setTriangle(triangle$1,Ue,ze,ke),triangle$1.a.applyMatrix4(invertedMat$1),triangle$1.b.applyMatrix4(invertedMat$1),triangle$1.c.applyMatrix4(invertedMat$1),triangle$1.needsUpdate=!0;for(let xt=0,Xt=Fe.count;xt<Xt;xt+=3)if(setTriangle(triangle2$1,xt,Fe,mt),triangle2$1.needsUpdate=!0,triangle$1.intersectsTriangle(triangle2$1))return!0}}else{const Se=v+8,ze=O[v+6];return arrayToBox(Se,w,boundingBox$1),!!(C.intersectsBox(boundingBox$1)&&_intersectsGeometry$1(Se,e,n,r,C)||(arrayToBox(ze,w,boundingBox$1),C.intersectsBox(boundingBox$1)&&_intersectsGeometry$1(ze,e,n,r,C)))}}const tempMatrix$1=new Matrix4,obb$3=new OrientedBox,obb2$2=new OrientedBox,temp1$1=new Vector3,temp2$1=new Vector3,temp3$1=new Vector3,temp4$1=new Vector3;function closestPointToGeometry(v,e,n,r={},C={},w=0,E=1/0){e.boundingBox||e.computeBoundingBox(),obb$3.set(e.boundingBox.min,e.boundingBox.max,n),obb$3.needsUpdate=!0;const O=v.geometry,le=O.attributes.position,fe=O.index,Se=e.attributes.position,ze=e.index,ke=ExtendedTrianglePool.getPrimitive(),Fe=ExtendedTrianglePool.getPrimitive();let mt=temp1$1,Lt=temp2$1,bt=null,Ue=null;C&&(bt=temp3$1,Ue=temp4$1);let Gt=1/0,xt=null,Xt=null;return tempMatrix$1.copy(n).invert(),obb2$2.matrix.copy(tempMatrix$1),v.shapecast({boundsTraverseOrder:Zt=>obb$3.distanceToBox(Zt),intersectsBounds:(Zt,wt,Vt)=>Vt<Gt&&Vt<E?(wt&&(obb2$2.min.copy(Zt.min),obb2$2.max.copy(Zt.max),obb2$2.needsUpdate=!0),!0):!1,intersectsRange:(Zt,wt)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:Wt=>obb2$2.distanceToBox(Wt),intersectsBounds:(Wt,It,Nt)=>Nt<Gt&&Nt<E,intersectsRange:(Wt,It)=>{for(let Nt=Wt,Ft=Wt+It;Nt<Ft;Nt++){setTriangle(Fe,3*Nt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let jt=Zt,n0=Zt+wt;jt<n0;jt++){setTriangle(ke,3*jt,fe,le),ke.needsUpdate=!0;const s0=ke.distanceToTriangle(Fe,mt,bt);if(s0<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=s0,xt=jt,Xt=Nt),s0<w)return!0}}}});{const Vt=getTriCount$1(e);for(let Wt=0,It=Vt;Wt<It;Wt++){setTriangle(Fe,3*Wt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let Nt=Zt,Ft=Zt+wt;Nt<Ft;Nt++){setTriangle(ke,3*Nt,fe,le),ke.needsUpdate=!0;const jt=ke.distanceToTriangle(Fe,mt,bt);if(jt<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=jt,xt=Nt,Xt=Wt),jt<w)return!0}}}}}),ExtendedTrianglePool.releasePrimitive(ke),ExtendedTrianglePool.releasePrimitive(Fe),Gt===1/0?null:(r.point?r.point.copy(Lt):r.point=Lt.clone(),r.distance=Gt,r.faceIndex=xt,C&&(C.point?C.point.copy(Ue):C.point=Ue.clone(),C.point.applyMatrix4(tempMatrix$1),Lt.applyMatrix4(tempMatrix$1),C.distance=Lt.sub(C.point).length(),C.faceIndex=Xt),r)}function refit_indirect(v,e=null){e&&Array.isArray(e)&&(e=new Set(e));const n=v.geometry,r=n.index?n.index.array:null,C=n.attributes.position;let w,E,O,le,fe=0;const Se=v._roots;for(let ke=0,Fe=Se.length;ke<Fe;ke++)w=Se[ke],E=new Uint32Array(w),O=new Uint16Array(w),le=new Float32Array(w),ze(0,fe),fe+=w.byteLength;function ze(ke,Fe,mt=!1){const Lt=ke*2;if(O[Lt+15]===IS_LEAFNODE_FLAG){const Ue=E[ke+6],Gt=O[Lt+14];let xt=1/0,Xt=1/0,Zt=1/0,wt=-1/0,Vt=-1/0,Wt=-1/0;for(let It=Ue,Nt=Ue+Gt;It<Nt;It++){const Ft=3*v.resolveTriangleIndex(It);for(let jt=0;jt<3;jt++){let n0=Ft+jt;n0=r?r[n0]:n0;const s0=C.getX(n0),qt=C.getY(n0),Ht=C.getZ(n0);s0<xt&&(xt=s0),s0>wt&&(wt=s0),qt<Xt&&(Xt=qt),qt>Vt&&(Vt=qt),Ht<Zt&&(Zt=Ht),Ht>Wt&&(Wt=Ht)}}return le[ke+0]!==xt||le[ke+1]!==Xt||le[ke+2]!==Zt||le[ke+3]!==wt||le[ke+4]!==Vt||le[ke+5]!==Wt?(le[ke+0]=xt,le[ke+1]=Xt,le[ke+2]=Zt,le[ke+3]=wt,le[ke+4]=Vt,le[ke+5]=Wt,!0):!1}else{const Ue=ke+8,Gt=E[ke+6],xt=Ue+Fe,Xt=Gt+Fe;let Zt=mt,wt=!1,Vt=!1;e?Zt||(wt=e.has(xt),Vt=e.has(Xt),Zt=!wt&&!Vt):(wt=!0,Vt=!0);const Wt=Zt||wt,It=Zt||Vt;let Nt=!1;Wt&&(Nt=ze(Ue,Fe,Zt));let Ft=!1;It&&(Ft=ze(Gt,Fe,Zt));const jt=Nt||Ft;if(jt)for(let n0=0;n0<3;n0++){const s0=Ue+n0,qt=Gt+n0,Ht=le[s0],$t=le[s0+3],Kt=le[qt],e0=le[qt+3];le[ke+n0]=Ht<Kt?Ht:Kt,le[ke+n0+3]=$t>e0?$t:e0}return jt}}}function raycast_indirect(v,e,n,r,C,w,E){BufferStack.setBuffer(v._roots[e]),_raycast(0,v,n,r,C,w,E),BufferStack.clearBuffer()}function _raycast(v,e,n,r,C,w,E){const{float32Array:O,uint16Array:le,uint32Array:fe}=BufferStack,Se=v*2;if(IS_LEAF(Se,le)){const ke=OFFSET(v,fe),Fe=COUNT(Se,le);intersectTris_indirect(e,n,r,ke,Fe,C,w,E)}else{const ke=LEFT_NODE(v);intersectRay(ke,O,r,w,E)&&_raycast(ke,e,n,r,C,w,E);const Fe=RIGHT_NODE(v,fe);intersectRay(Fe,O,r,w,E)&&_raycast(Fe,e,n,r,C,w,E)}}const _xyzFields=["x","y","z"];function raycastFirst_indirect(v,e,n,r,C,w){BufferStack.setBuffer(v._roots[e]);const E=_raycastFirst(0,v,n,r,C,w);return BufferStack.clearBuffer(),E}function _raycastFirst(v,e,n,r,C,w){const{float32Array:E,uint16Array:O,uint32Array:le}=BufferStack;let fe=v*2;if(IS_LEAF(fe,O)){const ze=OFFSET(v,le),ke=COUNT(fe,O);return intersectClosestTri_indirect(e,n,r,ze,ke,C,w)}else{const ze=SPLIT_AXIS(v,le),ke=_xyzFields[ze],mt=r.direction[ke]>=0;let Lt,bt;mt?(Lt=LEFT_NODE(v),bt=RIGHT_NODE(v,le)):(Lt=RIGHT_NODE(v,le),bt=LEFT_NODE(v));const Gt=intersectRay(Lt,E,r,C,w)?_raycastFirst(Lt,e,n,r,C,w):null;if(Gt){const Zt=Gt.point[ke];if(mt?Zt<=E[bt+ze]:Zt>=E[bt+ze+3])return Gt}const Xt=intersectRay(bt,E,r,C,w)?_raycastFirst(bt,e,n,r,C,w):null;return Gt&&Xt?Gt.distance<=Xt.distance?Gt:Xt:Gt||Xt||null}}const boundingBox=new Box3,triangle=new ExtendedTriangle,triangle2=new ExtendedTriangle,invertedMat=new Matrix4,obb$2=new OrientedBox,obb2$1=new OrientedBox;function intersectsGeometry_indirect(v,e,n,r){BufferStack.setBuffer(v._roots[e]);const C=_intersectsGeometry(0,v,n,r);return BufferStack.clearBuffer(),C}function _intersectsGeometry(v,e,n,r,C=null){const{float32Array:w,uint16Array:E,uint32Array:O}=BufferStack;let le=v*2;if(C===null&&(n.boundingBox||n.computeBoundingBox(),obb$2.set(n.boundingBox.min,n.boundingBox.max,r),C=obb$2),IS_LEAF(le,E)){const Se=e.geometry,ze=Se.index,ke=Se.attributes.position,Fe=n.index,mt=n.attributes.position,Lt=OFFSET(v,O),bt=COUNT(le,E);if(invertedMat.copy(r).invert(),n.boundsTree)return arrayToBox(v,w,obb2$1),obb2$1.matrix.copy(invertedMat),obb2$1.needsUpdate=!0,n.boundsTree.shapecast({intersectsBounds:Gt=>obb2$1.intersectsBox(Gt),intersectsTriangle:Gt=>{Gt.a.applyMatrix4(r),Gt.b.applyMatrix4(r),Gt.c.applyMatrix4(r),Gt.needsUpdate=!0;for(let xt=Lt,Xt=bt+Lt;xt<Xt;xt++)if(setTriangle(triangle2,3*e.resolveTriangleIndex(xt),ze,ke),triangle2.needsUpdate=!0,Gt.intersectsTriangle(triangle2))return!0;return!1}});for(let Ue=Lt,Gt=bt+Lt;Ue<Gt;Ue++){const xt=e.resolveTriangleIndex(Ue);setTriangle(triangle,3*xt,ze,ke),triangle.a.applyMatrix4(invertedMat),triangle.b.applyMatrix4(invertedMat),triangle.c.applyMatrix4(invertedMat),triangle.needsUpdate=!0;for(let Xt=0,Zt=Fe.count;Xt<Zt;Xt+=3)if(setTriangle(triangle2,Xt,Fe,mt),triangle2.needsUpdate=!0,triangle.intersectsTriangle(triangle2))return!0}}else{const Se=v+8,ze=O[v+6];return arrayToBox(Se,w,boundingBox),!!(C.intersectsBox(boundingBox)&&_intersectsGeometry(Se,e,n,r,C)||(arrayToBox(ze,w,boundingBox),C.intersectsBox(boundingBox)&&_intersectsGeometry(ze,e,n,r,C)))}}const tempMatrix=new Matrix4,obb$1=new OrientedBox,obb2=new OrientedBox,temp1=new Vector3,temp2=new Vector3,temp3=new Vector3,temp4=new Vector3;function closestPointToGeometry_indirect(v,e,n,r={},C={},w=0,E=1/0){e.boundingBox||e.computeBoundingBox(),obb$1.set(e.boundingBox.min,e.boundingBox.max,n),obb$1.needsUpdate=!0;const O=v.geometry,le=O.attributes.position,fe=O.index,Se=e.attributes.position,ze=e.index,ke=ExtendedTrianglePool.getPrimitive(),Fe=ExtendedTrianglePool.getPrimitive();let mt=temp1,Lt=temp2,bt=null,Ue=null;C&&(bt=temp3,Ue=temp4);let Gt=1/0,xt=null,Xt=null;return tempMatrix.copy(n).invert(),obb2.matrix.copy(tempMatrix),v.shapecast({boundsTraverseOrder:Zt=>obb$1.distanceToBox(Zt),intersectsBounds:(Zt,wt,Vt)=>Vt<Gt&&Vt<E?(wt&&(obb2.min.copy(Zt.min),obb2.max.copy(Zt.max),obb2.needsUpdate=!0),!0):!1,intersectsRange:(Zt,wt)=>{if(e.boundsTree){const Vt=e.boundsTree;return Vt.shapecast({boundsTraverseOrder:Wt=>obb2.distanceToBox(Wt),intersectsBounds:(Wt,It,Nt)=>Nt<Gt&&Nt<E,intersectsRange:(Wt,It)=>{for(let Nt=Wt,Ft=Wt+It;Nt<Ft;Nt++){const jt=Vt.resolveTriangleIndex(Nt);setTriangle(Fe,3*jt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let n0=Zt,s0=Zt+wt;n0<s0;n0++){const qt=v.resolveTriangleIndex(n0);setTriangle(ke,3*qt,fe,le),ke.needsUpdate=!0;const Ht=ke.distanceToTriangle(Fe,mt,bt);if(Ht<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=Ht,xt=n0,Xt=Nt),Ht<w)return!0}}}})}else{const Vt=getTriCount$1(e);for(let Wt=0,It=Vt;Wt<It;Wt++){setTriangle(Fe,3*Wt,ze,Se),Fe.a.applyMatrix4(n),Fe.b.applyMatrix4(n),Fe.c.applyMatrix4(n),Fe.needsUpdate=!0;for(let Nt=Zt,Ft=Zt+wt;Nt<Ft;Nt++){const jt=v.resolveTriangleIndex(Nt);setTriangle(ke,3*jt,fe,le),ke.needsUpdate=!0;const n0=ke.distanceToTriangle(Fe,mt,bt);if(n0<Gt&&(Lt.copy(mt),Ue&&Ue.copy(bt),Gt=n0,xt=Nt,Xt=Wt),n0<w)return!0}}}}}),ExtendedTrianglePool.releasePrimitive(ke),ExtendedTrianglePool.releasePrimitive(Fe),Gt===1/0?null:(r.point?r.point.copy(Lt):r.point=Lt.clone(),r.distance=Gt,r.faceIndex=xt,C&&(C.point?C.point.copy(Ue):C.point=Ue.clone(),C.point.applyMatrix4(tempMatrix),Lt.applyMatrix4(tempMatrix),C.distance=Lt.sub(C.point).length(),C.faceIndex=Xt),r)}function isSharedArrayBufferSupported(){return typeof SharedArrayBuffer!="undefined"}const _bufferStack1=new BufferStack.constructor,_bufferStack2=new BufferStack.constructor,_boxPool=new PrimitivePool(()=>new Box3),_leftBox1=new Box3,_rightBox1=new Box3,_leftBox2=new Box3,_rightBox2=new Box3;let _active=!1;function bvhcast(v,e,n,r){if(_active)throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");_active=!0;const C=v._roots,w=e._roots;let E,O=0,le=0;const fe=new Matrix4().copy(n).invert();for(let Se=0,ze=C.length;Se<ze;Se++){_bufferStack1.setBuffer(C[Se]),le=0;const ke=_boxPool.getPrimitive();arrayToBox(0,_bufferStack1.float32Array,ke),ke.applyMatrix4(fe);for(let Fe=0,mt=w.length;Fe<mt&&(_bufferStack2.setBuffer(w[Fe]),E=_traverse(0,0,n,fe,r,O,le,0,0,ke),_bufferStack2.clearBuffer(),le+=w[Fe].length,!E);Fe++);if(_boxPool.releasePrimitive(ke),_bufferStack1.clearBuffer(),O+=C[Se].length,E)break}return _active=!1,E}function _traverse(v,e,n,r,C,w=0,E=0,O=0,le=0,fe=null,Se=!1){let ze,ke;Se?(ze=_bufferStack2,ke=_bufferStack1):(ze=_bufferStack1,ke=_bufferStack2);const Fe=ze.float32Array,mt=ze.uint32Array,Lt=ze.uint16Array,bt=ke.float32Array,Ue=ke.uint32Array,Gt=ke.uint16Array,xt=v*2,Xt=e*2,Zt=IS_LEAF(xt,Lt),wt=IS_LEAF(Xt,Gt);let Vt=!1;if(wt&&Zt)Se?Vt=C(OFFSET(e,Ue),COUNT(e*2,Gt),OFFSET(v,mt),COUNT(v*2,Lt),le,E+e,O,w+v):Vt=C(OFFSET(v,mt),COUNT(v*2,Lt),OFFSET(e,Ue),COUNT(e*2,Gt),O,w+v,le,E+e);else if(wt){const Wt=_boxPool.getPrimitive();arrayToBox(e,bt,Wt),Wt.applyMatrix4(n);const It=LEFT_NODE(v),Nt=RIGHT_NODE(v,mt);arrayToBox(It,Fe,_leftBox1),arrayToBox(Nt,Fe,_rightBox1);const Ft=Wt.intersectsBox(_leftBox1),jt=Wt.intersectsBox(_rightBox1);Vt=Ft&&_traverse(e,It,r,n,C,E,w,le,O+1,Wt,!Se)||jt&&_traverse(e,Nt,r,n,C,E,w,le,O+1,Wt,!Se),_boxPool.releasePrimitive(Wt)}else{const Wt=LEFT_NODE(e),It=RIGHT_NODE(e,Ue);arrayToBox(Wt,bt,_leftBox2),arrayToBox(It,bt,_rightBox2);const Nt=fe.intersectsBox(_leftBox2),Ft=fe.intersectsBox(_rightBox2);if(Nt&&Ft)Vt=_traverse(v,Wt,n,r,C,w,E,O,le+1,fe,Se)||_traverse(v,It,n,r,C,w,E,O,le+1,fe,Se);else if(Nt)if(Zt)Vt=_traverse(v,Wt,n,r,C,w,E,O,le+1,fe,Se);else{const jt=_boxPool.getPrimitive();jt.copy(_leftBox2).applyMatrix4(n);const n0=LEFT_NODE(v),s0=RIGHT_NODE(v,mt);arrayToBox(n0,Fe,_leftBox1),arrayToBox(s0,Fe,_rightBox1);const qt=jt.intersectsBox(_leftBox1),Ht=jt.intersectsBox(_rightBox1);Vt=qt&&_traverse(Wt,n0,r,n,C,E,w,le,O+1,jt,!Se)||Ht&&_traverse(Wt,s0,r,n,C,E,w,le,O+1,jt,!Se),_boxPool.releasePrimitive(jt)}else if(Ft)if(Zt)Vt=_traverse(v,It,n,r,C,w,E,O,le+1,fe,Se);else{const jt=_boxPool.getPrimitive();jt.copy(_rightBox2).applyMatrix4(n);const n0=LEFT_NODE(v),s0=RIGHT_NODE(v,mt);arrayToBox(n0,Fe,_leftBox1),arrayToBox(s0,Fe,_rightBox1);const qt=jt.intersectsBox(_leftBox1),Ht=jt.intersectsBox(_rightBox1);Vt=qt&&_traverse(It,n0,r,n,C,E,w,le,O+1,jt,!Se)||Ht&&_traverse(It,s0,r,n,C,E,w,le,O+1,jt,!Se),_boxPool.releasePrimitive(jt)}}return Vt}const obb=new OrientedBox,tempBox=new Box3,DEFAULT_OPTIONS={strategy:CENTER,maxDepth:40,maxLeafTris:10,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,indirect:!1,verbose:!0,range:null};class MeshBVH{static serialize(e,n={}){n=O0({cloneBuffers:!0},n);const r=e.geometry,C=e._roots,w=e._indirectBuffer,E=r.getIndex();let O;return n.cloneBuffers?O={roots:C.map(le=>le.slice()),index:E?E.array.slice():null,indirectBuffer:w?w.slice():null}:O={roots:C,index:E?E.array:null,indirectBuffer:w},O}static deserialize(e,n,r={}){r=O0({setIndex:!0,indirect:!!e.indirectBuffer},r);const{index:C,roots:w,indirectBuffer:E}=e,O=new MeshBVH(n,Ui(O0({},r),{[SKIP_GENERATION]:!0}));if(O._roots=w,O._indirectBuffer=E||null,r.setIndex){const le=n.getIndex();if(le===null){const fe=new BufferAttribute(e.index,1,!1);n.setIndex(fe)}else le.array!==C&&(le.array.set(C),le.needsUpdate=!0)}return O}get indirect(){return!!this._indirectBuffer}constructor(e,n={}){if(e.isBufferGeometry){if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(n=Object.assign(Ui(O0({},DEFAULT_OPTIONS),{[SKIP_GENERATION]:!1}),n),n.useSharedArrayBuffer&&!isSharedArrayBufferSupported())throw new Error("MeshBVH: SharedArrayBuffer is not available.");this.geometry=e,this._roots=null,this._indirectBuffer=null,n[SKIP_GENERATION]||(buildPackedTree(this,n),!e.boundingBox&&n.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Box3))),this.resolveTriangleIndex=n.indirect?r=>this._indirectBuffer[r]:r=>r}refit(e=null){return(this.indirect?refit_indirect:refit)(this,e)}traverse(e,n=0){const r=this._roots[n],C=new Uint32Array(r),w=new Uint16Array(r);E(0);function E(O,le=0){const fe=O*2,Se=w[fe+15]===IS_LEAFNODE_FLAG;if(Se){const ze=C[O+6],ke=w[fe+14];e(le,Se,new Float32Array(r,O*4,6),ze,ke)}else{const ze=O+BYTES_PER_NODE/4,ke=C[O+6],Fe=C[O+7];e(le,Se,new Float32Array(r,O*4,6),Fe)||(E(ze,le+1),E(ke,le+1))}}}raycast(e,n=FrontSide,r=0,C=1/0){const w=this._roots,E=this.geometry,O=[],le=n.isMaterial,fe=Array.isArray(n),Se=E.groups,ze=le?n.side:n,ke=this.indirect?raycast_indirect:raycast;for(let Fe=0,mt=w.length;Fe<mt;Fe++){const Lt=fe?n[Se[Fe].materialIndex].side:ze,bt=O.length;if(ke(this,Fe,Lt,e,O,r,C),fe){const Ue=Se[Fe].materialIndex;for(let Gt=bt,xt=O.length;Gt<xt;Gt++)O[Gt].face.materialIndex=Ue}}return O}raycastFirst(e,n=FrontSide,r=0,C=1/0){const w=this._roots,E=this.geometry,O=n.isMaterial,le=Array.isArray(n);let fe=null;const Se=E.groups,ze=O?n.side:n,ke=this.indirect?raycastFirst_indirect:raycastFirst;for(let Fe=0,mt=w.length;Fe<mt;Fe++){const Lt=le?n[Se[Fe].materialIndex].side:ze,bt=ke(this,Fe,Lt,e,r,C);bt!=null&&(fe==null||bt.distance<fe.distance)&&(fe=bt,le&&(bt.face.materialIndex=Se[Fe].materialIndex))}return fe}intersectsGeometry(e,n){let r=!1;const C=this._roots,w=this.indirect?intersectsGeometry_indirect:intersectsGeometry;for(let E=0,O=C.length;E<O&&(r=w(this,E,e,n),!r);E++);return r}shapecast(e){const n=ExtendedTrianglePool.getPrimitive(),r=this.indirect?iterateOverTriangles_indirect:iterateOverTriangles;let{boundsTraverseOrder:C,intersectsBounds:w,intersectsRange:E,intersectsTriangle:O}=e;if(E&&O){const ze=E;E=(ke,Fe,mt,Lt,bt)=>ze(ke,Fe,mt,Lt,bt)?!0:r(ke,Fe,this,O,mt,Lt,n)}else E||(O?E=(ze,ke,Fe,mt)=>r(ze,ke,this,O,Fe,mt,n):E=(ze,ke,Fe)=>Fe);let le=!1,fe=0;const Se=this._roots;for(let ze=0,ke=Se.length;ze<ke;ze++){const Fe=Se[ze];if(le=shapecast(this,ze,w,E,C,fe),le)break;fe+=Fe.byteLength}return ExtendedTrianglePool.releasePrimitive(n),le}bvhcast(e,n,r){let{intersectsRanges:C,intersectsTriangles:w}=r;const E=ExtendedTrianglePool.getPrimitive(),O=this.geometry.index,le=this.geometry.attributes.position,fe=this.indirect?mt=>{const Lt=this.resolveTriangleIndex(mt);setTriangle(E,Lt*3,O,le)}:mt=>{setTriangle(E,mt*3,O,le)},Se=ExtendedTrianglePool.getPrimitive(),ze=e.geometry.index,ke=e.geometry.attributes.position,Fe=e.indirect?mt=>{const Lt=e.resolveTriangleIndex(mt);setTriangle(Se,Lt*3,ze,ke)}:mt=>{setTriangle(Se,mt*3,ze,ke)};if(w){const mt=(Lt,bt,Ue,Gt,xt,Xt,Zt,wt)=>{for(let Vt=Ue,Wt=Ue+Gt;Vt<Wt;Vt++){Fe(Vt),Se.a.applyMatrix4(n),Se.b.applyMatrix4(n),Se.c.applyMatrix4(n),Se.needsUpdate=!0;for(let It=Lt,Nt=Lt+bt;It<Nt;It++)if(fe(It),E.needsUpdate=!0,w(E,Se,It,Vt,xt,Xt,Zt,wt))return!0}return!1};if(C){const Lt=C;C=function(bt,Ue,Gt,xt,Xt,Zt,wt,Vt){return Lt(bt,Ue,Gt,xt,Xt,Zt,wt,Vt)?!0:mt(bt,Ue,Gt,xt,Xt,Zt,wt,Vt)}}else C=mt}return bvhcast(this,e,n,C)}intersectsBox(e,n){return obb.set(e.min,e.max,n),obb.needsUpdate=!0,this.shapecast({intersectsBounds:r=>obb.intersectsBox(r),intersectsTriangle:r=>obb.intersectsTriangle(r)})}intersectsSphere(e){return this.shapecast({intersectsBounds:n=>e.intersectsBox(n),intersectsTriangle:n=>n.intersectsSphere(e)})}closestPointToGeometry(e,n,r={},C={},w=0,E=1/0){return(this.indirect?closestPointToGeometry_indirect:closestPointToGeometry)(this,e,n,r,C,w,E)}closestPointToPoint(e,n={},r=0,C=1/0){return closestPointToPoint(this,e,n,r,C)}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(r=>{arrayToBox(0,new Float32Array(r),tempBox),e.union(tempBox)}),e}}const HASH_WIDTH=1e-6,HASH_HALF_WIDTH=HASH_WIDTH*.5,HASH_MULTIPLIER=Math.pow(10,-Math.log10(HASH_WIDTH)),HASH_ADDITION=HASH_HALF_WIDTH*HASH_MULTIPLIER;function hashNumber(v){return~~(v*HASH_MULTIPLIER+HASH_ADDITION)}function hashVertex2(v){return`${hashNumber(v.x)},${hashNumber(v.y)}`}function hashVertex3(v){return`${hashNumber(v.x)},${hashNumber(v.y)},${hashNumber(v.z)}`}function hashVertex4(v){return`${hashNumber(v.x)},${hashNumber(v.y)},${hashNumber(v.z)},${hashNumber(v.w)}`}function toNormalizedRay(v,e,n){n.direction.subVectors(e,v).normalize();const r=v.dot(n.direction);return n.origin.copy(v).addScaledVector(n.direction,-r),n}function areSharedArrayBuffersSupported(){return typeof SharedArrayBuffer!="undefined"}function convertToSharedArrayBuffer(v){if(v.buffer instanceof SharedArrayBuffer)return v;const e=v.constructor,n=v.buffer,r=new SharedArrayBuffer(n.byteLength),C=new Uint8Array(n);return new Uint8Array(r).set(C,0),new e(r)}function getIndexArray(v,e=ArrayBuffer){return v>65535?new Uint32Array(new e(4*v)):new Uint16Array(new e(2*v))}function ensureIndex(v,e){if(!v.index){const n=v.attributes.position.count,r=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,C=getIndexArray(n,r);v.setIndex(new BufferAttribute(C,1));for(let w=0;w<n;w++)C[w]=w}}function getVertexCount(v){return v.index?v.index.count:v.attributes.position.count}function getTriCount(v){return getVertexCount(v)/3}const DEGENERATE_EPSILON=1e-8,_tempVec=new Vector3;function toTriIndex(v){return~~(v/3)}function toEdgeIndex(v){return v%3}function sortEdgeFunc(v,e){return v.start-e.start}function getProjectedDistance(v,e){return _tempVec.subVectors(e,v.origin).dot(v.direction)}function matchEdges(v,e,n,r=DEGENERATE_EPSILON){v.sort(sortEdgeFunc),e.sort(sortEdgeFunc);for(let O=0;O<v.length;O++){const le=v[O];for(let fe=0;fe<e.length;fe++){const Se=e[fe];if(!(Se.start>le.end)){if(le.end<Se.start||Se.end<le.start)continue;if(le.start<=Se.start&&le.end>=Se.end)w(Se.end,le.end)||v.splice(O+1,0,{start:Se.end,end:le.end,index:le.index}),le.end=Se.start,Se.start=0,Se.end=0;else if(le.start>=Se.start&&le.end<=Se.end)w(le.end,Se.end)||e.splice(fe+1,0,{start:le.end,end:Se.end,index:Se.index}),Se.end=le.start,le.start=0,le.end=0;else if(le.start<=Se.start&&le.end<=Se.end){const ze=le.end;le.end=Se.start,Se.start=ze}else if(le.start>=Se.start&&le.end>=Se.end){const ze=Se.end;Se.end=le.start,le.start=ze}else throw new Error}if(n.has(le.index)||n.set(le.index,[]),n.has(Se.index)||n.set(Se.index,[]),n.get(le.index).push(Se.index),n.get(Se.index).push(le.index),E(Se)&&(e.splice(fe,1),fe--),E(le)){v.splice(O,1),O--;break}}}C(v),C(e);function C(O){for(let le=0;le<O.length;le++)E(O[le])&&(O.splice(le,1),le--)}function w(O,le){return Math.abs(le-O)<r}function E(O){return Math.abs(O.end-O.start)<r}}const DIST_EPSILON=1e-5,ANGLE_EPSILON=1e-4;class RaySet{constructor(){this._rays=[]}addRay(e){this._rays.push(e)}findClosestRay(e){const n=this._rays,r=e.clone();r.direction.multiplyScalar(-1);let C=1/0,w=null;for(let le=0,fe=n.length;le<fe;le++){const Se=n[le];if(E(Se,e)&&E(Se,r))continue;const ze=O(Se,e),ke=O(Se,r),Fe=Math.min(ze,ke);Fe<C&&(C=Fe,w=Se)}return w;function E(le,fe){const Se=le.origin.distanceTo(fe.origin)>DIST_EPSILON;return le.direction.angleTo(fe.direction)>ANGLE_EPSILON||Se}function O(le,fe){const Se=le.origin.distanceTo(fe.origin),ze=le.direction.angleTo(fe.direction);return Se/DIST_EPSILON+ze/ANGLE_EPSILON}}}const _v0=new Vector3,_v1$1=new Vector3,_ray$2=new Ray;function computeDisjointEdges(v,e,n){const r=v.attributes,C=v.index,w=r.position,E=new Map,O=new Map,le=Array.from(e),fe=new RaySet;for(let Se=0,ze=le.length;Se<ze;Se++){const ke=le[Se],Fe=toTriIndex(ke),mt=toEdgeIndex(ke);let Lt=3*Fe+mt,bt=3*Fe+(mt+1)%3;C&&(Lt=C.getX(Lt),bt=C.getX(bt)),_v0.fromBufferAttribute(w,Lt),_v1$1.fromBufferAttribute(w,bt),toNormalizedRay(_v0,_v1$1,_ray$2);let Ue,Gt=fe.findClosestRay(_ray$2);Gt===null&&(Gt=_ray$2.clone(),fe.addRay(Gt)),O.has(Gt)||O.set(Gt,{forward:[],reverse:[],ray:Gt}),Ue=O.get(Gt);let xt=getProjectedDistance(Gt,_v0),Xt=getProjectedDistance(Gt,_v1$1);xt>Xt&&([xt,Xt]=[Xt,xt]),_ray$2.direction.dot(Gt.direction)<0?Ue.reverse.push({start:xt,end:Xt,index:ke}):Ue.forward.push({start:xt,end:Xt,index:ke})}return O.forEach(({forward:Se,reverse:ze},ke)=>{matchEdges(Se,ze,E,n),Se.length===0&&ze.length===0&&O.delete(ke)}),{disjointConnectivityMap:E,fragmentMap:O}}const _vec2=new Vector2,_vec3$1=new Vector3,_vec4=new Vector4,_hashes=["","",""];class HalfEdgeMap{constructor(e=null){this.data=null,this.disjointConnections=null,this.unmatchedDisjointEdges=null,this.unmatchedEdges=-1,this.matchedEdges=-1,this.useDrawRange=!0,this.useAllAttributes=!1,this.matchDisjointEdges=!1,this.degenerateEpsilon=1e-8,e&&this.updateFrom(e)}getSiblingTriangleIndex(e,n){const r=this.data[e*3+n];return r===-1?-1:~~(r/3)}getSiblingEdgeIndex(e,n){const r=this.data[e*3+n];return r===-1?-1:r%3}getDisjointSiblingTriangleIndices(e,n){const r=e*3+n,C=this.disjointConnections.get(r);return C?C.map(w=>~~(w/3)):[]}getDisjointSiblingEdgeIndices(e,n){const r=e*3+n,C=this.disjointConnections.get(r);return C?C.map(w=>w%3):[]}isFullyConnected(){return this.unmatchedEdges===0}updateFrom(e){const{useAllAttributes:n,useDrawRange:r,matchDisjointEdges:C,degenerateEpsilon:w}=this,E=n?xt:Gt,O=new Map,{attributes:le}=e,fe=n?Object.keys(le):null,Se=e.index,ze=le.position;let ke=getTriCount(e);const Fe=ke;let mt=0;r&&(mt=e.drawRange.start,e.drawRange.count!==1/0&&(ke=~~(e.drawRange.count/3)));let Lt=this.data;(!Lt||Lt.length<3*Fe)&&(Lt=new Int32Array(3*Fe)),Lt.fill(-1);let bt=0,Ue=new Set;for(let Xt=mt,Zt=ke*3+mt;Xt<Zt;Xt+=3){const wt=Xt;for(let Vt=0;Vt<3;Vt++){let Wt=wt+Vt;Se&&(Wt=Se.getX(Wt)),_hashes[Vt]=E(Wt)}for(let Vt=0;Vt<3;Vt++){const Wt=(Vt+1)%3,It=_hashes[Vt],Nt=_hashes[Wt],Ft=`${Nt}_${It}`;if(O.has(Ft)){const jt=wt+Vt,n0=O.get(Ft);Lt[jt]=n0,Lt[n0]=jt,O.delete(Ft),bt+=2,Ue.delete(n0)}else{const jt=`${It}_${Nt}`,n0=wt+Vt;O.set(jt,n0),Ue.add(n0)}}}if(C){const{fragmentMap:Xt,disjointConnectivityMap:Zt}=computeDisjointEdges(e,Ue,w);Ue.clear(),Xt.forEach(({forward:wt,reverse:Vt})=>{wt.forEach(({index:Wt})=>Ue.add(Wt)),Vt.forEach(({index:Wt})=>Ue.add(Wt))}),this.unmatchedDisjointEdges=Xt,this.disjointConnections=Zt,bt=ke*3-Ue.size}this.matchedEdges=bt,this.unmatchedEdges=Ue.size,this.data=Lt;function Gt(Xt){return _vec3$1.fromBufferAttribute(ze,Xt),hashVertex3(_vec3$1)}function xt(Xt){let Zt="";for(let wt=0,Vt=fe.length;wt<Vt;wt++){const Wt=le[fe[wt]];let It;switch(Wt.itemSize){case 1:It=hashNumber(Wt.getX(Xt));break;case 2:It=hashVertex2(_vec2.fromBufferAttribute(Wt,Xt));break;case 3:It=hashVertex3(_vec3$1.fromBufferAttribute(Wt,Xt));break;case 4:It=hashVertex4(_vec4.fromBufferAttribute(Wt,Xt));break}Zt!==""&&(Zt+="|"),Zt+=It}return Zt}}}class Brush extends Mesh{constructor(...e){super(...e),this.isBrush=!0,this._previousMatrix=new Matrix4,this._previousMatrix.elements.fill(0)}markUpdated(){this._previousMatrix.copy(this.matrix)}isDirty(){const{matrix:e,_previousMatrix:n}=this,r=e.elements,C=n.elements;for(let w=0;w<16;w++)if(r[w]!==C[w])return!0;return!1}prepareGeometry(){const e=this.geometry,n=e.attributes,r=areSharedArrayBuffersSupported();if(r)for(const C in n){const w=n[C];if(w.isInterleavedBufferAttribute)throw new Error("Brush: InterleavedBufferAttributes are not supported.");w.array=convertToSharedArrayBuffer(w.array)}if(e.boundsTree||(ensureIndex(e,{useSharedArrayBuffer:r}),e.boundsTree=new MeshBVH(e,{maxLeafTris:3,indirect:!0,useSharedArrayBuffer:r})),e.halfEdges||(e.halfEdges=new HalfEdgeMap(e)),!e.groupIndices){const C=getTriCount(e),w=new Uint16Array(C),E=e.groups;for(let O=0,le=E.length;O<le;O++){const{start:fe,count:Se}=E[O];for(let ze=fe/3,ke=(fe+Se)/3;ze<ke;ze++)w[ze]=O}e.groupIndices=w}}disposeCacheData(){const{geometry:e}=this;e.halfEdges=null,e.boundsTree=null,e.groupIndices=null}}const EPSILON$1=1e-14,_AB=new Vector3,_AC=new Vector3,_CB=new Vector3;function isTriDegenerate(v,e=EPSILON$1){_AB.subVectors(v.b,v.a),_AC.subVectors(v.c,v.a),_CB.subVectors(v.b,v.c);const n=_AB.angleTo(_AC),r=_AB.angleTo(_CB),C=Math.PI-n-r;return Math.abs(n)<e||Math.abs(r)<e||Math.abs(C)<e||v.a.distanceToSquared(v.b)<e||v.a.distanceToSquared(v.c)<e||v.b.distanceToSquared(v.c)<e}const EPSILON=1e-10,COPLANAR_EPSILON=1e-10,PARALLEL_EPSILON=1e-10,_edge$1=new Line3,_foundEdge=new Line3,_vec=new Vector3,_triangleNormal=new Vector3,_planeNormal=new Vector3,_plane=new Plane$1,_splittingTriangle=new ExtendedTriangle;class TrianglePool{constructor(){this._pool=[],this._index=0}getTriangle(){return this._index>=this._pool.length&&this._pool.push(new Triangle),this._pool[this._index++]}clear(){this._index=0}reset(){this._pool.length=0,this._index=0}}class TriangleSplitter{constructor(){this.trianglePool=new TrianglePool,this.triangles=[],this.normal=new Vector3,this.coplanarTriangleUsed=!1}initialize(e){this.reset();const{triangles:n,trianglePool:r,normal:C}=this;if(Array.isArray(e))for(let w=0,E=e.length;w<E;w++){const O=e[w];if(w===0)O.getNormal(C);else if(Math.abs(1-O.getNormal(_vec).dot(C))>EPSILON)throw new Error("Triangle Splitter: Cannot initialize with triangles that have different normals.");const le=r.getTriangle();le.copy(O),n.push(le)}else{e.getNormal(C);const w=r.getTriangle();w.copy(e),n.push(w)}}splitByTriangle(e){const{normal:n,triangles:r}=this;if(e.getNormal(_triangleNormal).normalize(),Math.abs(1-Math.abs(_triangleNormal.dot(n)))<PARALLEL_EPSILON){this.coplanarTriangleUsed=!0;for(let w=0,E=r.length;w<E;w++){const O=r[w];O.coplanarCount=0}const C=[e.a,e.b,e.c];for(let w=0;w<3;w++){const E=(w+1)%3,O=C[w],le=C[E];_vec.subVectors(le,O).normalize(),_planeNormal.crossVectors(_triangleNormal,_vec),_plane.setFromNormalAndCoplanarPoint(_planeNormal,O),this.splitByPlane(_plane,e)}}else e.getPlane(_plane),this.splitByPlane(_plane,e)}splitByPlane(e,n){const{triangles:r,trianglePool:C}=this;_splittingTriangle.copy(n),_splittingTriangle.needsUpdate=!0;for(let w=0,E=r.length;w<E;w++){const O=r[w];if(!_splittingTriangle.intersectsTriangle(O,_edge$1,!0))continue;const{a:le,b:fe,c:Se}=O;let ze=0,ke=-1,Fe=!1,mt=[],Lt=[];const bt=[le,fe,Se];for(let Ue=0;Ue<3;Ue++){const Gt=(Ue+1)%3;_edge$1.start.copy(bt[Ue]),_edge$1.end.copy(bt[Gt]);const xt=e.distanceToPoint(_edge$1.start),Xt=e.distanceToPoint(_edge$1.end);if(Math.abs(xt)<COPLANAR_EPSILON&&Math.abs(Xt)<COPLANAR_EPSILON){Fe=!0;break}if(xt>0?mt.push(Ue):Lt.push(Ue),Math.abs(xt)<COPLANAR_EPSILON)continue;let Zt=!!e.intersectLine(_edge$1,_vec);!Zt&&Math.abs(Xt)<COPLANAR_EPSILON&&(_vec.copy(_edge$1.end),Zt=!0),Zt&&!(_vec.distanceTo(_edge$1.start)<EPSILON)&&(_vec.distanceTo(_edge$1.end)<EPSILON&&(ke=Ue),ze===0?_foundEdge.start.copy(_vec):_foundEdge.end.copy(_vec),ze++)}if(!Fe&&ze===2&&_foundEdge.distance()>COPLANAR_EPSILON)if(ke!==-1){ke=(ke+1)%3;let Ue=0;Ue===ke&&(Ue=(Ue+1)%3);let Gt=Ue+1;Gt===ke&&(Gt=(Gt+1)%3);const xt=C.getTriangle();xt.a.copy(bt[Gt]),xt.b.copy(_foundEdge.end),xt.c.copy(_foundEdge.start),isTriDegenerate(xt)||r.push(xt),O.a.copy(bt[Ue]),O.b.copy(_foundEdge.start),O.c.copy(_foundEdge.end),isTriDegenerate(O)&&(r.splice(w,1),w--,E--)}else{const Ue=mt.length>=2?Lt[0]:mt[0];if(Ue===0){let wt=_foundEdge.start;_foundEdge.start=_foundEdge.end,_foundEdge.end=wt}const Gt=(Ue+1)%3,xt=(Ue+2)%3,Xt=C.getTriangle(),Zt=C.getTriangle();bt[Gt].distanceToSquared(_foundEdge.start)<bt[xt].distanceToSquared(_foundEdge.end)?(Xt.a.copy(bt[Gt]),Xt.b.copy(_foundEdge.start),Xt.c.copy(_foundEdge.end),Zt.a.copy(bt[Gt]),Zt.b.copy(bt[xt]),Zt.c.copy(_foundEdge.start)):(Xt.a.copy(bt[xt]),Xt.b.copy(_foundEdge.start),Xt.c.copy(_foundEdge.end),Zt.a.copy(bt[Gt]),Zt.b.copy(bt[xt]),Zt.c.copy(_foundEdge.end)),O.a.copy(bt[Ue]),O.b.copy(_foundEdge.end),O.c.copy(_foundEdge.start),isTriDegenerate(Xt)||r.push(Xt),isTriDegenerate(Zt)||r.push(Zt),isTriDegenerate(O)&&(r.splice(w,1),w--,E--)}else ze===3&&console.warn("TriangleClipper: Coplanar clip not handled")}}reset(){this.triangles.length=0,this.trianglePool.clear(),this.coplanarTriangleUsed=!1}}function ceilToFourByteStride(v){return v=~~v,v+4-v%4}class TypeBackedArray{constructor(e,n=500){this.expansionFactor=1.5,this.type=e,this.length=0,this.array=null,this.setSize(n)}setType(e){if(this.length!==0)throw new Error("TypeBackedArray: Cannot change the type while there is used data in the buffer.");const n=this.array.buffer;this.array=new e(n),this.type=e}setSize(e){if(this.array&&e===this.array.length)return;const n=this.type,r=areSharedArrayBuffersSupported()?SharedArrayBuffer:ArrayBuffer,C=new n(new r(ceilToFourByteStride(e*n.BYTES_PER_ELEMENT)));this.array&&C.set(this.array,0),this.array=C}expand(){const{array:e,expansionFactor:n}=this;this.setSize(e.length*n)}push(...e){let{array:n,length:r}=this;r+e.length>n.length&&(this.expand(),n=this.array);for(let C=0,w=e.length;C<w;C++)n[r+C]=e[C];this.length+=e.length}clear(){this.length=0}}class TypedAttributeData{constructor(){this.groupAttributes=[{}],this.groupCount=0}getType(e){return this.groupAttributes[0][e].type}getItemSize(e){return this.groupAttributes[0][e].itemSize}getNormalized(e){return this.groupAttributes[0][e].normalized}getCount(e){if(this.groupCount<=e)return 0;const n=this.getGroupAttrArray("position",e);return n.length/n.itemSize}getTotalLength(e){const{groupCount:n,groupAttributes:r}=this;let C=0;for(let w=0;w<n;w++){const E=r[w];C+=E[e].length}return C}getGroupAttrSet(e=0){const{groupAttributes:n}=this;if(n[e])return this.groupCount=Math.max(this.groupCount,e+1),n[e];const r=n[0];for(this.groupCount=Math.max(this.groupCount,e+1);e>=n.length;){const C={};n.push(C);for(const w in r){const E=r[w],O=new TypeBackedArray(E.type);O.itemSize=E.itemSize,O.normalized=E.normalized,C[w]=O}}return n[e]}getGroupAttrArray(e,n=0){const{groupAttributes:r}=this;if(!r[0][e])throw new Error(`TypedAttributeData: Attribute with "${e}" has not been initialized`);return this.getGroupAttrSet(n)[e]}initializeArray(e,n,r,C){const{groupAttributes:w}=this,O=w[0][e];if(O){if(O.type!==n)for(let le=0,fe=w.length;le<fe;le++){const Se=w[le][e];Se.setType(n),Se.itemSize=r,Se.normalized=C}}else for(let le=0,fe=w.length;le<fe;le++){const Se=new TypeBackedArray(n);Se.itemSize=r,Se.normalized=C,w[le][e]=Se}}clear(){this.groupCount=0;const{groupAttributes:e}=this;e.forEach(n=>{for(const r in n)n[r].clear()})}delete(e){this.groupAttributes.forEach(n=>{delete n[e]})}reset(){this.groupAttributes=[],this.groupCount=0}}class IntersectionMap{constructor(){this.intersectionSet={},this.ids=[]}add(e,n){const{intersectionSet:r,ids:C}=this;r[e]||(r[e]=[],C.push(e)),r[e].push(n)}}const ADDITION=0,SUBTRACTION=1,REVERSE_SUBTRACTION=2,INTERSECTION=3,DIFFERENCE=4,HOLLOW_SUBTRACTION=5,HOLLOW_INTERSECTION=6,_ray$1=new Ray,_matrix$1=new Matrix4,_tri$1=new Triangle,_vec3=new Vector3,_vec4a=new Vector4,_vec4b=new Vector4,_vec4c=new Vector4,_vec4_0=new Vector4,_vec4_1=new Vector4,_vec4_2=new Vector4,_edge=new Line3,_normal=new Vector3,JITTER_EPSILON=1e-8,OFFSET_EPSILON=1e-15,BACK_SIDE=-1,FRONT_SIDE=1,COPLANAR_OPPOSITE=-2,COPLANAR_ALIGNED=2,INVERT_TRI=0,ADD_TRI=1,SKIP_TRI=2,FLOATING_COPLANAR_EPSILON=1e-14;let _debugContext=null;function setDebugContext(v){_debugContext=v}function getHitSide(v,e){v.getMidpoint(_ray$1.origin),v.getNormal(_ray$1.direction);const n=e.raycastFirst(_ray$1,DoubleSide);return!!(n&&_ray$1.direction.dot(n.face.normal)>0)?BACK_SIDE:FRONT_SIDE}function getHitSideWithCoplanarCheck(v,e){function n(){return Math.random()-.5}v.getNormal(_normal),_ray$1.direction.copy(_normal),v.getMidpoint(_ray$1.origin);const r=3;let C=0,w=1/0;for(let E=0;E<r;E++){_ray$1.direction.x+=n()*JITTER_EPSILON,_ray$1.direction.y+=n()*JITTER_EPSILON,_ray$1.direction.z+=n()*JITTER_EPSILON,_ray$1.direction.multiplyScalar(-1);const O=e.raycastFirst(_ray$1,DoubleSide);if(!!(O&&_ray$1.direction.dot(O.face.normal)>0)&&C++,O!==null&&(w=Math.min(w,O.distance)),w<=OFFSET_EPSILON)return O.face.normal.dot(_normal)>0?COPLANAR_ALIGNED:COPLANAR_OPPOSITE;if(C/r>.5||(E-C+1)/r>.5)break}return C/r>.5?BACK_SIDE:FRONT_SIDE}function collectIntersectingTriangles(v,e){const n=new IntersectionMap,r=new IntersectionMap;return _matrix$1.copy(v.matrixWorld).invert().multiply(e.matrixWorld),v.geometry.boundsTree.bvhcast(e.geometry.boundsTree,_matrix$1,{intersectsTriangles(C,w,E,O){if(!isTriDegenerate(C)&&!isTriDegenerate(w)){let le=C.intersectsTriangle(w,_edge,!0);if(!le){const fe=C.plane,Se=w.plane,ze=fe.normal,ke=Se.normal;ze.dot(ke)===1&&Math.abs(fe.constant-Se.constant)<FLOATING_COPLANAR_EPSILON&&(le=!0)}if(le){let fe=v.geometry.boundsTree.resolveTriangleIndex(E),Se=e.geometry.boundsTree.resolveTriangleIndex(O);n.add(fe,Se),r.add(Se,fe),_debugContext&&(_debugContext.addEdge(_edge),_debugContext.addIntersectingTriangles(E,C,O,w))}}return!1}}),{aIntersections:n,bIntersections:r}}function appendAttributeFromTriangle(v,e,n,r,C,w,E=!1){const O=n.attributes,le=n.index,fe=v*3,Se=le.getX(fe+0),ze=le.getX(fe+1),ke=le.getX(fe+2);for(const Fe in w){const mt=O[Fe],Lt=w[Fe];if(!(Fe in O))throw new Error(`CSG Operations: Attribute ${Fe} not available on geometry.`);const bt=mt.itemSize;Fe==="position"?(_tri$1.a.fromBufferAttribute(mt,Se).applyMatrix4(r),_tri$1.b.fromBufferAttribute(mt,ze).applyMatrix4(r),_tri$1.c.fromBufferAttribute(mt,ke).applyMatrix4(r),pushBarycoordInterpolatedValues(_tri$1.a,_tri$1.b,_tri$1.c,e,3,Lt,E)):Fe==="normal"?(_tri$1.a.fromBufferAttribute(mt,Se).applyNormalMatrix(C),_tri$1.b.fromBufferAttribute(mt,ze).applyNormalMatrix(C),_tri$1.c.fromBufferAttribute(mt,ke).applyNormalMatrix(C),E&&(_tri$1.a.multiplyScalar(-1),_tri$1.b.multiplyScalar(-1),_tri$1.c.multiplyScalar(-1)),pushBarycoordInterpolatedValues(_tri$1.a,_tri$1.b,_tri$1.c,e,3,Lt,E,!0)):(_vec4a.fromBufferAttribute(mt,Se),_vec4b.fromBufferAttribute(mt,ze),_vec4c.fromBufferAttribute(mt,ke),pushBarycoordInterpolatedValues(_vec4a,_vec4b,_vec4c,e,bt,Lt,E))}}function appendAttributesFromIndices(v,e,n,r,C,w,E,O=!1){appendAttributeFromIndex(v,r,C,w,E,O),appendAttributeFromIndex(O?n:e,r,C,w,E,O),appendAttributeFromIndex(O?e:n,r,C,w,E,O)}function getOperationAction(v,e,n=!1){switch(v){case ADDITION:if(e===FRONT_SIDE||e===COPLANAR_ALIGNED&&!n)return ADD_TRI;break;case SUBTRACTION:if(n){if(e===BACK_SIDE)return INVERT_TRI}else if(e===FRONT_SIDE||e===COPLANAR_OPPOSITE)return ADD_TRI;break;case REVERSE_SUBTRACTION:if(n){if(e===FRONT_SIDE||e===COPLANAR_OPPOSITE)return ADD_TRI}else if(e===BACK_SIDE)return INVERT_TRI;break;case DIFFERENCE:if(e===BACK_SIDE)return INVERT_TRI;if(e===FRONT_SIDE)return ADD_TRI;break;case INTERSECTION:if(e===BACK_SIDE||e===COPLANAR_ALIGNED&&!n)return ADD_TRI;break;case HOLLOW_SUBTRACTION:if(!n&&(e===FRONT_SIDE||e===COPLANAR_OPPOSITE))return ADD_TRI;break;case HOLLOW_INTERSECTION:if(!n&&(e===BACK_SIDE||e===COPLANAR_ALIGNED))return ADD_TRI;break;default:throw new Error(`Unrecognized CSG operation enum "${v}".`)}return SKIP_TRI}function pushBarycoordInterpolatedValues(v,e,n,r,C,w,E=!1,O=!1){const le=fe=>{w.push(fe.x),C>1&&w.push(fe.y),C>2&&w.push(fe.z),C>3&&w.push(fe.w)};_vec4_0.set(0,0,0,0).addScaledVector(v,r.a.x).addScaledVector(e,r.a.y).addScaledVector(n,r.a.z),_vec4_1.set(0,0,0,0).addScaledVector(v,r.b.x).addScaledVector(e,r.b.y).addScaledVector(n,r.b.z),_vec4_2.set(0,0,0,0).addScaledVector(v,r.c.x).addScaledVector(e,r.c.y).addScaledVector(n,r.c.z),O&&(_vec4_0.normalize(),_vec4_1.normalize(),_vec4_2.normalize()),le(_vec4_0),E?(le(_vec4_2),le(_vec4_1)):(le(_vec4_1),le(_vec4_2))}function appendAttributeFromIndex(v,e,n,r,C,w=!1){for(const E in C){const O=e[E],le=C[E];if(!(E in e))throw new Error(`CSG Operations: Attribute ${E} no available on geometry.`);const fe=O.itemSize;E==="position"?(_vec3.fromBufferAttribute(O,v).applyMatrix4(n),le.push(_vec3.x,_vec3.y,_vec3.z)):E==="normal"?(_vec3.fromBufferAttribute(O,v).applyNormalMatrix(r),w&&_vec3.multiplyScalar(-1),le.push(_vec3.x,_vec3.y,_vec3.z)):(le.push(O.getX(v)),fe>1&&le.push(O.getY(v)),fe>2&&le.push(O.getZ(v)),fe>3&&le.push(O.getW(v)))}}class TriangleIntersectData{constructor(e){this.triangle=new Triangle().copy(e),this.intersects={}}addTriangle(e,n){this.intersects[e]=new Triangle().copy(n)}getIntersectArray(){const e=[],{intersects:n}=this;for(const r in n)e.push(n[r]);return e}}class TriangleIntersectionSets{constructor(){this.data={}}addTriangleIntersection(e,n,r,C){const{data:w}=this;w[e]||(w[e]=new TriangleIntersectData(n)),w[e].addTriangle(r,C)}getTrianglesAsArray(e=null){const{data:n}=this,r=[];if(e!==null)e in n&&r.push(n[e].triangle);else for(const C in n)r.push(n[C].triangle);return r}getTriangleIndices(){return Object.keys(this.data).map(e=>parseInt(e))}getIntersectionIndices(e){const{data:n}=this;return n[e]?Object.keys(n[e].intersects).map(r=>parseInt(r)):[]}getIntersectionsAsArray(e=null,n=null){const{data:r}=this,C=new Set,w=[],E=O=>{if(r[O])if(n!==null)r[O].intersects[n]&&w.push(r[O].intersects[n]);else{const le=r[O].intersects;for(const fe in le)C.has(fe)||(C.add(fe),w.push(le[fe]))}};if(e!==null)E(e);else for(const O in r)E(O);return w}reset(){this.data={}}}class OperationDebugData{constructor(){this.enabled=!1,this.triangleIntersectsA=new TriangleIntersectionSets,this.triangleIntersectsB=new TriangleIntersectionSets,this.intersectionEdges=[]}addIntersectingTriangles(e,n,r,C){const{triangleIntersectsA:w,triangleIntersectsB:E}=this;w.addTriangleIntersection(e,n,r,C),E.addTriangleIntersection(r,C,e,n)}addEdge(e){this.intersectionEdges.push(e.clone())}reset(){this.triangleIntersectsA.reset(),this.triangleIntersectsB.reset(),this.intersectionEdges=[]}init(){this.enabled&&(this.reset(),setDebugContext(this))}complete(){this.enabled&&setDebugContext(null)}}const _matrix=new Matrix4,_normalMatrix=new Matrix3,_triA=new Triangle,_triB=new Triangle,_tri=new Triangle,_barycoordTri=new Triangle,_attr=[],_actions=[];function getFirstIdFromSet(v){for(const e of v)return e}function performOperation(v,e,n,r,C,w={}){const{useGroups:E=!0}=w,{aIntersections:O,bIntersections:le}=collectIntersectingTriangles(v,e),fe=[];let Se=null,ze;return ze=E?0:-1,performSplitTriangleOperations(v,e,O,n,!1,r,C,ze),performWholeTriangleOperations(v,e,O,n,!1,C,ze),n.findIndex(Fe=>Fe!==HOLLOW_INTERSECTION&&Fe!==HOLLOW_SUBTRACTION)!==-1&&(ze=E?v.geometry.groups.length||1:-1,performSplitTriangleOperations(e,v,le,n,!0,r,C,ze),performWholeTriangleOperations(e,v,le,n,!0,C,ze)),_attr.length=0,_actions.length=0,{groups:fe,materials:Se}}function performSplitTriangleOperations(v,e,n,r,C,w,E,O=0){const le=v.matrixWorld.determinant()<0;_matrix.copy(e.matrixWorld).invert().multiply(v.matrixWorld),_normalMatrix.getNormalMatrix(v.matrixWorld).multiplyScalar(le?-1:1);const fe=v.geometry.groupIndices,Se=v.geometry.index,ze=v.geometry.attributes.position,ke=e.geometry.boundsTree,Fe=e.geometry.index,mt=e.geometry.attributes.position,Lt=n.ids,bt=n.intersectionSet;for(let Ue=0,Gt=Lt.length;Ue<Gt;Ue++){const xt=Lt[Ue],Xt=O===-1?0:fe[xt]+O,Zt=3*xt,wt=Se.getX(Zt+0),Vt=Se.getX(Zt+1),Wt=Se.getX(Zt+2);_triA.a.fromBufferAttribute(ze,wt).applyMatrix4(_matrix),_triA.b.fromBufferAttribute(ze,Vt).applyMatrix4(_matrix),_triA.c.fromBufferAttribute(ze,Wt).applyMatrix4(_matrix),w.reset(),w.initialize(_triA);const It=bt[xt];for(let Ft=0,jt=It.length;Ft<jt;Ft++){const n0=3*It[Ft],s0=Fe.getX(n0+0),qt=Fe.getX(n0+1),Ht=Fe.getX(n0+2);_triB.a.fromBufferAttribute(mt,s0),_triB.b.fromBufferAttribute(mt,qt),_triB.c.fromBufferAttribute(mt,Ht),w.splitByTriangle(_triB)}const Nt=w.triangles;for(let Ft=0,jt=Nt.length;Ft<jt;Ft++){const n0=Nt[Ft],s0=w.coplanarTriangleUsed?getHitSideWithCoplanarCheck(n0,ke):getHitSide(n0,ke);_attr.length=0,_actions.length=0;for(let qt=0,Ht=r.length;qt<Ht;qt++){const $t=getOperationAction(r[qt],s0,C);$t!==SKIP_TRI&&(_actions.push($t),_attr.push(E[qt].getGroupAttrSet(Xt)))}if(_attr.length!==0){_triA.getBarycoord(n0.a,_barycoordTri.a),_triA.getBarycoord(n0.b,_barycoordTri.b),_triA.getBarycoord(n0.c,_barycoordTri.c);for(let qt=0,Ht=_attr.length;qt<Ht;qt++){const $t=_attr[qt],e0=_actions[qt]===INVERT_TRI;appendAttributeFromTriangle(xt,_barycoordTri,v.geometry,v.matrixWorld,_normalMatrix,$t,le!==e0)}}}}return Lt.length}function performWholeTriangleOperations(v,e,n,r,C,w,E=0){const O=v.matrixWorld.determinant()<0;_matrix.copy(e.matrixWorld).invert().multiply(v.matrixWorld),_normalMatrix.getNormalMatrix(v.matrixWorld).multiplyScalar(O?-1:1);const le=e.geometry.boundsTree,fe=v.geometry.groupIndices,Se=v.geometry.index,ze=v.geometry.attributes,ke=ze.position,Fe=[],mt=v.geometry.halfEdges,Lt=new Set,bt=getTriCount(v.geometry);for(let Ue=0,Gt=bt;Ue<Gt;Ue++)Ue in n.intersectionSet||Lt.add(Ue);for(;Lt.size>0;){const Ue=getFirstIdFromSet(Lt);Lt.delete(Ue),Fe.push(Ue);const Gt=3*Ue,xt=Se.getX(Gt+0),Xt=Se.getX(Gt+1),Zt=Se.getX(Gt+2);_tri.a.fromBufferAttribute(ke,xt).applyMatrix4(_matrix),_tri.b.fromBufferAttribute(ke,Xt).applyMatrix4(_matrix),_tri.c.fromBufferAttribute(ke,Zt).applyMatrix4(_matrix);const wt=getHitSide(_tri,le);_actions.length=0,_attr.length=0;for(let Vt=0,Wt=r.length;Vt<Wt;Vt++){const It=getOperationAction(r[Vt],wt,C);It!==SKIP_TRI&&(_actions.push(It),_attr.push(w[Vt]))}for(;Fe.length>0;){const Vt=Fe.pop();for(let Wt=0;Wt<3;Wt++){const It=mt.getSiblingTriangleIndex(Vt,Wt);It!==-1&&Lt.has(It)&&(Fe.push(It),Lt.delete(It))}if(_attr.length!==0){const Wt=3*Vt,It=Se.getX(Wt+0),Nt=Se.getX(Wt+1),Ft=Se.getX(Wt+2),jt=E===-1?0:fe[Vt]+E;if(_tri.a.fromBufferAttribute(ke,It),_tri.b.fromBufferAttribute(ke,Nt),_tri.c.fromBufferAttribute(ke,Ft),!isTriDegenerate(_tri))for(let n0=0,s0=_attr.length;n0<s0;n0++){const qt=_actions[n0],Ht=_attr[n0].getGroupAttrSet(jt),$t=qt===INVERT_TRI;appendAttributesFromIndices(It,Nt,Ft,ze,v.matrixWorld,_normalMatrix,Ht,$t!==O)}}}}}function joinGroups(v){for(let e=0;e<v.length-1;e++){const n=v[e],r=v[e+1];if(n.materialIndex===r.materialIndex){const C=n.start,w=r.start+r.count;r.start=C,r.count=w-C,v.splice(e,1),e--}}}function prepareAttributesData(v,e,n,r){n.clear();const C=v.attributes;for(let w=0,E=r.length;w<E;w++){const O=r[w],le=C[O];n.initializeArray(O,le.array.constructor,le.itemSize,le.normalized)}for(const w in n.attributes)r.includes(w)||n.delete(w);for(const w in e.attributes)r.includes(w)||(e.deleteAttribute(w),e.dispose())}function assignBufferData(v,e,n){let r=!1,C=-1;const w=v.attributes,E=e.groupAttributes[0];for(const le in E){const fe=e.getTotalLength(le),Se=e.getType(le),ze=e.getItemSize(le),ke=e.getNormalized(le);let Fe=w[le];(!Fe||Fe.array.length<fe)&&(Fe=new BufferAttribute(new Se(fe),ze,ke),v.setAttribute(le,Fe),r=!0);let mt=0;for(let Lt=0,bt=Math.min(n.length,e.groupCount);Lt<bt;Lt++){const Ue=n[Lt].index,{array:Gt,type:xt,length:Xt}=e.groupAttributes[Ue][le],Zt=new xt(Gt.buffer,0,Xt);Fe.array.set(Zt,mt),mt+=Zt.length}Fe.needsUpdate=!0,C=fe/Fe.itemSize}if(v.index){const le=v.index.array;if(le.length<C)v.index=null,r=!0;else for(let fe=0,Se=le.length;fe<Se;fe++)le[fe]=fe}let O=0;v.clearGroups();for(let le=0,fe=Math.min(n.length,e.groupCount);le<fe;le++){const{index:Se,materialIndex:ze}=n[le],ke=e.getCount(Se);ke!==0&&(v.addGroup(O,ke,ze),O+=ke)}v.setDrawRange(0,C),v.boundsTree=null,r&&v.dispose()}function getMaterialList(v,e){let n=e;return Array.isArray(e)||(n=[],v.forEach(r=>{n[r.materialIndex]=e})),n}class Evaluator{constructor(){this.triangleSplitter=new TriangleSplitter,this.attributeData=[],this.attributes=["position","uv","normal"],this.useGroups=!0,this.consolidateGroups=!0,this.debug=new OperationDebugData}getGroupRanges(e){return!this.useGroups||e.groups.length===0?[{start:0,count:1/0,materialIndex:0}]:e.groups.map(n=>O0({},n))}evaluate(e,n,r,C=new Brush){let w=!0;if(Array.isArray(r)||(r=[r]),Array.isArray(C)||(C=[C],w=!1),C.length!==r.length)throw new Error("Evaluator: operations and target array passed as different sizes.");e.prepareGeometry(),n.prepareGeometry();const{triangleSplitter:E,attributeData:O,attributes:le,useGroups:fe,consolidateGroups:Se,debug:ze}=this;for(;O.length<C.length;)O.push(new TypedAttributeData);C.forEach((Ue,Gt)=>{prepareAttributesData(e.geometry,Ue.geometry,O[Gt],le)}),ze.init(),performOperation(e,n,r,E,O,{useGroups:fe}),ze.complete();const ke=this.getGroupRanges(e.geometry),Fe=getMaterialList(ke,e.material),mt=this.getGroupRanges(n.geometry),Lt=getMaterialList(mt,n.material);mt.forEach(Ue=>Ue.materialIndex+=Fe.length);let bt=[...ke,...mt].map((Ue,Gt)=>Ui(O0({},Ue),{index:Gt}));if(fe){const Ue=[...Fe,...Lt];Se&&(bt=bt.map(xt=>{const Xt=Ue[xt.materialIndex];return xt.materialIndex=Ue.indexOf(Xt),xt}).sort((xt,Xt)=>xt.materialIndex-Xt.materialIndex));const Gt=[];for(let xt=0,Xt=Ue.length;xt<Xt;xt++){let Zt=!1;for(let wt=0,Vt=bt.length;wt<Vt;wt++){const Wt=bt[wt];Wt.materialIndex===xt&&(Zt=!0,Wt.materialIndex=Gt.length)}Zt&&Gt.push(Ue[xt])}C.forEach(xt=>{xt.material=Gt})}else bt=[{start:0,count:1/0,index:0,materialIndex:0}],C.forEach(Ue=>{Ue.material=Fe[0]});return C.forEach((Ue,Gt)=>{const xt=Ue.geometry;assignBufferData(xt,O[Gt],bt),Se&&joinGroups(xt.groups)}),w?C:C[0]}evaluateHierarchy(e,n=new Brush){e.updateMatrixWorld(!0);const r=(w,E)=>{const O=w.children;for(let le=0,fe=O.length;le<fe;le++){const Se=O[le];Se.isOperationGroup?r(Se,E):E(Se)}},C=w=>{const E=w.children;let O=!1;for(let fe=0,Se=E.length;fe<Se;fe++){const ze=E[fe];O=C(ze)||O}const le=w.isDirty();if(le&&w.markUpdated(),O&&!w.isOperationGroup){let fe;return r(w,Se=>{fe?fe=this.evaluate(fe,Se,Se.operation):fe=this.evaluate(w,Se,Se.operation)}),w._cachedGeometry=fe.geometry,w._cachedMaterials=fe.material,!0}else return O||le};return C(e),n.geometry=e._cachedGeometry,n.material=e._cachedMaterials,n}reset(){this.triangleSplitter.reset()}}class RectAreaLightTexturesLib{static init(){const e=[1,0,0,2e-5,1,0,0,503905e-9,1,0,0,.00201562,1,0,0,.00453516,1,0,0,.00806253,1,0,0,.0125978,1,0,0,.018141,1,0,0,.0246924,1,0,0,.0322525,1,0,0,.0408213,1,0,0,.0503999,1,0,0,.0609894,1,0,0,.0725906,1,0,0,.0852058,1,0,0,.0988363,1,0,0,.113484,1,0,0,.129153,1,0,0,.145839,1,0,0,.163548,1,0,0,.182266,1,0,0,.201942,1,0,0,.222314,1,0,0,.241906,1,0,0,.262314,1,0,0,.285754,1,0,0,.310159,1,0,0,.335426,1,0,0,.361341,1,0,0,.387445,1,0,0,.412784,1,0,0,.438197,1,0,0,.466966,1,0,0,.49559,1,0,0,.523448,1,0,0,.549938,1,0,0,.57979,1,0,0,.608746,1,0,0,.636185,1,0,0,.664748,1,0,0,.69313,1,0,0,.71966,1,0,0,.747662,1,0,0,.774023,1,0,0,.799775,1,0,0,.825274,1,0,0,.849156,1,0,0,.873248,1,0,0,.89532,1,0,0,.917565,1,0,0,.937863,1,0,0,.958139,1,0,0,.976563,1,0,0,.994658,1,0,0,1.0112,1,0,0,1.02712,1,0,0,1.04189,1,0,0,1.05568,1,0,0,1.06877,1,0,0,1.08058,1,0,0,1.09194,1,0,0,1.10191,1,0,0,1.11161,1,0,0,1.1199,1,0,0,1.12813,.999547,-448815e-12,.0224417,199902e-10,.999495,-113079e-10,.0224406,503651e-9,.999496,-452317e-10,.0224406,.00201461,.999496,-101772e-9,.0224406,.00453287,.999495,-180928e-9,.0224406,.00805845,.999497,-282702e-9,.0224406,.0125914,.999496,-407096e-9,.0224406,.0181319,.999498,-554114e-9,.0224406,.02468,.999499,-723768e-9,.0224406,.0322363,.999495,-916058e-9,.0224405,.0408009,.999499,-.00113101,.0224408,.050375,.999494,-.00136863,.0224405,.0609586,.999489,-.00162896,.0224401,.0725537,.999489,-.00191201,.0224414,.0851619,.999498,-.00221787,.0224413,.0987867,.999492,-.00254642,.0224409,.113426,.999507,-.00289779,.0224417,.129088,.999494,-.0032716,.0224386,.145767,.999546,-.0036673,.0224424,.163472,.999543,-.00408166,.0224387,.182182,.999499,-.00450056,.0224338,.201843,.999503,-.00483661,.0224203,.222198,.999546,-.00452928,.022315,.241714,.999508,-.00587403,.0224329,.262184,.999509,-.00638806,.0224271,.285609,.999501,-.00691028,.0224166,.309998,.999539,-.00741979,.0223989,.335262,.999454,-.00786282,.0223675,.361154,.999529,-.00811928,.0222828,.387224,.999503,-.00799941,.0221063,.41252,.999561,-.00952753,.0223057,.438006,.999557,-.0099134,.0222065,.466735,.999541,-.0100935,.0220402,.495332,.999562,-.00996821,.0218067,.523197,.999556,-.0105031,.0217096,.550223,.999561,-.0114191,.0217215,.579498,.999588,-.0111818,.0213357,.608416,.999633,-.0107725,.0208689,.635965,.999527,-.0121671,.0210149,.664476,.999508,-.0116005,.020431,.692786,.999568,-.0115604,.0199791,.719709,.999671,-.0121117,.0197415,.74737,.999688,-.0110769,.0188846,.773692,.99962,-.0122368,.0188452,.799534,.999823,-.0110325,.0178001,.825046,.999599,-.0114923,.0174221,.849075,.999619,-.0105923,.0164345,.872999,.999613,-.0105988,.0158227,.895371,.99964,-.00979861,.0148131,.917364,.99977,-.00967238,.0140721,.938002,.999726,-.00869175,.0129543,.957917,.99973,-.00866872,.0122329,.976557,.999773,-.00731956,.0108958,.994459,.999811,-.00756027,.0102715,1.01118,.999862,-.00583732,.00878781,1.02701,.999835,-.00631438,.00827529,1.04186,.999871,-.00450785,.00674583,1.05569,.999867,-.00486079,.00621041,1.06861,.999939,-.00322072,.00478301,1.08064,.999918,-.00318199,.00406395,1.09181,1.00003,-.00193348,.00280682,1.10207,.999928,-.00153729,.00198741,1.11152,.999933,-623666e-9,917714e-9,1.12009,1,-102387e-11,907581e-12,1.12813,.997866,-896716e-12,.0448334,199584e-10,.997987,-225945e-10,.0448389,502891e-9,.997987,-903781e-10,.0448388,.00201156,.997985,-203351e-9,.0448388,.00452602,.997986,-361514e-9,.0448388,.00804629,.997987,-56487e-8,.0448389,.0125724,.997988,-813423e-9,.0448389,.0181045,.997984,-.00110718,.0448387,.0246427,.997985,-.00144616,.0448388,.0321875,.997987,-.00183038,.044839,.0407392,.997983,-.00225987,.0448387,.0502986,.997991,-.00273467,.0448389,.0608667,.997984,-.00325481,.0448384,.0724444,.998002,-.00382043,.044839,.0850348,.997997,-.00443145,.0448396,.0986372,.998007,-.00508796,.0448397,.113255,.998008,-.00578985,.04484,.128891,.998003,-.00653683,.0448384,.145548,.997983,-.00732713,.0448358,.163221,.997985,-.00815454,.0448358,.181899,.998005,-.00898985,.0448286,.201533,.998026,-.00964404,.0447934,.221821,.998055,-.00922677,.044611,.241282,.99804,-.0117361,.0448245,.261791,.998048,-.0127628,.0448159,.285181,.998088,-.0138055,.0447996,.30954,.998058,-.0148206,.0447669,.334751,.998099,-.0156998,.044697,.36061,.998116,-.0161976,.0445122,.386603,.998195,-.015945,.0441711,.411844,.998168,-.0183947,.0444255,.43773,.998184,-.0197913,.0443809,.466009,.998251,-.0201426,.0440689,.494574,.998305,-.0198847,.0435632,.522405,.998273,-.0210577,.043414,.549967,.998254,-.0227901,.0433943,.578655,.998349,-.0223108,.0426529,.60758,.99843,-.0223088,.042,.635524,.998373,-.0241141,.0418987,.663621,.998425,-.0231446,.0408118,.691906,.998504,-.0233684,.0400565,.719339,.998443,-.0241652,.0394634,.74643,.99848,-.0228715,.0380002,.773086,.998569,-.023519,.0372322,.798988,.998619,-.0223108,.0356468,.824249,.998594,-.0223105,.034523,.848808,.998622,-.0213426,.0328887,.87227,.998669,-.0207912,.0314374,.895157,.998705,-.0198416,.0296925,.916769,.998786,-.0189168,.0279634,.937773,.998888,-.0178811,.0261597,.957431,.99906,-.0166845,.0242159,.976495,.999038,-.0155464,.0222638,.994169,.999237,-.0141349,.0201967,1.01112,.999378,-.0129324,.0181744,1.02692,.999433,-.0113192,.0159898,1.04174,.999439,-.0101244,.0140385,1.05559,.999614,-.00837456,.0117826,1.06852,.999722,-.00721769,.00983745,1.08069,.999817,-.00554067,.00769002,1.09176,.99983,-.00426961,.005782,1.10211,.999964,-.00273904,.00374503,1.11152,1.00001,-.00136739,.00187176,1.12031,.999946,393227e-10,-28919e-9,1.12804,.995847,-13435e-10,.0671785,19916e-9,.995464,-338387e-10,.0671527,501622e-9,.99547,-135355e-9,.0671531,.00200649,.995471,-30455e-8,.0671532,.00451461,.99547,-541423e-9,.0671531,.008026,.995471,-84598e-8,.0671531,.0125407,.99547,-.00121823,.0671531,.0180589,.99547,-.00165817,.0671531,.0245806,.995463,-.00216583,.0671526,.0321062,.995468,-.00274127,.0671527,.0406366,.995474,-.00338447,.0671534,.0501717,.995473,-.00409554,.0671533,.0607131,.995478,-.00487451,.0671531,.0722618,.995476,-.00572148,.0671532,.0848191,.995477,-.00663658,.0671539,.0983882,.995498,-.00761986,.0671541,.112972,.995509,-.00867094,.0671542,.128568,.995509,-.00978951,.0671531,.145183,.995503,-.0109725,.0671491,.162808,.995501,-.012211,.0671465,.181441,.99553,-.0134565,.0671371,.201015,.99555,-.014391,.0670831,.221206,.99558,-.014351,.0668883,.240813,.995577,-.0173997,.0671055,.261257,.995602,-.0191111,.0671178,.284467,.995623,-.0206705,.0670946,.308765,.995658,-.022184,.0670472,.333905,.995705,-.0234832,.0669417,.359677,.995719,-.0241933,.0666714,.385554,.995786,-.0243539,.066266,.410951,.995887,-.0271866,.0664367,.437163,.995944,-.0296012,.0664931,.464842,.996004,-.0301045,.0660105,.49332,.996128,-.0298311,.0652694,.521131,.996253,-.0316426,.0650739,.549167,.996244,-.0339043,.0649433,.57737,.996309,-.033329,.0638926,.606073,.996417,-.0338935,.0630849,.634527,.996372,-.0353104,.0625083,.66256,.996542,-.0348942,.0611986,.690516,.996568,-.0351614,.060069,.718317,.996711,-.0354317,.0588522,.74528,.996671,-.0349513,.0571902,.772061,.996865,-.0345622,.0555321,.798089,.996802,-.0342566,.0537816,.823178,.996992,-.0330862,.0516095,.847949,.996944,-.0324666,.0495537,.871431,.997146,-.0309544,.0470302,.894357,.997189,-.0299372,.0446043,.916142,.997471,-.0281389,.0418812,.937193,.997515,-.0268702,.0391823,.957,.997812,-.0247166,.0361338,.975936,.998027,-.0233525,.0333945,.99391,.998233,-.0209839,.0301917,1.01075,.998481,-.0194309,.027271,1.02669,.998859,-.0169728,.0240162,1.04173,.99894,-.0152322,.0210517,1.05551,.999132,-.0127497,.0178632,1.06856,.999369,-.0108282,.014787,1.08054,.999549,-.00845886,.0116185,1.09185,.999805,-.0063937,.00867209,1.10207,.99985,-.00414582,.00566823,1.1117,.999912,-.00207443,.00277562,1.12022,1.00001,870226e-10,-53766e-9,1.12832,.991943,-178672e-11,.0893382,198384e-10,.991952,-450183e-10,.089339,499849e-9,.991956,-180074e-9,.0893394,.0019994,.991955,-405167e-9,.0893393,.00449867,.991953,-720298e-9,.0893391,.00799764,.991955,-.00112548,.0893393,.0124964,.991957,-.0016207,.0893395,.0179951,.991958,-.00220601,.0893396,.0244939,.991947,-.00288137,.0893385,.0319929,.991962,-.00364693,.0893399,.0404933,.991965,-.00450264,.0893399,.049995,.99198,-.00544862,.0893411,.0604995,.99197,-.00648491,.0893397,.0720074,.991976,-.00761164,.089341,.0845207,.99198,-.00882891,.0893405,.0980413,.991982,-.0101367,.0893396,.112571,.992008,-.011535,.0893415,.128115,.992026,-.0130228,.0893414,.144672,.992064,-.0145966,.0893418,.162241,.992041,-.0162421,.0893359,.180801,.992086,-.0178888,.0893214,.200302,.992157,-.0190368,.0892401,.220332,.992181,-.0195584,.0890525,.240144,.992175,-.0227257,.0892153,.260728,.99221,-.0254195,.089304,.283473,.99222,-.0274883,.0892703,.307673,.992317,-.0294905,.0892027,.332729,.992374,-.0311861,.0890577,.358387,.992505,-.0320656,.0886994,.384102,.992568,-.0329715,.0883198,.409767,.992675,-.036006,.0883602,.436145,.992746,-.0392897,.0884591,.463217,.992873,-.0399337,.0878287,.491557,.992934,-.040231,.0870108,.519516,.993091,-.0422013,.0865857,.547741,.993259,-.0443503,.0861937,.575792,.993455,-.0446368,.0851187,.604233,.993497,-.0454299,.0840576,.632925,.993694,-.0463296,.0829671,.660985,.993718,-.0470619,.0817185,.688714,.993973,-.0468838,.0800294,.716743,.994207,-.046705,.0781286,.74377,.994168,-.0469698,.0763337,.77042,.9945,-.0456816,.0738184,.796659,.994356,-.0455518,.0715545,.821868,.994747,-.0439488,.0686085,.846572,.994937,-.0430056,.065869,.870435,.995142,-.0413414,.0626446,.893272,.995451,-.0396521,.05929,.915376,.995445,-.0378453,.0558503,.936196,.995967,-.0355219,.0520949,.956376,.996094,-.0335146,.048377,.975327,.996622,-.030682,.0442575,.993471,.996938,-.0285504,.0404693,1.01052,.997383,-.0253399,.0360903,1.02637,.997714,-.0231651,.0322176,1.04139,.998249,-.0198138,.0278433,1.05542,.998596,-.0174337,.0238759,1.06846,.998946,-.0141349,.0195944,1.08056,.99928,-.0115603,.0156279,1.09181,.999507,-.00839065,.0114607,1.10213,.999697,-.005666,.00763325,1.11169,.999869,-.00269902,.00364946,1.12042,1.00001,623836e-10,-319288e-10,1.12832,.987221,-222675e-11,.111332,197456e-10,.98739,-561116e-10,.111351,497563e-9,.987448,-224453e-9,.111357,.00199031,.987441,-505019e-9,.111357,.0044782,.987442,-897816e-9,.111357,.00796129,.987442,-.00140284,.111357,.0124396,.987444,-.00202012,.111357,.0179132,.987442,-.00274964,.111357,.0243824,.987446,-.00359147,.111357,.0318474,.987435,-.00454562,.111356,.0403086,.987461,-.00561225,.111358,.0497678,.987458,-.00679125,.111358,.0602239,.987443,-.0080828,.111356,.0716792,.987476,-.0094872,.111358,.0841364,.98749,-.0110044,.111361,.097597,.987508,-.0126344,.111362,.112062,.987494,-.0143767,.111357,.127533,.987526,-.0162307,.111359,.144015,.987558,-.0181912,.111361,.161502,.987602,-.0202393,.111355,.179979,.987692,-.022273,.111346,.199386,.987702,-.0235306,.111215,.219183,.987789,-.0247628,.111061,.239202,.987776,-.0280668,.111171,.259957,.987856,-.0316751,.111327,.282198,.987912,-.0342468,.111282,.306294,.988,-.0367205,.111198,.331219,.988055,-.0387766,.110994,.356708,.988241,-.0397722,.110547,.382234,.988399,-.0416076,.110198,.408227,.988539,-.0448192,.110137,.434662,.988661,-.0483793,.110143,.461442,.988967,-.0495895,.109453,.489318,.989073,-.0506797,.108628,.517516,.989274,-.0526953,.108003,.545844,.989528,-.054578,.107255,.573823,.989709,-.0561503,.106294,.601944,.989991,-.056866,.104896,.630855,.990392,-.0572914,.103336,.658925,.990374,-.0586224,.10189,.686661,.990747,-.0584764,.099783,.714548,.991041,-.0582662,.0974309,.74186,.991236,-.0584118,.0951678,.768422,.991585,-.0573055,.0921581,.794817,.991984,-.0564241,.0891167,.820336,.9921,-.0553608,.085805,.84493,.992749,-.0533816,.0820354,.868961,.99288,-.0518661,.0782181,.891931,.993511,-.0492492,.0738935,.914186,.993617,-.0471956,.0696402,.93532,.99411,-.044216,.0649659,.95543,.994595,-.0416654,.0603177,.974685,.994976,-.0384314,.0553493,.992807,.995579,-.0353491,.0503942,1.00996,.996069,-.0319787,.0452123,1.02606,.996718,-.028472,.0400112,1.04114,.997173,-.0250789,.0349456,1.05517,.997818,-.0213326,.029653,1.0683,.998318,-.0178509,.024549,1.0805,.998853,-.0141118,.0194197,1.09177,.999218,-.0105914,.0143869,1.1022,.999594,-.00693474,.00943517,1.11175,.99975,-.00340478,.00464051,1.12056,1.00001,109172e-9,-112821e-9,1.12853,.983383,-266524e-11,.133358,196534e-10,.981942,-671009e-10,.133162,494804e-9,.981946,-268405e-9,.133163,.00197923,.981944,-603912e-9,.133163,.00445326,.981941,-.00107362,.133162,.00791693,.981946,-.00167755,.133163,.0123703,.981944,-.00241569,.133162,.0178135,.981945,-.00328807,.133163,.0242466,.981945,-.00429472,.133162,.03167,.981955,-.00543573,.133164,.0400846,.981951,-.00671105,.133163,.0494901,.981968,-.00812092,.133165,.0598886,.981979,-.00966541,.133166,.0712811,.981996,-.0113446,.133168,.083669,.982014,-.0131585,.133169,.0970533,.982011,-.0151073,.133167,.111438,.982062,-.0171906,.133172,.126826,.9821,-.0194067,.133175,.143215,.982149,-.0217502,.133176,.160609,.982163,-.0241945,.133173,.178981,.982247,-.0265907,.133148,.198249,.982291,-.027916,.132974,.217795,.982396,-.0299663,.132868,.238042,.982456,-.0334544,.132934,.258901,.982499,-.0378636,.133137,.280639,.982617,-.0409274,.133085,.304604,.98274,-.0438523,.132985,.329376,.982944,-.0462288,.132728,.354697,.98308,-.0475995,.132228,.380102,.983391,-.0501901,.131924,.406256,.983514,-.0535899,.131737,.432735,.98373,-.0571858,.131567,.459359,.984056,-.0592353,.130932,.486637,.984234,-.0610488,.130092,.51509,.984748,-.0630758,.12923,.543461,.985073,-.0647398,.128174,.571376,.985195,-.0671941,.127133,.599414,.985734,-.0681345,.125576,.628134,.986241,-.0686089,.123639,.656399,.986356,-.0698511,.121834,.684258,.986894,-.0700931,.119454,.711818,.987382,-.0698321,.116718,.739511,.988109,-.0693975,.113699,.766267,.988363,-.0689584,.110454,.792456,.989112,-.0672353,.106602,.81813,.989241,-.0662034,.10267,.842889,.990333,-.0638938,.0981381,.867204,.990591,-.0618534,.0935388,.89038,.991106,-.0593117,.088553,.912576,.991919,-.0562676,.0832187,.934118,.992111,-.0534085,.0778302,.954254,.992997,-.0495459,.0720453,.973722,.993317,-.0463707,.0663458,.991949,.994133,-.0421245,.0601883,1.00936,.994705,-.0384977,.0542501,1.02559,.995495,-.0340956,.0479862,1.04083,.996206,-.030105,.041887,1.05497,.996971,-.0256095,.0355355,1.06824,.997796,-.0213932,.0293655,1.08056,.998272,-.0169612,.0232926,1.09182,.998857,-.0126756,.0172786,1.10219,.99939,-.00832486,.0113156,1.11192,.999752,-.00410826,.00557892,1.12075,1,150957e-9,-119101e-9,1.12885,.975169,-309397e-11,.154669,195073e-10,.975439,-779608e-10,.154712,491534e-9,.975464,-311847e-9,.154716,.00196617,.975464,-701656e-9,.154716,.00442387,.975462,-.0012474,.154715,.0078647,.975461,-.00194906,.154715,.0122886,.975464,-.00280667,.154715,.0176959,.975468,-.00382025,.154716,.0240867,.975471,-.00498985,.154716,.0314612,.975472,-.00631541,.154717,.0398199,.975486,-.00779719,.154718,.0491639,.975489,-.00943505,.154718,.0594932,.975509,-.0112295,.154721,.0708113,.97554,-.0131802,.154724,.0831176,.975557,-.0152876,.154726,.096415,.975585,-.0175512,.154728,.110705,.975605,-.0199713,.154729,.125992,.975645,-.0225447,.154729,.142272,.975711,-.0252649,.154735,.159549,.975788,-.0280986,.154736,.177805,.975872,-.0308232,.154704,.196911,.975968,-.0324841,.154525,.216324,.976063,-.0351281,.154432,.236628,.976157,-.0388618,.15446,.257539,.976204,-.0437704,.154665,.278975,.976358,-.047514,.154652,.302606,.976571,-.0508638,.154535,.327204,.976725,-.0534995,.154221,.352276,.977013,-.0555547,.153737,.377696,.977294,-.0586728,.153403,.403855,.977602,-.0622715,.15312,.430333,.977932,-.0658166,.152755,.456855,.978241,-.0689877,.152233,.483668,.978602,-.0712805,.15132,.512097,.979234,-.0732775,.150235,.540455,.97977,-.075163,.148978,.568486,.979995,-.0778026,.147755,.596524,.98078,-.0791854,.146019,.624825,.981628,-.0799666,.143906,.653403,.982067,-.0808532,.141561,.681445,.98271,-.0816024,.139025,.708918,.983734,-.0812511,.135764,.736594,.98431,-.0806201,.132152,.763576,.985071,-.0801605,.12846,.789797,.98618,-.0784208,.124084,.815804,.986886,-.0766643,.1193,.840869,.987485,-.0747744,.114236,.864952,.988431,-.0716701,.108654,.888431,.988886,-.0691609,.102994,.910963,.990024,-.0654048,.0967278,.932629,.990401,-.0619765,.090384,.95313,.991093,-.0579296,.0837885,.972587,.992018,-.0536576,.0770171,.991184,.992536,-.0493719,.0701486,1.00863,.993421,-.0444813,.062953,1.02494,.993928,-.040008,.0560455,1.04017,.994994,-.0347982,.04856,1.05463,.995866,-.0301017,.0416152,1.06807,.996916,-.0248225,.0342597,1.08039,.997766,-.0199229,.0271668,1.09177,.998479,-.0147422,.0201387,1.10235,.99921,-.00980173,.0131944,1.11206,.999652,-.0047426,.00640712,1.12104,.999998,891673e-10,-10379e-8,1.12906,.967868,-351885e-11,.175947,193569e-10,.968001,-886733e-10,.175972,487782e-9,.96801,-354697e-9,.175973,.00195115,.968012,-798063e-9,.175974,.00439006,.968011,-.00141879,.175973,.00780461,.968011,-.00221686,.175973,.0121948,.968016,-.00319231,.175974,.0175607,.968019,-.00434515,.175974,.0239027,.968018,-.00567538,.175974,.0312208,.968033,-.00718308,.175977,.0395158,.968049,-.00886836,.175979,.0487885,.968047,-.0107312,.175978,.0590394,.968072,-.0127719,.175981,.0702705,.968108,-.0149905,.175986,.0824836,.968112,-.0173866,.175985,.0956783,.968173,-.0199611,.175993,.109862,.96827,-.0227128,.176008,.125033,.968292,-.025639,.17601,.141193,.968339,-.0287299,.176007,.158336,.968389,-.0319399,.176001,.176441,.968501,-.034941,.175962,.195359,.968646,-.0370812,.175793,.214686,.968789,-.0402329,.175708,.234973,.96886,-.0442601,.1757,.255871,.969013,-.049398,.175876,.277238,.969242,-.0539932,.17594,.300326,.969419,-.0577299,.175781,.324702,.969763,-.0605643,.175432,.349527,.970093,-.0634488,.174992,.374976,.970361,-.0670589,.174611,.401097,.970825,-.0708246,.174226,.427496,.971214,-.0742871,.173684,.453858,.971622,-.0782608,.173186,.480637,.972175,-.0813151,.172288,.508655,.972944,-.0832678,.170979,.536973,.973595,-.0855964,.169573,.565138,.974345,-.0882163,.168152,.593222,.975233,-.0901671,.166314,.621201,.976239,-.0912111,.163931,.649919,.977289,-.0916959,.161106,.678011,.978076,-.0927061,.158272,.705717,.979533,-.0925562,.15475,.733228,.980335,-.0918159,.150638,.760454,.981808,-.0908508,.146201,.786918,.983061,-.0896172,.141386,.812953,.984148,-.0871588,.135837,.838281,.985047,-.0850624,.130135,.862594,.986219,-.0818541,.123882,.88633,.987043,-.0784523,.117126,.908952,.988107,-.0749601,.110341,.930744,.988955,-.0703548,.102885,.951728,.989426,-.0662798,.0954167,.971166,.990421,-.0610834,.0876331,.989984,.991032,-.0562936,.0797785,1.00765,.992041,-.0508154,.0718166,1.02434,.992794,-.0454045,.0637125,1.03976,.993691,-.0398194,.0555338,1.05418,.994778,-.0341482,.0473388,1.06772,.995915,-.028428,.0391016,1.08028,.997109,-.022642,.0309953,1.09185,.998095,-.0168738,.0230288,1.10247,.998985,-.0111274,.0150722,1.11229,.999581,-.00543881,.00740605,1.12131,1.00003,162239e-9,-105549e-9,1.12946,.959505,-393734e-11,.196876,191893e-10,.959599,-992157e-10,.196895,483544e-9,.959641,-396868e-9,.196903,.0019342,.959599,-892948e-9,.196895,.00435193,.959603,-.00158747,.196896,.0077368,.959604,-.00248042,.196896,.0120888,.959605,-.00357184,.196896,.0174082,.959605,-.00486169,.196896,.0236949,.959613,-.00635008,.196897,.0309497,.959619,-.00803696,.196898,.0391725,.959636,-.00992255,.196901,.0483649,.959634,-.0120067,.1969,.0585266,.959675,-.0142898,.196906,.0696609,.959712,-.0167717,.196911,.0817678,.959752,-.0194524,.196918,.0948494,.959807,-.0223321,.196925,.10891,.959828,-.0254091,.196924,.123947,.959906,-.0286815,.196934,.139968,.960005,-.0321371,.196944,.156968,.960071,-.0357114,.196936,.17491,.960237,-.0389064,.196882,.193597,.960367,-.041623,.196731,.21285,.960562,-.0452655,.196654,.233075,.960735,-.0496207,.196643,.253941,.960913,-.0549379,.196774,.275278,.961121,-.0603414,.196893,.297733,.96139,-.0644244,.196717,.321877,.961818,-.067556,.196314,.346476,.962175,-.0712709,.195917,.371907,.96255,-.0752848,.1955,.397916,.963164,-.0792073,.195026,.424229,.963782,-.0828225,.194424,.450637,.964306,-.0873119,.193831,.477288,.964923,-.0911051,.192973,.504716,.966048,-.093251,.19151,.533053,.967024,-.0958983,.190013,.561366,.968038,-.09835,.188253,.589464,.969152,-.100754,.186257,.617433,.970557,-.102239,.183775,.645801,.972104,-.102767,.180645,.674278,.973203,-.103492,.177242,.702004,.975123,-.103793,.17345,.729529,.97641,-.102839,.168886,.756712,.978313,-.101687,.163892,.783801,.980036,-.100314,.158439,.809671,.981339,-.097836,.152211,.835402,.982794,-.0950006,.145679,.860081,.984123,-.0920994,.138949,.883757,.984918,-.0878641,.131283,.90685,.985999,-.083939,.123464,.928786,.987151,-.0791234,.115324,.94983,.987827,-.0739332,.106854,.96962,.988806,-.0688088,.0982691,.98861,.989588,-.0628962,.0893456,1.00667,.990438,-.0573146,.0805392,1.02344,.991506,-.0509433,.0713725,1.03933,.992492,-.0448724,.0623732,1.05378,.993663,-.0383497,.0530838,1.06747,.994956,-.0319593,.0439512,1.08007,.99634,-.025401,.0347803,1.09182,.99761,-.0189687,.0257954,1.1025,.99863,-.0124441,.0169893,1.11247,.99947,-.00614003,.00829498,1.12151,1.00008,216624e-9,-146107e-9,1.12993,.950129,-434955e-11,.217413,190081e-10,.950264,-10957e-8,.217444,47884e-8,.9503,-438299e-9,.217451,.00191543,.950246,-986124e-9,.21744,.00430951,.950246,-.00175311,.21744,.00766137,.950245,-.00273923,.21744,.011971,.950253,-.00394453,.217441,.0172385,.950258,-.00536897,.217442,.0234641,.950267,-.00701262,.217444,.030648,.950277,-.00887551,.217446,.038791,.950284,-.0109576,.217446,.0478931,.950312,-.0132591,.217451,.0579568,.950334,-.01578,.217454,.0689821,.950378,-.0185204,.217462,.0809714,.950417,-.0214803,.217467,.0939265,.950488,-.0246594,.217479,.10785,.950534,-.0280565,.217483,.122743,.950633,-.0316685,.217498,.138611,.950698,-.0354787,.217499,.155442,.950844,-.0394003,.217507,.173208,.950999,-.0426812,.217419,.191605,.951221,-.0461302,.217317,.21084,.951412,-.0502131,.217238,.230945,.951623,-.0549183,.21722,.251745,.951867,-.0604493,.217306,.273001,.952069,-.0665189,.217466,.294874,.952459,-.0709179,.217266,.318732,.952996,-.0746112,.216891,.34318,.953425,-.0789252,.216503,.36849,.953885,-.0833293,.216042,.394373,.954617,-.087371,.215469,.420505,.955429,-.0914054,.214802,.446907,.956068,-.0961671,.214146,.473522,.957094,-.10048,.213286,.50052,.958372,-.103248,.211796,.528715,.959654,-.106033,.21016,.557065,.961305,-.108384,.208149,.585286,.962785,-.111122,.206024,.613334,.964848,-.112981,.203442,.641334,.966498,-.113717,.19996,.669955,.968678,-.114121,.196105,.698094,.970489,-.114524,.191906,.725643,.972903,-.113792,.186963,.752856,.974701,-.112406,.181343,.780013,.976718,-.110685,.175185,.806268,.978905,-.108468,.168535,.832073,.980267,-.105061,.161106,.857149,.981967,-.101675,.153387,.881145,.983063,-.0974492,.145199,.904255,.984432,-.0925815,.136527,.926686,.985734,-.0877983,.127584,.947901,.986228,-.081884,.118125,.968111,.98719,-.0761208,.108594,.98719,.988228,-.0698196,.0989996,1.00559,.989046,-.0632739,.0890074,1.02246,.990242,-.056522,.0790832,1.03841,.991252,-.0495272,.0689182,1.05347,.992542,-.0425373,.0588592,1.06724,.994096,-.0353198,.0486833,1.08009,.995593,-.028235,.0385977,1.09177,.99711,-.0209511,.0286457,1.10274,.998263,-.0139289,.0188497,1.11262,.999254,-.0067359,.009208,1.12191,.999967,141846e-9,-657764e-10,1.13024,.935608,-474692e-11,.236466,187817e-10,.93996,-11971e-8,.237568,473646e-9,.939959,-478845e-9,.237567,.0018946,.939954,-.0010774,.237566,.00426284,.939956,-.00191538,.237566,.00757842,.939954,-.00299277,.237566,.0118413,.93996,-.00430961,.237567,.0170518,.939969,-.00586589,.237569,.02321,.939982,-.00766166,.237572,.0303164,.939987,-.00969686,.237572,.0383711,.939997,-.0119715,.237574,.0473751,.940031,-.0144858,.237581,.0573298,.940073,-.0172399,.237589,.0682366,.94012,-.0202335,.237598,.080097,.940162,-.0234663,.237604,.0929116,.940237,-.0269387,.237615,.106686,.940328,-.0306489,.237632,.121421,.940419,-.0345917,.237645,.137115,.940522,-.0387481,.237654,.153766,.940702,-.0429906,.237661,.17133,.940871,-.0465089,.237561,.189502,.941103,-.050531,.23748,.208616,.941369,-.0550657,.237423,.228595,.941641,-.0601337,.237399,.249287,.941903,-.0658804,.237443,.270467,.942224,-.0722674,.237597,.292024,.942633,-.0771788,.237419,.315272,.943172,-.0815623,.237068,.339579,.943691,-.0863973,.236682,.364717,.944382,-.0911536,.236213,.390435,.945392,-.0952967,.235562,.416425,.946185,-.0998948,.234832,.442772,.947212,-.104796,.234114,.469347,.948778,-.10928,.233222,.496162,.950149,-.113081,.231845,.523978,.951989,-.115893,.230005,.552295,.953921,-.11846,.227862,.580569,.955624,-.12115,.225439,.608698,.958234,-.123373,.222635,.636696,.960593,-.124519,.219093,.665208,.963201,-.124736,.214749,.693557,.965642,-.125012,.210059,.721334,.968765,-.124661,.204935,.748613,.971753,-.122996,.198661,.776224,.973751,-.120998,.191823,.802461,.976709,-.118583,.184359,.828399,.977956,-.115102,.176437,.853693,.979672,-.111077,.167681,.877962,.981816,-.10688,.158872,.901564,.98238,-.101469,.149398,.924057,.983964,-.0960013,.139436,.945751,.984933,-.0899626,.12943,.966272,.985694,-.0832973,.11894,.985741,.986822,-.0767082,.108349,1.00407,.987725,-.0693614,.0976026,1.02154,.98877,-.06211,.086652,1.03757,.990129,-.0544143,.0756182,1.05296,.991337,-.046744,.0645753,1.06683,.992978,-.0387931,.0534683,1.0798,.994676,-.030973,.0424137,1.09181,.99645,-.0230311,.0314035,1.10286,.997967,-.0152065,.0206869,1.11291,.99922,-.00744837,.010155,1.12237,1.00002,240209e-9,-752767e-10,1.13089,.922948,-515351e-11,.255626,186069e-10,.928785,-129623e-9,.257244,468009e-9,.928761,-51849e-8,.257237,.00187202,.928751,-.0011666,.257235,.00421204,.928751,-.00207395,.257234,.0074881,.928754,-.00324055,.257235,.0117002,.92876,-.00466639,.257236,.0168486,.928763,-.00635149,.257237,.0229334,.928774,-.00829584,.257239,.029955,.928791,-.0104995,.257243,.0379139,.928804,-.0129623,.257245,.0468108,.928847,-.0156846,.257255,.0566473,.92889,-.0186661,.257263,.0674246,.928924,-.0219067,.257268,.0791433,.928989,-.0254066,.257282,.0918076,.92909,-.0291651,.257301,.105419,.92918,-.0331801,.257316,.119978,.92929,-.0374469,.257332,.135491,.929453,-.041939,.257357,.151948,.929586,-.0464612,.257347,.169275,.929858,-.0503426,.257269,.187257,.930125,-.0548409,.257199,.206204,.930403,-.0598063,.257149,.22601,.930726,-.0652437,.257122,.246561,.931098,-.0712376,.257153,.267618,.931396,-.0777506,.257237,.288993,.931947,-.0832374,.257124,.311527,.932579,-.0883955,.25683,.335697,.933194,-.0937037,.256444,.360634,.934013,-.0987292,.255939,.386126,.935307,-.103215,.255282,.412018,.936374,-.108234,.254538,.438292,.93776,-.113234,.253728,.464805,.939599,-.118013,.25275,.491464,.941036,-.122661,.251404,.518751,.94337,-.125477,.249435,.547133,.945318,-.128374,.247113,.575456,.947995,-.130996,.244441,.60372,.950818,-.133438,.241352,.63174,.954378,-.135004,.237849,.659971,.957151,-.135313,.233188,.688478,.960743,-.13521,.228001,.716767,.964352,-.135007,.222249,.744349,.967273,-.133523,.21542,.771786,.969767,-.131155,.208039,.798639,.973195,-.128492,.200076,.824774,.975557,-.125094,.191451,.850222,.977692,-.120578,.18184,.874761,.98026,-.115882,.172102,.898497,.981394,-.110372,.161859,.921636,.982386,-.10415,.15108,.943467,.983783,-.0978128,.140407,.964045,.98422,-.0906171,.129058,.98398,.985447,-.0832921,.117614,1.00276,.986682,-.0754412,.10585,1.02047,.987326,-.0673885,.0940943,1.03678,.988707,-.0592565,.0822093,1.05218,.990185,-.050717,.070192,1.06652,.991866,-.0423486,.0582081,1.07965,.993897,-.0336118,.0460985,1.09188,.995841,-.0252178,.0342737,1.10307,.997605,-.0164893,.0224829,1.11324,.999037,-.00817112,.0110647,1.12262,1.00003,291686e-9,-168673e-9,1.13139,.915304,-552675e-11,.275999,183285e-10,.91668,-139285e-9,.276414,461914e-9,.916664,-55713e-8,.276409,.00184763,.916653,-.00125354,.276406,.00415715,.916651,-.00222851,.276405,.00739053,.916655,-.00348205,.276406,.0115478,.916653,-.00501414,.276405,.0166291,.916667,-.00682478,.276409,.0226346,.91668,-.00891398,.276412,.0295648,.91669,-.0112817,.276413,.0374199,.916727,-.013928,.276422,.0462016,.916759,-.0168528,.276429,.0559101,.916793,-.0200558,.276436,.0665466,.916849,-.0235373,.276448,.0781139,.916964,-.0272973,.276474,.0906156,.917047,-.0313344,.276491,.104051,.917152,-.0356465,.276511,.118424,.917286,-.0402271,.276533,.133736,.917469,-.0450408,.276564,.149978,.917686,-.0497872,.276563,.167057,.917953,-.0540937,.276493,.184846,.918228,-.0590709,.276437,.203614,.918572,-.0644277,.276398,.223212,.918918,-.0702326,.276362,.243584,.919356,-.076484,.276383,.264465,.919842,-.0830808,.276434,.285701,.920451,-.0892972,.276407,.307559,.921113,-.095016,.276128,.331501,.921881,-.100771,.275754,.356207,.923027,-.106029,.275254,.381477,.924364,-.111029,.274595,.40722,.925818,-.116345,.273841,.433385,.92746,-.121424,.272913,.459848,.929167,-.12657,.271837,.486493,.931426,-.131581,.270575,.513432,.934001,-.135038,.268512,.541502,.936296,-.138039,.266135,.569658,.939985,-.140687,.263271,.598375,.943516,-.143247,.260058,.626563,.94782,-.145135,.256138,.654711,.951023,-.145733,.251154,.683285,.955338,-.145554,.245562,.711831,.959629,-.145008,.239265,.739573,.963123,-.144003,.232064,.767027,.966742,-.141289,.224036,.794359,.969991,-.138247,.215305,.820361,.973403,-.134786,.206051,.846548,.975317,-.129966,.195914,.871541,.977647,-.12471,.185184,.895313,.980137,-.119086,.174161,.918398,.981031,-.112297,.162792,.940679,.982037,-.105372,.150952,.961991,.983164,-.097821,.138921,.981913,.983757,-.0897245,.126611,1.00109,.985036,-.0815974,.114228,1.01902,.986289,-.0727725,.101389,1.03604,.987329,-.0639323,.0886476,1.05149,.989193,-.0548109,.0756837,1.06619,.990716,-.045687,.0627581,1.07948,.992769,-.0364315,.0498337,1.09172,.99524,-.0271761,.0370305,1.1033,.997154,-.0179609,.0243959,1.11353,.998845,-.00878063,.0119567,1.12319,1.00002,259038e-9,-108146e-9,1.13177,.903945,-591681e-11,.295126,181226e-10,.903668,-148672e-9,.295037,455367e-9,.903677,-594683e-9,.29504,.00182145,.903673,-.00133805,.295039,.00409831,.903666,-.00237872,.295036,.00728584,.903668,-.00371676,.295037,.0113842,.903679,-.00535212,.29504,.0163936,.903684,-.00728479,.295041,.0223141,.903698,-.00951473,.295044,.0291462,.903718,-.0120419,.295049,.0368904,.903754,-.0148664,.295058,.0455477,.903801,-.017988,.29507,.0551194,.903851,-.0214064,.295082,.0656058,.903921,-.0251219,.295097,.0770109,.904002,-.0291337,.295116,.0893354,.904111,-.033441,.29514,.102583,.904246,-.0380415,.295169,.116755,.904408,-.0429258,.295202,.131853,.904637,-.0480468,.295245,.147869,.904821,-.0529208,.295214,.164658,.905163,-.0577748,.295185,.182274,.905469,-.0631763,.295143,.200828,.905851,-.068917,.295112,.2202,.906322,-.0750861,.295104,.240372,.906761,-.0815855,.295086,.261082,.90735,-.0882138,.295095,.282123,.908087,-.095082,.295139,.303563,.908826,-.101488,.29492,.327028,.909832,-.107577,.294577,.351464,.911393,-.113033,.294115,.376497,.912804,-.118629,.293446,.402115,.914081,-.124232,.292581,.428111,.91637,-.129399,.29166,.454442,.91814,-.134892,.290422,.481024,.921179,-.140069,.289194,.507924,.924544,-.144431,.287421,.535557,.927995,-.147498,.284867,.563984,.931556,-.150197,.281722,.5923,.935777,-.152711,.278207,.620832,.940869,-.154836,.274148,.649069,.945994,-.155912,.269057,.677746,.949634,-.155641,.262799,.706293,.955032,-.154809,.256097,.734278,.95917,-.153678,.248618,.761751,.962931,-.151253,.239794,.789032,.966045,-.147625,.230281,.815422,.96971,-.143964,.220382,.841787,.972747,-.139464,.209846,.867446,.975545,-.133459,.198189,.892004,.978381,-.127424,.186362,.915458,.979935,-.120506,.173964,.937948,.980948,-.11282,.161429,.959732,.982234,-.104941,.148557,.980118,.982767,-.0962905,.135508,.999463,.983544,-.0873625,.122338,1.01756,.984965,-.0783447,.108669,1.03492,.986233,-.0684798,.0949911,1.05087,.987796,-.0590867,.0811386,1.0656,.989885,-.0489145,.0673099,1.0794,.991821,-.0391,.0535665,1.09174,.99448,-.029087,.0397529,1.10341,.996769,-.019114,.0261463,1.11383,.998641,-.00947007,.0128731,1.1237,.999978,446316e-9,-169093e-9,1.13253,.888362,-627064e-11,.312578,178215e-10,.889988,-157791e-9,.313148,448451e-9,.889825,-631076e-9,.313092,.00179356,.88984,-.00141994,.313097,.00403554,.889828,-.0025243,.313092,.00717429,.889831,-.00394421,.313093,.0112099,.889831,-.00567962,.313093,.0161425,.889844,-.00773051,.313096,.0219724,.889858,-.0100968,.3131,.0286999,.889882,-.0127786,.313106,.0363256,.889918,-.0157757,.313116,.0448509,.889967,-.0190878,.313129,.0542758,.89003,-.022715,.313145,.0646032,.890108,-.0266566,.313165,.0758339,.890218,-.0309131,.313193,.0879729,.890351,-.0354819,.313226,.101019,.89051,-.0403613,.313263,.114979,.890672,-.0455385,.313294,.129848,.890882,-.0509444,.313333,.145616,.891189,-.0559657,.313324,.162122,.891457,-.0613123,.313281,.179524,.891856,-.0671488,.313281,.197855,.892312,-.0732732,.313268,.216991,.892819,-.0797865,.313263,.236924,.893369,-.0865269,.313247,.257433,.894045,-.0931592,.313205,.278215,.894884,-.100532,.313276,.299467,.895832,-.107716,.313205,.322276,.897043,-.114099,.312873,.34642,.898515,-.119941,.312331,.371187,.900191,-.126044,.311731,.396656,.90188,-.131808,.310859,.422488,.904359,-.137289,.309857,.448744,.906923,-.142991,.308714,.475239,.910634,-.148253,.307465,.501983,.914502,-.153332,.305774,.529254,.919046,-.156646,.303156,.557709,.923194,-.159612,.299928,.586267,.928858,-.162027,.296245,.614925,.934464,-.164203,.291832,.643187,.939824,-.165602,.286565,.671601,.944582,-.165383,.280073,.700213,.949257,-.164439,.272891,.728432,.954389,-.162953,.264771,.756082,.958595,-.161007,.255927,.78369,.962138,-.157243,.245769,.810769,.966979,-.152872,.235127,.836999,.969566,-.148209,.22347,.862684,.972372,-.142211,.211147,.887847,.975916,-.135458,.198606,.911843,.978026,-.128398,.185498,.934795,.979686,-.120313,.17171,.956787,.980748,-.11166,.158159,.978046,.981622,-.103035,.144399,.997693,.982356,-.0930328,.13001,1.01642,.983308,-.0834627,.115778,1.03366,.985037,-.0732249,.101327,1.05014,.986493,-.0628145,.086554,1.06507,.988484,-.0526556,.0720413,1.07907,.991051,-.0415744,.0571151,1.09189,.993523,-.0314275,.0426643,1.10369,.99628,-.0203603,.0279325,1.11423,.998344,-.0102446,.0138182,1.12421,.999997,42612e-8,-193628e-9,1.1333,.871555,-660007e-11,.329176,174749e-10,.875255,-166579e-9,.330571,441051e-9,.875644,-666394e-9,.330718,.00176441,.875159,-.00149903,.330536,.00396899,.87516,-.00266493,.330536,.007056,.875158,-.00416393,.330535,.0110251,.87516,-.00599598,.330535,.0158764,.875163,-.00816108,.330536,.0216101,.875174,-.0106591,.330538,.0282266,.875199,-.0134899,.330545,.0357266,.875257,-.0166538,.330563,.0441117,.875304,-.0201501,.330575,.0533821,.875373,-.0239785,.330595,.0635395,.875464,-.0281389,.330619,.0745872,.875565,-.0326301,.330645,.0865255,.875691,-.0374516,.330676,.0993599,.875897,-.0425993,.330733,.113093,.876091,-.0480576,.330776,.127722,.876353,-.0537216,.330826,.143227,.876649,-.0589807,.330809,.159462,.877034,-.0647865,.330819,.176642,.877443,-.0709789,.330817,.194702,.877956,-.0774782,.330832,.213577,.878499,-.0843175,.330822,.233246,.879144,-.0912714,.330804,.253512,.879982,-.0980824,.330766,.274137,.88097,-.105823,.330864,.295209,.882051,-.113671,.330896,.317226,.883397,-.120303,.330545,.341068,.884987,-.12667,.330068,.365613,.886789,-.133118,.329418,.390807,.889311,-.139024,.328683,.416494,.891995,-.144971,.327729,.442618,.895106,-.150747,.326521,.469131,.899527,-.156283,.325229,.495921,.90504,-.161707,.32378,.523162,.909875,-.165661,.32122,.55092,.91561,-.168755,.317942,.579928,.921225,-.171193,.313983,.608539,.927308,-.17319,.309636,.636854,.933077,-.174819,.304262,.66523,.938766,-.175002,.297563,.693609,.943667,-.173946,.289613,.722157,.949033,-.172221,.281227,.750021,.953765,-.169869,.271545,.777466,.95804,-.166578,.261034,.804853,.962302,-.161761,.249434,.831569,.966544,-.156636,.237484,.857779,.969372,-.150784,.224395,.883051,.972486,-.143672,.210786,.907864,.975853,-.135772,.196556,.931223,.977975,-.127942,.182307,.954061,.979122,-.118347,.167607,.97531,.980719,-.109112,.152739,.995666,.981223,-.0991789,.137932,1.01475,.98216,-.0883553,.122692,1.03253,.983379,-.0780825,.107493,1.04917,.985434,-.0665646,.0917791,1.06464,.987332,-.0557714,.0764949,1.07896,.990004,-.0442805,.060721,1.09199,.992975,-.0331676,.0452284,1.10393,.995811,-.0219547,.0297934,1.11476,.9982,-.0107613,.0146415,1.12484,1.00002,248678e-9,-14555e-8,1.13413,.859519,-693595e-11,.347264,171673e-10,.859843,-17503e-8,.347394,433219e-9,.859656,-700076e-9,.347319,.00173277,.859671,-.00157517,.347325,.00389875,.859669,-.00280028,.347324,.00693112,.85967,-.0043754,.347324,.01083,.859665,-.00630049,.347321,.0155954,.859685,-.0085755,.347328,.0212278,.859694,-.0112003,.347329,.0277273,.859718,-.0141747,.347336,.0350946,.85976,-.0174988,.347348,.0433314,.85982,-.0211722,.347366,.0524384,.859892,-.0251941,.347387,.0624168,.860006,-.0295649,.347422,.0732708,.860122,-.0342825,.347453,.0849999,.860282,-.0393462,.347499,.0976102,.860482,-.0447513,.347554,.111104,.860719,-.0504775,.347614,.125479,.860998,-.0563577,.347666,.140703,.861322,-.0619473,.347662,.156681,.861724,-.0681277,.347684,.173597,.862198,-.0746567,.347709,.191371,.862733,-.0815234,.347727,.209976,.863371,-.0886643,.347744,.229351,.86414,-.0957908,.347734,.24934,.865138,-.102912,.34772,.269797,.866182,-.110924,.3478,.290654,.867436,-.119223,.347911,.312074,.869087,-.126197,.347649,.335438,.870859,-.133145,.347222,.359732,.872997,-.139869,.346645,.38467,.875939,-.146089,.345935,.41019,.879012,-.152334,.345012,.436218,.883353,-.15821,.343924,.462641,.888362,-.164097,.342636,.489449,.895026,-.169528,.341351,.516629,.900753,-.174408,.339115,.544109,.906814,-.17751,.335809,.572857,.912855,-.180101,.331597,.601554,.919438,-.182116,.32698,.630198,.925962,-.183494,.321449,.658404,.931734,-.184159,.314595,.686625,.93762,-.18304,.306462,.71531,.943858,-.181323,.297514,.744272,.948662,-.178683,.287447,.771462,.953299,-.175379,.276166,.798593,.957346,-.170395,.263758,.8256,.962565,-.165042,.251019,.852575,.966075,-.158655,.237011,.878316,.969048,-.151707,.222518,.90329,.972423,-.143271,.207848,.927745,.975833,-.134824,.192463,.950859,.977629,-.125444,.1768,.972947,.978995,-.114949,.161033,.993263,.980533,-.104936,.145523,1.01337,.980745,-.0935577,.129799,1.03128,.981814,-.0822956,.113486,1.04825,.983943,-.0710082,.0972925,1.06405,.986141,-.0587931,.0808138,1.0785,.988878,-.0472755,.0644915,1.09204,.992132,-.0349128,.0478128,1.10413,.9953,-.0232407,.031621,1.11527,.998117,-.0112713,.0154935,1.12551,1.00003,339743e-9,-195763e-9,1.13504,.845441,-729126e-11,.364305,169208e-10,.843588,-183164e-9,.363506,425067e-9,.843412,-73253e-8,.36343,.00169999,.843401,-.00164818,.363426,.00382495,.843399,-.00293008,.363425,.00679993,.843401,-.00457822,.363425,.010625,.843394,-.00659249,.363421,.0153002,.843398,-.00897282,.363421,.0208258,.843415,-.0117191,.363426,.0272024,.843438,-.0148312,.363432,.0344305,.843483,-.018309,.363447,.0425116,.84356,-.0221521,.363472,.0514471,.843646,-.0263597,.363499,.061238,.843743,-.0309315,.363527,.0718873,.84388,-.0358658,.363569,.0833969,.844079,-.0411624,.363631,.0957742,.844279,-.0468128,.363688,.109015,.844549,-.0527923,.363761,.123124,.844858,-.0588204,.363817,.138044,.84522,-.0647573,.36383,.153755,.845669,-.0713181,.363879,.170394,.846155,-.0781697,.363908,.187861,.846789,-.0853913,.363969,.206176,.847502,-.0928086,.363999,.225244,.8484,-.10005,.363997,.244926,.849461,-.107615,.364008,.265188,.850562,-.115814,.364055,.28587,.851962,-.124334,.364179,.306926,.854326,-.131995,.364233,.329605,.856295,-.139338,.363856,.35359,.858857,-.146346,.363347,.37831,.862428,-.152994,.362807,.403722,.866203,-.159463,.361963,.429537,.871629,-.165623,.36112,.456,.877365,-.171649,.359917,.482773,.883744,-.177151,.35848,.509705,.890693,-.182381,.356523,.537215,.897278,-.186076,.3533,.565493,.903958,-.188602,.349095,.594293,.910908,-.190755,.344215,.623165,.918117,-.192063,.338606,.651573,.924644,-.192758,.331544,.679869,.931054,-.192238,.323163,.708668,.937303,-.190035,.313529,.737201,.943387,-.187162,.303152,.764977,.948494,-.183876,.29146,.792683,.952546,-.178901,.277917,.819228,.958077,-.173173,.264753,.846559,.962462,-.16645,.25002,.872962,.966569,-.159452,.234873,.898729,.969108,-.15074,.218752,.923126,.973072,-.141523,.202673,.947278,.975452,-.132075,.186326,.969938,.977784,-.121257,.169396,.991325,.97899,-.110182,.153044,1.01123,.979777,-.0989634,.136485,1.0299,.980865,-.0865894,.119343,1.04727,.982432,-.0746115,.102452,1.06341,.984935,-.0621822,.0852423,1.07834,.987776,-.0495694,.0678546,1.092,.99103,-.0372386,.0506917,1.1043,.99474,-.0244353,.0333316,1.11576,.997768,-.0121448,.0164348,1.12617,1.00003,31774e-8,-169504e-9,1.13598,.825551,-756799e-11,.378425,165099e-10,.82664,-190922e-9,.378923,416504e-9,.826323,-763495e-9,.378779,.0016656,.826359,-.00171789,.378795,.00374768,.82636,-.00305402,.378795,.00666259,.826368,-.00477185,.378798,.0104104,.826364,-.00687131,.378795,.0149912,.826368,-.00935232,.378795,.0204054,.826376,-.0122146,.378797,.0266532,.826399,-.0154581,.378803,.0337355,.82646,-.0190825,.378824,.0416537,.826525,-.0230873,.378846,.0504091,.826614,-.0274719,.378876,.0600032,.82674,-.0322355,.378917,.0704393,.826888,-.0373766,.378964,.0817195,.827078,-.0428936,.379024,.0938492,.827318,-.0487778,.379099,.106828,.82764,-.0549935,.379199,.120659,.827926,-.0611058,.379227,.13526,.828325,-.0675054,.379275,.150713,.828801,-.0743455,.379332,.167034,.8294,-.0815523,.379415,.184209,.830094,-.0890779,.379495,.202203,.8309,-.096736,.379555,.220945,.831943,-.104135,.379577,.240306,.833037,-.112106,.379604,.260317,.834278,-.120554,.379668,.2808,.836192,-.129128,.3799,.301654,.838671,-.137541,.380109,.323502,.840939,-.14523,.379809,.347176,.844575,-.15248,.379593,.371706,.848379,-.159607,.37909,.39688,.853616,-.166267,.378617,.422702,.858921,-.172698,.377746,.448919,.865324,-.178823,.376749,.475661,.872207,-.184542,.375363,.502599,.880018,-.189836,.373657,.529914,.88694,-.194294,.370673,.557683,.894779,-.197022,.36662,.586848,.902242,-.199108,.36138,.615831,.909914,-.200398,.355434,.644478,.917088,-.20094,.348173,.672905,.923888,-.200671,.339482,.701327,.930495,-.198773,.32956,.730101,.937247,-.195394,.318363,.758383,.943108,-.191956,.306323,.786539,.948296,-.187227,.292576,.813637,.953472,-.181165,.278234,.840793,.958485,-.174119,.263054,.867712,.962714,-.166564,.246756,.893635,.966185,-.158181,.229945,.919028,.970146,-.148275,.212633,.943413,.973491,-.138157,.195229,.966627,.975741,-.127574,.178048,.988817,.977238,-.11554,.160312,1.00924,.978411,-.10364,.142857,1.02845,.979811,-.0913122,.125317,1.04648,.98116,-.0782558,.107627,1.06284,.983543,-.0655957,.0895862,1.07798,.986789,-.0520411,.0713756,1.092,.990292,-.0389727,.053228,1.10484,.994187,-.025808,.0351945,1.11642,.997499,-.0126071,.0173198,1.12703,.999999,275604e-9,-148602e-9,1.13674,.81075,-78735e-10,.394456,161829e-10,.808692,-198293e-9,.393453,407564e-9,.80846,-792877e-9,.39334,.00162965,.808595,-.00178416,.393407,.00366711,.808597,-.00317182,.393408,.00651934,.808598,-.00495589,.393408,.0101866,.808591,-.00713627,.393403,.0146689,.808592,-.00971285,.393402,.0199667,.80861,-.0126855,.393407,.0260803,.808633,-.0160538,.393413,.0330107,.80868,-.0198175,.393429,.0407589,.808748,-.0239758,.393453,.0493264,.808854,-.0285286,.39349,.0587161,.808992,-.0334748,.39354,.0689304,.809141,-.0388116,.393588,.0799707,.809352,-.0445375,.39366,.0918432,.809608,-.0506427,.393742,.104549,.809915,-.0570708,.393834,.118085,.810253,-.0633526,.393885,.132377,.810687,-.0700966,.393953,.147537,.811233,-.0772274,.394047,.163543,.811865,-.0847629,.394148,.180394,.812648,-.0925663,.394265,.198051,.813583,-.100416,.394363,.216443,.814683,-.108119,.394402,.235502,.815948,-.11644,.394489,.255242,.817278,-.125036,.394542,.275441,.819605,-.133655,.39486,.296094,.822256,-.142682,.395248,.317309,.825349,-.150756,.395241,.340516,.829605,-.158392,.395285,.364819,.83391,-.165801,.394922,.389736,.839808,-.172677,.394691,.415409,.845708,-.179448,.394006,.441546,.853025,-.185746,.393279,.46832,.859666,-.191684,.391655,.495302,.86789,-.197146,.390068,.52262,.875845,-.201904,.38727,.550336,.882634,-.205023,.382688,.578825,.891076,-.207098,.377543,.608103,.900589,-.208474,.371752,.63723,.90791,-.209068,.364016,.665769,.915971,-.208655,.355593,.694428,.923455,-.20729,.345439,.723224,.931514,-.203821,.334099,.751925,.937885,-.19986,.321069,.780249,.943136,-.194993,.306571,.8077,.948818,-.189132,.291556,.83497,.954433,-.181617,.275745,.86188,.959078,-.173595,.258695,.888562,.962705,-.164855,.240825,.914008,.966753,-.155129,.22268,.939145,.970704,-.144241,.204542,.963393,.973367,-.133188,.185927,.985983,.975984,-.121146,.167743,1.00704,.976994,-.108366,.149218,1.02715,.978485,-.0956746,.13131,1.0455,.980074,-.0820733,.112513,1.06221,.98225,-.0684061,.0938323,1.07782,.98553,-.0549503,.0749508,1.09199,.989529,-.0407857,.055848,1.10508,.993536,-.0271978,.0368581,1.11684,.997247,-.0132716,.0181845,1.12789,1,431817e-9,-198809e-9,1.13792,.785886,-812608e-11,.405036,157669e-10,.790388,-205278e-9,.407355,398297e-9,.790145,-820824e-9,.407231,.00159263,.790135,-.00184681,.407226,.00358336,.790119,-.00328316,.407218,.00637039,.790126,-.00512988,.40722,.0099539,.79013,-.00738684,.407221,.0143339,.790135,-.0100538,.407221,.0195107,.790134,-.0131306,.407217,.0254848,.79016,-.0166169,.407224,.0322572,.790197,-.020512,.407236,.0398284,.790273,-.0248157,.407263,.0482014,.790381,-.029527,.407304,.0573777,.790521,-.0346446,.407355,.0673602,.790704,-.0401665,.40742,.0781522,.790925,-.0460896,.407499,.0897582,.791195,-.0524017,.407589,.10218,.791522,-.0590121,.407691,.11541,.791878,-.0654876,.407748,.12939,.792361,-.0725207,.407849,.144237,.792942,-.0799844,.407963,.159924,.79362,-.0877896,.408087,.176425,.794529,-.0958451,.408259,.193733,.795521,-.103827,.408362,.211756,.796778,-.111937,.408482,.230524,.798027,-.120521,.408547,.249967,.799813,-.129242,.408721,.269926,.802387,-.138048,.409148,.290338,.805279,-.147301,.409641,.311193,.809251,-.155895,.410154,.333611,.813733,-.163942,.410297,.357615,.819081,-.171666,.410373,.382339,.825427,-.178905,.410348,.407828,.83172,-.185812,.409486,.434034,.83877,-.192318,.408776,.460493,.845817,-.198249,.407176,.487346,.854664,-.204034,.405719,.514832,.863495,-.208908,.403282,.542401,.871883,-.212765,.399293,.570683,.88065,-.214911,.393803,.599947,.89004,-.216214,.387536,.62932,.898476,-.216745,.379846,.658319,.906738,-.216387,.370625,.687138,.914844,-.215053,.360139,.71601,.923877,-.212007,.348849,.745124,.931925,-.207481,.335639,.773366,.938054,-.202418,.320798,.801636,.943895,-.196507,.304772,.829055,.949468,-.189009,.288033,.856097,.955152,-.180539,.270532,.88301,.959403,-.171437,.251639,.909296,.963309,-.161661,.232563,.934868,.967399,-.150425,.213231,.959662,.972009,-.138659,.194247,.98302,.97433,-.126595,.174718,1.00517,.975823,-.113205,.155518,1.02566,.976371,-.0996096,.136709,1.04418,.978705,-.0860754,.117571,1.06146,.981477,-.0714438,.0980046,1.07777,.984263,-.0572304,.0782181,1.09214,.988423,-.0428875,.0584052,1.10553,.993,-.0282442,.038522,1.11758,.99704,-.0140183,.0190148,1.12864,.999913,369494e-9,-145203e-9,1.13901,.777662,-84153e-10,.423844,154403e-10,.770458,-211714e-9,.419915,38845e-8,.770716,-846888e-9,.420055,.00155386,.770982,-.00190567,.420202,.00349653,.770981,-.00338782,.420201,.00621606,.77098,-.00529338,.4202,.00971274,.770983,-.00762223,.4202,.0139867,.770985,-.0103741,.420198,.0190381,.770996,-.0135489,.4202,.0248677,.771029,-.0171461,.420212,.0314764,.771052,-.0211647,.420215,.0388648,.771131,-.0256048,.420245,.047036,.771235,-.0304647,.420284,.0559911,.771383,-.0357436,.420341,.0657346,.771591,-.0414392,.420423,.0762694,.771819,-.0475462,.420506,.0875984,.772123,-.0540506,.420617,.099727,.772464,-.060797,.42072,.112637,.772855,-.0675393,.420799,.126313,.773317,-.0748323,.420893,.140824,.773981,-.0825681,.421058,.15617,.774746,-.0906307,.421226,.172322,.77566,-.0988982,.421397,.189253,.776837,-.106994,.421569,.206912,.778097,-.115528,.421704,.225359,.779588,-.124317,.421849,.24447,.781574,-.133139,.422097,.264156,.784451,-.142179,.422615,.284318,.787682,-.15165,.423269,.304902,.792433,-.160771,.424396,.3265,.797359,-.169166,.424772,.35014,.803986,-.177149,.425475,.374768,.809504,-.184745,.424996,.399928,.815885,-.19173,.424247,.425796,.823513,-.198525,.423515,.452287,.832549,-.204709,.422787,.479321,.841653,-.210447,.421187,.506718,.850401,-.215501,.418519,.53432,.859854,-.219752,.414715,.56242,.869364,-.222305,.409462,.591558,.878837,-.223744,.402926,.621074,.888636,-.224065,.395043,.650538,.898132,-.223742,.38564,.679538,.907181,-.222308,.375378,.708674,.915621,-.219837,.363212,.737714,.9239,-.215233,.349313,.767014,.931644,-.209592,.334162,.795133,.938887,-.203644,.317943,.823228,.945282,-.196349,.300581,.850822,.950758,-.18742,.282195,.877594,.956146,-.177879,.262481,.904564,.960355,-.167643,.242487,.930741,.965256,-.156671,.222668,.955868,.968029,-.144123,.201907,.979869,.97251,-.131305,.18202,1.00291,.974925,-.118335,.161909,1.02392,.975402,-.103714,.142129,1.0433,.976987,-.089415,.122447,1.06089,.979677,-.0748858,.102248,1.07713,.983184,-.0596086,.0814851,1.09218,.987466,-.0447671,.0609484,1.10585,.992348,-.0295217,.0401835,1.11829,.996674,-.0143917,.0198163,1.12966,1.00003,321364e-9,-149983e-9,1.1402,.757901,-869074e-11,.436176,151011e-10,.751195,-217848e-9,.432317,378533e-9,.751178,-871373e-9,.432307,.0015141,.751195,-.00196061,.432317,.0034068,.751198,-.00348552,.432318,.00605659,.751195,-.00544599,.432315,.00946353,.751207,-.00784203,.43232,.013628,.751213,-.0106732,.43232,.0185499,.751221,-.0139393,.432319,.0242302,.751244,-.0176398,.432325,.0306694,.7513,-.0217743,.432348,.0378698,.751358,-.0263412,.432367,.0458321,.751458,-.0313396,.432404,.0545587,.751608,-.0367682,.432464,.0640543,.7518,-.0426246,.43254,.0743222,.752065,-.0489031,.432645,.0853668,.752376,-.0555828,.432762,.0971911,.752715,-.0623861,.432859,.109768,.753137,-.069415,.432958,.123126,.753676,-.0770039,.433099,.137308,.754345,-.084971,.433272,.15229,.755235,-.0932681,.433504,.168075,.756186,-.10171,.433693,.184625,.757363,-.110019,.433857,.201897,.75884,-.11887,.434102,.220014,.760467,-.127881,.434306,.238778,.762969,-.136766,.434751,.258172,.765823,-.14612,.43529,.278062,.769676,-.15566,.436236,.298437,.774909,-.165177,.437754,.319532,.77994,-.17402,.438343,.342505,.785757,-.182201,.438609,.366693,.792487,-.190104,.438762,.391668,.80038,-.197438,.438795,.417494,.808494,-.204365,.438226,.443933,.817695,-.210714,.437283,.470929,.828111,-.216651,.436087,.498569,.837901,-.221804,.433717,.526165,.847813,-.226318,.430133,.554155,.858314,-.229297,.425213,.582822,.868891,-.230999,.418576,.612847,.878941,-.231155,.410405,.642445,.888809,-.230935,.400544,.672024,.898089,-.229343,.389613,.701366,.908081,-.226886,.377197,.730763,.916819,-.222676,.363397,.759642,.924968,-.216835,.347437,.788775,.932906,-.210245,.32995,.817135,.940025,-.202992,.312262,.844912,.946101,-.19436,.293313,.872164,.952835,-.184125,.273638,.899443,.957347,-.173657,.252385,.926389,.961434,-.162204,.231038,.951947,.965522,-.14979,.209834,.976751,.969412,-.136307,.188821,1.00022,.973902,-.122527,.168013,1.02229,.974045,-.108213,.147634,1.04199,.975775,-.0927397,.12705,1.06019,.978383,-.0778212,.106309,1.07711,.98211,-.0621216,.0849279,1.09245,.986517,-.0463847,.0633519,1.10651,.991696,-.0309353,.0419698,1.11903,.996349,-.0150914,.0206272,1.13073,1.00003,442449e-9,-231396e-9,1.14146,.727498,-885074e-11,.441528,145832e-10,.730897,-223525e-9,.443589,368298e-9,.730796,-893996e-9,.443528,.00147303,.730805,-.00201149,.443533,.00331433,.730814,-.00357596,.443538,.00589222,.730815,-.00558734,.443538,.00920678,.730822,-.00804544,.44354,.0132582,.730836,-.0109501,.443545,.0180468,.730848,-.0143008,.443546,.0235732,.730871,-.0180969,.443552,.0298382,.730915,-.022338,.443567,.0368438,.730982,-.0270225,.443591,.044591,.731076,-.0321491,.443627,.0530831,.731245,-.0377166,.443699,.0623243,.73144,-.0437216,.443777,.0723181,.7317,-.0501576,.443881,.0830691,.732034,-.0569942,.444014,.0945809,.732388,-.0638756,.444113,.106825,.732853,-.071203,.444247,.119859,.733473,-.0790076,.444442,.13369,.734195,-.0871937,.444645,.148304,.735069,-.095696,.444877,.163702,.736169,-.10426,.445133,.179861,.73747,-.112853,.44537,.196778,.738991,-.12199,.445651,.214496,.740865,-.131153,.445958,.232913,.743637,-.140245,.446548,.251977,.746797,-.149722,.447246,.271551,.751517,-.159341,.448656,.291774,.756156,-.169106,.449866,.312455,.761519,-.178436,.450919,.334552,.768295,-.186904,.451776,.358491,.776613,-.195117,.452832,.383446,.783966,-.202695,.45249,.408945,.793542,-.20985,.452587,.435364,.803192,-.216403,.451852,.462336,.813892,-.22251,.450708,.48987,.824968,-.227676,.4486,.517697,.835859,-.232443,.445156,.545975,.846825,-.235775,.440351,.574483,.858085,-.237897,.433641,.604246,.868825,-.238074,.425354,.634101,.879638,-.237661,.415383,.664201,.889966,-.236186,.404136,.693918,.899479,-.233599,.390917,.723481,.908769,-.229737,.376352,.75258,.917966,-.223836,.360372,.781764,.926304,-.217067,.342551,.811139,.934626,-.209309,.324238,.839585,.941841,-.20071,.304484,.867044,.94789,-.190602,.283607,.894579,.954196,-.179253,.262205,.921743,.958383,-.167646,.239847,.948026,.963119,-.155073,.218078,.973296,.966941,-.141426,.195899,.998135,.970836,-.126849,.174121,1.02021,.973301,-.112296,.153052,1.04085,.97448,-.0964965,.131733,1.05946,.977045,-.080489,.10997,1.07693,.980751,-.064844,.0881657,1.09254,.985475,-.0481938,.0657987,1.10697,.991089,-.0319185,.0435215,1.12004,.996122,-.0158088,.0214779,1.13173,1.00001,372455e-9,-200295e-9,1.14291,.708622,-907597e-11,.45304,141962e-10,.711162,-228911e-9,.454662,358052e-9,.709812,-914446e-9,.453797,.00143034,.709865,-.00205819,.453834,.00321935,.709864,-.00365894,.453833,.00572331,.709855,-.00571692,.453826,.00894278,.709862,-.00823201,.453828,.012878,.709875,-.011204,.453832,.0175295,.709896,-.0146323,.453839,.0228978,.709925,-.0185163,.453847,.0289839,.709974,-.0228551,.453866,.0357894,.710045,-.0276473,.453892,.0433161,.710133,-.032891,.453924,.0515665,.710292,-.0385851,.453992,.0605458,.710485,-.0447254,.45407,.0702574,.710769,-.0513051,.454192,.0807077,.711106,-.0582733,.454329,.091896,.711516,-.0652866,.45446,.103814,.712071,-.0728426,.454653,.116508,.712676,-.0808307,.45484,.129968,.713476,-.0892216,.455096,.144206,.714377,-.0979047,.455346,.159212,.715579,-.106531,.455647,.174973,.716977,-.115492,.455961,.191504,.71862,-.124821,.456315,.208835,.72084,-.134079,.4568,.226869,.723786,-.143427,.457521,.245582,.727464,-.153061,.458475,.264957,.732771,-.162768,.460239,.284948,.736515,-.172627,.460899,.30522,.743519,-.182487,.463225,.326717,.750041,-.191295,.464027,.350113,.758589,-.199746,.465227,.374782,.767703,-.207584,.465877,.400226,.777484,-.214973,.465996,.426442,.788792,-.221796,.466019,.453688,.800194,-.228038,.465083,.481246,.811234,-.233346,.462506,.509086,.822859,-.238073,.459257,.537338,.835082,-.241764,.454863,.566108,.846332,-.244241,.448163,.595126,.858355,-.244736,.439709,.625574,.87034,-.244278,.429837,.65617,.881027,-.24255,.418002,.686029,.891007,-.239912,.404325,.716039,.900874,-.236133,.389222,.745518,.911072,-.230672,.373269,.775026,.920359,-.22356,.355083,.804521,.928604,-.215591,.335533,.834045,.937175,-.206503,.315278,.861612,.942825,-.196684,.293653,.889131,.949805,-.185116,.271503,.916853,.955535,-.172703,.248821,.943541,.959843,-.159978,.225591,.970132,.964393,-.146375,.202719,.994709,.968008,-.131269,.179928,1.0186,.971013,-.11569,.158007,1.03928,.973334,-.1003,.13624,1.05887,.975775,-.0833352,.1138,1.07652,.979579,-.0668981,.0913141,1.09297,.984323,-.0500902,.0683051,1.10734,.990351,-.0332377,.0451771,1.12084,.995823,-.0161491,.0221705,1.13296,1.0001,234083e-9,-108712e-9,1.14441,.683895,-924677e-11,.46015,137429e-10,.68833,-233383e-9,.463134,346865e-9,.688368,-933547e-9,.463159,.00138748,.688367,-.00210049,.463159,.00312187,.688369,-.00373415,.463159,.00555004,.688377,-.00583449,.463163,.00867216,.688386,-.00840128,.463166,.0124884,.688398,-.0114343,.463169,.0169993,.688418,-.0149329,.463175,.0222054,.688453,-.0188964,.463188,.028108,.688515,-.0233239,.463214,.0347085,.68857,-.0282136,.463231,.0420091,.688679,-.033564,.463276,.0500132,.688854,-.0393733,.463356,.0587255,.689038,-.0456354,.46343,.0681476,.689321,-.0523433,.463553,.0782897,.689662,-.059412,.463693,.0891501,.690188,-.0665736,.4639,.100735,.690755,-.0743106,.464107,.113074,.691405,-.0824722,.464329,.126161,.692198,-.0910484,.464585,.140007,.693196,-.0998778,.464893,.154612,.69454,-.108651,.465285,.169984,.695921,-.117855,.465596,.186106,.697749,-.12734,.466056,.203034,.700375,-.136714,.466771,.220703,.703395,-.146386,.467579,.239062,.707904,-.156096,.469067,.258188,.711673,-.165904,.469851,.277759,.717489,-.175812,.471815,.297935,.724051,-.185931,.47389,.318916,.731965,-.195238,.47587,.341591,.741151,-.204021,.477523,.366062,.751416,-.212113,.478881,.391396,.761848,-.21979,.479226,.417599,.771886,-.2267,.478495,.444401,.783998,-.232991,.477622,.472084,.796523,-.238645,.475833,.500193,.808851,-.243396,.472568,.52865,.821191,-.247226,.467857,.557362,.834261,-.250102,.461871,.586768,.846762,-.251056,.453543,.617085,.859867,-.250604,.443494,.647659,.871948,-.248783,.431711,.678119,.882967,-.245855,.417911,.708399,.892826,-.242168,.401993,.738256,.90332,-.237062,.385371,.767999,.913633,-.22997,.366837,.798191,.922774,-.221687,.346372,.827756,.931371,-.212345,.325682,.856425,.938929,-.20206,.303665,.884299,.944821,-.190981,.280786,.912023,.951792,-.178065,.2573,.939669,.957712,-.164634,.233448,.96655,.961912,-.150863,.209504,.992366,.966382,-.13577,.18597,1.01633,.969588,-.119593,.162905,1.03843,.971777,-.103203,.14053,1.05841,.97433,-.0865888,.117909,1.07632,.978686,-.0690829,.0944101,1.09326,.983281,-.0516568,.0705671,1.10796,.989562,-.034558,.0468592,1.12182,.995465,-.0167808,.0229846,1.1342,.999991,373016e-9,-235606e-9,1.1459,.662251,-939016e-11,.468575,132714e-10,.666634,-237624e-9,.471675,335842e-9,.666411,-950385e-9,.471516,.00134321,.666399,-.00213833,.471509,.00302221,.666386,-.0038014,.471499,.00537283,.666405,-.00593958,.471511,.00839533,.666406,-.00855253,.471508,.0120898,.666428,-.0116401,.471519,.0164569,.666444,-.0152015,.471522,.0214971,.66649,-.0192362,.471543,.027212,.666537,-.0237428,.471558,.033603,.666617,-.0287198,.471591,.0406728,.666718,-.0341647,.471631,.0484238,.666889,-.0400759,.47171,.0568621,.667104,-.0464479,.471805,.0659915,.667374,-.0532677,.471923,.0758178,.667772,-.0603805,.472098,.0863425,.668371,-.0677392,.472363,.0975917,.668971,-.0756028,.472596,.109567,.669696,-.0839293,.472869,.122272,.670481,-.0926683,.473126,.135718,.6715,-.1016,.473442,.149914,.672911,-.110566,.47389,.164882,.674512,-.119984,.474354,.180602,.67651,-.129574,.474922,.19711,.679292,-.139106,.475764,.214371,.682798,-.148993,.476886,.232405,.686955,-.158737,.478179,.251153,.691406,-.168754,.479432,.270436,.697438,-.178703,.481481,.290374,.704761,-.188955,.484143,.311044,.713599,-.198814,.487007,.333003,.723194,-.207869,.488962,.357144,.732601,-.216189,.489815,.382169,.744193,-.22398,.490888,.408227,.754907,-.231156,.490355,.434928,.767403,-.23747,.489548,.462599,.78107,-.243503,.488274,.490908,.793893,-.248114,.484843,.519421,.807296,-.25222,.4803,.548561,.820529,-.255265,.474097,.577772,.833716,-.256741,.466041,.607782,.848403,-.25637,.456547,.638807,.860755,-.254804,.443946,.670058,.874012,-.251834,.430852,.700749,.885619,-.247867,.414903,.731446,.896069,-.242634,.397276,.761191,.906266,-.236093,.378535,.791053,.916759,-.227543,.358038,.821298,.92523,-.21783,.335705,.850747,.93436,-.207534,.313797,.879258,.941631,-.195983,.289671,.907734,.947564,-.183567,.265319,.935206,.953681,-.169345,.240815,.962739,.960008,-.154909,.216119,.989227,.964145,-.140161,.192096,1.01465,.968171,-.123411,.167855,1.03737,.969859,-.106525,.144817,1.05767,.972666,-.0891023,.12149,1.0761,.977055,-.0718094,.0975306,1.09336,.982527,-.0534213,.0730217,1.10878,.989001,-.0355579,.0483366,1.12285,.99512,-.0176383,.023938,1.13548,1.00007,368831e-9,-211581e-9,1.14744,.651047,-960845e-11,.484101,12922e-9,.644145,-241347e-9,.478968,324578e-9,.64396,-965142e-9,.478831,.00129798,.64396,-.00217154,.47883,.00292046,.643968,-.00386049,.478835,.00519202,.643974,-.00603186,.478838,.0081128,.643977,-.0086854,.478836,.011683,.643982,-.0118207,.478834,.0159031,.644024,-.0154374,.478856,.0207743,.644059,-.0195343,.478868,.0262975,.644122,-.0241103,.478896,.0324747,.644207,-.0291638,.478933,.039309,.64432,-.0346919,.478981,.0468029,.644481,-.0406919,.479053,.0549614,.644722,-.047159,.479169,.0637909,.645013,-.0540748,.479302,.0732974,.645503,-.0612001,.479541,.0834898,.646117,-.0687303,.479829,.0943873,.646707,-.0767846,.480061,.105991,.647431,-.0852465,.480343,.11831,.64831,-.0940719,.48066,.131348,.649486,-.103056,.481083,.14514,.650864,-.112261,.481528,.159676,.652604,-.121852,.482102,.174979,.654825,-.131505,.482813,.191079,.657876,-.141189,.483876,.207927,.661339,-.151239,.48499,.225586,.665463,-.161091,.486279,.243947,.670542,-.171235,.487968,.262957,.677361,-.181347,.49053,.282781,.685672,-.191679,.493862,.303311,.694551,-.201781,.49699,.324607,.703753,-.211164,.498884,.347916,.713703,-.219675,.500086,.372628,.725911,-.227836,.501554,.398694,.73862,-.23533,.502193,.425529,.752118,-.241786,.501811,.453209,.76579,-.247865,.500185,.481381,.779568,-.252696,.497159,.51011,.793991,-.256802,.492765,.539322,.808182,-.259942,.486827,.569078,.821698,-.261703,.478386,.598818,.836009,-.262006,.468772,.629762,.849824,-.260333,.456352,.661366,.863888,-.257398,.442533,.69295,.876585,-.253264,.426573,.723608,.888665,-.248026,.408964,.754378,.899537,-.241487,.389677,.784761,.9094,-.233463,.368516,.814688,.920166,-.223397,.346624,.845009,.928899,-.21255,.322717,.874431,.937156,-.200869,.298698,.902922,.943861,-.188387,.273491,.931356,.949557,-.174341,.247866,.958854,.955862,-.158994,.222496,.986098,.961721,-.143664,.197522,1.01229,.965976,-.127412,.17302,1.03571,.968652,-.109798,.148954,1.05699,.971084,-.0916787,.125044,1.07587,.975584,-.0739634,.100577,1.09372,.98122,-.055322,.0753666,1.10948,.988253,-.0366825,.0498899,1.12394,.99482,-.0180389,.024611,1.13694,1.00001,229839e-9,-188283e-9,1.14919,.613867,-964198e-11,.479449,123452e-10,.621485,-244534e-9,.485399,313091e-9,.621429,-978202e-9,.485353,.00125245,.62112,-.00220004,.485114,.00281687,.621119,-.0039111,.485112,.00500783,.621122,-.00611091,.485112,.00782498,.621133,-.00879922,.485117,.0112687,.621152,-.0119756,.485125,.0153394,.621183,-.0156396,.485139,.0200382,.621227,-.0197898,.485158,.0253663,.621298,-.0244253,.485192,.0313261,.621388,-.0295441,.485233,.0379204,.621507,-.0351432,.485286,.0451523,.621693,-.0412198,.485378,.0530277,.621933,-.0477673,.485495,.0615522,.622232,-.0547574,.485635,.0707316,.622809,-.0619417,.485943,.0805883,.623407,-.069625,.486232,.0911267,.62406,-.077796,.486516,.102354,.624835,-.0863731,.486838,.114279,.625758,-.095251,.487188,.126902,.627043,-.104299,.487695,.140285,.628438,-.113724,.488163,.154397,.630325,-.123417,.488858,.169267,.632801,-.133137,.489754,.184941,.635784,-.143052,.490815,.20136,.639406,-.153132,.492048,.218643,.643872,-.163143,.49363,.236615,.6499,-.17333,.496009,.255449,.657201,-.183622,.498994,.275006,.666221,-.194019,.502888,.295354,.674419,-.204192,.505459,.316244,.683729,-.21406,.507771,.33849,.695584,-.222854,.510245,.363166,.708583,-.231315,.512293,.389071,.721233,-.238911,.512747,.415737,.735134,-.245657,.512482,.443331,.750179,-.251879,.511526,.471891,.765073,-.256911,.508935,.500892,.779794,-.261144,.504341,.530294,.794801,-.264316,.498515,.560144,.810339,-.266276,.491015,.590213,.824818,-.266981,.481126,.620865,.839375,-.265778,.468685,.652687,.853043,-.262748,.453925,.684759,.867335,-.258474,.437912,.716209,.88037,-.253187,.419648,.747508,.891711,-.246476,.39982,.77797,.902896,-.238735,.37879,.808586,.913601,-.22885,.355891,.838843,.923019,-.217656,.331773,.869014,.933432,-.205539,.307356,.898512,.939691,-.192595,.281321,.9269,.946938,-.178945,.255441,.955297,.952372,-.163587,.229013,.983231,.95909,-.147214,.203179,1.00971,.963675,-.13064,.17792,1.03438,.968247,-.113121,.152898,1.05625,.97001,-.0945824,.128712,1.07598,.974458,-.0755648,.103349,1.094,.980168,-.0571998,.0776731,1.1104,.987295,-.0377994,.0514445,1.12491,.994432,-.0186417,.025429,1.13851,.999975,542714e-9,-282356e-9,1.15108,.592656,-980249e-11,.486018,119532e-10,.598467,-247275e-9,.490781,301531e-9,.597934,-988317e-9,.490343,.00120517,.597903,-.00222366,.490319,.0027116,.597913,-.00395315,.490327,.00482077,.597919,-.00617653,.490329,.00753264,.597936,-.00889375,.490339,.0108478,.597956,-.0121043,.490347,.0147668,.597992,-.0158073,.490365,.0192905,.598032,-.0200017,.490382,.0244204,.598109,-.0246865,.49042,.0301593,.598215,-.0298594,.490474,.03651,.59833,-.0355167,.490524,.0434757,.598525,-.0416559,.490624,.0510629,.598778,-.0482692,.490753,.0592781,.599135,-.0553114,.49094,.0681304,.599802,-.062542,.491328,.0776467,.600361,-.0703638,.491598,.0878184,.60101,-.0786256,.491882,.0986573,.601811,-.0872962,.492232,.11018,.602861,-.0962284,.492684,.1224,.604167,-.10538,.493213,.135354,.605693,-.114896,.493799,.149034,.607682,-.124654,.494576,.163469,.610672,-.13456,.4959,.178747,.613313,-.144581,.496713,.194723,.617603,-.154703,.498499,.211617,.622174,-.16489,.500188,.229183,.628855,-.175164,.503072,.247786,.636963,-.185565,.506798,.267116,.644866,-.195911,.509719,.28702,.653741,-.206104,.512776,.307763,.664942,-.216447,.516812,.329631,.67633,-.22552,.519181,.353515,.690012,-.234316,.521681,.379226,.704243,-.242032,.523129,.405901,.719396,-.249172,.523768,.433585,.734471,-.255543,.522541,.462085,.750539,-.260697,.520217,.491233,.766365,-.26501,.516293,.521094,.781677,-.268409,.509708,.551014,.797132,-.270399,.501944,.581463,.812655,-.271247,.492025,.612402,.828592,-.270708,.480424,.643798,.844044,-.268085,.465955,.67682,.857305,-.263459,.448425,.708496,.87114,-.258151,.430243,.74046,.884936,-.251171,.410578,.771583,.895772,-.243305,.38862,.802234,.906961,-.234037,.365214,.833179,.917775,-.222714,.34116,.86353,.927883,-.210175,.31572,.893557,.936617,-.196925,.289159,.922976,.943384,-.182788,.261996,.951606,.949713,-.167965,.235324,.979958,.955818,-.151109,.208408,1.00765,.961344,-.133834,.182591,1.03329,.965469,-.115987,.156958,1.0557,.968693,-.09746,.132239,1.07583,.973165,-.0778514,.106195,1.09451,.979387,-.0585067,.0797669,1.11137,.98671,-.0390409,.0530263,1.12643,.994093,-.019408,.0263163,1.14016,1.00002,540029e-9,-194487e-9,1.15299,.574483,-989066e-11,.494533,114896e-10,.574478,-249127e-9,.494528,289403e-9,.574607,-996811e-9,.494637,.00115797,.574396,-.00224241,.494458,.00260498,.574377,-.00398632,.49444,.00463102,.574386,-.00622836,.494445,.00723623,.574401,-.0089683,.494453,.010421,.574419,-.0122056,.49446,.0141859,.574459,-.0159396,.494481,.0185322,.574525,-.0201692,.49452,.0234617,.574587,-.0248924,.494547,.0289762,.574697,-.0301074,.494604,.0350797,.574853,-.0358114,.494688,.0417767,.575027,-.041999,.494772,.0490718,.575294,-.0486618,.494915,.0569728,.575733,-.0557148,.495173,.0654955,.576356,-.0630489,.495537,.0746612,.576944,-.0709285,.495836,.0844615,.57765,-.0792723,.496177,.0949142,.578491,-.0880167,.496563,.10603,.579639,-.0969462,.497096,.117841,.580989,-.10622,.497684,.130367,.582587,-.115861,.498337,.143609,.584951,-.125605,.499414,.157625,.587602,-.135608,.500518,.172413,.59076,-.145742,.501767,.187999,.594992,-.155934,.503542,.20445,.600656,-.166303,.506135,.221764,.607816,-.176681,.509542,.24002,.61522,-.187071,.51263,.258992,.623702,-.197465,.516021,.278773,.634192,-.207816,.520422,.299377,.644936,-.218183,.524073,.320802,.657888,-.2278,.528049,.34384,.670666,-.236747,.52986,.36916,.685626,-.24484,.531892,.395867,.701304,-.252071,.532727,.423488,.717727,-.258714,.532146,.452201,.733914,-.264211,.529883,.481579,.750529,-.26859,.5259,.511558,.76747,-.272046,.51999,.542042,.785189,-.274225,.513083,.572799,.800954,-.275189,.502936,.603816,.816962,-.274946,.490921,.635461,.83336,-.272695,.47684,.6676,.848143,-.268223,.459405,.70051,.861818,-.262768,.440319,.732902,.876828,-.255872,.420123,.765084,.889312,-.247703,.398379,.796391,.900412,-.238381,.374496,.827333,.912251,-.227783,.349874,.858385,.921792,-.214832,.323181,.888652,.931273,-.200949,.296624,.917763,.940295,-.186537,.269211,.947878,.946812,-.171538,.241447,.977016,.953588,-.155254,.213829,1.00501,.958841,-.137156,.186807,1.03179,.963746,-.118699,.160706,1.05502,.966468,-.0998358,.135504,1.07568,.971178,-.0805186,.109131,1.09479,.97831,-.0599348,.0818293,1.1123,.985886,-.0399661,.0545872,1.12771,.994021,-.0198682,.0269405,1.14186,1.00009,271022e-9,-12989e-8,1.15514,.538716,-990918e-11,.486732,109675e-10,.550656,-250642e-9,.497518,277412e-9,.55057,-.00100265,.497441,.00110974,.550903,-.00225672,.497733,.00249779,.550568,-.00401046,.497438,.00443906,.550574,-.00626613,.49744,.00693637,.550591,-.0090226,.497449,.00998921,.550623,-.0122795,.497469,.0135984,.550667,-.0160361,.497495,.0177654,.550724,-.0202908,.497526,.0224915,.550792,-.0250421,.497557,.0277795,.550918,-.0302878,.49763,.0336334,.551058,-.0360241,.497701,.0400573,.551276,-.0422473,.497824,.0470585,.551551,-.0489441,.497977,.0546433,.552074,-.0559596,.498312,.0628367,.552681,-.0633978,.498679,.071646,.553324,-.0713176,.499031,.0810746,.554011,-.0797268,.499365,.091129,.55488,-.0885238,.499779,.101837,.556171,-.0974417,.500444,.113239,.557498,-.106841,.501025,.125316,.559299,-.116533,.501864,.138128,.561647,-.126298,.502967,.151695,.564347,-.136388,.504129,.16604,.567863,-.146576,.505713,.181207,.572569,-.156832,.507953,.197259,.578919,-.167323,.511186,.214258,.585387,-.177712,.514042,.232038,.593134,-.188184,.517484,.250733,.603295,-.198717,.522345,.270454,.613854,-.209177,.526751,.290807,.626092,-.219644,.531595,.312202,.637868,-.229494,.534721,.334435,.652458,-.238718,.538304,.359184,.666985,-.247061,.539875,.385637,.683301,-.254652,.541042,.41328,.69998,-.261376,.540735,.441903,.717824,-.267085,.539139,.471609,.734617,-.271465,.534958,.501446,.753663,-.27528,.53032,.532571,.770512,-.277617,.522134,.563641,.787356,-.278525,.51206,.595067,.806252,-.278512,.50119,.627226,.822061,-.277023,.486791,.659402,.838959,-.273175,.470467,.692874,.85379,-.267238,.450688,.725702,.868268,-.260327,.429741,.75832,.881994,-.251946,.407223,.790189,.893885,-.242432,.383214,.821625,.905118,-.231904,.357297,.853011,.916045,-.219545,.330733,.883773,.927614,-.205378,.303916,.914435,.936005,-.190388,.275941,.944502,.944533,-.1749,.247493,.974439,.950758,-.158588,.218996,1.00286,.957078,-.141027,.191559,1.0304,.962448,-.121507,.164457,1.05466,.964993,-.102068,.138636,1.0761,.970017,-.0822598,.111861,1.09541,.97661,-.062033,.0843438,1.11317,.985073,-.0409832,.0558496,1.12911,.993515,-.020146,.0275331,1.1438,1.00006,27329e-8,-107883e-9,1.15736,.525324,-999341e-11,.498153,105385e-10,.526513,-251605e-9,.499277,265329e-9,.526517,-.00100641,.499282,.0010613,.526588,-.00226466,.499337,.00238823,.526539,-.0040255,.499302,.00424535,.526547,-.00628954,.499306,.00663364,.526561,-.00905628,.499313,.00955337,.526593,-.0123253,.499334,.0130054,.526642,-.0160957,.499365,.0169911,.5267,-.0203661,.499396,.0215122,.526792,-.0251347,.499451,.0265718,.526904,-.0303985,.499511,.0321732,.527079,-.0361554,.499617,.0383231,.527285,-.0423982,.499731,.045026,.527602,-.0491121,.499924,.0522936,.528166,-.0561127,.500306,.0601528,.52879,-.0635988,.5007,.0686059,.529421,-.071581,.501048,.0776518,.530144,-.0799854,.501421,.0873148,.531062,-.0888032,.501884,.0976084,.532374,-.0977643,.50259,.108588,.533828,-.107197,.50329,.120234,.53581,-.116887,.504312,.132602,.538063,-.126755,.505365,.145721,.5409,-.136819,.506668,.159617,.544882,-.147117,.508731,.174369,.550238,-.157446,.511601,.190028,.556038,-.167988,.514431,.206587,.563031,-.178364,.517808,.224046,.571543,-.189007,.521937,.242503,.582255,-.199546,.527415,.261977,.59272,-.210084,.531682,.282162,.605648,-.220448,.537123,.303426,.61785,-.230593,.540664,.325323,.632223,-.240238,.544467,.348993,.648819,-.24887,.547594,.375462,.665825,-.256657,.54912,.403024,.683389,-.263711,.549294,.431773,.701495,-.269666,.547649,.461494,.719197,-.274169,.543786,.491623,.737906,-.278124,.538644,.522994,.756652,-.280632,.531057,.554775,.775279,-.281741,.521972,.586441,.792688,-.281652,.509613,.618596,.811894,-.280345,.496497,.651462,.827938,-.277128,.47968,.684023,.844837,-.271646,.460688,.718024,.859239,-.264397,.438872,.751207,.874088,-.256144,.41577,.784232,.887693,-.246311,.391369,.816191,.899402,-.235497,.365872,.847828,.910973,-.223631,.338618,.87934,.92204,-.209874,.310803,.910325,.930987,-.194265,.281802,.940695,.94,-.178125,.252836,.970958,.948018,-.161479,.224239,1.00078,.955141,-.144038,.195857,1.0288,.960513,-.124915,.168487,1.05371,.963964,-.104284,.141495,1.07596,.968713,-.0838732,.114437,1.09628,.975524,-.0635579,.0863105,1.11448,.98431,-.042291,.0574774,1.13069,.992916,-.0209131,.0284343,1.14568,.999926,743097e-9,-379265e-9,1.15955,.501042,-998428e-11,.498726,100306e-10,.502992,-252112e-9,.500665,253283e-9,.502417,-.00100791,.500092,.00101259,.502965,-.00226919,.500621,.00227978,.502318,-.00403109,.499994,.00405011,.502333,-.00629832,.500005,.00632868,.502362,-.00906907,.500027,.00911446,.502369,-.0123423,.500023,.0124078,.50243,-.0161178,.500066,.016211,.502493,-.0203937,.500103,.0205256,.502592,-.0251684,.500166,.0253548,.502707,-.0304389,.50023,.0307029,.502881,-.0362015,.500335,.0365753,.503124,-.0424507,.500488,.0429798,.503443,-.0491582,.500686,.0499268,.504083,-.0561476,.501155,.0574541,.504668,-.0636846,.501524,.0655408,.505319,-.0716834,.501904,.0742072,.50609,-.0800925,.502321,.0834699,.507122,-.0888425,.502896,.0933603,.508414,-.097855,.503603,.10391,.509955,-.107304,.504416,.115113,.512061,-.116921,.505565,.127054,.514419,-.12689,.506732,.139709,.517529,-.136934,.508338,.153173,.522085,-.147327,.510987,.167528,.526986,-.157612,.513527,.182708,.533122,-.168213,.516717,.198881,.540807,-.178688,.520832,.215986,.550687,-.189511,.52632,.234335,.560567,-.199998,.531009,.253375,.571698,-.210652,.535839,.273499,.584364,-.220917,.541091,.294355,.599066,-.23137,.546875,.316525,.614148,-.241206,.551306,.339671,.631157,-.250379,.555187,.36531,.647919,-.258397,.556595,.392767,.666112,-.265528,.556949,.421397,.686158,-.271827,.556617,.451433,.704838,-.27674,.552975,.482131,.723957,-.280733,.547814,.513458,.74262,-.283359,.53997,.545446,.762009,-.284541,.530422,.57775,.781314,-.284507,.518546,.610434,.799116,-.283309,.504178,.643178,.817604,-.280378,.48843,.676248,.83459,-.275619,.469457,.709698,.850974,-.26856,.447698,.744245,.866747,-.260094,.424791,.777695,.881412,-.249929,.399913,.810392,.8936,-.239137,.37308,.842872,.905943,-.226818,.345705,.874677,.916408,-.213699,.31706,.906257,.927215,-.198428,.288444,.936881,.935625,-.181643,.258329,.96795,.944076,-.164386,.228488,.998216,.951229,-.146339,.199763,1.02689,.958793,-.127709,.172153,1.0535,.963219,-.107244,.144989,1.07646,.967562,-.0857764,.11685,1.09675,.974866,-.0645377,.0880571,1.11576,.983353,-.0431732,.0587352,1.13227,.992503,-.0218356,.0294181,1.1478,1.00003,605203e-9,-231013e-9,1.16207,.482935,-101177e-10,.504695,968142e-11,.477554,-251521e-9,.499071,240676e-9,.477904,-.00100683,.499436,96342e-8,.478368,-.00226636,.499899,.0021687,.477977,-.00402719,.499513,.00385384,.477993,-.00629226,.499525,.0060221,.478011,-.00906011,.499536,.00867289,.478051,-.0123305,.499566,.0118074,.478089,-.016102,.499587,.0154269,.478171,-.0203736,.499645,.0195341,.478254,-.025143,.499692,.0241318,.47839,-.0304071,.499779,.0292247,.478588,-.0361631,.499911,.0348196,.478812,-.0424023,.500046,.0409231,.479208,-.0490724,.500326,.047552,.479841,-.0560722,.500805,.0547377,.480392,-.0636125,.501152,.0624607,.481068,-.0716134,.501561,.0707473,.481898,-.0800062,.502054,.0796118,.483022,-.0886568,.502728,.0890974,.484332,-.0977553,.503479,.0992099,.486126,-.107173,.504546,.10999,.488066,-.11677,.50557,.121476,.490521,-.126725,.506849,.133672,.494232,-.136793,.50911,.146731,.498302,-.147116,.511345,.160577,.503565,-.157446,.514344,.175335,.510902,-.168121,.518824,.191207,.519263,-.178799,.523666,.208058,.528204,-.189407,.528296,.225875,.538854,-.200145,.533724,.244782,.551278,-.210701,.539833,.264753,.565222,-.221303,.546131,.285745,.579403,-.231688,.551496,.307592,.595469,-.241718,.556809,.330582,.610929,-.250992,.559641,.354995,.629433,-.259602,.562379,.382471,.648504,-.267038,.563676,.411126,.66756,-.273388,.562092,.440924,.689143,-.278788,.560807,.472118,.709056,-.282783,.555701,.503774,.729855,-.285836,.548698,.536364,.748954,-.287078,.538544,.56895,.768373,-.287133,.526711,.601991,.78827,-.285839,.512511,.635403,.807465,-.283238,.496323,.668797,.825194,-.27906,.477638,.702584,.842203,-.272286,.456253,.736393,.857749,-.263854,.432412,.77096,.874799,-.253943,.407806,.80489,.887497,-.24237,.38033,.83771,.89966,-.230278,.352446,.870376,.911753,-.21646,.323268,.902256,.923011,-.202071,.294314,.933306,.932375,-.185519,.264104,.965177,.940537,-.167604,.234035,.996303,.948904,-.149068,.20412,1.0261,.955263,-.129539,.175431,1.05304,.960303,-.109932,.148116,1.07617,.965512,-.0880572,.119693,1.09742,.973466,-.0660548,.0901619,1.11721,.98284,-.0439228,.0599875,1.13436,.992216,-.0219588,.0298975,1.15006,.999946,119402e-9,-208547e-10,1.16471,.447827,-100414e-10,.491543,914833e-11,.454778,-251257e-9,.499172,22891e-8,.453519,-.00100342,.497787,914184e-9,.45357,-.00225776,.497847,.00205701,.453578,-.00401371,.497855,.00365705,.45357,-.00627107,.497841,.00571453,.453598,-.00902968,.497864,.00823019,.453627,-.0122888,.497882,.0112049,.453684,-.0160475,.497923,.0146405,.453764,-.0203044,.49798,.0185394,.453866,-.0250576,.498049,.0229054,.453996,-.0303028,.49813,.0277424,.454196,-.0360379,.498267,.0330587,.454457,-.0422521,.498445,.0388613,.454926,-.0488393,.498812,.0451767,.455525,-.0558653,.499272,.0520153,.456074,-.0633772,.499625,.0593754,.456752,-.0713606,.500049,.0672751,.457648,-.07971,.500615,.0757447,.458849,-.0883032,.501399,.0848231,.46029,-.0974095,.502293,.0945135,.462,-.106729,.503301,.104848,.464121,-.116354,.504533,.115884,.466889,-.126214,.506172,.127652,.470744,-.136324,.508667,.14024,.47488,-.146595,.510995,.153673,.480845,-.157027,.514832,.168053,.488262,-.167658,.519506,.183508,.496547,-.178343,.524347,.199948,.506254,-.188916,.52983,.217503,.517961,-.199975,.536357,.236272,.531484,-.210624,.543641,.256096,.545496,-.221227,.550048,.277085,.559497,-.231568,.555076,.298615,.575752,-.241698,.560541,.321547,.591999,-.251172,.564156,.345602,.610654,-.260178,.567607,.371851,.630484,-.268094,.56923,.40076,.651807,-.274661,.569779,.430801,.67239,-.280331,.566791,.461939,.693024,-.284501,.562007,.493854,.715473,-.287852,.555791,.526992,.736323,-.28929,.546345,.560102,.755771,-.289405,.534,.593543,.775424,-.2881,.519114,.627256,.795447,-.285562,.502543,.661464,.815319,-.281416,.484773,.695206,.831769,-.275523,.463445,.729044,.849464,-.267516,.440269,.764069,.866775,-.257584,.415049,.799089,.881252,-.245817,.388049,.831948,.894209,-.233127,.35889,.865526,.906922,-.219579,.329915,.89818,.919686,-.204491,.300441,.930013,.929044,-.188962,.269445,.962061,.938393,-.171079,.238402,.994214,.94661,-.15199,.208204,1.02533,.953095,-.131953,.178653,1.0529,.958644,-.111233,.150684,1.0771,.963925,-.0903098,.122359,1.09855,.971995,-.0680505,.0923342,1.11874,.981658,-.0448512,.0614195,1.13635,.991649,-.0221931,.0303582,1.15238,.999985,393403e-9,-111086e-9,1.16772,.396806,-971563e-11,.457671,842355e-11,.429186,-249421e-9,.495017,21625e-8,.429324,-998052e-9,.495173,865322e-9,.429175,-.00224487,.494999,.00194637,.429129,-.00399041,.494952,.00346004,.429153,-.00623476,.494974,.00540684,.429168,-.0089773,.494983,.00778714,.429207,-.0122175,.495012,.0106022,.429257,-.0159542,.495047,.0138535,.429338,-.0201864,.495106,.0175443,.429431,-.0249104,.495165,.0216774,.429587,-.0301252,.495279,.0262594,.429796,-.0358249,.495432,.0312968,.430065,-.0419972,.495621,.0367985,.430588,-.0485144,.496061,.042798,.43113,-.0555028,.496472,.0492914,.431743,-.0629852,.496904,.0562907,.432448,-.0709256,.497369,.0638056,.433414,-.0791942,.498032,.071885,.434638,-.0877346,.498854,.0805517,.43611,-.0968056,.499812,.0898047,.437859,-.106002,.500891,.0997142,.440017,-.115648,.502198,.110289,.443236,-.125427,.504389,.121644,.44697,-.135492,.506809,.133769,.451689,-.145746,.509858,.146787,.45811,-.156219,.514247,.160793,.465305,-.166834,.518816,.175791,.474085,-.177546,.524331,.191906,.484808,-.188262,.53104,.209199,.49732,-.199346,.538511,.227825,.509693,-.209951,.544554,.247269,.524367,-.220533,.551616,.267978,.539228,-.231082,.557368,.289672,.55644,-.241342,.563782,.31268,.574204,-.250964,.568851,.33651,.593388,-.260306,.57312,.362219,.613358,-.268667,.574916,.390322,.634512,-.275591,.575053,.420478,.65563,-.281328,.572404,.451614,.678265,-.285948,.568893,.484112,.70011,-.289408,.561878,.517348,.723005,-.291328,.55359,.551355,.743744,-.291418,.541099,.585109,.763949,-.290252,.526489,.619487,.784186,-.287648,.509496,.65404,.804304,-.283782,.491484,.688649,.823629,-.278067,.470517,.723133,.84094,-.270588,.44705,.757163,.857852,-.261188,.421252,.792816,.874934,-.249313,.394191,.827248,.888709,-.236492,.365359,.861074,.902589,-.222185,.336016,.894417,.914201,-.207314,.30527,.926825,.925978,-.191146,.274532,.9595,.93512,-.174135,.243393,.991583,.943656,-.155231,.212414,1.02356,.951719,-.134403,.182005,1.05239,.957164,-.113023,.153043,1.07754,.962656,-.0914493,.124186,1.09984,.970695,-.0694179,.0941654,1.12,.980749,-.0466199,.0629671,1.13849,.991205,-.0227032,.0311146,1.15494,.999884,632388e-9,-254483e-9,1.1706,.379821,-957289e-11,.460637,789337e-11,.405188,-247483e-9,.491396,204064e-9,.404796,-989434e-9,.490914,815853e-9,.40483,-.00222607,.490949,.00183559,.40473,-.00395723,.49084,.00326332,.404731,-.00618287,.490836,.00509945,.404768,-.00890258,.490871,.00734463,.404791,-.0121156,.490883,.00999992,.404857,-.0158214,.490938,.0130676,.404943,-.0200178,.491004,.0165503,.405059,-.0247027,.491093,.0204521,.405213,-.0298729,.491205,.0247788,.405399,-.0355226,.491333,.0295373,.405731,-.0416352,.491604,.034741,.406303,-.0480807,.492116,.0404255,.406814,-.0550458,.492506,.0465732,.407404,-.0624652,.492926,.0532058,.408149,-.0702958,.493442,.0603442,.409128,-.0784623,.494136,.0680297,.410408,-.087007,.495054,.0762786,.411813,-.0959639,.495962,.0851046,.413735,-.105075,.497257,.0945878,.416137,-.114646,.498882,.104725,.41934,-.124394,.501132,.11563,.423326,-.134328,.503883,.127325,.428419,-.14458,.50747,.139911,.43484,-.154979,.511964,.153481,.442641,-.165628,.517328,.168114,.452511,-.176365,.524258,.183995,.463473,-.187298,.531248,.200953,.475564,-.198244,.538367,.219176,.488664,-.208938,.545175,.238514,.504073,-.219599,.553227,.259129,.520832,-.230378,.560653,.280997,.538455,-.240703,.567523,.303821,.55709,-.250548,.573287,.327948,.576646,-.259964,.577795,.353362,.596705,-.268721,.580077,.380336,.618053,-.276054,.58018,.4101,.640303,-.282176,.578747,.44161,.662365,-.286931,.574294,.474106,.684542,-.290521,.567035,.507549,.707984,-.292672,.558687,.541853,.730913,-.293189,.547606,.576581,.752948,-.292199,.533471,.61172,.773452,-.289508,.516395,.646339,.794715,-.285716,.497873,.682131,.814251,-.280051,.476845,.716396,.833057,-.272873,.453449,.751503,.84959,-.263982,.427857,.786085,.867022,-.252745,.400335,.821355,.882277,-.239655,.371304,.85646,.895375,-.225386,.340397,.890828,.909347,-.209587,.310005,.923532,.921885,-.193433,.2796,.956419,.932127,-.176135,.247276,.989445,.941869,-.157872,.216186,1.02221,.949735,-.137577,.185602,1.05195,.956617,-.115285,.155767,1.07822,.961974,-.0928418,.126103,1.10149,.96972,-.0700592,.0956758,1.12207,.98012,-.0474671,.0643269,1.1408,.990825,-.0238113,.0320863,1.1577,.999876,381574e-9,-812203e-10,1.17403,.367636,-961342e-11,.469176,753287e-11,.380377,-244772e-9,.485434,191797e-9,.380416,-978857e-9,.485475,767015e-9,.380376,-.00220165,.485435,.00172522,.380419,-.00391408,.485487,.00306734,.380438,-.00611549,.485505,.00479332,.380462,-.00880558,.485525,.00690391,.380496,-.0119837,.485551,.00940039,.38056,-.0156487,.485605,.0122848,.38064,-.0197988,.485666,.0155601,.380767,-.0244324,.48577,.0192313,.380909,-.0295444,.485871,.0233032,.381142,-.0351321,.48606,.0277861,.381472,-.0411535,.486336,.0326939,.382015,-.0475408,.486833,.0380565,.382523,-.0544395,.487231,.0438615,.383129,-.061784,.487683,.0501332,.383952,-.0695085,.488313,.0568996,.38498,-.0775819,.489077,.0641952,.386331,-.0860443,.490113,.0720324,.387788,-.0948406,.491099,.0804379,.389808,-.103899,.492566,.0894899,.39252,-.113313,.494601,.0992098,.395493,-.123007,.496619,.109641,.399826,-.132859,.499912,.120919,.405341,-.143077,.504061,.133107,.411932,-.153465,.508905,.146263,.420591,-.164108,.515482,.160544,.43101,-.174893,.523191,.176123,.441881,-.185839,.53026,.192757,.453919,-.196633,.537295,.210535,.468715,-.207611,.546156,.229886,.485182,-.218517,.555173,.250543,.501926,-.229249,.562728,.27221,.51785,-.239481,.567494,.294892,.536947,-.249395,.573889,.318987,.557115,-.259,.578831,.344348,.577966,-.268075,.582055,.371223,.599489,-.276115,.583307,.399834,.62479,-.282523,.583902,.431415,.647504,-.287663,.57953,.464301,.670601,-.291538,.573103,.498123,.693539,-.293842,.563731,.532662,.717385,-.294681,.553169,.567925,.741533,-.293717,.539908,.603502,.762142,-.291156,.521902,.639074,.783014,-.28719,.502815,.674439,.805158,-.281773,.482598,.710497,.823646,-.274682,.458949,.7456,.841879,-.266184,.433129,.781085,.859515,-.255682,.406064,.816,.875335,-.242849,.376509,.851074,.890147,-.228329,.345502,.886473,.903144,-.212491,.31428,.920751,.916618,-.195695,.282994,.954606,.927953,-.178267,.251091,.988402,.937414,-.159549,.219107,1.02141,.946823,-.140022,.18896,1.05167,.954651,-.118154,.158667,1.07819,.959955,-.0946636,.128808,1.1025,.96858,-.0711792,.0973787,1.12391,.97938,-.0475046,.0650965,1.14322,.990498,-.024059,.0326267,1.16077,.999844,-512408e-10,112444e-9,1.17727,.316912,-934977e-11,.425996,695559e-11,.356423,-241372e-9,.479108,179562e-9,.356272,-965292e-9,.478897,71811e-8,.356262,-.00217182,.478894,.00161574,.356265,-.00386092,.478895,.00287261,.356278,-.0060324,.478905,.00448907,.356293,-.00868565,.478914,.00646572,.356346,-.0118207,.478965,.00880438,.356395,-.0154355,.479001,.0115066,.356484,-.019529,.479075,.0145762,.356609,-.0240991,.47918,.018018,.356766,-.0291413,.479305,.0218379,.357009,-.0346498,.479512,.0260454,.357424,-.0405462,.479909,.0306657,.357899,-.0468825,.480337,.0357054,.358424,-.0536887,.480771,.0411728,.359041,-.0609416,.481242,.0470841,.359903,-.0685239,.481943,.0534831,.360932,-.0764883,.482741,.0603795,.362196,-.0848364,.483688,.0678028,.363847,-.0935002,.484947,.0758086,.365972,-.102471,.486588,.0844173,.368741,-.111751,.488787,.0937199,.372146,-.121334,.491405,.103732,.377114,-.131147,.495604,.114608,.38226,-.141213,.499436,.126345,.389609,-.151632,.505334,.139116,.397925,-.162073,.51168,.152995,.407824,-.172819,.518876,.168071,.420014,-.183929,.527639,.184495,.434266,-.195032,.537588,.20232,.447352,-.205792,.544379,.221189,.463726,-.216704,.553422,.241616,.481406,-.227531,.562074,.263298,.498707,-.238017,.568227,.286116,.518039,-.247936,.574473,.3101,.538277,-.257437,.579191,.335401,.561166,-.266829,.584807,.362246,.583189,-.275329,.586476,.390609,.606024,-.28234,.585578,.420998,.632419,-.287924,.584496,.454357,.656128,-.291972,.577766,.488233,.679953,-.29456,.56875,.523248,.704654,-.295816,.558388,.559168,.729016,-.295157,.544826,.595326,.752062,-.292779,.528273,.631864,.773138,-.288681,.508482,.667793,.794869,-.283358,.487341,.704035,.815101,-.27608,.46354,.739925,.834212,-.26767,.438672,.775539,.852368,-.257397,.411239,.810895,.870207,-.245689,.3829,.846472,.884063,-.231452,.351496,.881788,.898284,-.215561,.31895,.917438,.912964,-.198208,.287367,.952422,.924666,-.180426,.254487,.987551,.934429,-.161525,.222226,1.02142,.943485,-.141197,.191143,1.05218,.9521,-.120085,.161112,1.07937,.957876,-.0975881,.130982,1.10403,.966943,-.0726842,.0990553,1.12616,.978313,-.0483705,.0662818,1.14619,.990048,-.0239072,.0329243,1.16413,.999984,461885e-9,-772859e-10,1.18099,.321287,-935049e-11,.455413,659662e-11,.332595,-237513e-9,.471437,167562e-9,.332729,-949964e-9,.471618,670192e-9,.332305,-.00213618,.471028,.00150712,.332326,-.00379765,.471055,.00267959,.332344,-.00593353,.471072,.00418751,.332356,-.00854349,.471077,.00603172,.332403,-.0116268,.471121,.00821362,.332461,-.0151824,.47117,.0107357,.332552,-.0192088,.471251,.0136014,.332657,-.0237024,.47133,.0168152,.332835,-.0286615,.471487,.0203853,.333083,-.0340765,.471708,.0243212,.333547,-.0398563,.47219,.0286518,.333989,-.0460916,.472587,.0333763,.334532,-.0527897,.473054,.0385084,.335167,-.0599284,.473568,.0440638,.33608,-.0673514,.474362,.0500962,.337146,-.0752237,.475231,.0566022,.338462,-.083418,.476282,.0636272,.34014,-.0919382,.477615,.0712153,.342341,-.100741,.479404,.079417,.345088,-.109905,.481618,.0882631,.349049,-.119369,.485081,.0978851,.353939,-.129033,.489317,.108336,.359893,-.139038,.494309,.119698,.366945,-.149411,.499983,.132024,.375814,-.159843,.507185,.145558,.387112,-.170664,.516392,.160433,.40023,-.181897,.526519,.176648,.412555,-.192785,.53423,.193922,.427023,-.203663,.542741,.212662,.443685,-.214695,.552066,.232944,.461499,-.225561,.560762,.254495,.480975,-.236257,.569421,.277531,.501,-.24639,.576101,.301724,.521691,-.256101,.581493,.327112,.543478,-.265289,.585221,.353917,.566094,-.273938,.587614,.381941,.589578,-.281679,.587991,.41172,.614583,-.287655,.585928,.444148,.641813,-.292228,.582092,.478617,.666189,-.295172,.57398,.51397,.690475,-.29648,.561676,.550118,.715543,-.296203,.548758,.586933,.740405,-.293999,.532792,.62384,.762183,-.28998,.512735,.660723,.786069,-.28478,.492402,.69807,.806812,-.277568,.469058,.734422,.826987,-.268951,.443017,.770946,.844588,-.259049,.415501,.80699,.863725,-.2471,.387328,.842107,.879137,-.234157,.356108,.878078,.894634,-.218719,.324315,.914058,.909162,-.201293,.291813,.949922,.92072,-.18267,.258474,.985337,.93158,-.163212,.225593,1.0205,.941238,-.142771,.193986,1.05273,.949293,-.120956,.163392,1.08075,.956226,-.0985743,.132934,1.10559,.96546,-.075118,.101255,1.12823,.977403,-.0497921,.0675441,1.149,.989648,-.0241574,.0334681,1.16765,1.00001,5762e-7,-184807e-9,1.18519,.303474,-916603e-11,.4542,61243e-10,.308894,-232869e-9,.462306,155592e-9,.309426,-931661e-9,.463093,622499e-9,.308643,-.0020949,.461933,.00139979,.308651,-.0037242,.461941,.00248874,.308662,-.00581873,.46195,.00388933,.308687,-.00837818,.461974,.00560247,.308728,-.0114016,.462011,.00762948,.308789,-.0148884,.462067,.00997326,.308882,-.0188369,.462151,.0126375,.309007,-.0232436,.462263,.0156271,.30918,-.0281054,.462417,.0189498,.309442,-.0334065,.462667,.0226167,.309901,-.0390589,.463162,.0266614,.310331,-.0452042,.463555,.0310715,.310858,-.0517735,.464019,.0358698,.311576,-.0587359,.464669,.0410848,.312436,-.0660383,.465406,.0467453,.313526,-.0737266,.466339,.0528718,.314903,-.0817574,.467504,.0595039,.316814,-.090167,.469226,.0666888,.318965,-.0987555,.470981,.0744658,.322077,-.107792,.473814,.082912,.325947,-.117098,.477241,.0920846,.331008,-.126602,.48184,.102137,.337893,-.136619,.488334,.113135,.345106,-.146838,.494415,.12511,.355111,-.157357,.503275,.138356,.365095,-.167955,.510966,.152686,.378344,-.179157,.521508,.16856,.391599,-.190143,.530455,.18561,.407786,-.20123,.541275,.204308,.425294,-.212456,.551784,.224623,.444021,-.223568,.561493,.246172,.463418,-.234154,.569886,.268979,.484077,-.244546,.577116,.293411,.505513,-.254301,.582914,.318936,.527672,-.263564,.587208,.345856,.550565,-.272332,.589277,.374054,.573656,-.280011,.588426,.403276,.59827,-.286924,.587504,.43474,.624731,-.291994,.583401,.468767,.652396,-.295159,.576997,.504411,.67732,-.296954,.565863,.54114,.703147,-.296877,.552316,.57816,.728715,-.295147,.536773,.616124,.752448,-.291275,.51771,.653885,.775169,-.285905,.496087,.691537,.799307,-.279064,.474232,.729251,.819482,-.270294,.447676,.766267,.837659,-.260032,.419656,.802616,.856903,-.248497,.391328,.838583,.873325,-.235252,.360285,.874711,.889788,-.221126,.329215,.91077,.904486,-.204304,.296392,.94653,.917711,-.185562,.262159,.983828,.928969,-.165635,.229142,1.01955,.939707,-.14442,.19673,1.05317,.948167,-.122147,.165095,1.0823,.955222,-.099098,.13451,1.10791,.964401,-.0755332,.102476,1.1312,.976605,-.0513817,.0689667,1.15218,.989085,-.0258499,.034506,1.17129,.999908,617773e-9,-271268e-9,1.18961,.285803,-905752e-11,.452348,572272e-11,.284689,-22732e-8,.450581,143626e-9,.285263,-910214e-9,.451482,575099e-9,.285302,-.00204784,.451553,.00129395,.285318,-.00364057,.451574,.0023006,.28533,-.00568813,.451585,.00359547,.285361,-.00819001,.451618,.00517934,.285397,-.0111458,.45165,.007054,.285447,-.0145536,.451688,.00922167,.285527,-.0184127,.451758,.0116869,.285688,-.0227207,.451929,.0144555,.28584,-.0274712,.452055,.0175341,.286136,-.0326278,.452369,.0209406,.286574,-.0381792,.452853,.0246965,.287012,-.0441879,.453272,.0287996,.287542,-.0506096,.453752,.033268,.288299,-.0573634,.454488,.0381504,.289186,-.0645458,.455294,.0434447,.290302,-.0720405,.456301,.0491973,.291776,-.0799046,.457648,.0554453,.29372,-.088117,.459483,.0622311,.296052,-.0965328,.461571,.0695992,.299563,-.105409,.465085,.077658,.30335,-.114553,.468506,.0864176,.309167,-.123917,.474423,.0961078,.31529,-.13381,.47995,.106643,.324163,-.144021,.488592,.118322,.333272,-.154382,.496461,.131133,.344224,-.165015,.50562,.145208,.357733,-.176168,.516719,.16073,.373046,-.187468,.528513,.177807,.38788,-.198488,.537713,.196072,.405133,-.209545,.547999,.21605,.423845,-.220724,.55759,.237484,.443777,-.231518,.566246,.26039,.464824,-.242035,.574326,.284835,.486635,-.251898,.58037,.310518,.51012,-.261304,.58568,.337678,.535301,-.270384,.590197,.366242,.559193,-.27841,.590569,.395873,.583544,-.285325,.588161,.426857,.608834,-.291113,.584249,.459477,.635753,-.294882,.57763,.494734,.664367,-.297088,.569479,.532023,.689688,-.297364,.555064,.569629,.715732,-.295949,.539522,.608124,.741307,-.292259,.521613,.646231,.764949,-.287063,.49969,.684938,.788599,-.28012,.476747,.723548,.81048,-.27153,.45116,.761135,.831372,-.261289,.424101,.798916,.850092,-.249559,.39443,.835952,.867777,-.236348,.363849,.871606,.884632,-.221569,.332477,.907843,.90047,-.20618,.300667,.944187,.914524,-.188771,.266552,.981371,.926892,-.168362,.232349,1.01841,.937951,-.146761,.199359,1.05308,.947236,-.123813,.1675,1.0839,.954367,-.099984,.136166,1.11047,.963907,-.0759278,.103808,1.13414,.976218,-.0511367,.0697061,1.15575,.988772,-.0267415,.0352529,1.17531,.999888,-520778e-9,289926e-9,1.19389,.263546,-883274e-11,.441896,526783e-11,.262352,-221849e-9,.439889,132311e-9,.262325,-886683e-9,.439848,528824e-9,.26228,-.00199476,.439765,.00118975,.262372,-.00354671,.439922,.00211568,.26239,-.00554141,.439941,.00330652,.262412,-.00797888,.439961,.00476346,.262453,-.0108584,.440002,.00648818,.262528,-.0141788,.440085,.0084835,.262615,-.017938,.440166,.0107533,.262744,-.0221346,.440291,.0133044,.262939,-.026762,.440493,.0161445,.263277,-.0317573,.440889,.0192974,.26368,-.0371832,.441338,.0227699,.264106,-.0430371,.441753,.0265698,.264624,-.0493035,.442227,.0307178,.265378,-.0558669,.442985,.0352616,.266253,-.0628718,.443795,.0401968,.267478,-.0701569,.445008,.04559,.269062,-.077845,.446599,.0514539,.270926,-.0857941,.448349,.0578382,.273693,-.0940773,.451221,.0648363,.276746,-.102704,.454097,.0724389,.281693,-.111735,.459517,.0808744,.287335,-.121004,.46531,.0901551,.29448,-.130734,.472605,.100371,.30257,-.140777,.480251,.111644,.312465,-.15111,.489444,.124111,.324856,-.16189,.500919,.137979,.33774,-.172946,.511317,.153163,.35255,-.184152,.522684,.169817,.367786,-.19522,.53248,.187886,.385474,-.20632,.543326,.207634,.404976,-.217744,.554109,.229165,.425203,-.228691,.563395,.252068,.446704,-.239299,.571565,.276471,.468951,-.249348,.577935,.302323,.493487,-.258933,.584309,.329882,.517861,-.268009,.58773,.358525,.543309,-.276238,.589612,.388585,.569704,-.28356,.589294,.419787,.594871,-.289497,.585137,.452114,.622555,-.294452,.580356,.486466,.651167,-.296918,.57185,.523079,.677332,-.297647,.558428,.5611,.703718,-.296321,.542232,.599592,.730262,-.293339,.524541,.639138,.754304,-.288036,.502691,.677978,.778051,-.281018,.479212,.716537,.801557,-.272414,.454071,.75586,.822559,-.262419,.425952,.794477,.843051,-.250702,.397313,.832664,.86232,-.237264,.366534,.869876,.879044,-.222716,.334816,.906973,.896362,-.206827,.303143,.943558,.910342,-.189659,.269699,.979759,.924119,-.171108,.236411,1.01718,.935374,-.149579,.202224,1.05289,.944295,-.126295,.16989,1.08496,.952227,-.101511,.138089,1.11256,.962041,-.0766392,.105053,1.1375,.97528,-.0511967,.070329,1.15983,.988476,-.025463,.0351268,1.17987,.999962,286808e-10,145564e-10,1.19901,.227089,-841413e-11,.404216,472707e-11,.239725,-215083e-9,.426708,120833e-9,.239904,-860718e-9,.427028,483555e-9,.239911,-.00193661,.427039,.00108806,.239914,-.00344276,.42704,.00193457,.239933,-.00537907,.427064,.00302363,.239944,-.00774482,.427065,.00435604,.239993,-.01054,.427122,.00593398,.240052,-.0137626,.427179,.00775987,.240148,-.0174115,.427279,.00983854,.240278,-.021484,.42741,.0121763,.240472,-.0259729,.427618,.0147827,.240839,-.0308131,.428086,.0176837,.241201,-.0360893,.428482,.0208775,.241626,-.0417723,.428907,.0243821,.242207,-.0478337,.42952,.0282228,.24298,-.0542199,.430332,.0324333,.243881,-.0610015,.431222,.0370252,.245123,-.0680874,.432512,.0420535,.24667,-.0755482,.434088,.0475414,.248779,-.0832873,.436323,.0535542,.251665,-.0913546,.439509,.0601716,.255305,-.0998489,.443478,.0674282,.260049,-.108576,.448713,.0754673,.266192,-.117754,.455524,.084339,.273158,-.127294,.4627,.0941683,.282131,-.137311,.472068,.10515,.293332,-.147736,.483565,.117402,.304667,-.158357,.493702,.130824,.317785,-.169274,.504708,.145724,.333245,-.180595,.517107,.16215,.349843,-.191892,.528849,.180149,.367944,-.203168,.540301,.199746,.387579,-.214443,.551514,.221047,.408247,-.225624,.560906,.243981,.43014,-.236422,.56959,.268513,.452669,-.24654,.576098,.294409,.476196,-.256157,.580925,.322002,.501157,-.265289,.584839,.351052,.527632,-.273671,.587614,.3812,.555754,-.281254,.589119,.412994,.581682,-.287448,.585204,.445498,.608196,-.292614,.579006,.479505,.635661,-.296068,.571297,.514643,.664999,-.297395,.560855,.552213,.691039,-.296645,.544525,.591365,.7179,-.293785,.526535,.630883,.744059,-.289089,.50545,.670932,.76863,-.282239,.482514,.710904,.793273,-.273688,.457246,.750259,.814731,-.26328,.428872,.78948,.835603,-.251526,.399384,.828597,.85489,-.238339,.368811,.866892,.872828,-.223607,.336617,.90563,.889462,-.207538,.303997,.943538,.904929,-.190297,.270812,.980591,.919101,-.172034,.237453,1.01935,.930536,-.152058,.204431,1.05498,.941223,-.129515,.172495,1.08717,.94982,-.104263,.140175,1.11551,.960592,-.0781944,.106465,1.14098,.974629,-.051688,.0711592,1.16418,.98811,-.0253929,.0354432,1.18465,1.00004,804378e-9,-330876e-9,1.20462,.214668,-821282e-11,.406619,433582e-11,.218053,-208144e-9,.413025,109887e-9,.217987,-832212e-9,.412901,439362e-9,.217971,-.00187246,.412876,988623e-9,.217968,-.00332855,.41286,.00175772,.217985,-.00520055,.412882,.00274729,.218014,-.00748814,.412916,.00395842,.218054,-.0101901,.412957,.00539274,.218106,-.0133057,.413005,.00705348,.218217,-.0168342,.413139,.00894581,.218338,-.0207707,.413258,.0110754,.21855,-.0251001,.413509,.0134551,.218913,-.0297861,.413992,.0161081,.219265,-.0348956,.414383,.0190307,.219696,-.0403909,.414839,.0222458,.220329,-.0462003,.415567,.025792,.220989,-.0524208,.41621,.0296637,.222027,-.058948,.417385,.0339323,.223301,-.0658208,.418779,.0386055,.224988,-.0730347,.420665,.0437355,.227211,-.0805274,.423198,.0493844,.230131,-.088395,.426566,.0556135,.233908,-.0966208,.43091,.0624829,.239092,-.105223,.437148,.0701636,.245315,-.11424,.444302,.0786949,.253166,-.12368,.453262,.0882382,.262374,-.133569,.463211,.0988682,.273145,-.143836,.474271,.110727,.285512,-.154577,.4863,.123945,.299512,-.165501,.498817,.138581,.314287,-.176698,.510341,.154676,.331083,-.188066,.522583,.172459,.349615,-.199597,.534879,.191979,.369318,-.210843,.546083,.21309,.390377,-.222068,.5562,.235998,.412411,-.233059,.564704,.260518,.435715,-.24357,.572314,.286795,.461196,-.253356,.579395,.314559,.485587,-.262362,.581985,.343581,.511908,-.270895,.584347,.374367,.539798,-.278452,.58505,.406015,.567974,-.284877,.583344,.439168,.594303,-.290124,.577348,.473005,.622951,-.294183,.570751,.508534,.652404,-.296389,.561541,.544764,.679291,-.296605,.546426,.582927,.706437,-.294095,.528599,.622681,.734485,-.28978,.508676,.663567,.758841,-.283363,.484768,.704092,.78537,-.275015,.460434,.745101,.807315,-.264689,.432166,.784712,.8271,-.252597,.401807,.824241,.849191,-.239154,.371458,.863803,.867046,-.224451,.338873,.903063,.8852,-.208342,.306175,.942763,.901771,-.190684,.272759,.981559,.915958,-.172105,.239306,1.02048,.928046,-.152214,.206071,1.05765,.939961,-.130247,.17367,1.08999,.948711,-.10672,.142201,1.11829,.959305,-.0808688,.108454,1.14467,.973009,-.0539145,.0728109,1.16839,.987631,-.0262947,.0360625,1.19004,.999978,.00132758,-559424e-9,1.21058,.193925,-793421e-11,.391974,392537e-11,.196746,-200315e-9,.397675,991033e-10,.19667,-801099e-9,.397521,396342e-9,.196633,-.00180246,.397445,891829e-9,.196654,-.00320443,.397482,.00158582,.196659,-.00500647,.39748,.00247867,.196683,-.0072086,.397506,.00357167,.196728,-.00981001,.397562,.00486675,.196792,-.0128096,.397633,.00636707,.19689,-.0162055,.397746,.00807752,.197017,-.0199943,.397884,.0100052,.19729,-.024139,.39827,.0121691,.197583,-.0286671,.398639,.0145755,.197927,-.0335858,.399034,.0172355,.198383,-.0388806,.399554,.0201718,.199002,-.0444736,.400289,.0234194,.199739,-.0504583,.401111,.026984,.200784,-.056729,.402349,.0309217,.202075,-.0633643,.403841,.0352496,.203898,-.0703247,.406076,.0400313,.206199,-.0775565,.408841,.0453282,.209252,-.085184,.41259,.0511794,.213638,-.0931994,.418288,.0577459,.21881,-.101617,.424681,.0650508,.225642,-.11052,.433429,.0732759,.233717,-.119772,.442897,.0824683,.242823,-.129505,.452888,.0927484,.254772,-.139906,.466407,.104417,.266603,-.150402,.477413,.117211,.28073,-.161395,.490519,.131598,.295399,-.172465,.50201,.147407,.312705,-.183982,.515311,.165031,.331335,-.195532,.52786,.184336,.351037,-.206971,.5392,.205361,.372175,-.218117,.54941,.228043,.394548,-.229327,.558642,.25267,.419598,-.240052,.567861,.279071,.443922,-.249937,.573332,.306882,.471495,-.259407,.58013,.33661,.496769,-.267749,.580564,.367328,.524951,-.275524,.581696,.399753,.55318,-.282148,.579885,.433134,.581577,-.287533,.575471,.467534,.609231,-.291612,.567445,.502943,.637478,-.293911,.557657,.53871,.667795,-.295096,.546535,.576568,.694272,-.294073,.529561,.614929,.722937,-.290386,.510561,.655909,.749682,-.284481,.487846,.697663,.774754,-.276188,.462487,.738515,.799301,-.266215,.43481,.779802,.820762,-.254116,.404879,.820045,.843231,-.240393,.374559,.860294,.861857,-.225503,.341582,.900965,.880815,-.209382,.308778,.941727,.89766,-.19155,.275232,.980916,.912926,-.172346,.240938,1.02162,.926391,-.151799,.207223,1.0597,.938429,-.129968,.17484,1.09291,.947834,-.10651,.142984,1.12248,.958432,-.0824098,.109902,1.149,.972402,-.0565242,.0744454,1.1733,.987191,-.028427,.0373794,1.19538,.999975,385685e-10,-4203e-8,1.21676,.178114,-766075e-11,.385418,354027e-11,.176074,-191966e-9,.381002,887135e-10,.17601,-767549e-9,.380861,354715e-9,.17598,-.00172696,.380798,798168e-9,.175994,-.00307012,.380824,.00141928,.176017,-.00479684,.380858,.00221859,.176019,-.00690648,.380839,.00319714,.176072,-.00939888,.380913,.0043572,.176131,-.0122726,.380979,.005702,.176239,-.0155264,.38112,.00723689,.176371,-.0191551,.381272,.00896907,.176638,-.023117,.381669,.0109194,.176912,-.0274633,.382015,.0130903,.177279,-.032173,.382476,.0154949,.17774,-.0372219,.383041,.0181669,.178344,-.0426132,.38378,.0211209,.179153,-.0483309,.384773,.0243899,.180197,-.0543447,.386076,.0280062,.181581,-.0607122,.387809,.032004,.18344,-.0673855,.390205,.036453,.186139,-.0743989,.393944,.0414162,.189432,-.0817731,.39832,.0469394,.193795,-.0895464,.404188,.0531442,.199641,-.0978264,.4121,.0601374,.206679,-.106499,.421425,.0680078,.214865,-.115654,.431504,.076919,.224406,-.125268,.442526,.0868835,.235876,-.135475,.455465,.0981875,.248335,-.146023,.4681,.110759,.262868,-.157016,.482069,.124885,.278962,-.168245,.496182,.140645,.295082,-.17958,.507401,.157838,.313738,-.191227,.520252,.17695,.333573,-.202718,.531708,.197817,.356433,-.214424,.544509,.220785,.378853,-.225492,.55373,.245306,.402717,-.236236,.561348,.271593,.428375,-.246568,.568538,.299776,.454724,-.255941,.573462,.329433,.482291,-.264511,.576356,.360598,.509706,-.272129,.576446,.393204,.538805,-.278979,.575298,.427227,.568919,-.284528,.572154,.462157,.596804,-.288801,.564691,.497997,.625987,-.291334,.555134,.534467,.656414,-.292722,.545051,.571736,.683916,-.292185,.528813,.610158,.711809,-.290043,.51106,.649061,.739547,-.285246,.490103,.690081,.766914,-.277647,.465523,.732554,.791375,-.267603,.437718,.773982,.814772,-.256109,.40882,.81609,.836691,-.242281,.377823,.856849,.856984,-.227155,.34496,.898363,.876332,-.210395,.311335,.939471,.894988,-.192612,.277703,.980799,.911113,-.173236,.243019,1.02215,.924092,-.152258,.209037,1.06139,.936828,-.129575,.175909,1.09635,.946869,-.10594,.143852,1.12707,.958284,-.081318,.110289,1.15419,.972325,-.0556133,.0747232,1.17909,.986878,-.0297899,.0383149,1.20163,.999936,-.00197169,912402e-9,1.22338,.151174,-720365e-11,.351531,309789e-11,.155594,-18279e-8,.361806,78608e-9,.156099,-731569e-9,.362982,314615e-9,.156053,-.00164578,.362869,707845e-9,.156093,-.0029261,.362961,.00125884,.156099,-.00457155,.362959,.00196783,.15612,-.00658224,.362982,.00283622,.156168,-.00895774,.363048,.00386625,.156221,-.0116962,.363101,.00506109,.156324,-.0147973,.363241,.00642675,.156476,-.0182503,.363448,.00797175,.156731,-.0220266,.36384,.00971484,.156994,-.026176,.364179,.0116575,.157341,-.0306701,.36462,.0138207,.157867,-.0354591,.365364,.0162356,.15846,-.0406141,.366111,.0189092,.159308,-.0460519,.367248,.021885,.160426,-.0518096,.368767,.0252004,.161877,-.0578906,.370745,.0288825,.163995,-.0642812,.373831,.0330139,.16655,-.0710067,.377366,.0376283,.170237,-.0781522,.382799,.0428493,.175096,-.0857172,.389915,.0487324,.181069,-.0938025,.398487,.0554214,.188487,-.102363,.408799,.0630189,.197029,-.111343,.419991,.071634,.206684,-.120812,.431455,.0812797,.218698,-.131033,.445746,.0923651,.230726,-.141373,.457471,.104545,.245516,-.152387,.472388,.118449,.261551,-.163628,.486671,.133923,.277437,-.174814,.49762,.150849,.296662,-.186713,.51162,.169924,.31795,-.198513,.525435,.190848,.339422,-.210119,.536267,.213504,.362143,-.221354,.545982,.237947,.387198,-.23224,.555364,.264427,.412349,-.24257,.561489,.292519,.439274,-.252284,.566903,.322561,.466779,-.261023,.569614,.353952,.496011,-.26899,.571589,.387278,.524964,-.275498,.570325,.421356,.556518,-.281449,.568792,.457314,.584363,-.285526,.560268,.493199,.614214,-.28844,.55205,.530276,.645684,-.289777,.541906,.56855,.673446,-.289722,.526464,.606927,.701924,-.287792,.509872,.645945,.73037,-.284315,.490649,.685564,.757405,-.278804,.467964,.726511,.784025,-.269543,.441468,.768601,.808255,-.258117,.41216,.811321,.830739,-.244728,.380606,.853496,.851914,-.229428,.348111,.895374,.872586,-.212508,.314732,.937674,.891581,-.194025,.280338,.979869,.907641,-.174711,.245203,1.02253,.922233,-.153509,.21077,1.06371,.935878,-.130418,.177399,1.09972,.946338,-.105558,.144507,1.13124,.957265,-.080059,.110508,1.15973,.971668,-.0539766,.0742311,1.18515,.9866,-.0277101,.0375224,1.20858,1.00021,-515531e-9,135226e-9,1.23135,.137468,-686011e-11,.345041,273315e-11,.13703,-173378e-9,.343936,690761e-10,.136986,-693048e-9,.34383,276126e-9,.136964,-.00155931,.343761,621337e-9,.137003,-.00277211,.343863,.00110494,.137012,-.00433103,.343868,.00172744,.137043,-.00623606,.343916,.00249022,.13709,-.0084868,.343986,.00339559,.137145,-.0110814,.344045,.00444687,.137242,-.0140187,.344177,.00565007,.137431,-.0172713,.344491,.00701868,.137644,-.0208605,.344805,.00856042,.13791,-.024792,.345172,.0102863,.138295,-.0290461,.345734,.0122185,.138764,-.0335957,.346371,.0143771,.139415,-.038467,.347298,.0167894,.140272,-.0436176,.348527,.0194895,.141457,-.0491016,.350276,.0225043,.14303,-.0548764,.352646,.0258962,.145289,-.0610096,.356206,.0297168,.148502,-.0674777,.361488,.0340562,.152188,-.074345,.367103,.0389534,.157359,-.0817442,.375247,.0445541,.16379,-.0896334,.385064,.0509535,.171376,-.098005,.396082,.0582611,.179901,-.106817,.407418,.06654,.189892,-.116239,.420031,.075994,.201838,-.12627,.434321,.0867239,.214311,-.136701,.447631,.0987517,.228902,-.147616,.462046,.112353,.245107,-.158871,.476942,.127605,.262292,-.170261,.490285,.144469,.281215,-.182017,.503783,.163282,.301058,-.193729,.515505,.183873,.322752,-.205512,.52682,.206466,.347547,-.217214,.539473,.231194,.370969,-.227966,.546625,.257288,.397533,-.238555,.55472,.285789,.42398,-.248278,.559468,.315746,.452928,-.257422,.564095,.347724,.482121,-.265306,.565426,.380922,.510438,-.272043,.563205,.415639,.541188,-.277614,.561087,.451702,.571667,-.281927,.554922,.48845,.602432,-.285015,.546838,.526442,.634126,-.286512,.537415,.564896,.662816,-.286388,.522906,.604037,.692411,-.284734,.507003,.643795,.720946,-.281297,.488398,.68298,.748293,-.276262,.466353,.723466,.776931,-.269978,.443573,.764565,.801065,-.260305,.415279,.805838,.825843,-.247426,.384773,.849985,.84807,-.232437,.352555,.893174,.869122,-.215806,.318642,.936564,.888963,-.197307,.28381,.980253,.905547,-.177203,.247888,1.02463,.918554,-.155542,.212904,1.06714,.931395,-.131948,.1787,1.10451,.941749,-.106723,.145902,1.13694,.954551,-.0804939,.111193,1.1666,.970279,-.0534239,.0744697,1.19249,.986117,-.0257452,.0368788,1.21665,.999938,.00190634,-.0010291,1.23981,.118493,-647439e-11,.32272,23772e-10,.118765,-163023e-9,.323456,598573e-10,.118772,-65212e-8,.323477,239447e-9,.118843,-.00146741,.323657,538881e-9,.118804,-.00260846,.323553,95826e-8,.118826,-.00407576,.323595,.00149845,.118846,-.00586826,.323617,.00216047,.118886,-.00798578,.32367,.00294679,.118947,-.0104273,.323753,.00386124,.119055,-.0131909,.323922,.00490999,.119241,-.0162444,.324251,.00610804,.11944,-.0196339,.324544,.00745805,.119739,-.0233378,.325026,.00897805,.12011,-.0273179,.325586,.0106895,.120571,-.0316143,.326231,.0126073,.12124,-.0361939,.327264,.0147654,.122162,-.0410511,.328733,.0172001,.123378,-.0462233,.330659,.0199375,.125183,-.0517109,.333754,.0230498,.127832,-.0575652,.338507,.026597,.130909,-.0637441,.343666,.0306345,.135221,-.0704302,.351063,.035273,.14082,-.0776364,.360604,.0406137,.146781,-.0852293,.369638,.0466788,.155121,-.0935351,.3827,.0537628,.16398,-.102234,.39522,.0617985,.173926,-.111465,.40793,.07097,.185137,-.121296,.42105,.0813426,.19826,-.13169,.435735,.0931596,.212938,-.142614,.450932,.106547,.229046,-.153884,.465726,.121575,.246246,-.165382,.479461,.138286,.264637,-.176806,.492106,.15666,.284959,-.188793,.504774,.17728,.308157,-.200763,.518805,.19988,.330951,-.21239,.528231,.224293,.3549,-.223521,.536376,.250541,.381502,-.234169,.544846,.278902,.409529,-.244077,.551717,.309227,.437523,-.253363,.55517,.341426,.467624,-.261659,.557772,.37518,.497268,-.268498,.556442,.41007,.528294,-.274018,.553915,.446445,.559053,-.278169,.549153,.483779,.589329,-.281229,.539878,.522249,.622503,-.282902,.53162,.561754,.652382,-.282815,.518119,.601544,.681847,-.281247,.502187,.641574,.712285,-.277986,.484824,.682633,.740094,-.273017,.463483,.723426,.768478,-.266692,.441299,.763747,.794556,-.258358,.415238,.805565,.819408,-.248807,.386912,.847254,.843411,-.236214,.356165,.891091,.862397,-.219794,.320562,.936174,.883113,-.201768,.285322,.982562,.90023,-.181672,.249713,1.02862,.915192,-.159279,.214546,1.07163,.928458,-.134725,.180285,1.10995,.94069,-.10913,.147119,1.14354,.953409,-.0821315,.112492,1.17372,.969537,-.0542677,.0752014,1.20043,.985612,-.0259096,.0370361,1.22528,.999835,.00298198,-.00151801,1.24959,.10097,-602574e-11,.300277,202619e-11,.101577,-152164e-9,.302077,511662e-10,.101572,-608889e-9,.302066,204751e-9,.101566,-.00136997,.302047,460753e-9,.101592,-.00243557,.302114,819497e-9,.101608,-.0038053,.30214,.00128154,.101627,-.00547906,.30216,.0018483,.101669,-.00745647,.302224,.00252223,.101732,-.00973615,.302318,.00330716,.101844,-.0123097,.302513,.00421061,.102025,-.0151681,.30285,.00524481,.102224,-.0183334,.303166,.0064154,.102515,-.0217819,.303654,.00774063,.102886,-.0255067,.304243,.0092398,.103395,-.029514,.305089,.0109339,.104109,-.0337912,.306301,.0128561,.105074,-.0383565,.30798,.0150338,.10654,-.0432132,.310726,.0175228,.108478,-.0484244,.314351,.0203648,.111015,-.0539339,.319032,.0236325,.114682,-.0598885,.32605,.0274188,.11911,-.0663375,.334109,.0317905,.124736,-.0733011,.344013,.0368502,.131479,-.0807744,.355358,.0427104,.139283,-.0888204,.367614,.0494788,.148054,-.0973394,.380072,.0572367,.159037,-.10665,.395678,.0662704,.169794,-.116221,.40795,.0763192,.18314,-.126632,.423546,.087956,.197515,-.137383,.438213,.101042,.213514,-.148641,.453248,.115827,.23065,-.160117,.46688,.132283,.249148,-.171807,.479962,.150644,.270219,-.183695,.494618,.171073,.292338,-.195574,.506937,.193378,.314999,-.207205,.516463,.217585,.340991,-.218955,.528123,.24428,.367982,-.229917,.537025,.272784,.39432,-.239737,.541627,.302742,.423364,-.249048,.546466,.335112,.453751,-.257329,.549466,.369032,.48416,-.264623,.549503,.404577,.515262,-.270411,.547008,.441337,.547036,-.274581,.542249,.479162,.576614,-.277266,.533015,.517904,.611143,-.279144,.525512,.558508,.640989,-.279001,.51154,.598995,.671182,-.277324,.495641,.639935,.700848,-.273908,.477526,.681017,.729862,-.269063,.457955,.722764,.758273,-.262282,.434846,.764349,.784121,-.254281,.409203,.806206,.809798,-.24505,.382694,.848617,.834953,-.233861,.354034,.892445,.856817,-.221308,.321764,.936263,.877609,-.205996,.288118,.982401,.897489,-.186702,.253277,1.02975,.913792,-.164618,.217963,1.07488,.92785,-.140023,.183221,1.11487,.940378,-.11328,.149385,1.14947,.95273,-.0853958,.114152,1.1807,.969059,-.0568698,.0769845,1.20912,.985574,-.0276502,.0381186,1.23498,.999943,.00239052,-.00126861,1.25987,.0852715,-560067e-11,.279021,171162e-11,.0854143,-140871e-9,.279483,430516e-10,.0854191,-563385e-9,.2795,172184e-9,.0854188,-.00126753,.279493,387464e-9,.0854229,-.00225337,.279501,68918e-8,.0854443,-.00352086,.279549,.00107803,.0854697,-.00506962,.279591,.00155536,.0855093,-.00689873,.279652,.00212354,.0855724,-.00900821,.279752,.00278703,.0856991,-.0113799,.280011,.0035551,.085855,-.0140314,.280297,.00443449,.0860682,-.016963,.280682,.00543636,.086344,-.0201438,.281159,.0065788,.0867426,-.0235999,.281886,.00787977,.087239,-.0273069,.282745,.0093606,.0879815,-.031269,.284139,.011056,.0891258,-.035531,.28647,.0130065,.0906909,-.0400947,.289708,.0152495,.0927624,-.0449638,.293904,.0178454,.0958376,-.0502427,.300471,.0208915,.0995827,-.0559514,.30806,.0244247,.104526,-.0622152,.317874,.0285721,.110532,-.0690046,.329332,.0334227,.117385,-.0763068,.341217,.0390466,.12522,-.084184,.353968,.0455786,.134037,-.0925248,.366797,.0530773,.144014,-.101487,.380209,.0617424,.156013,-.111273,.395956,.071777,.168872,-.121431,.41053,.0830905,.183089,-.132105,.425073,.0959341,.198763,-.143286,.439833,.110448,.216159,-.154841,.454507,.126769,.234859,-.166588,.468368,.14495,.255879,-.178626,.482846,.165233,.27677,-.190218,.493489,.187217,.301184,-.202227,.506549,.211659,.325852,-.213764,.5158,.237922,.352824,-.22487,.525442,.26632,.380882,-.235246,.532487,.296691,.410137,-.244847,.537703,.329179,.439787,-.253122,.540361,.363135,.472291,-.260517,.542734,.399222,.501856,-.266519,.538826,.436352,.534816,-.270905,.535152,.474505,.565069,-.273826,.525979,.513988,.597154,-.275333,.516394,.554852,.630473,-.275314,.506206,.596592,.660574,-.273323,.489769,.638117,.692015,-.270008,.472578,.680457,.720647,-.265001,.452134,.723008,.750528,-.258311,.430344,.765954,.777568,-.250046,.405624,.809012,.80387,-.240114,.378339,.852425,.828439,-.228737,.349877,.895346,.851472,-.216632,.318968,.940695,.873906,-.202782,.287489,.987235,.89467,-.187059,.254394,1.03348,.912281,-.168818,.221294,1.07812,.927358,-.146494,.18675,1.11928,.940385,-.120009,.152322,1.15609,.952672,-.0917183,.117514,1.18875,.968496,-.0620321,.0797405,1.21821,.985236,-.0314945,.0402383,1.24523,.99998,-575153e-9,110644e-9,1.27133,.0702429,-512222e-11,.255273,140947e-11,.0702981,-128826e-9,.255469,354488e-10,.0703691,-515562e-9,.255727,141874e-9,.0703805,-.00116,.255754,31929e-8,.0703961,-.00206224,.255813,567999e-9,.0704102,-.00322223,.255839,88871e-8,.0704298,-.00463928,.255863,.00128272,.0704759,-.00631375,.255953,.00175283,.0705434,-.00824317,.256079,.00230342,.0706693,-.010412,.25636,.0029443,.0708189,-.0128439,.256647,.00368031,.0710364,-.0155177,.257084,.00452614,.0713223,-.0184374,.257637,.00549706,.0717182,-.0216002,.258416,.00661246,.072321,-.0249966,.259699,.00790147,.0731446,-.0286566,.261475,.0093884,.0743352,-.0325888,.264132,.0111186,.0760676,-.036843,.26815,.013145,.078454,-.0414292,.273636,.0155251,.0818618,-.0464634,.281653,.0183525,.0857382,-.0519478,.289992,.0216642,.0908131,-.0579836,.30066,.0255956,.0967512,-.0645124,.312204,.0301954,.103717,-.0716505,.325001,.0356017,.111596,-.0793232,.338129,.041896,.120933,-.087645,.352853,.0492447,.130787,-.096492,.366192,.0576749,.142311,-.105973,.380864,.0673969,.155344,-.116182,.396575,.0785899,.169535,-.126815,.411443,.0912377,.185173,-.138015,.426256,.105607,.201755,-.149325,.439607,.121551,.221334,-.161207,.455467,.139608,.241461,-.173162,.469096,.159591,.26294,-.18504,.481014,.18156,.286776,-.196881,.493291,.205781,.311596,-.208311,.503556,.231819,.338667,-.219671,.513268,.260274,.366021,-.230451,.519414,.290862,.395875,-.240131,.526766,.323196,.425564,-.248566,.52905,.357071,.457094,-.256195,.530796,.393262,.488286,-.262331,.528703,.430797,.522291,-.267141,.52727,.470231,.554172,-.270411,.519848,.510477,.586427,-.271986,.510307,.551594,.619638,-.27192,.499158,.593849,.650656,-.269817,.483852,.636314,.68284,-.266267,.467515,.679679,.714356,-.26113,.44931,.723884,.742717,-.254067,.425789,.767245,.770894,-.245652,.401144,.811819,.797358,-.235554,.374224,.856315,.823377,-.223896,.346167,.901077,.847456,-.210865,.316056,.946502,.870697,-.196574,.284503,.993711,.891068,-.180814,.251628,1.04134,.909267,-.163314,.219065,1.08609,.925653,-.143304,.186446,1.12702,.940017,-.121322,.153416,1.16371,.952398,-.0973872,.120334,1.19712,.967568,-.0698785,.08352,1.22791,.984772,-.0390031,.0439209,1.25672,1.00026,-.0070087,.00315668,1.28428,.0556653,-459654e-11,.227325,112556e-11,.0565238,-116382e-9,.230826,284985e-10,.0565717,-465666e-9,.231026,114036e-9,.0565859,-.00104773,.231079,256656e-9,.0565761,-.00186255,.231025,45663e-8,.0565913,-.00291002,.231058,714664e-9,.0566108,-.00418998,.231085,.00103224,.0566532,-.00570206,.231169,.00141202,.0567473,-.00743666,.231417,.00186018,.0568567,-.00940298,.231661,.00238264,.0569859,-.0115991,.231895,.00298699,.0572221,-.0140096,.232456,.00368957,.057519,-.0166508,.233096,.00450303,.0579534,-.01951,.234094,.00544945,.0585922,-.0225991,.235629,.00655564,.0595647,-.0259416,.238106,.00785724,.0609109,-.0295661,.241557,.00939127,.0628751,-.0335126,.246652,.0112198,.0656908,-.0378604,.254091,.0134168,.0691347,-.0426543,.262666,.0160374,.0732165,-.0478967,.272029,.0191514,.0782863,-.0536716,.283007,.0228597,.0843973,-.0600683,.295732,.0272829,.0913598,-.0670095,.308779,.032484,.0994407,-.0745516,.322886,.0385886,.108189,-.082712,.336408,.0457133,.118574,-.0914927,.351692,.0539832,.129989,-.100854,.366502,.0635162,.142722,-.110837,.381675,.0744386,.156654,-.121353,.3963,.0868483,.172151,-.132414,.411477,.100963,.188712,-.143809,.42508,.116795,.208093,-.155765,.441328,.134715,.227936,-.167608,.454328,.154396,.249495,-.179579,.467235,.176179,.27362,-.191488,.480248,.200193,.296371,-.202618,.487886,.225775,.324234,-.214133,.499632,.25441,.353049,-.225212,.509532,.285077,.381785,-.234875,.514265,.317047,.414038,-.244205,.521282,.351874,.445251,-.252145,.522931,.388279,.476819,-.258433,.520947,.425825,.509209,-.263411,.517669,.465104,.542759,-.266732,.512841,.505741,.574822,-.268263,.503317,.547611,.609324,-.268489,.493035,.590953,.641772,-.266941,.478816,.63488,.674049,-.263297,.462863,.679072,.705071,-.257618,.442931,.723487,.734709,-.250625,.421299,.768708,.763704,-.24179,.397085,.814375,.791818,-.231115,.370577,.859907,.817439,-.21922,.34232,.906715,.843202,-.205658,.312627,.953943,.866639,-.190563,.280933,1.00185,.888129,-.173978,.248393,1.05105,.907239,-.155485,.216007,1.09704,.923893,-.134782,.183233,1.13857,.938882,-.11249,.150376,1.17539,.952464,-.0890706,.117177,1.20924,.968529,-.0646523,.0813095,1.24055,.984763,-.038606,.0439378,1.27018,1.00053,-.01238,.00598668,1.29873,.0437928,-409594e-11,.204012,879224e-12,.0440166,-103395e-9,.205049,221946e-10,.0440529,-413633e-9,.205225,887981e-10,.0440493,-930594e-9,.2052,199858e-9,.0439884,-.00165352,.204901,355495e-9,.0440716,-.0025849,.205255,556983e-9,.0440968,-.00372222,.205311,805326e-9,.0441359,-.00506478,.205391,.00110333,.0442231,-.00660384,.205638,.00145768,.0443254,-.00835246,.205877,.00187275,.0444832,-.0102992,.20627,.00235938,.0447001,-.0124449,.206796,.0029299,.0450168,-.0147935,.207593,.0036005,.0454816,-.017336,.208819,.00439246,.0462446,-.0201156,.211036,.00533864,.0473694,-.0231568,.214388,.00646984,.0490191,-.0264941,.219357,.00783856,.0512776,-.030184,.226061,.00950182,.0541279,-.0342661,.234094,.0115156,.0578989,-.0388539,.244297,.0139687,.0620835,-.0438735,.254457,.0169015,.0673497,-.04951,.266706,.0204554,.0731759,-.0556263,.278753,.0246606,.0803937,-.0624585,.29309,.0297126,.0879287,-.0697556,.305856,.0355868,.0970669,-.0778795,.321059,.0425768,.106508,-.0863541,.333873,.05056,.11776,-.0955935,.349008,.0598972,.130081,-.105438,.363776,.0706314,.144454,-.115899,.380112,.0828822,.1596,-.126827,.394843,.0967611,.176097,-.138161,.409033,.112381,.194726,-.149904,.424257,.129952,.213944,-.161675,.436945,.149333,.235516,-.173659,.450176,.170892,.260564,-.185963,.466305,.194984,.285183,-.197582,.477328,.220805,.311095,-.208697,.486566,.248694,.338924,-.219519,.494811,.279015,.369757,-.229766,.504065,.311725,.3996,-.238879,.507909,.345844,.430484,-.246802,.509805,.381749,.46413,-.253924,.511436,.420251,.497077,-.259319,.508787,.459957,.530434,-.263297,.50394,.501356,.565725,-.265619,.49804,.544252,.599254,-.265842,.487346,.587856,.631251,-.263978,.472975,.631969,.663972,-.26043,.457135,.677471,.697724,-.255358,.439844,.723744,.727725,-.248308,.417872,.770653,.756417,-.239181,.39273,.817357,.785419,-.22814,.367839,.864221,.81266,-.215681,.339449,.912701,.839391,-.201623,.309279,.962419,.86366,-.185624,.278029,1.0122,.885028,-.16797,.245294,1.06186,.904639,-.148336,.212689,1.10934,.922048,-.12637,.179616,1.15063,.936952,-.102928,.146749,1.18885,.951895,-.0785268,.112733,1.22352,.967198,-.0530153,.0760056,1.25681,.984405,-.02649,.0383183,1.28762,1.00021,70019e-8,-20039e-8,1.31656,.0325964,-355447e-11,.176706,655682e-12,.0329333,-899174e-10,.178527,165869e-10,.0329181,-359637e-9,.178453,663498e-10,.0329085,-808991e-9,.178383,149332e-9,.0329181,-.00143826,.178394,265873e-9,.0329425,-.00224678,.178517,416597e-9,.0329511,-.00323575,.17849,603299e-9,.033011,-.00439875,.178695,829422e-9,.0330733,-.00574059,.178843,.00109908,.0331857,-.00725896,.179176,.00141933,.0333445,-.00895289,.179618,.0017999,.0335674,-.0108219,.180238,.00225316,.033939,-.0128687,.181417,.00279765,.0345239,-.015114,.183395,.0034564,.0354458,-.017596,.186616,.00425864,.0368313,-.0203524,.191547,.00524936,.0386115,-.0234105,.197508,.00647033,.0410303,-.0268509,.205395,.00798121,.0442245,-.0307481,.215365,.0098557,.0478659,-.0350863,.225595,.0121417,.0522416,-.0399506,.236946,.0149385,.0574513,-.045357,.249442,.0183189,.0631208,-.0512863,.261222,.0223644,.0701124,-.0579273,.275418,.0272418,.0777331,-.0650652,.288989,.0329458,.0862709,-.0728813,.302546,.0396819,.096103,-.081363,.317164,.04757,.106976,-.0904463,.331733,.0567012,.119175,-.100105,.34661,.067202,.132919,-.110375,.362249,.0792588,.147727,-.121115,.376978,.0928672,.163618,-.132299,.390681,.108228,.182234,-.143887,.406571,.125502,.201809,-.155827,.42042,.144836,.225041,-.168357,.438411,.166706,.247621,-.18004,.450368,.189909,.27097,-.191536,.460083,.215251,.296658,-.203024,.469765,.243164,.325892,-.214056,.481837,.273388,.35406,-.224104,.487474,.305344,.384372,-.233489,.492773,.339741,.41749,-.241874,.498451,.376287,.45013,-.248834,.499632,.414195,.481285,-.254658,.495233,.454077,.519183,-.259367,.496401,.496352,.551544,-.261818,.487686,.538798,.587349,-.262964,.479453,.583626,.621679,-.262128,.467709,.629451,.654991,-.258998,.452123,.67566,.686873,-.254119,.433495,.723248,.719801,-.246946,.413657,.771156,.750355,-.237709,.390366,.81989,.780033,-.226549,.364947,.868601,.809254,-.214186,.337256,.920034,.836576,-.199639,.307395,.971706,.861774,-.183169,.275431,1.02479,.885707,-.165111,.243431,1.07837,.904742,-.144363,.210921,1.12783,.915604,-.121305,.17647,1.17254,.930959,-.0962119,.143106,1.21012,.948404,-.069969,.108112,1.24474,.967012,-.0427586,.0708478,1.27718,.984183,-.0147043,.032335,1.3083,.999577,.0142165,-.00726867,1.3382,.0229227,-299799e-11,.148623,462391e-12,.0232194,-758796e-10,.15054,117033e-10,.0232315,-303636e-9,.15063,468397e-10,.0232354,-683189e-9,.150624,105472e-9,.0232092,-.0012136,.150445,187744e-9,.0232523,-.00189765,.150679,294847e-9,.0232828,-.00273247,.150789,428013e-9,.0233371,-.00371287,.150995,591134e-9,.0234015,-.00484794,.15118,787642e-9,.023514,-.00612877,.151562,.00102547,.023679,-.00756125,.152116,.00131351,.0239559,-.00914651,.153162,.00166594,.0244334,-.010904,.155133,.00210182,.025139,-.0128615,.158035,.00264406,.0262598,-.0150628,.162751,.00332923,.0277875,-.0175532,.168944,.00419773,.0298472,-.0203981,.176835,.00530034,.0325444,-.023655,.186686,.00669777,.0355581,-.0272982,.196248,.00842661,.0392841,-.0314457,.207352,.0105854,.0436815,-.0361157,.219279,.0132458,.0485272,-.0412932,.230728,.0164736,.0541574,-.0470337,.242994,.0203715,.0609479,-.0535002,.257042,.0250953,.0685228,-.0605409,.27102,.0306856,.0768042,-.0680553,.28406,.037193,.0864844,-.0765011,.299186,.0449795,.0969415,-.0852674,.3132,.0538316,.108478,-.0947333,.327138,.0641149,.121705,-.10481,.342345,.0759185,.136743,-.115474,.358472,.0894116,.152986,-.126536,.374067,.104562,.170397,-.138061,.388267,.121632,.191392,-.150203,.406467,.140996,.211566,-.161751,.418641,.161696,.233567,-.173407,.430418,.184557,.257769,-.185397,.44277,.210092,.28531,-.197048,.457191,.237827,.311726,-.20784,.464712,.267253,.340537,-.218345,.472539,.299332,.372921,-.228306,.482331,.333988,.402924,-.236665,.484378,.369722,.434475,-.244097,.484717,.407836,.469736,-.250547,.487093,.448465,.505045,-.25511,.485575,.490263,.540262,-.258444,.481225,.534495,.576347,-.259903,.473481,.579451,.608656,-.259572,.4603,.625604,.646679,-.257908,.450341,.674511,.679902,-.253663,.431561,.723269,.714159,-.247419,.412684,.773263,.745345,-.239122,.389388,.824182,.778248,-.228837,.365361,.876634,.807208,-.216197,.337667,.92945,.835019,-.201772,.307197,.985261,.860261,-.185291,.274205,1.04299,.877601,-.165809,.240178,1.09816,.898211,-.143897,.207571,1.14694,.915789,-.119513,.174904,1.19008,.931831,-.0932919,.141423,1.2297,.949244,-.0656528,.105603,1.26553,.967527,-.0370262,.0679551,1.29986,.984139,-.00730117,.0283133,1.33252,.999713,.0234648,-.0121785,1.36397,.0152135,-245447e-11,.122795,304092e-12,.0151652,-615778e-10,.122399,76292e-10,.0151181,-245948e-9,.122023,304802e-10,.0151203,-553394e-9,.12203,686634e-10,.015125,-983841e-9,.122037,122463e-9,.0151427,-.00153774,.12214,192706e-9,.0151708,-.0022103,.122237,281219e-9,.0152115,-.00300741,.12238,390804e-9,.0152877,-.00392494,.1227,526317e-9,.015412,-.00496597,.123244,69443e-8,.0156201,-.00613314,.124228,90547e-8,.0159658,-.00744113,.125945,.0011732,.0165674,-.00892546,.129098,.00151888,.017487,-.010627,.133865,.00197007,.018839,-.0126043,.140682,.0025637,.020554,-.0148814,.148534,.00333637,.0226727,-.0175123,.157381,.00433738,.0251879,-.0205266,.166685,.00561664,.0283635,-.0240319,.177796,.00725563,.0318694,-.0279432,.188251,.00928811,.0361044,-.0324313,.200038,.011835,.0406656,-.0373527,.210685,.0149146,.0463846,-.0430132,.224182,.0187254,.0525696,-.0491013,.23634,.0232283,.0598083,-.0559175,.250013,.0286521,.0679437,-.0633657,.263981,.0350634,.0771181,-.0714602,.278072,.0425882,.0881273,-.0803502,.29511,.0514487,.0996628,-.0896903,.309976,.0615766,.112702,-.099644,.325611,.0732139,.126488,-.109829,.339321,.0862324,.142625,-.120859,.35574,.101275,.15953,-.131956,.369845,.117892,.176991,-.143145,.38146,.136205,.199715,-.155292,.40052,.157252,.220787,-.167066,.412055,.179966,.243697,-.178396,.423133,.204418,.272106,-.190433,.439524,.232141,.297637,-.201265,.447041,.261109,.325273,-.211834,.454488,.292627,.357219,-.221889,.465004,.326669,.387362,-.230729,.468527,.362426,.423131,-.23924,.475836,.401533,.45543,-.246067,.475017,.441902,.493393,-.251557,.478017,.484239,.526253,-.255571,.4709,.528586,.560554,-.257752,.463167,.574346,.599306,-.258076,.456452,.621655,.634541,-.256471,.443725,.670492,.668907,-.253283,.428719,.721943,.705619,-.247562,.411348,.772477,.739034,-.240626,.388939,.8264,.771408,-.231493,.36425,.881702,.803312,-.220125,.337321,.9385,.828457,-.206645,.305364,.997437,.854819,-.190664,.273715,1.05693,.878666,-.171429,.242218,1.11251,.898404,-.149235,.209556,1.16398,.917416,-.12435,.176863,1.21014,.933133,-.0972703,.142775,1.25178,.95066,-.0683607,.106735,1.29028,.968589,-.0378724,.0681609,1.32703,.984776,-.00605712,.0273966,1.36158,.99994,.0263276,-.0138124,1.3943,.00867437,-186005e-11,.0928979,173682e-12,.00864003,-466389e-10,.0925237,435505e-11,.00864593,-186594e-9,.0925806,174322e-10,.00864095,-419639e-9,.0924903,392862e-10,.00863851,-746272e-9,.0924589,702598e-10,.00868531,-.00116456,.0929,111188e-9,.00869667,-.00167711,.0928529,163867e-9,.00874332,-.00228051,.0930914,23104e-8,.00882709,-.00297864,.0935679,31741e-8,.00898874,-.00377557,.0946165,430186e-9,.00929346,-.00469247,.0967406,580383e-9,.00978271,-.00575491,.100084,783529e-9,.0105746,-.00701514,.105447,.00106304,.0116949,-.00851797,.112494,.00144685,.0130419,-.0102757,.119876,.00196439,.0148375,-.012381,.129034,.00266433,.0168725,-.01482,.137812,.00358364,.0193689,-.0176563,.147696,.00478132,.0222691,-.0209211,.157795,.00631721,.0256891,-.0246655,.168431,.00826346,.0294686,-.0288597,.178587,.0106714,.0340412,-.0336441,.190251,.0136629,.0393918,-.039033,.202999,.0173272,.0453947,-.0450087,.215655,.0217448,.0521936,-.0515461,.228686,.0269941,.0600279,-.058817,.242838,.033272,.0692398,-.0667228,.258145,.0406457,.0793832,-.0752401,.273565,.0492239,.0902297,-.0841851,.287735,.0590105,.102014,-.0936479,.301161,.0702021,.116054,-.103967,.317438,.0832001,.13191,-.114622,.334166,.0977951,.148239,-.125452,.348192,.113985,.165809,-.136453,.361094,.131928,.184616,-.147648,.373534,.151811,.207491,-.159607,.39101,.174476,.230106,-.171119,.402504,.198798,.257036,-.182906,.418032,.225796,.281172,-.193605,.425468,.254027,.312034,-.204771,.440379,.285713,.340402,-.214988,.445406,.319196,.370231,-.224711,.44968,.35537,.407105,-.233516,.460747,.393838,.439037,-.240801,.460624,.433747,.47781,-.24762,.465957,.477234,.510655,-.251823,.460054,.52044,.550584,-.255552,.459172,.567853,.585872,-.257036,.450311,.615943,.620466,-.257535,.437763,.667693,.660496,-.255248,.426639,.718988,.695578,-.251141,.409185,.772503,.732176,-.244718,.39015,.827023,.760782,-.236782,.362594,.885651,.79422,-.225923,.33711,.943756,.824521,-.213855,.308272,1.00874,.854964,-.197723,.278529,1.06764,.878065,-.179209,.246208,1.12836,.899834,-.157569,.21329,1.18318,.918815,-.133206,.181038,1.23161,.934934,-.106545,.146993,1.27644,.952115,-.0780574,.111175,1.31842,.96906,-.0478279,.0728553,1.35839,.985178,-.0160014,.032579,1.39697,1.00039,.0173126,-.0095256,1.43312,.00384146,-124311e-11,.0613583,778271e-13,.00390023,-314043e-10,.0622919,196626e-11,.00389971,-125622e-9,.0622632,787379e-11,.00389491,-282352e-9,.0620659,1778e-8,.00391618,-502512e-9,.0624687,320918e-10,.00392662,-784458e-9,.0625113,515573e-10,.00396053,-.00112907,.0628175,778668e-10,.00401911,-.00153821,.0633286,113811e-9,.00414994,-.0020208,.0646443,16445e-8,.00441223,-.00260007,.0673886,237734e-9,.00484427,-.0033097,.0716528,345929e-9,.00549109,-.00418966,.0774998,505987e-9,.00636293,-.00527331,.0844758,739208e-9,.00746566,-.00660428,.0921325,.00107347,.00876625,-.00818826,.0997067,.00153691,.0103125,-.0100811,.107433,.00217153,.0123309,-.0123643,.117088,.00303427,.0146274,-.0150007,.126438,.00416018,.0172295,-.0180531,.135672,.00561513,.0204248,-.0215962,.146244,.007478,.0241597,-.0256234,.157481,.00981046,.0284693,-.0302209,.169125,.0127148,.033445,-.0353333,.181659,.0162453,.0391251,-.0410845,.1944,.0205417,.0454721,-.0473451,.207082,.0256333,.0530983,-.0542858,.221656,.0317036,.0615356,-.0618384,.236036,.0388319,.0703363,-.0697631,.248398,.046974,.0810391,-.0784757,.263611,.0565246,.0920144,-.0873488,.275857,.0671724,.105584,-.0973652,.292555,.0798105,.119506,-.107271,.306333,.0935945,.134434,-.117608,.318888,.109106,.153399,-.128938,.337552,.127074,.171258,-.139944,.349955,.14643,.191059,-.151288,.361545,.168,.215069,-.163018,.378421,.192082,.237838,-.174226,.38879,.217838,.266965,-.186063,.405857,.246931,.292827,-.196909,.414146,.277505,.324352,-.207473,.426955,.310711,.354427,-.217713,.433429,.346794,.389854,-.227183,.443966,.385237,.420749,-.235131,.44471,.424955,.459597,-.242786,.451729,.468446,.495316,-.248767,.45072,.513422,.534903,-.253351,.450924,.560618,.572369,-.256277,.445266,.609677,.612383,-.2576,.438798,.660995,.644037,-.256931,.421693,.713807,.686749,-.254036,.4109,.767616,.719814,-.249785,.390151,.82533,.754719,-.244283,.367847,.888311,.792022,-.235076,.345013,.948177,.822404,-.225061,.316193,1.01661,.853084,-.211113,.287013,1.08075,.879871,-.19449,.255424,1.14501,.901655,-.174023,.222879,1.20203,.919957,-.1509,.18989,1.25698,.938412,-.124923,.15606,1.30588,.953471,-.0968139,.120512,1.3529,.970451,-.066734,.0828515,1.3986,.985522,-.034734,.0424458,1.44148,1.00099,-.00102222,678929e-9,1.48398,965494e-9,-627338e-12,.0306409,197672e-13,99168e-8,-158573e-10,.0314638,499803e-12,991068e-9,-634012e-10,.031363,200682e-11,974567e-9,-14144e-8,.03036,457312e-11,998079e-9,-252812e-9,.031496,860131e-11,.00102243,-396506e-9,.0319955,148288e-10,.00107877,-577593e-9,.0331376,249141e-10,.00121622,-816816e-9,.0359396,423011e-10,.0014455,-.00113761,.0399652,724613e-10,.00178791,-.00156959,.0450556,123929e-9,.00225668,-.00214064,.0508025,208531e-9,.00285627,-.00287655,.0568443,341969e-9,.0035991,-.00380271,.0630892,544158e-9,.00455524,-.00496264,.0702204,842423e-9,.00569143,-.0063793,.0773426,.00126704,.00716928,-.00813531,.0860839,.00186642,.00885307,-.0101946,.0944079,.00267014,.0109316,-.0126386,.103951,.00374033,.0133704,-.0154876,.113786,.0051304,.0161525,-.0187317,.123477,.00688858,.0194267,-.0224652,.133986,.00910557,.0230967,-.0265976,.143979,.0118074,.0273627,-.0312848,.154645,.0151266,.0323898,-.0365949,.166765,.0191791,.0379225,-.0422914,.177932,.0239236,.0447501,-.0487469,.19167,.0296568,.0519391,-.0556398,.203224,.0362924,.0599464,-.0631646,.215652,.0440585,.0702427,-.0714308,.232089,.0531619,.0806902,-.0800605,.245258,.0634564,.0923194,-.0892815,.258609,.0752481,.106938,-.09931,.276654,.0888914,.121238,-.109575,.289847,.104055,.138817,-.120461,.307566,.121266,.15595,-.131209,.320117,.139944,.178418,-.143049,.339677,.161591,.197875,-.154074,.349886,.184303,.224368,-.166307,.369352,.210669,.252213,-.178051,.386242,.238895,.277321,-.189335,.395294,.269182,.310332,-.200683,.412148,.302508,.338809,-.210856,.418266,.337264,.372678,-.220655,.428723,.374881,.405632,-.230053,.433887,.415656,.442293,-.237993,.439911,.457982,.477256,-.244897,.440175,.502831,.515592,-.250657,.441079,.550277,.550969,-.255459,.435219,.601102,.592883,-.257696,.432882,.651785,.629092,-.259894,.421054,.708961,.672033,-.258592,.41177,.763806,.709147,-.256525,.395267,.824249,.745367,-.254677,.375013,.8951,.784715,-.247892,.353906,.959317,.818107,-.240162,.327801,1.03153,.847895,-.229741,.298821,1.10601,.879603,-.213084,.269115,1.164,.902605,-.195242,.236606,1.22854,.922788,-.174505,.203442,1.29017,.944831,-.150169,.169594,1.34157,.959656,-.124099,.135909,1.3956,.972399,-.0960626,.0990563,1.45128,.986549,-.0657097,.0602348,1.50312,1.00013,-.0333558,.0186694,1.55364,619747e-11,-1e-7,.00778326,796756e-16,237499e-13,-999999e-13,282592e-10,114596e-15,100292e-11,-166369e-11,250354e-9,677492e-14,350752e-11,-637769e-11,357289e-9,631655e-13,826445e-11,-174689e-10,516179e-9,31851e-11,242481e-10,-450868e-10,.0010223,130577e-11,455631e-10,-89044e-9,.00144302,374587e-11,971222e-10,-178311e-9,.00241912,102584e-10,171403e-9,-313976e-9,.00354938,236481e-10,292747e-9,-520026e-9,.00513765,496014e-10,789827e-9,-.00118187,.0238621,139056e-9,.00114093,-.00171827,.0286691,244093e-9,.00176119,-.00249667,.0368565,420623e-9,.0022233,-.00333742,.0400469,65673e-8,.00343382,-.00481976,.0535751,.00109323,.00427602,-.00600755,.057099,.00155268,.00461435,-.00737637,.0551084,.00215031,.00695698,-.00971401,.0715767,.00316529,.00867619,-.0120943,.0793314,.00436995,.0106694,-.0148202,.0869391,.0058959,.0140351,-.0183501,.101572,.00798757,.0168939,-.022006,.11018,.0104233,.020197,-.0261568,.119041,.0134167,.0254702,-.0312778,.135404,.0173009,.0298384,-.0362469,.1437,.0215428,.035159,-.042237,.15512,.0268882,.0427685,-.0488711,.17128,.033235,.0494848,-.0557997,.181813,.0404443,.0592394,-.0635578,.198745,.0490043,.0681463,-.071838,.210497,.0588239,.0804753,-.0809297,.228864,.0702835,.0942205,-.0906488,.247008,.0834012,.106777,-.100216,.258812,.0975952,.124471,-.110827,.278617,.114162,.138389,-.121193,.287049,.131983,.159543,-.13253,.307151,.152541,.176432,-.143611,.31564,.174673,.201723,-.15548,.33538,.199842,.229721,-.167166,.355256,.227097,.250206,-.178238,.360047,.256014,.282118,-.189905,.378761,.28855,.312821,-.201033,.39181,.323348,.341482,-.211584,.397716,.360564,.377368,-.221314,.410141,.400004,.418229,-.230474,.423485,.442371,.444881,-.239443,.418874,.488796,.488899,-.245987,.427545,.535012,.520317,-.253948,.422147,.589678,.568566,-.256616,.42719,.637683,.599607,-.26376,.415114,.703363,.64222,-.268687,.408715,.771363,.685698,-.2694,.399722,.83574,.732327,-.266642,.388651,.897764,.769873,-.267712,.369198,.983312,.806733,-.263479,.346802,1.06222,.843466,-.254575,.321368,1.13477,.873008,-.242749,.29211,1.20712,.908438,-.22725,.262143,1.27465,.936321,-.207621,.228876,1.33203,.950353,-.187932,.19484,1.40439,.96442,-.165154,.163178,1.4732,.979856,-.139302,.127531,1.53574,.982561,-.11134,.0903457,1.59982,.996389,-.0808124,.0489007,1.6577],n=[1,0,0,0,1,791421e-36,0,0,1,104392e-29,0,0,1,349405e-26,0,0,1,109923e-23,0,0,1,947414e-22,0,0,1,359627e-20,0,0,1,772053e-19,0,0,1,108799e-17,0,0,1,110655e-16,0,0,1,865818e-16,0,0,.999998,545037e-15,0,0,.999994,285095e-14,0,0,.999989,126931e-13,0,0,.999973,489938e-13,0,0,.999947,166347e-12,0,0,.999894,502694e-12,0,0,.999798,136532e-11,0,0,.999617,335898e-11,0,0,.999234,752126e-11,0,0,.998258,152586e-10,0,0,.99504,266207e-10,0,0,.980816,236802e-10,0,0,.967553,207684e-11,0,0,.966877,403733e-11,0,0,.965752,741174e-11,0,0,.96382,127746e-10,0,0,.960306,202792e-10,0,0,.953619,280232e-10,0,0,.941103,278816e-10,0,0,.926619,160221e-10,0,0,.920983,235164e-10,0,0,.912293,311924e-10,0,.0158731,.899277,348118e-10,0,.0476191,.880884,26041e-9,0,.0793651,.870399,338726e-10,0,.111111,.856138,392906e-10,0,.142857,.837436,372874e-10,0,.174603,.820973,392558e-10,0,.206349,.803583,434658e-10,0,.238095,.782168,40256e-9,0,.269841,.764107,448159e-10,0,.301587,.743092,457627e-10,0,.333333,.721626,455314e-10,0,.365079,.700375,477335e-10,0,.396825,.677334,461072e-10,0,.428571,.655702,484393e-10,0,.460317,.632059,464583e-10,0,.492064,.610125,483923e-10,0,.52381,.58653,464342e-10,0,.555556,.564508,477033e-10,0,.587302,.541405,459263e-10,0,.619048,.519556,46412e-9,0,.650794,.497292,448913e-10,0,.68254,.475898,445789e-10,0,.714286,.454722,433496e-10,0,.746032,.434042,423054e-10,0,.777778,.414126,413737e-10,0,.809524,.394387,397265e-10,0,.84127,.375841,390709e-10,0,.873016,.357219,369938e-10,0,.904762,.340084,365618e-10,0,.936508,.322714,342533e-10,0,.968254,.306974,339596e-10,0,1,1,101524e-23,0,0,1,10292e-22,0,0,1,130908e-23,0,0,1,473331e-23,0,0,1,625319e-22,0,0,1,107932e-20,0,0,1,163779e-19,0,0,1,203198e-18,0,0,1,204717e-17,0,0,.999999,168995e-16,0,0,.999998,115855e-15,0,0,.999996,66947e-14,0,0,.999991,330863e-14,0,0,.999983,141737e-13,0,0,.999968,532626e-13,0,0,.99994,177431e-12,0,0,.999891,528835e-12,0,0,.999797,142169e-11,0,0,.999617,347057e-11,0,0,.999227,77231e-10,0,0,.998239,155753e-10,0,0,.994937,268495e-10,0,0,.980225,213742e-10,0,0,.967549,21631e-10,0,0,.966865,417989e-11,0,0,.965739,763341e-11,0,0,.963794,130892e-10,0,0,.960244,206456e-10,0,0,.953495,282016e-10,0,148105e-9,.940876,271581e-10,0,.002454,.926569,164159e-10,0,.00867491,.920905,239521e-10,0,.01956,.912169,315127e-10,0,.035433,.899095,346626e-10,0,.056294,.882209,290223e-10,0,.0818191,.870272,342992e-10,0,.111259,.855977,394164e-10,0,.142857,.837431,372343e-10,0,.174603,.820826,396691e-10,0,.206349,.803408,435395e-10,0,.238095,.782838,419579e-10,0,.269841,.763941,450953e-10,0,.301587,.742904,455847e-10,0,.333333,.721463,458833e-10,0,.365079,.700197,477159e-10,0,.396825,.677501,470641e-10,0,.428571,.655527,484732e-10,0,.460317,.6324,476834e-10,0,.492064,.609964,484213e-10,0,.52381,.586839,475541e-10,0,.555556,.564353,476951e-10,0,.587302,.541589,467611e-10,0,.619048,.519413,463493e-10,0,.650794,.497337,453994e-10,0,.68254,.475797,445308e-10,0,.714286,.454659,435787e-10,0,.746032,.434065,424839e-10,0,.777778,.414018,41436e-9,0,.809524,.39455,401902e-10,0,.84127,.375742,390813e-10,0,.873016,.357501,377116e-10,0,.904762,.339996,36535e-9,0,.936508,.323069,351265e-10,0,.968254,.306897,339112e-10,0,1,1,10396e-19,0,0,1,104326e-20,0,0,1,110153e-20,0,0,1,144668e-20,0,0,1,34528e-19,0,0,1,175958e-19,0,0,1,12627e-17,0,0,1,936074e-18,0,0,1,645742e-17,0,0,.999998,401228e-16,0,0,.999997,222338e-15,0,0,.999995,10967e-13,0,0,.999991,482132e-14,0,0,.999981,189434e-13,0,0,.999967,667716e-13,0,0,.999938,212066e-12,0,0,.999886,60977e-11,0,0,.999792,159504e-11,0,0,.999608,381191e-11,0,0,.999209,833727e-11,0,0,.998179,165288e-10,0,0,.994605,274387e-10,0,0,.979468,167316e-10,0,0,.967529,242877e-11,0,0,.966836,461696e-11,0,0,.96569,830977e-11,0,0,.963706,140427e-10,0,244659e-11,.960063,217353e-10,0,760774e-9,.953113,286606e-10,0,.00367261,.940192,247691e-10,0,.00940263,.927731,195814e-10,0,.018333,.920669,252531e-10,0,.0306825,.911799,324277e-10,0,.0465556,.89857,340982e-10,0,.0659521,.883283,319622e-10,0,.0887677,.86989,35548e-9,0,.114784,.855483,397143e-10,0,.143618,.837987,391665e-10,0,.174606,.820546,411306e-10,0,.206349,.802878,436753e-10,0,.238095,.783402,444e-7,0,.269841,.763439,458726e-10,0,.301587,.742925,467097e-10,0,.333333,.721633,478887e-10,0,.365079,.69985,481251e-10,0,.396825,.67783,491811e-10,0,.428571,.655126,488199e-10,0,.460318,.632697,496025e-10,0,.492064,.609613,48829e-9,0,.52381,.587098,492754e-10,0,.555556,.564119,482625e-10,0,.587302,.541813,482807e-10,0,.619048,.519342,471552e-10,0,.650794,.497514,466765e-10,0,.68254,.475879,455582e-10,0,.714286,.454789,446007e-10,0,.746032,.434217,435382e-10,0,.777778,.414086,421753e-10,0,.809524,.394744,412093e-10,0,.84127,.375782,396634e-10,0,.873016,.357707,386419e-10,0,.904762,.340038,370345e-10,0,.936508,.323284,359725e-10,0,.968254,.306954,3436e-8,0,1,1,599567e-19,0,0,1,600497e-19,0,0,1,614839e-19,0,0,1,686641e-19,0,0,1,972658e-19,0,0,1,221271e-18,0,0,1,833195e-18,0,0,1,403601e-17,0,0,.999999,206001e-16,0,0,.999998,101739e-15,0,0,.999997,470132e-15,0,0,.999993,200436e-14,0,0,.999988,783682e-14,0,0,.999979,280338e-13,0,0,.999962,917033e-13,0,0,.999933,274514e-12,0,0,.999881,753201e-12,0,0,.999783,189826e-11,0,0,.999594,440279e-11,0,0,.999178,93898e-10,0,0,.998073,181265e-10,0,0,.993993,280487e-10,0,0,.979982,149422e-10,0,0,.968145,378481e-11,0,0,.966786,53771e-10,0,0,.965611,947508e-11,0,388934e-10,.963557,156616e-10,0,9693e-7,.959752,235144e-10,0,.00370329,.952461,291568e-10,0,.00868428,.940193,240102e-10,0,.0161889,.929042,231235e-10,0,.0263948,.920266,273968e-10,0,.0394088,.911178,337915e-10,0,.0552818,.897873,333629e-10,0,.0740138,.884053,351405e-10,0,.0955539,.869455,378034e-10,0,.119795,.854655,399378e-10,0,.14656,.838347,419108e-10,0,.175573,.820693,440831e-10,0,.206388,.802277,445599e-10,0,.238095,.783634,472691e-10,0,.269841,.763159,476984e-10,0,.301587,.742914,491487e-10,0,.333333,.721662,502312e-10,0,.365079,.699668,502817e-10,0,.396825,.677839,51406e-9,0,.428571,.655091,511095e-10,0,.460317,.632665,516067e-10,0,.492064,.609734,512255e-10,0,.52381,.587043,510263e-10,0,.555556,.564298,50565e-9,0,.587302,.541769,497951e-10,0,.619048,.519529,492698e-10,0,.650794,.497574,482066e-10,0,.68254,.476028,473689e-10,0,.714286,.454961,461941e-10,0,.746032,.434341,450618e-10,0,.777778,.414364,438355e-10,0,.809524,.394832,424196e-10,0,.84127,.376109,412563e-10,0,.873016,.35779,396226e-10,0,.904762,.340379,384886e-10,0,.936508,.323385,368214e-10,0,.968254,.307295,356636e-10,0,1,1,106465e-17,0,0,1,106555e-17,0,0,1,107966e-17,0,0,1,114601e-17,0,0,1,137123e-17,0,0,1,21243e-16,0,0,.999999,489653e-17,0,0,.999999,160283e-16,0,0,.999998,62269e-15,0,0,.999997,251859e-15,0,0,.999996,996192e-15,0,0,.999992,374531e-14,0,0,.999986,132022e-13,0,0,.999975,433315e-13,0,0,.999959,131956e-12,0,0,.999927,372249e-12,0,0,.999871,972461e-12,0,0,.999771,235343e-11,0,0,.999572,52768e-10,0,0,.999133,109237e-10,0,0,.997912,203675e-10,0,0,.993008,279396e-10,0,0,.980645,139604e-10,0,0,.970057,646596e-11,0,0,.966717,65089e-10,0,474145e-10,.965497,111863e-10,0,89544e-8,.96334,179857e-10,0,.0032647,.959294,259045e-10,0,.0075144,.951519,292327e-10,0,.0138734,.940517,249769e-10,0,.0224952,.93014,26803e-9,0,.0334828,.91972,303656e-10,0,.0468973,.910294,353323e-10,0,.0627703,.897701,351002e-10,0,.0811019,.884522,388104e-10,0,.10186,.869489,412932e-10,0,.124985,.853983,415781e-10,0,.150372,.838425,454066e-10,0,.177868,.820656,471624e-10,0,.207245,.801875,475243e-10,0,.238143,.783521,505621e-10,0,.269841,.763131,50721e-9,0,.301587,.74261,523293e-10,0,.333333,.72148,528699e-10,0,.365079,.699696,538677e-10,0,.396825,.677592,539255e-10,0,.428571,.65525,546367e-10,0,.460317,.632452,541348e-10,0,.492064,.609903,544976e-10,0,.52381,.586928,536201e-10,0,.555556,.564464,535185e-10,0,.587302,.541801,524949e-10,0,.619048,.519681,51812e-9,0,.650794,.497685,507687e-10,0,.68254,.47622,496243e-10,0,.714286,.455135,485714e-10,0,.746032,.4346,471847e-10,0,.777778,.414564,459294e-10,0,.809524,.395165,444705e-10,0,.84127,.376333,430772e-10,0,.873016,.358197,416229e-10,0,.904762,.34064,401019e-10,0,.936508,.323816,386623e-10,0,.968254,.307581,370933e-10,0,1,1,991541e-17,0,0,1,992077e-17,0,0,1,100041e-16,0,0,1,10385e-15,0,0,1,115777e-16,0,0,1,150215e-16,0,0,.999999,254738e-16,0,0,.999999,598822e-16,0,0,.999998,179597e-15,0,0,.999997,602367e-15,0,0,.999994,206835e-14,0,0,.99999,694952e-14,0,0,.999984,223363e-13,0,0,.999972,678578e-13,0,0,.999952,193571e-12,0,0,.999919,516594e-12,0,0,.99986,128739e-11,0,0,.999753,299298e-11,0,0,.999546,648258e-11,0,0,.999074,129985e-10,0,0,.997671,232176e-10,0,0,.991504,256701e-10,0,0,.981148,131141e-10,0,0,.971965,869048e-11,0,280182e-10,.966624,808301e-11,0,695475e-9,.965344,135235e-10,0,.00265522,.963048,210592e-10,0,.00622975,.958673,287473e-10,0,.0116234,.950262,281379e-10,0,.018976,.940836,271089e-10,0,.0283844,.930996,30926e-9,0,.0399151,.919848,348359e-10,0,.0536063,.909136,366092e-10,0,.0694793,.897554,384162e-10,0,.0875342,.884691,430971e-10,0,.107749,.869414,447803e-10,0,.130087,.853462,452858e-10,0,.154481,.838187,495769e-10,0,.180833,.820381,502709e-10,0,.209005,.801844,522713e-10,0,.238791,.783061,541505e-10,0,.269869,.763205,553712e-10,0,.301587,.742362,564909e-10,0,.333333,.721393,572646e-10,0,.365079,.699676,581012e-10,0,.396825,.677395,58096e-9,0,.428571,.655208,585766e-10,0,.460317,.632451,583602e-10,0,.492064,.609839,580234e-10,0,.52381,.587093,577161e-10,0,.555556,.564467,568447e-10,0,.587302,.542043,563166e-10,0,.619048,.519826,55156e-9,0,.650794,.497952,541682e-10,0,.68254,.476477,528971e-10,0,.714286,.455412,514952e-10,0,.746032,.434926,502222e-10,0,.777778,.4149,485779e-10,0,.809524,.395552,472242e-10,0,.84127,.376712,454891e-10,0,.873016,.358622,440924e-10,0,.904762,.341048,422984e-10,0,.936508,.324262,408582e-10,0,.968254,.308013,390839e-10,0,1,1,613913e-16,0,0,1,614145e-16,0,0,1,617708e-16,0,0,1,633717e-16,0,0,1,681648e-16,0,0,1,808291e-16,0,0,1,114608e-15,0,0,.999998,210507e-15,0,0,.999997,499595e-15,0,0,.999995,139897e-14,0,0,.999994,419818e-14,0,0,.999988,127042e-13,0,0,.999979,375153e-13,0,0,.999965,106206e-12,0,0,.999945,285381e-12,0,0,.999908,723611e-12,0,0,.999846,17255e-10,0,0,.999733,386104e-11,0,0,.999511,808493e-11,0,0,.998993,156884e-10,0,0,.997326,265538e-10,0,0,.989706,206466e-10,0,0,.981713,130756e-10,0,70005e-10,.973636,106473e-10,0,464797e-9,.966509,10194e-9,0,.00201743,.965149,165881e-10,0,.00497549,.962669,249147e-10,0,.00953262,.95786,317449e-10,0,.0158211,.949334,281045e-10,0,.0239343,.941041,303263e-10,0,.0339372,.931575,356754e-10,0,.0458738,.920102,397075e-10,0,.059772,.908002,384886e-10,0,.075645,.897269,43027e-9,0,.0934929,.884559,479925e-10,0,.113302,.869161,48246e-9,0,.135045,.853342,509505e-10,0,.158678,.837633,542846e-10,0,.184136,.820252,554139e-10,0,.211325,.801872,581412e-10,0,.240113,.782418,585535e-10,0,.270306,.7631,610923e-10,0,.301594,.742183,613678e-10,0,.333333,.721098,627275e-10,0,.365079,.699512,629413e-10,0,.396825,.677372,636351e-10,0,.428571,.655059,633555e-10,0,.460317,.632567,636513e-10,0,.492064,.609784,628965e-10,0,.52381,.587237,625546e-10,0,.555556,.564525,615825e-10,0,.587302,.542181,605048e-10,0,.619048,.520017,596329e-10,0,.650794,.498204,581516e-10,0,.68254,.476742,569186e-10,0,.714286,.455803,553833e-10,0,.746032,.435251,537807e-10,0,.777778,.415374,522025e-10,0,.809524,.395921,503421e-10,0,.84127,.377253,488211e-10,0,.873016,.359021,468234e-10,0,.904762,.341637,453269e-10,0,.936508,.3247,433014e-10,0,.968254,.308625,418007e-10,0,1,1,286798e-15,0,0,1,286877e-15,0,0,1,288094e-15,0,0,1,293506e-15,0,0,1,309262e-15,0,0,.999999,348593e-15,0,0,.999999,444582e-15,0,0,.999998,688591e-15,0,0,.999996,134391e-14,0,0,.999993,317438e-14,0,0,.999989,835609e-14,0,0,.999983,228677e-13,0,0,.999974,623361e-13,0,0,.999959,165225e-12,0,0,.999936,419983e-12,0,0,.999896,101546e-11,0,0,.99983,232376e-11,0,0,.999709,50156e-10,0,0,.999469,10167e-9,0,0,.998886,190775e-10,0,0,.996819,300511e-10,0,0,.988837,185092e-10,0,168222e-12,.982178,134622e-10,0,259622e-9,.975017,125961e-10,0,.00142595,.967101,13507e-9,0,.00382273,.964905,205003e-10,0,.00764164,.96218,29546e-9,0,.0130121,.956821,343738e-10,0,.0200253,.948829,305063e-10,0,.0287452,.941092,346487e-10,0,.039218,.931883,412061e-10,0,.0514748,.920211,444651e-10,0,.0655351,.907307,431252e-10,0,.0814082,.89684,490382e-10,0,.0990939,.884119,53334e-9,0,.118583,.869148,54114e-9,0,.139856,.853377,578536e-10,0,.162882,.836753,592285e-10,0,.187615,.820063,622787e-10,0,.213991,.801694,645492e-10,0,.241918,.782116,65353e-9,0,.271267,.762673,674344e-10,0,.301847,.742133,682788e-10,0,.333333,.720779,691959e-10,0,.365079,.699386,696817e-10,0,.396826,.67732,699583e-10,0,.428572,.654888,698447e-10,0,.460318,.632499,694063e-10,0,.492064,.609825,691612e-10,0,.52381,.587287,681576e-10,0,.555556,.564743,674138e-10,0,.587302,.542409,661617e-10,0,.619048,.520282,647785e-10,0,.650794,.498506,633836e-10,0,.68254,.477102,615905e-10,0,.714286,.456167,601013e-10,0,.746032,.435728,581457e-10,0,.777778,.415809,564215e-10,0,.809524,.396517,544997e-10,0,.84127,.377737,525061e-10,0,.873016,.359698,506831e-10,0,.904762,.342164,48568e-9,0,.936508,.325417,467826e-10,0,.968254,.309186,446736e-10,0,1,1,109018e-14,0,0,1,10904e-13,0,0,1,109393e-14,0,0,1,11095e-13,0,0,1,1154e-12,0,0,1,126089e-14,0,0,.999999,15059e-13,0,0,.999997,207899e-14,0,0,.999994,348164e-14,0,0,.999993,705728e-14,0,0,.999987,163692e-13,0,0,.999981,406033e-13,0,0,.999969,10245e-11,0,0,.999953,255023e-12,0,0,.999925,61511e-11,0,0,.999881,142218e-11,0,0,.99981,313086e-11,0,0,.99968,653119e-11,0,0,.999418,12832e-9,0,0,.998748,232497e-10,0,0,.996066,329522e-10,0,0,.988379,179613e-10,0,108799e-9,.982567,143715e-10,0,921302e-9,.976097,148096e-10,0,.00280738,.968475,178905e-10,0,.00596622,.964606,253921e-10,0,.0105284,.961564,348623e-10,0,.0165848,.955517,357612e-10,0,.0242,.948381,343493e-10,0,.03342,.941095,405849e-10,0,.0442777,.931923,475394e-10,0,.0567958,.91996,484328e-10,0,.0709879,.907419,502146e-10,0,.086861,.89618,561654e-10,0,.104415,.88337,587612e-10,0,.123643,.869046,618057e-10,0,.144531,.853278,657392e-10,0,.167057,.836091,66303e-9,0,.191188,.819644,704445e-10,0,.216878,.801246,714071e-10,0,.244062,.782031,740093e-10,0,.272649,.762066,74685e-9,0,.302509,.741964,766647e-10,0,.333442,.720554,766328e-10,0,.365079,.699098,777857e-10,0,.396826,.677189,774633e-10,0,.428572,.65484,776235e-10,0,.460318,.632496,770316e-10,0,.492064,.609908,762669e-10,0,.52381,.587312,753972e-10,0,.555556,.564938,739994e-10,0,.587302,.542577,728382e-10,0,.619048,.52062,71112e-9,0,.650794,.498819,694004e-10,0,.68254,.477555,675575e-10,0,.714286,.456568,653449e-10,0,.746032,.436278,636068e-10,0,.777778,.41637,613466e-10,0,.809524,.397144,594177e-10,0,.84127,.378412,570987e-10,0,.873016,.360376,550419e-10,0,.904762,.342906,527422e-10,0,.936508,.326136,506544e-10,0,.968254,.30997,484307e-10,0,1,1,354014e-14,0,0,1,354073e-14,0,0,1,354972e-14,0,0,1,358929e-14,0,0,1,370093e-14,0,0,.999999,396194e-14,0,0,.999998,453352e-14,0,0,.999997,578828e-14,0,0,.999994,863812e-14,0,0,.999991,153622e-13,0,0,.999985,316356e-13,0,0,.999977,712781e-13,0,0,.999964,166725e-12,0,0,.999945,390501e-12,0,0,.999912,895622e-12,0,0,.999866,198428e-11,0,0,.999786,421038e-11,0,0,.999647,850239e-11,0,0,.999356,162059e-10,0,0,.998563,282652e-10,0,0,.994928,336309e-10,0,244244e-10,.987999,178458e-10,0,523891e-9,.982893,159162e-10,0,.00194729,.977044,178056e-10,0,.00451099,.969972,230624e-10,0,.00835132,.964237,313922e-10,0,.013561,.960791,406145e-10,0,.0202056,.954292,372796e-10,0,.0283321,.948052,403199e-10,0,.0379739,.940938,479537e-10,0,.0491551,.931689,545292e-10,0,.0618918,.91987,54038e-9,0,.0761941,.907665,589909e-10,0,.0920672,.895281,642651e-10,0,.109511,.882621,659707e-10,0,.12852,.86873,709973e-10,0,.149085,.853008,742221e-10,0,.171189,.835944,761754e-10,0,.194809,.818949,797052e-10,0,.21991,.800951,812434e-10,0,.246447,.781847,838075e-10,0,.274352,.761649,84501e-9,0,.303535,.74152,860258e-10,0,.333857,.720495,866233e-10,0,.365104,.698742,868326e-10,0,.396826,.677096,87133e-9,0,.428572,.654782,863497e-10,0,.460318,.632335,860206e-10,0,.492064,.610031,849337e-10,0,.52381,.587457,838279e-10,0,.555556,.56513,82309e-9,0,.587302,.542877,803542e-10,0,.619048,.5209,786928e-10,0,.650794,.499291,765171e-10,0,.68254,.477971,744753e-10,0,.714286,.457221,72209e-9,0,.746032,.436803,697448e-10,0,.777778,.417083,675333e-10,0,.809524,.397749,648058e-10,0,.84127,.379177,625759e-10,0,.873016,.361061,598584e-10,0,.904762,.343713,575797e-10,0,.936508,.326894,549999e-10,0,.968254,.310816,527482e-10,0,1,1,10153e-12,0,0,1,101544e-13,0,0,1,101751e-13,0,0,1,102662e-13,0,0,1,10521e-12,0,0,.999999,111049e-13,0,0,.999999,123408e-13,0,0,.999996,14924e-12,0,0,.999992,204471e-13,0,0,.999989,326539e-13,0,0,.99998,603559e-13,0,0,.999971,123936e-12,0,0,.999955,269058e-12,0,0,.999933,593604e-12,0,0,.999901,129633e-11,0,0,.999847,275621e-11,0,0,.999761,564494e-11,0,0,.999607,110485e-10,0,0,.999282,204388e-10,0,0,.99831,341084e-10,0,22038e-11,.993288,294949e-10,0,242388e-9,.987855,192736e-10,0,.0012503,.983167,182383e-10,0,.0032745,.977908,218633e-10,0,.00646321,.971194,290662e-10,0,.0109133,.963867,386401e-10,0,.0166927,.95982,462827e-10,0,.0238494,.953497,420705e-10,0,.0324178,.947621,477743e-10,0,.0424225,.940611,568258e-10,0,.0538808,.931174,618061e-10,0,.0668047,.919919,627098e-10,0,.0812014,.907856,694714e-10,0,.0970745,.894509,735008e-10,0,.114424,.881954,763369e-10,0,.133246,.868309,821896e-10,0,.153534,.852511,83769e-9,0,.175275,.835821,881615e-10,0,.198453,.817981,896368e-10,0,.223042,.800504,930906e-10,0,.249009,.78141,945056e-10,0,.276304,.761427,963605e-10,0,.304862,.74094,968088e-10,0,.334584,.720233,981481e-10,0,.365322,.698592,979122e-10,0,.396826,.676763,981057e-10,0,.428571,.654808,973956e-10,0,.460318,.632326,962619e-10,0,.492064,.610049,952996e-10,0,.52381,.58763,933334e-10,0,.555556,.565261,917573e-10,0,.587302,.543244,896636e-10,0,.619048,.521273,873304e-10,0,.650794,.499818,852648e-10,0,.68254,.478536,823961e-10,0,.714286,.457826,79939e-9,0,.746032,.437549,77126e-9,0,.777778,.41776,743043e-10,0,.809524,.39863,716426e-10,0,.84127,.379954,686456e-10,0,.873016,.362025,660514e-10,0,.904762,.344581,630755e-10,0,.936508,.327909,605439e-10,0,.968254,.311736,576345e-10,0,1,1,263344e-13,0,0,1,263373e-13,0,0,1,263815e-13,0,0,1,265753e-13,0,0,1,271132e-13,0,0,.999999,283279e-13,0,0,.999997,30833e-12,0,0,.999995,358711e-13,0,0,.999992,461266e-13,0,0,.999985,67574e-12,0,0,.999977,11358e-11,0,0,.999966,213657e-12,0,0,.999948,431151e-12,0,0,.999923,896656e-12,0,0,.999884,186603e-11,0,0,.999826,381115e-11,0,0,.999732,754184e-11,0,0,.999561,143192e-10,0,0,.999191,257061e-10,0,0,.997955,405724e-10,0,744132e-10,.992228,276537e-10,0,716477e-9,.987638,208885e-10,0,.0022524,.983395,215226e-10,0,.00484816,.978614,270795e-10,0,.00860962,.972389,365282e-10,0,.0136083,.964392,474747e-10,0,.0198941,.95861,509141e-10,0,.0275023,.952806,48963e-9,0,.0364584,.94712,571119e-10,0,.04678,.940104,671704e-10,0,.0584799,.930398,687586e-10,0,.0715665,.919866,738161e-10,0,.086045,.907853,813235e-10,0,.101918,.894078,834582e-10,0,.119186,.881177,892093e-10,0,.137845,.867575,944548e-10,0,.157891,.852107,969607e-10,0,.179316,.835502,101456e-9,0,.202106,.81756,103256e-9,0,.226243,.79984,106954e-9,0,.251704,.780998,108066e-9,0,.278451,.761132,110111e-9,0,.306436,.740429,110459e-9,0,.335586,.719836,111219e-9,0,.365796,.698467,11145e-8,0,.3969,.676446,110393e-9,0,.428571,.654635,110035e-9,0,.460318,.632411,108548e-9,0,.492064,.609986,106963e-9,0,.52381,.587872,105238e-9,0,.555556,.565528,102665e-9,0,.587302,.543563,100543e-9,0,.619048,.52176,976182e-10,0,.650794,.500188,947099e-10,0,.68254,.479204,919929e-10,0,.714286,.458413,886139e-10,0,.746032,.438314,857839e-10,0,.777778,.418573,82411e-9,0,.809524,.39947,792211e-10,0,.84127,.380892,759546e-10,0,.873016,.362953,727571e-10,0,.904762,.345601,695738e-10,0,.936508,.328895,664907e-10,0,.968254,.312808,634277e-10,0,1,1,628647e-13,0,0,1,628705e-13,0,0,1,629587e-13,0,0,1,633441e-13,0,0,.999999,644087e-13,0,0,.999998,667856e-13,0,0,.999997,715889e-13,0,0,.999995,809577e-13,0,0,.999989,992764e-13,0,0,.999983,135834e-12,0,0,.999974,210482e-12,0,0,.999959,365215e-12,0,0,.999939,686693e-12,0,0,.999911,13472e-10,0,0,.999868,26731e-10,0,0,.999804,524756e-11,0,0,.9997,100403e-10,0,0,.99951,185019e-10,0,0,.999078,322036e-10,0,620676e-11,.997428,470002e-10,0,341552e-9,.99162,287123e-10,0,.00143727,.987479,234706e-10,0,.00349201,.983582,260083e-10,0,.0066242,.979186,337927e-10,0,.0109113,.97325,454689e-10,0,.0164064,.965221,573759e-10,0,.0231463,.957262,544114e-10,0,.0311571,.952211,587006e-10,0,.0404572,.946631,692256e-10,0,.0510592,.939391,787819e-10,0,.0629723,.929795,792368e-10,0,.0762025,.91965,875075e-10,0,.090753,.907737,950903e-10,0,.106626,.893899,972963e-10,0,.123822,.880239,10459e-8,0,.142337,.866562,107689e-9,0,.16217,.85164,113081e-9,0,.183314,.835021,116636e-9,0,.20576,.817311,120074e-9,0,.229496,.798845,121921e-9,0,.254502,.780479,12475e-8,0,.280753,.760694,125255e-9,0,.308212,.740142,126719e-9,0,.336825,.719248,12636e-8,0,.366517,.698209,126712e-9,0,.397167,.676398,125769e-9,0,.428578,.654378,124432e-9,0,.460318,.632484,123272e-9,0,.492064,.610113,12085e-8,0,.52381,.587931,118411e-9,0,.555556,.565872,11569e-8,0,.587302,.543814,112521e-9,0,.619048,.522265,109737e-9,0,.650794,.500835,106228e-9,0,.68254,.479818,102591e-9,0,.714286,.459258,991288e-10,0,.746032,.439061,952325e-10,0,.777778,.419552,91895e-9,0,.809524,.400399,879051e-10,0,.84127,.381976,844775e-10,0,.873016,.364009,806316e-10,0,.904762,.346761,771848e-10,0,.936508,.330049,735429e-10,0,.968254,.314018,702103e-10,0,1,1,139968e-12,0,0,1,139979e-12,0,0,1,140145e-12,0,0,1,14087e-11,0,0,.999999,142865e-12,0,0,.999998,147279e-12,0,0,.999997,156057e-12,0,0,.999992,17276e-11,0,0,.999989,204352e-12,0,0,.99998,26494e-11,0,0,.999969,383435e-12,0,0,.999953,618641e-12,0,0,.999929,108755e-11,0,0,.999898,201497e-11,0,0,.999849,381346e-11,0,0,.999778,719815e-11,0,0,.999661,133215e-10,0,0,.999451,238313e-10,0,0,.998936,401343e-10,0,113724e-9,.99662,517346e-10,0,820171e-9,.991094,304323e-10,0,.00238143,.987487,281757e-10,0,.00493527,.983731,320048e-10,0,.00856859,.979647,423905e-10,0,.0133393,.973837,562935e-10,0,.0192863,.96584,677442e-10,0,.0264369,.956309,623073e-10,0,.03481,.951523,704131e-10,0,.0444184,.946003,836594e-10,0,.0552713,.938454,911736e-10,0,.0673749,.929279,938264e-10,0,.0807329,.919239,103754e-9,0,.0953479,.907293,109928e-9,0,.111221,.893936,115257e-9,0,.128352,.879674,122265e-9,0,.14674,.865668,125733e-9,0,.166382,.850998,132305e-9,0,.187276,.834498,134844e-9,0,.209413,.816903,139276e-9,0,.232786,.798235,140984e-9,0,.257382,.779724,14378e-8,0,.283181,.760251,144623e-9,0,.310156,.739808,145228e-9,0,.338269,.718762,14539e-8,0,.367461,.697815,144432e-9,0,.397646,.67631,143893e-9,0,.428685,.654278,141846e-9,0,.460318,.632347,13935e-8,0,.492064,.610296,137138e-9,0,.52381,.588039,133806e-9,0,.555556,.566218,130755e-9,0,.587302,.544346,127128e-9,0,.619048,.522701,123002e-9,0,.650794,.501542,119443e-9,0,.68254,.480508,115055e-9,0,.714286,.460092,111032e-9,0,.746032,.440021,106635e-9,0,.777778,.420446,102162e-9,0,.809524,.401512,98184e-9,0,.84127,.38299,936497e-10,0,.873016,.365232,89813e-9,0,.904762,.347865,853073e-10,0,.936508,.331342,817068e-10,0,.968254,.315202,773818e-10,0,1,1,29368e-11,0,0,1,2937e-10,0,0,1,293998e-12,0,0,1,295298e-12,0,0,.999999,298865e-12,0,0,.999998,3067e-10,0,0,.999995,322082e-12,0,0,.999992,350767e-12,0,0,.999986,403538e-12,0,0,.999976,501372e-12,0,0,.999964,68562e-11,0,0,.999945,10374e-10,0,0,.999919,171269e-11,0,0,.999882,300175e-11,0,0,.999829,542144e-11,0,0,.999749,984182e-11,0,0,.99962,176213e-10,0,0,.999382,305995e-10,0,138418e-10,.998751,496686e-10,0,389844e-9,.995344,510733e-10,0,.00150343,.990768,345829e-10,0,.00352451,.987464,342841e-10,0,.00655379,.983846,399072e-10,0,.0106554,.980007,533219e-10,0,.0158723,.974494,696992e-10,0,.0222333,.96622,776754e-10,0,.029758,.956273,747718e-10,0,.0384596,.950952,864611e-10,0,.0483473,.945215,100464e-9,0,.0594266,.937287,103729e-9,0,.0717019,.928649,111665e-9,0,.0851752,.918791,12353e-8,0,.0998479,.906685,127115e-9,0,.115721,.893706,13628e-8,0,.132794,.879248,142427e-9,0,.151067,.864685,148091e-9,0,.170538,.850032,153517e-9,0,.191204,.833853,157322e-9,0,.213063,.816353,161086e-9,0,.236107,.797834,164111e-9,0,.260329,.778831,165446e-9,0,.285714,.759756,167492e-9,0,.312243,.739419,166928e-9,0,.339887,.718491,167e-6,0,.368604,.697392,165674e-9,0,.398329,.676102,163815e-9,0,.428961,.654243,162003e-9,0,.460331,.632176,158831e-9,0,.492064,.610407,155463e-9,0,.52381,.588394,152062e-9,0,.555556,.56645,147665e-9,0,.587302,.5449,14375e-8,0,.619048,.523276,138905e-9,0,.650794,.502179,134189e-9,0,.68254,.481359,129392e-9,0,.714286,.46092,124556e-9,0,.746032,.441084,11957e-8,0,.777778,.421517,114652e-9,0,.809524,.402721,109688e-9,0,.84127,.384222,104667e-9,0,.873016,.366534,999633e-10,0,.904762,.349205,950177e-10,0,.936508,.332702,907301e-10,0,.968254,.316599,859769e-10,0,1,1,585473e-12,0,0,1,585507e-12,0,0,1,58602e-11,0,0,.999999,588259e-12,0,0,.999999,594381e-12,0,0,.999998,607754e-12,0,0,.999995,633729e-12,0,0,.99999,68137e-11,0,0,.999984,767003e-12,0,0,.999973,921212e-12,0,0,.999959,120218e-11,0,0,.999936,172024e-11,0,0,.999907,268088e-11,0,0,.999866,445512e-11,0,0,.999806,768481e-11,0,0,.999716,1342e-8,0,0,.999576,232473e-10,0,0,.9993,391694e-10,0,129917e-9,.998498,608429e-10,0,845035e-9,.994132,489743e-10,0,.00237616,.99031,384644e-10,0,.00484456,.987409,421768e-10,0,.00832472,.983981,504854e-10,0,.0128643,.980268,671028e-10,0,.0184947,.974875,852749e-10,0,.025237,.966063,85531e-9,0,.0331046,.956779,900588e-10,0,.0421067,.950259,10577e-8,0,.0522487,.944239,119458e-9,0,.0635343,.936341,122164e-9,0,.0759654,.928047,134929e-9,0,.0895434,.918065,145544e-9,0,.104269,.906267,150531e-9,0,.120142,.893419,161652e-9,0,.137163,.878758,16593e-8,0,.15533,.863699,174014e-9,0,.174645,.848876,177877e-9,0,.195106,.833032,184049e-9,0,.21671,.815557,186088e-9,0,.239454,.797323,19054e-8,0,.263332,.778124,191765e-9,0,.288336,.758929,192535e-9,0,.314451,.738979,192688e-9,0,.341658,.718213,191522e-9,0,.369924,.696947,190491e-9,0,.399202,.675807,187913e-9,0,.429416,.654147,184451e-9,0,.460447,.63229,181442e-9,0,.492064,.610499,177139e-9,0,.523809,.588747,172596e-9,0,.555555,.566783,167457e-9,0,.587301,.545359,162518e-9,0,.619048,.523984,156818e-9,0,.650794,.502917,151884e-9,0,.68254,.482294,145514e-9,0,.714286,.461945,140199e-9,0,.746032,.442133,134101e-9,0,.777778,.422705,128374e-9,0,.809524,.403916,122996e-9,0,.84127,.38554,116808e-9,0,.873016,.367909,111973e-9,0,.904762,.350651,105938e-9,0,.936508,.334208,101355e-9,0,.968254,.318123,957629e-10,0,1,1,111633e-11,0,0,1,111639e-11,0,0,1,111725e-11,0,0,1,112096e-11,0,0,.999999,11311e-10,0,0,.999997,115315e-11,0,0,.999995,11956e-10,0,0,.999989,127239e-11,0,0,.999981,140772e-11,0,0,.999969,164541e-11,0,0,.999952,206607e-11,0,0,.999928,281783e-11,0,0,.999895,416835e-11,0,0,.999848,658728e-11,0,0,.999781,108648e-10,0,0,.999682,182579e-10,0,0,.999523,306003e-10,0,159122e-10,.999205,499862e-10,0,391184e-9,.998131,73306e-9,0,.00147534,.993334,513229e-10,0,.0034227,.99016,467783e-10,0,.00632232,.987321,523413e-10,0,.0102295,.984099,64267e-9,0,.0151794,.980432,843042e-10,0,.0211947,.974976,102819e-9,0,.0282899,.966429,996234e-10,0,.0364739,.957633,111074e-9,0,.0457522,.949422,128644e-9,0,.0561278,.943045,140076e-9,0,.0676023,.935448,146349e-9,0,.0801762,.927225,161854e-9,0,.0938499,.917033,169135e-9,0,.108623,.905762,179987e-9,0,.124496,.892879,189832e-9,0,.141469,.878435,195881e-9,0,.159541,.863114,20466e-8,0,.178713,.84776,209473e-9,0,.198985,.832084,214861e-9,0,.220355,.814915,217695e-9,0,.242823,.796711,220313e-9,0,.266385,.777603,22313e-8,0,.291036,.757991,222471e-9,0,.316767,.738371,222869e-9,0,.343563,.717872,221243e-9,0,.371402,.696619,218089e-9,0,.400248,.675379,21562e-8,0,.430047,.65411,21169e-8,0,.460709,.63241,206947e-9,0,.492079,.61046,201709e-9,0,.52381,.58903,196753e-9,0,.555556,.567267,189637e-9,0,.587302,.545886,184735e-9,0,.619048,.524714,177257e-9,0,.650794,.503789,171424e-9,0,.68254,.483204,164688e-9,0,.714286,.462976,157172e-9,0,.746032,.443294,151341e-9,0,.777778,.423988,143737e-9,0,.809524,.405325,138098e-9,0,.84127,.386981,130698e-9,0,.873016,.369436,125276e-9,0,.904762,.35219,118349e-9,0,.936508,.335804,11312e-8,0,.968254,.319749,106687e-9,0,1,1,204685e-11,0,0,1,204694e-11,0,0,1,204831e-11,0,0,.999999,205428e-11,0,0,.999999,207056e-11,0,0,.999997,210581e-11,0,0,.999993,21732e-10,0,0,.999987,229365e-11,0,0,.999979,250243e-11,0,0,.999965,286127e-11,0,0,.999947,348028e-11,0,0,.999918,455588e-11,0,0,.999881,643303e-11,0,0,.999828,970064e-11,0,0,.999753,153233e-10,0,0,.999642,24793e-9,0,0,.999464,402032e-10,0,122947e-9,.999089,635852e-10,0,807414e-9,.997567,857026e-10,0,.00227206,.992903,594912e-10,0,.00462812,.990011,578515e-10,0,.00794162,.987192,65399e-9,0,.0122534,.98418,819675e-10,0,.0175888,.980491,105514e-9,0,.0239635,.974779,121532e-9,0,.031387,.96675,119144e-9,0,.0398644,.958248,136125e-9,0,.0493982,.948884,155408e-9,0,.0599896,.941673,162281e-9,0,.0716382,.934521,176754e-9,0,.0843437,.926205,192873e-9,0,.0981056,.916089,200038e-9,0,.112923,.904963,213624e-9,0,.128796,.892089,221834e-9,0,.145725,.878028,232619e-9,0,.163709,.86249,238632e-9,0,.182749,.846587,247002e-9,0,.202847,.830988,250702e-9,0,.224001,.814165,255562e-9,0,.246214,.796135,257505e-9,0,.269482,.777052,258625e-9,0,.293805,.757201,258398e-9,0,.319176,.737655,256714e-9,0,.345587,.717477,255187e-9,0,.373021,.696433,251792e-9,0,.401454,.675084,247223e-9,0,.430844,.653907,242213e-9,0,.461125,.632561,237397e-9,0,.492187,.610658,229313e-9,0,.52381,.589322,224402e-9,0,.555556,.567857,216116e-9,0,.587302,.54652,209124e-9,0,.619048,.525433,201601e-9,0,.650794,.504679,192957e-9,0,.68254,.484203,186052e-9,0,.714286,.464203,177672e-9,0,.746032,.444549,170005e-9,0,.777778,.425346,162401e-9,0,.809524,.406706,1544e-7,0,.84127,.388576,147437e-9,0,.873016,.37094,139493e-9,0,.904762,.353996,133219e-9,0,.936508,.337391,125573e-9,0,.968254,.321648,119867e-9,0,1,1,362511e-11,0,0,1,362525e-11,0,0,1,362739e-11,0,0,.999999,363673e-11,0,0,.999998,366214e-11,0,0,.999996,371698e-11,0,0,.999992,382116e-11,0,0,.999986,400554e-11,0,0,.999976,432058e-11,0,0,.999961,485194e-11,0,0,.999938,574808e-11,0,0,.999908,726643e-11,0,0,.999865,984707e-11,0,0,.999807,142217e-10,0,0,.999723,215581e-10,0,0,.999602,336114e-10,0,119113e-10,.999398,527353e-10,0,355813e-9,.998946,805809e-10,0,.00137768,.996647,942908e-10,0,.00322469,.992298,668733e-10,0,.00597897,.989802,716564e-10,0,.00968903,.987019,821355e-10,0,.0143845,.984219,104555e-9,0,.0200831,.980425,131245e-9,0,.0267948,.974241,139613e-9,0,.034525,.967006,145931e-9,0,.0432757,.95893,167153e-9,0,.0530471,.949157,188146e-9,0,.0638386,.94062,194625e-9,0,.0756487,.933509,213721e-9,0,.0884762,.925088,229616e-9,0,.10232,.915178,239638e-9,0,.117178,.904093,254814e-9,0,.133051,.891337,263685e-9,0,.149939,.877326,274789e-9,0,.167841,.861794,280534e-9,0,.18676,.845758,289534e-9,0,.206696,.829792,294446e-9,0,.22765,.813037,296877e-9,0,.249625,.795285,300217e-9,0,.27262,.776323,299826e-9,0,.296636,.756673,299787e-9,0,.321671,.736856,297867e-9,0,.347718,.716883,294052e-9,0,.374768,.696089,289462e-9,0,.402804,.67505,285212e-9,0,.431796,.653509,27653e-8,0,.461695,.63258,271759e-9,0,.49242,.61104,262811e-9,0,.523822,.589567,255151e-9,0,.555556,.568322,246434e-9,0,.587302,.547235,237061e-9,0,.619048,.52616,228343e-9,0,.650794,.505716,219236e-9,0,.68254,.485274,209595e-9,0,.714286,.465411,201011e-9,0,.746032,.445854,19109e-8,0,.777778,.426911,182897e-9,0,.809524,.408222,173569e-9,0,.84127,.390307,165496e-9,0,.873016,.372624,156799e-9,0,.904762,.355804,14917e-8,0,.936508,.33924,140907e-9,0,.968254,.323534,134062e-9,0,1,1,622487e-11,0,0,1,62251e-10,0,0,1,622837e-11,0,0,.999999,624259e-11,0,0,.999998,628127e-11,0,0,.999996,636451e-11,0,0,.999991,65218e-10,0,0,.999984,679782e-11,0,0,.999973,726361e-11,0,0,.999955,803644e-11,0,0,.999931,931397e-11,0,0,.999896,114299e-10,0,0,.999847,149402e-10,0,0,.999784,207461e-10,0,0,.999692,302493e-10,0,0,.999554,454957e-10,0,997275e-10,.999326,690762e-10,0,724813e-9,.998757,101605e-9,0,.0020972,.995367,958745e-10,0,.00432324,.99209,832808e-10,0,.00746347,.989517,887601e-10,0,.0115534,.987008,10564e-8,0,.0166134,.98421,133179e-9,0,.0226552,.98021,161746e-9,0,.0296838,.973676,161821e-9,0,.0377016,.967052,178635e-9,0,.0467079,.959385,206765e-9,0,.0567013,.949461,22476e-8,0,.0676796,.939578,23574e-8,0,.0796403,.932416,25893e-8,0,.0925812,.923759,271228e-9,0,.106501,.914223,289165e-9,0,.121397,.902942,301156e-9,0,.13727,.890419,313852e-9,0,.15412,.876639,324408e-9,0,.171946,.861316,33249e-8,0,.190751,.84496,338497e-9,0,.210537,.828427,345861e-9,0,.231305,.811871,347863e-9,0,.253057,.794397,350225e-9,0,.275797,.775726,349915e-9,0,.299525,.75617,347297e-9,0,.324242,.736091,344232e-9,0,.349947,.716213,340835e-9,0,.376633,.695736,332369e-9,0,.404289,.674961,327943e-9,0,.432895,.653518,318533e-9,0,.462415,.632574,310391e-9,0,.492788,.61134,300755e-9,0,.523909,.590017,290506e-9,0,.555556,.568752,280446e-9,0,.587302,.548061,269902e-9,0,.619048,.52711,258815e-9,0,.650794,.506682,248481e-9,0,.68254,.486524,237141e-9,0,.714286,.466812,226872e-9,0,.746032,.44732,216037e-9,0,.777778,.428473,205629e-9,0,.809524,.409921,195691e-9,0,.84127,.392028,185457e-9,0,.873016,.374606,176436e-9,0,.904762,.357601,166508e-9,0,.936508,.341348,158385e-9,0,.968254,.32542,149203e-9,0,1,1,103967e-10,0,0,1,10397e-9,0,0,1,104019e-10,0,0,.999999,104231e-10,0,0,.999998,104806e-10,0,0,.999995,106042e-10,0,0,.999991,108366e-10,0,0,.999982,112415e-10,0,0,.999968,119174e-10,0,0,.99995,130227e-10,0,0,.999922,148176e-10,0,0,.999884,177303e-10,0,0,.99983,224564e-10,0,0,.999758,300966e-10,0,0,.999654,423193e-10,0,549083e-11,.999503,614848e-10,0,296087e-9,.999237,903576e-10,0,.00123144,.998491,1271e-7,0,.00295954,.994594,107754e-9,0,.00555829,.99178,103025e-9,0,.00907209,.989265,11154e-8,0,.0135257,.986998,136296e-9,0,.0189327,.984137,169154e-9,0,.0252993,.979798,196671e-9,0,.0326272,.97337,196678e-9,0,.0409157,.967239,223121e-9,0,.0501623,.959543,253809e-9,0,.0603638,.949466,265972e-9,0,.0715171,.939074,288372e-9,0,.0836187,.931118,310983e-9,0,.0966657,.922525,325561e-9,0,.110656,.912983,345725e-9,0,.125588,.901617,3556e-7,0,.141461,.889487,374012e-9,0,.158275,.875787,383445e-9,0,.176031,.860654,393972e-9,0,.19473,.844417,400311e-9,0,.214374,.82741,405004e-9,0,.234967,.810545,407378e-9,0,.256512,.793312,407351e-9,0,.279011,.774847,406563e-9,0,.302468,.755621,404903e-9,0,.326887,.735511,397486e-9,0,.352266,.715435,39357e-8,0,.378605,.695403,384739e-9,0,.405897,.674681,376108e-9,0,.43413,.65359,365997e-9,0,.463277,.632471,354957e-9,0,.493295,.61151,343593e-9,0,.524106,.59064,331841e-9,0,.555561,.569386,318891e-9,0,.587302,.548785,3072e-7,0,.619048,.528146,29361e-8,0,.650794,.507872,281709e-9,0,.68254,.487805,268627e-9,0,.714286,.468196,255887e-9,0,.746032,.448922,243997e-9,0,.777778,.430093,231662e-9,0,.809524,.411845,220339e-9,0,.84127,.393808,208694e-9,0,.873016,.376615,198045e-9,0,.904762,.359655,187375e-9,0,.936508,.343452,177371e-9,0,.968254,.32765,167525e-9,0,1,1,169351e-10,0,0,1,169356e-10,0,0,1,169427e-10,0,0,.999999,169736e-10,0,0,.999998,170575e-10,0,0,.999995,172372e-10,0,0,.99999,175739e-10,0,0,.999979,181568e-10,0,0,.999966,191206e-10,0,0,.999944,20677e-9,0,0,.999912,231644e-10,0,0,.999869,271268e-10,0,0,.999811,334272e-10,0,0,.99973,433979e-10,0,0,.999617,590083e-10,0,680315e-10,.999445,829497e-10,0,612796e-9,.999138,118019e-9,0,.00187408,.998095,156712e-9,0,.00395791,.993919,125054e-9,0,.00692144,.991333,126091e-9,0,.0107962,.989226,144912e-9,0,.0155986,.986954,175737e-9,0,.0213364,.983982,213883e-9,0,.0280114,.979128,234526e-9,0,.0356226,.973327,243725e-9,0,.0441668,.967416,2773e-7,0,.0536399,.959729,308799e-9,0,.0640376,.949758,322447e-9,0,.0753554,.939173,350021e-9,0,.0875893,.9296,370089e-9,0,.100736,.921181,391365e-9,0,.114793,.91164,413636e-9,0,.129759,.900435,427068e-9,0,.145632,.888183,441046e-9,0,.162412,.874772,454968e-9,0,.180101,.859566,461882e-9,0,.1987,.843579,471556e-9,0,.218213,.826453,474335e-9,0,.238641,.809164,477078e-9,0,.259989,.792179,47755e-8,0,.282262,.773866,472573e-9,0,.305464,.754944,469765e-9,0,.329599,.735133,462371e-9,0,.35467,.714858,453674e-9,0,.380678,.694829,443888e-9,0,.407622,.674453,432052e-9,0,.435493,.653685,420315e-9,0,.464275,.632666,406829e-9,0,.493938,.611676,392234e-9,0,.524422,.591193,379208e-9,0,.555624,.570145,36319e-8,0,.587302,.549566,349111e-9,0,.619048,.529278,334166e-9,0,.650794,.509026,318456e-9,0,.68254,.489186,30449e-8,0,.714286,.469662,289051e-9,0,.746032,.450691,275494e-9,0,.777778,.431841,261437e-9,0,.809524,.413752,247846e-9,0,.84127,.395951,235085e-9,0,.873016,.378633,222245e-9,0,.904762,.36194,210533e-9,0,.936508,.345599,198494e-9,0,.968254,.329999,188133e-9,0,1,1,269663e-10,0,0,1,26967e-9,0,0,1,269772e-10,0,0,.999999,270214e-10,0,0,.999998,271415e-10,0,0,.999994,27398e-9,0,0,.999988,278771e-10,0,0,.999977,287019e-10,0,0,.999961,300544e-10,0,0,.999937,322138e-10,0,0,.999904,356163e-10,0,0,.999854,409465e-10,0,0,.99979,492651e-10,0,0,.999699,621722e-10,0,88288e-11,.999572,819715e-10,0,223369e-9,.999381,111689e-9,0,.00105414,.999016,153862e-9,0,.0026493,.997437,187667e-9,0,.00508608,.993545,155672e-9,0,.00840554,.991135,161455e-9,0,.012629,.989157,188241e-9,0,.0177661,.986874,226229e-9,0,.0238198,.983714,268668e-9,0,.0307887,.978301,277109e-9,0,.0386688,.973227,303446e-9,0,.0474554,.967317,341851e-9,0,.0571428,.959477,370885e-9,0,.0677256,.950012,392753e-9,0,.0791988,.939484,42781e-8,0,.0915576,.928135,443866e-9,0,.104798,.919819,472959e-9,0,.118918,.910049,491551e-9,0,.133915,.899181,512616e-9,0,.149788,.886881,523563e-9,0,.166537,.87359,540183e-9,0,.184164,.858613,547386e-9,0,.202669,.842809,554809e-9,0,.222056,.825727,558316e-9,0,.242329,.808086,557824e-9,0,.263492,.790728,556346e-9,0,.285551,.772987,552672e-9,0,.30851,.7541,543738e-9,0,.332376,.734669,536107e-9,0,.357153,.714411,523342e-9,0,.382845,.694196,512238e-9,0,.409454,.674252,497465e-9,0,.436977,.65357,481096e-9,0,.465404,.632999,467054e-9,0,.494713,.611994,448771e-9,0,.524864,.591604,431889e-9,0,.555779,.571134,415238e-9,0,.587302,.550528,396369e-9,0,.619048,.530292,379477e-9,0,.650794,.510364,361488e-9,0,.68254,.490749,343787e-9,0,.714286,.471266,327822e-9,0,.746032,.452462,310626e-9,0,.777778,.433907,295352e-9,0,.809524,.415659,279179e-9,0,.84127,.398138,264685e-9,0,.873016,.380833,249905e-9,0,.904762,.364247,236282e-9,0,.936508,.348041,222905e-9,0,.968254,.332389,210522e-9,0,1,1,420604e-10,0,0,1,420614e-10,0,0,1,420757e-10,0,0,.999999,42138e-9,0,0,.999997,423067e-10,0,0,.999993,426668e-10,0,0,.999986,433372e-10,0,0,.999974,444857e-10,0,0,.999956,463554e-10,0,0,.99993,493105e-10,0,0,.999892,539077e-10,0,0,.999838,610005e-10,0,0,.999767,718822e-10,0,0,.999666,884581e-10,0,365471e-10,.999525,113398e-9,0,485623e-9,.999311,150043e-9,0,.00162096,.998865,200063e-9,0,.00355319,.996278,211014e-9,0,.00633818,.992956,189672e-9,0,.0100043,.991017,210262e-9,0,.0145648,.989055,244292e-9,0,.0200237,.986741,290481e-9,0,.0263798,.983288,334303e-9,0,.033629,.977784,340307e-9,0,.0417652,.973037,377864e-9,0,.0507821,.967181,4239e-7,0,.060673,.958971,443854e-9,0,.0714314,.950093,483039e-9,0,.0830518,.939552,517934e-9,0,.0955288,.927678,539449e-9,0,.108859,.918278,568604e-9,0,.123038,.908449,588505e-9,0,.138065,.897713,612473e-9,0,.153938,.885533,625575e-9,0,.170657,.872131,63854e-8,0,.188224,.857517,647034e-9,0,.20664,.841796,65209e-8,0,.225909,.824726,6544e-7,0,.246035,.807297,655744e-9,0,.267022,.789058,646716e-9,0,.288878,.77189,643898e-9,0,.311607,.753082,629973e-9,0,.335216,.7341,621564e-9,0,.359713,.714094,605171e-9,0,.385103,.693839,588752e-9,0,.41139,.673891,573294e-9,0,.438576,.653565,552682e-9,0,.466656,.633326,533446e-9,0,.495617,.612582,514635e-9,0,.525431,.59205,49303e-8,0,.556041,.571918,471842e-9,0,.587338,.551572,451713e-9,0,.619048,.531553,430049e-9,0,.650794,.51175,410445e-9,0,.68254,.49238,390098e-9,0,.714286,.473143,370033e-9,0,.746032,.45423,351205e-9,0,.777778,.435963,332049e-9,0,.809524,.41787,315021e-9,0,.84127,.400387,297315e-9,0,.873016,.383332,281385e-9,0,.904762,.366665,265397e-9,0,.936508,.350633,250601e-9,0,.968254,.334964,23589e-8,0,1,1,643736e-10,0,0,1,64375e-9,0,0,1,643947e-10,0,0,.999999,64481e-9,0,0,.999997,647143e-10,0,0,.999994,652119e-10,0,0,.999985,661359e-10,0,0,.999972,677116e-10,0,0,.999952,702599e-10,0,0,.999922,742517e-10,0,0,.99988,803906e-10,0,0,.99982,897315e-10,0,0,.999741,103838e-9,0,0,.999629,12496e-8,0,149024e-9,.999474,156161e-9,0,861027e-9,.999229,201034e-9,0,.00231198,.998662,259069e-9,0,.00458147,.995299,245439e-9,0,.00770895,.992732,24498e-8,0,.0117126,.990847,273211e-9,0,.0165989,.988911,316492e-9,0,.0223674,.98654,37161e-8,0,.0290135,.982636,410352e-9,0,.0365309,.977346,421756e-9,0,.0449117,.972909,475578e-9,0,.0541481,.966821,522482e-9,0,.0642326,.958686,545008e-9,0,.075158,.949754,589286e-9,0,.0869181,.939184,619995e-9,0,.0995074,.927505,654266e-9,0,.112922,.916606,682362e-9,0,.127157,.906707,704286e-9,0,.142212,.895937,725909e-9,0,.158085,.883913,743939e-9,0,.174776,.870642,755157e-9,0,.192287,.856241,764387e-9,0,.210619,.84069,771032e-9,0,.229775,.823728,765906e-9,0,.249761,.806481,767604e-9,0,.270582,.787924,754385e-9,0,.292243,.770588,749668e-9,0,.314753,.751991,731613e-9,0,.338118,.733407,717655e-9,0,.362347,.713688,700604e-9,0,.387447,.693595,678765e-9,0,.413424,.673426,657042e-9,0,.440284,.65359,635892e-9,0,.468027,.633576,611569e-9,0,.496645,.613144,586011e-9,0,.526122,.592711,563111e-9,0,.556417,.572722,537699e-9,0,.587451,.552762,512556e-9,0,.619048,.532985,489757e-9,0,.650794,.513219,464139e-9,0,.68254,.493992,442193e-9,0,.714286,.47509,418629e-9,0,.746032,.456287,397045e-9,0,.777778,.438152,375504e-9,0,.809524,.420294,35492e-8,0,.84127,.402749,335327e-9,0,.873016,.385879,316422e-9,0,.904762,.369352,298333e-9,0,.936508,.353301,281417e-9,0,.968254,.337781,265203e-9,0,1,1,968267e-10,0,0,1,968284e-10,0,0,1,968556e-10,0,0,.999999,969733e-10,0,0,.999997,972913e-10,0,0,.999993,979688e-10,0,0,.999984,992239e-10,0,0,.999969,101356e-9,0,0,.999946,104784e-9,0,0,.999913,110111e-9,0,0,.999868,118217e-9,0,0,.999801,130396e-9,0,0,.999712,148523e-9,0,124907e-10,.999589,175233e-9,0,355405e-9,.999416,213999e-9,0,.0013528,.999136,268529e-9,0,.00312557,.998367,333088e-9,0,.00573045,.994701,304757e-9,0,.00919397,.992497,318031e-9,0,.0135261,.990608,353863e-9,0,.0187278,.988715,409044e-9,0,.0247947,.986241,472967e-9,0,.0317196,.981696,495104e-9,0,.039494,.977097,532873e-9,0,.0481087,.972583,594447e-9,0,.0575549,.966142,636867e-9,0,.0678242,.95823,669899e-9,0,.0789089,.949677,719499e-9,0,.0908023,.939226,750584e-9,0,.103499,.927501,793183e-9,0,.116993,.915199,81995e-8,0,.131282,.90498,847654e-9,0,.146364,.894243,868929e-9,0,.162237,.882154,884278e-9,0,.178902,.869161,898108e-9,0,.196358,.854751,901254e-9,0,.21461,.839368,90679e-8,0,.23366,.822874,901541e-9,0,.253512,.805514,897297e-9,0,.274174,.78716,881856e-9,0,.29565,.769061,870032e-9,0,.31795,.751,851719e-9,0,.341081,.732614,830671e-9,0,.365053,.713171,806569e-9,0,.389874,.693472,78338e-8,0,.415553,.673528,756404e-9,0,.442098,.653397,726872e-9,0,.469512,.633781,700494e-9,0,.497794,.613877,67105e-8,0,.526935,.593506,640361e-9,0,.556908,.573667,613502e-9,0,.587657,.553932,583177e-9,0,.61906,.534345,554375e-9,0,.650794,.515042,527811e-9,0,.68254,.495674,499367e-9,0,.714286,.477132,47429e-8,0,.746032,.458609,447726e-9,0,.777778,.440354,424205e-9,0,.809524,.422765,399549e-9,0,.84127,.405472,378315e-9,0,.873016,.388482,355327e-9,0,.904762,.372191,336122e-9,0,.936508,.356099,315247e-9,0,.968254,.340737,29794e-8,0,1,1,143327e-9,0,0,1,14333e-8,0,0,1,143366e-9,0,0,.999999,143524e-9,0,0,.999996,143952e-9,0,0,.999991,144862e-9,0,0,.999981,146544e-9,0,0,.999966,149391e-9,0,0,.999941,153946e-9,0,0,.999905,160971e-9,0,0,.999852,171562e-9,0,0,.99978,18729e-8,0,0,.999681,210386e-9,0,826239e-10,.999546,243906e-9,0,664807e-9,.999352,291739e-9,0,.00196192,.999027,357419e-9,0,.00405941,.997886,422349e-9,0,.00699664,.99419,385008e-9,0,.0107896,.99214,409775e-9,0,.0154415,.990274,456418e-9,0,.0209488,.988455,527008e-9,0,.0273037,.985804,597685e-9,0,.0344969,.98103,613124e-9,0,.0425183,.976674,668321e-9,0,.0513575,.972021,736985e-9,0,.0610046,.965274,773789e-9,0,.0714508,.958046,830852e-9,0,.0826877,.949333,875766e-9,0,.0947085,.939135,917088e-9,0,.107507,.927119,952244e-9,0,.121078,.91469,990626e-9,0,.135419,.903006,.00101304,0,.150526,.892368,.00103834,0,.166399,.880231,.00105002,0,.183038,.867432,.00106331,0,.200443,.853208,.00106783,0,.218618,.837956,.00106458,0,.237566,.821772,.00105945,0,.257291,.804328,.00104685,0,.2778,.786465,.00103178,0,.2991,.768004,.00101077,0,.321199,.74972,985504e-9,0,.344106,.731682,962893e-9,0,.36783,.712813,932146e-9,0,.392383,.693139,89871e-8,0,.417774,.673566,869678e-9,0,.444013,.653483,835525e-9,0,.471107,.633891,799853e-9,0,.49906,.614433,766838e-9,0,.527869,.594586,732227e-9,0,.557517,.574769,696442e-9,0,.587966,.555149,663935e-9,0,.61913,.535898,629826e-9,0,.650794,.516753,596486e-9,0,.68254,.497816,567078e-9,0,.714286,.479034,534399e-9,0,.746032,.460975,507013e-9,0,.777778,.442935,477421e-9,0,.809524,.425263,451101e-9,0,.84127,.408248,424964e-9,0,.873016,.391339,39993e-8,0,.904762,.37513,377619e-9,0,.936508,.359172,354418e-9,0,.968254,.343876,334823e-9,0,1,1,209042e-9,0,0,1,209045e-9,0,0,1,209093e-9,0,0,.999999,209304e-9,0,0,.999996,209871e-9,0,0,.999991,211078e-9,0,0,.999979,213304e-9,0,0,.999963,217061e-9,0,0,.999933,223042e-9,0,0,.999894,232206e-9,0,0,.999837,245901e-9,0,0,.999756,266023e-9,0,102927e-11,.999648,295204e-9,0,233468e-9,.999499,336958e-9,0,.00108237,.999283,395563e-9,0,.00268832,.998896,473785e-9,0,.00511138,.997006,520008e-9,0,.00837705,.993819,497261e-9,0,.0124928,.991632,523722e-9,0,.0174561,.989875,587258e-9,0,.0232596,.988109,676329e-9,0,.0298932,.985155,747701e-9,0,.0373453,.980479,768803e-9,0,.0456045,.976271,841054e-9,0,.0546593,.971347,911469e-9,0,.0644994,.964528,953057e-9,0,.0751152,.957632,.00102221,0,.0864981,.948681,.00106122,0,.0986407,.938716,.00111857,0,.111537,.926629,.00114762,0,.125182,.914025,.00118995,0,.139571,.901026,.00121228,0,.154703,.890358,.00123946,0,.170576,.878283,.0012527,0,.18719,.865459,.00125536,0,.204547,.851407,.00126134,0,.222648,.836276,.00124759,0,.241498,.820436,.00124443,0,.261101,.803253,.00122071,0,.281465,.785562,.00120107,0,.302595,.76718,.00117762,0,.324501,.748551,.00114289,0,.347192,.730564,.00110872,0,.370679,.712253,.00107636,0,.394973,.692867,.00103646,0,.420085,.673695,996793e-9,0,.446027,.653912,95675e-8,0,.47281,.634129,916739e-9,0,.500441,.615004,874401e-9,0,.528921,.595587,833411e-9,0,.558244,.575965,794556e-9,0,.588384,.5566,75196e-8,0,.619281,.537428,716381e-9,0,.650795,.518623,676558e-9,0,.68254,.499964,64074e-8,0,.714286,.481356,605984e-9,0,.746032,.463279,570256e-9,0,.777778,.445673,540138e-9,0,.809524,.428032,507299e-9,0,.84127,.411112,479553e-9,0,.873016,.394444,450737e-9,0,.904762,.378247,424269e-9,0,.936508,.362415,399111e-9,0,.968254,.347103,375274e-9,0,1,1,300729e-9,0,0,1,300733e-9,0,0,1,300797e-9,0,0,.999998,301072e-9,0,0,.999996,301817e-9,0,0,.999989,303398e-9,0,0,.999977,306309e-9,0,0,.999958,311209e-9,0,0,.999927,318975e-9,0,0,.999884,330804e-9,0,0,.99982,34834e-8,0,0,.999733,373854e-9,0,326995e-10,.999613,410424e-9,0,477174e-9,.999447,462047e-9,0,.00161099,.999204,533322e-9,0,.00353153,.998725,624964e-9,0,.00627965,.995871,631786e-9,0,.0098693,.993194,632017e-9,0,.0143011,.991541,68923e-8,0,.019568,.989773,766892e-9,0,.0256593,.987647,863668e-9,0,.0325625,.984193,922089e-9,0,.0402647,.980016,970749e-9,0,.0487532,.975859,.00106027,0,.058016,.970514,.00112239,0,.0680419,.963625,.00117212,0,.0788208,.956959,.00125211,0,.0903439,.947956,.00129411,0,.102604,.93809,.00135879,0,.115594,.92659,.00139309,0,.129309,.913829,.00143253,0,.143745,.90005,.00145809,0,.158901,.888129,.0014748,0,.174774,.87607,.00148756,0,.191365,.863461,.00148714,0,.208674,.849594,.00148892,0,.226705,.834531,.00146496,0,.245461,.81903,.0014579,0,.264947,.802122,.00143039,0,.28517,.78445,.00139717,0,.306137,.766434,.00136312,0,.327857,.747816,.00132597,0,.350341,.729519,.00128323,0,.373598,.711454,.00123803,0,.397642,.692699,.00119097,0,.422485,.673723,.00114565,0,.448139,.654386,.00109552,0,.474619,.634673,.00104553,0,.501933,.615554,99985e-8,0,.530089,.596462,948207e-9,0,.559087,.577385,902299e-9,0,.588913,.558257,856448e-9,0,.619525,.5392,810395e-9,0,.650826,.520543,768558e-9,0,.68254,.502206,7239e-7,0,.714286,.48402,685794e-9,0,.746032,.465779,64471e-8,0,.777778,.448455,609583e-9,0,.809524,.431091,57227e-8,0,.84127,.414147,54042e-8,0,.873016,.39765,506545e-9,0,.904762,.381576,477635e-9,0,.936508,.365881,448446e-9,0,.968254,.350582,421424e-9,0,1,1,427144e-9,0,0,1,427151e-9,0,0,1,427232e-9,0,0,.999998,42759e-8,0,0,.999995,428555e-9,0,0,.999988,430603e-9,0,0,.999976,434368e-9,0,0,.999952,440688e-9,0,0,.999919,450667e-9,0,0,.999871,46578e-8,0,0,.999801,488024e-9,0,0,.999704,520092e-9,0,129791e-9,.999572,565553e-9,0,821056e-9,.999389,628906e-9,0,.00225241,.999114,714911e-9,0,.00449109,.998488,819218e-9,0,.00756249,.995234,80415e-8,0,.0114716,.993021,830181e-9,0,.0162131,.991407,902645e-9,0,.021776,.989625,996934e-9,0,.0281471,.987064,.00109707,0,.0353118,.983265,.00114353,0,.0432562,.979535,.0012272,0,.0519665,.975224,.00132642,0,.0614298,.969574,.00138092,0,.0716348,.963021,.00145896,0,.0825709,.956046,.00152834,0,.094229,.947136,.00158217,0,.106602,.937313,.0016347,0,.119682,.926073,.00168383,0,.133465,.913121,.00171627,0,.147947,.899165,.00174229,0,.163125,.885891,.00176137,0,.178998,.873783,.00176406,0,.195566,.861331,.00176156,0,.21283,.847569,.00175346,0,.230793,.832785,.00172753,0,.249459,.817442,.00170204,0,.268832,.800613,.00166576,0,.28892,.783597,.00162909,0,.30973,.76571,.0015826,0,.331271,.747021,.00153106,0,.353554,.728593,.00148036,0,.37659,.710661,.00142808,0,.400391,.692426,.00136906,0,.424973,.673623,.00131066,0,.450347,.65494,.00125569,0,.476531,.635448,.00119517,0,.503535,.616221,.00113828,0,.531372,.597531,.0010816,0,.560047,.578795,.00102673,0,.589554,.559892,970985e-9,0,.619869,.541307,919773e-9,0,.650923,.522608,868479e-9,0,.68254,.504484,82137e-8,0,.714286,.486603,772916e-9,0,.746032,.468802,730353e-9,0,.777778,.451172,684955e-9,0,.809524,.434348,647565e-9,0,.84127,.417445,605863e-9,0,.873016,.401077,571885e-9,0,.904762,.385039,536034e-9,0,.936508,.369483,504227e-9,0,.968254,.354272,473165e-9,0,1,1,599525e-9,0,0,1,599533e-9,0,0,1,599639e-9,0,0,.999998,600097e-9,0,0,.999994,601336e-9,0,0,.999987,603958e-9,0,0,.999972,608775e-9,0,0,.999949,616842e-9,0,0,.999912,629534e-9,0,0,.999857,648658e-9,0,0,.999781,676615e-9,0,538873e-11,.999674,716574e-9,0,308602e-9,.999528,772641e-9,0,.00127003,.999326,849806e-9,0,.00300783,.999009,952682e-9,0,.00556637,.998112,.00106394,0,.00895889,.994496,.00102228,0,.0131827,.992806,.00108586,0,.0182277,.991211,.0011759,0,.0240795,.989415,.00128955,0,.030723,.986499,.00139038,0,.0381418,.982679,.00144539,0,.046321,.978839,.00153954,0,.0552459,.974295,.00164417,0,.0649034,.968784,.00171517,0,.0752814,.962324,.00180282,0,.0863693,.954956,.00186387,0,.0981578,.94624,.00193817,0,.110639,.936517,.00198156,0,.123806,.925186,.00203042,0,.137655,.91252,.0020664,0,.15218,.898441,.00207822,0,.16738,.884394,.0020992,0,.183253,.871273,.00208748,0,.199799,.859057,.00208686,0,.21702,.845243,.00205519,0,.234918,.830723,.00202868,0,.253496,.815801,.00199501,0,.272761,.79914,.00194193,0,.292719,.782372,.00188824,0,.313377,.76482,.00183695,0,.334745,.746586,.00177418,0,.356833,.7281,.00170628,0,.379654,.709842,.00164063,0,.403221,.692019,.00157355,0,.427548,.67364,.00150262,0,.452651,.655277,.00143473,0,.478545,.636438,.00136371,0,.505246,.617364,.00129911,0,.532768,.598603,.00123014,0,.561122,.580195,.00116587,0,.590309,.561786,.00110398,0,.620318,.543377,.00104148,0,.651102,.525093,983984e-9,0,.682545,.506791,92667e-8,0,.714286,.489291,874326e-9,0,.746032,.471811,821734e-9,0,.777778,.454435,774698e-9,0,.809524,.437493,727302e-9,0,.84127,.420977,684039e-9,0,.873016,.404729,64373e-8,0,.904762,.388756,60285e-8,0,.936508,.373344,56765e-8,0,.968254,.358191,531929e-9,0,1,1,832169e-9,0,0,1,832178e-9,0,0,1,83231e-8,0,0,.999998,832893e-9,0,0,.999995,834465e-9,0,0,.999985,837791e-9,0,0,.999969,843893e-9,0,0,.999944,854086e-9,0,0,.999903,870071e-9,0,0,.999843,894042e-9,0,0,.999759,928865e-9,0,531805e-10,.999643,978242e-9,0,579365e-9,.99948,.00104684,0,.00182774,.999255,.00114012,0,.00387804,.998885,.00126188,0,.00675709,.997405,.00135888,0,.010468,.99424,.00133626,0,.0150018,.992458,.00140905,0,.0203443,.990929,.00152305,0,.0264786,.989116,.00165882,0,.0333875,.985624,.00174128,0,.0410536,.982003,.00182108,0,.0494609,.978336,.00194498,0,.0585941,.973184,.00202708,0,.0684396,.9678,.00212166,0,.0789851,.961348,.00221366,0,.0902199,.953841,.00228219,0,.102134,.94534,.00235662,0,.114721,.935552,.00240572,0,.127972,.924064,.00244405,0,.141884,.911827,.00247557,0,.156451,.897731,.00248374,0,.171672,.883409,.00249863,0,.187545,.868625,.00246688,0,.20407,.856529,.00246523,0,.221249,.842999,.00242368,0,.239083,.828505,.00237354,0,.257578,.813825,.00232588,0,.276738,.797813,.00226731,0,.296569,.781097,.00219704,0,.31708,.764038,.00212394,0,.338281,.746067,.00204786,0,.360181,.727687,.00196728,0,.382794,.709571,.00188779,0,.406133,.691503,.00180532,0,.430213,.673673,.00171849,0,.45505,.655732,.00164147,0,.480662,.637399,.00155858,0,.507065,.618616,.00147641,0,.534278,.60005,.00140125,0,.562313,.581713,.00132441,0,.59118,.563546,.00125014,0,.620875,.545605,.00118249,0,.651373,.527559,.0011116,0,.682593,.509764,.00104979,0,.714286,.49193,985977e-9,0,.746032,.475011,928592e-9,0,.777778,.457878,873466e-9,0,.809524,.440979,819585e-9,0,.84127,.424613,772365e-9,0,.873016,.408549,722195e-9,0,.904762,.392771,680014e-9,0,.936508,.377317,636797e-9,0,.968254,.362352,598318e-9,0,1,1,.00114313,0,0,1,.00114314,0,0,.999999,.00114331,0,0,.999998,.00114404,0,0,.999994,.00114601,0,0,.999984,.00115019,0,0,.999967,.00115784,0,0,.999937,.0011706,0,0,.999894,.00119054,0,0,.999828,.00122031,0,0,.999735,.00126331,0,169263e-9,.999606,.00132382,0,949167e-9,.999426,.0014071,0,.00249668,.999173,.00151895,0,.00486392,.99873,.00166102,0,.00806323,.996243,.0017023,0,.0120895,.993779,.00172782,0,.0169288,.9919,.0018108,0,.0225633,.990524,.00196028,0,.028974,.98868,.00212014,0,.036142,.984663,.00217598,0,.044049,.981457,.00230563,0,.0526781,.977608,.00243966,0,.0620137,.972215,.00251336,0,.0720418,.966798,.0026285,0,.0827499,.960241,.00271409,0,.0941271,.952489,.00278381,0,.106164,.944127,.00285399,0,.118852,.934282,.00290994,0,.132185,.923271,.00294558,0,.146157,.910803,.00296269,0,.160766,.896705,.00296803,0,.176007,.88238,.00296637,0,.19188,.867116,.00293163,0,.208385,.853636,.00289418,0,.225523,.840469,.00284663,0,.243296,.82639,.00278594,0,.261709,.811759,.00271618,0,.280767,.796113,.00263187,0,.300476,.779518,.00254589,0,.320845,.763142,.00246003,0,.341883,.745464,.00236529,0,.363601,.727491,.00226536,0,.386011,.709414,.00216375,0,.409128,.691396,.00207127,0,.432967,.67368,.00197106,0,.457545,.656049,.00187022,0,.482881,.638188,.00177605,0,.508992,.620177,.00168482,0,.535899,.601506,.00158909,0,.563619,.58362,.00150583,0,.592165,.565496,.00141791,0,.621544,.54789,.00133693,0,.651743,.530323,.00126038,0,.682709,.512795,.00118556,0,.714286,.495199,.00111527,0,.746032,.478101,.0010489,0,.777778,.461511,984264e-9,0,.809524,.444879,92591e-8,0,.84127,.428424,866582e-9,0,.873016,.412495,814463e-9,0,.904762,.396975,764498e-9,0,.936508,.381614,715967e-9,0,.968254,.366732,672483e-9,0,1,1,.00155501,0,0,1,.00155503,0,0,1,.00155524,0,0,.999998,.00155615,0,0,.999994,.0015586,0,0,.999983,.00156379,0,0,.999963,.0015733,0,0,.999932,.00158911,0,0,.999882,.00161376,0,0,.99981,.00165041,0,100875e-10,.999708,.00170304,0,367658e-9,.999565,.00177658,0,.0014234,.999368,.00187688,0,.00327939,.999081,.00200989,0,.00596629,.99852,.00217177,0,.0094852,.99549,.0021745,0,.013824,.993252,.00222357,0,.0189642,.991727,.00235022,0,.0248856,.989951,.00250561,0,.0315669,.988029,.00268829,0,.0389882,.984029,.0027496,0,.0471302,.980683,.00289793,0,.0559754,.976554,.00303315,0,.0655081,.97139,.00313257,0,.0757138,.965544,.00323656,0,.08658,.95912,.00333432,0,.0980954,.951183,.0034039,0,.110251,.942974,.00347515,0,.123038,.932642,.00350381,0,.13645,.922158,.00354519,0,.150482,.909404,.00353851,0,.165129,.896071,.0035435,0,.18039,.881206,.00349936,0,.196263,.866077,.00347256,0,.212748,.85093,.003415,0,.229847,.837703,.00333367,0,.247561,.823878,.003249,0,.265895,.809449,.00316347,0,.284854,.794379,.00306351,0,.304445,.778138,.0029499,0,.324675,.761997,.00284099,0,.345555,.744938,.00272104,0,.367095,.727212,.00260715,0,.389309,.709549,.00248855,0,.41221,.691704,.00236783,0,.435814,.673689,.00225178,0,.460138,.656453,.00213765,0,.485203,.639128,.00202178,0,.511028,.621512,.00191443,0,.537634,.603598,.00180977,0,.565041,.58559,.00170456,0,.593268,.567852,.00160927,0,.622327,.5503,.00151395,0,.652217,.533033,.00142499,0,.682907,.515942,.00133955,0,.714296,.498814,.0012602,0,.746032,.481595,.00118188,0,.777778,.465117,.00111171,0,.809524,.448865,.00104091,0,.84127,.432711,976618e-9,0,.873016,.416822,91859e-8,0,.904762,.401272,857704e-9,0,.936508,.386226,807172e-9,0,.968254,.371321,75464e-8,0,1,1,.00209596,0,0,1,.00209598,0,0,1,.00209624,0,0,.999997,.00209736,0,0,.999991,.00210039,0,0,.999979,.00210678,0,0,.999959,.00211847,0,0,.999925,.0021379,0,0,.99987,.00216809,0,0,.999791,.00221281,0,681487e-10,.999677,.00227669,0,658161e-9,.999521,.00236533,0,.00200635,.999301,.00248514,0,.0041779,.998977,.00264185,0,.00718648,.998191,.00281695,0,.0110239,.994801,.00278518,0,.015672,.993091,.00288774,0,.0211091,.991571,.00303931,0,.0273123,.9897,.00321643,0,.034259,.987023,.00337332,0,.0419282,.983289,.00346146,0,.0502998,.979892,.00363704,0,.0593562,.975111,.00373601,0,.069081,.970351,.0038842,0,.0794598,.964131,.00397053,0,.0904798,.957747,.00408078,0,.10213,.949536,.00413533,0,.1144,.941372,.00420305,0,.127284,.931049,.00422815,0,.140772,.920647,.00425048,0,.154862,.908033,.0042281,0,.169548,.895028,.00422026,0,.184828,.879968,.00415042,0,.200701,.864875,.00408821,0,.217167,.84918,.00400909,0,.234227,.834934,.00391178,0,.251884,.821397,.00380066,0,.270141,.807135,.00367974,0,.289004,.792363,.00355172,0,.308479,.776661,.003411,0,.328575,.760705,.00328123,0,.349301,.744408,.00314003,0,.370668,.726994,.0029906,0,.392689,.709598,.00285034,0,.415379,.692112,.00271179,0,.438754,.674435,.00257185,0,.46283,.65676,.00243425,0,.48763,.639982,.00230351,0,.513173,.622983,.0021777,0,.539482,.605471,.00204991,0,.566579,.58796,.00193759,0,.594488,.570463,.00181976,0,.623226,.553058,.00171497,0,.6528,.535894,.00161109,0,.683198,.519089,.00151394,0,.714354,.502454,.00142122,0,.746032,.485681,.00133488,0,.777778,.468935,.00124975,0,.809524,.452951,.00117309,0,.84127,.437139,.00110155,0,.873016,.421446,.00103124,0,.904762,.405951,966387e-9,0,.936508,.391003,908119e-9,0,.968254,.376198,848057e-9,0,1,1,.00280076,0,0,1,.00280078,0,0,.999999,.00280109,0,0,.999997,.00280246,0,0,.999992,.00280616,0,0,.999979,.00281396,0,0,.999956,.00282822,0,0,.999916,.00285186,0,0,.999857,.0028885,0,0,.999768,.00294259,0,196026e-9,.999645,.00301946,0,.00104842,.99947,.00312541,0,.00270199,.999229,.00326733,0,.00519449,.998852,.00344992,0,.00852602,.997558,.00361052,0,.0126804,.994417,.0035898,0,.017635,.992824,.00372393,0,.023365,.991344,.00390695,0,.0298456,.989337,.00410392,0,.0370529,.985811,.00420987,0,.0449651,.982772,.00437488,0,.0535615,.979001,.00455069,0,.0628243,.974102,.00464462,0,.0727368,.969197,.00480577,0,.0832844,.962759,.00487818,0,.0944545,.956207,.00498176,0,.106236,.947909,.00503392,0,.118619,.939596,.00507474,0,.131595,.929642,.00509798,0,.145159,.918807,.00508476,0,.159305,.906921,.00505634,0,.174028,.893312,.00498845,0,.189327,.878933,.0049133,0,.2052,.863986,.0048259,0,.221647,.847936,.00470848,0,.23867,.832253,.00456889,0,.25627,.818619,.00442726,0,.274453,.804788,.00427677,0,.293222,.790241,.00411906,0,.312585,.775162,.00394833,0,.33255,.759463,.00377366,0,.353126,.743598,.00361026,0,.374324,.72697,.00343627,0,.396158,.709646,.00326422,0,.418641,.69277,.00309717,0,.44179,.675371,.0029356,0,.465624,.657863,.00277712,0,.490163,.640772,.00261738,0,.515429,.624441,.0024737,0,.541445,.607497,.00233125,0,.568236,.590438,.00218994,0,.595828,.573224,.0020664,0,.624242,.556168,.00193526,0,.653496,.539232,.00182463,0,.683588,.522352,.00170735,0,.714482,.506172,.00160555,0,.746032,.489842,.00150451,0,.777778,.473463,.00140938,0,.809524,.457266,.00132568,0,.84127,.441609,.0012376,0,.873016,.426348,.00116265,0,.904762,.411002,.00108935,0,.936508,.396045,.00101946,0,.968254,.381448,955665e-9,0,1,1,.0037121,0,0,1,.00371213,0,0,1,.00371251,0,0,.999997,.00371417,0,0,.99999,.00371863,0,0,.999977,.00372807,0,0,.99995,.00374529,0,0,.999908,.0037738,0,0,.999843,.00381789,0,123596e-10,.999745,.00388273,0,407442e-9,.999608,.00397443,0,.0015447,.999415,.00409998,0,.00351385,.999143,.00426662,0,.0063316,.9987,.00447625,0,.00998679,.996363,.00455323,0,.0144569,.994021,.00461052,0,.0197151,.992372,.00476359,0,.0257344,.991007,.00499101,0,.0324882,.988767,.0051972,0,.0399517,.984872,.00528407,0,.0481022,.982004,.00548926,0,.0569191,.977714,.00564385,0,.0663839,.973076,.0057693,0,.0764801,.967565,.0058924,0,.0871928,.961384,.00599629,0,.0985095,.954435,.00605998,0,.110419,.946303,.0061133,0,.122912,.937662,.00612028,0,.13598,.927867,.00612209,0,.149617,.916475,.00604813,0,.163817,.90541,.00603088,0,.178577,.891591,.00592218,0,.193894,.877573,.00578854,0,.209767,.862511,.00566648,0,.226196,.846861,.00551481,0,.243182,.83068,.00533754,0,.260728,.815725,.00515487,0,.278837,.802321,.0049655,0,.297515,.787826,.00475421,0,.316768,.773454,.00456002,0,.336605,.758224,.00434727,0,.357034,.74265,.00414444,0,.378067,.726729,.00393738,0,.399717,.710155,.00373575,0,.421998,.693312,.00353736,0,.444928,.67653,.00334368,0,.468523,.659444,.00315981,0,.492806,.642051,.00297809,0,.517798,.625758,.00280592,0,.543525,.609615,.00264254,0,.570012,.592919,.00248459,0,.597288,.576298,.00233327,0,.625379,.559489,.00219519,0,.654307,.542891,.00205441,0,.684084,.526255,.00193385,0,.714693,.509853,.00180745,0,.746044,.494131,.00169817,0,.777778,.478114,.0015913,0,.809524,.462274,.00148981,0,.84127,.446412,.00139537,0,.873016,.431274,.00130984,0,.904762,.41635,.00122403,0,.936508,.401476,.00114809,0,.968254,.386993,.00107563,0,1,1,.00488216,0,0,1,.0048822,0,0,1,.00488265,0,0,.999997,.00488463,0,0,.999988,.00488999,0,0,.999974,.00490129,0,0,.999946,.00492191,0,0,.999897,.00495598,0,0,.999825,.00500855,0,744791e-10,.999718,.00508559,0,712744e-9,.999565,.005194,0,.00215249,.999352,.00534147,0,.00444576,.999046,.00553523,0,.00759218,.998492,.00577016,0,.0115714,.995564,.00578487,0,.0163557,.993339,.00586414,0,.021915,.991834,.00606002,0,.0282201,.990496,.00633312,0,.0352433,.987826,.00651941,0,.042959,.98383,.00660842,0,.0513439,.98109,.00685523,0,.0603772,.976131,.00695778,0,.0700402,.971922,.00714236,0,.0803163,.965901,.00721437,0,.0911908,.959606,.00732017,0,.102651,.952504,.00735788,0,.114686,.944365,.00738493,0,.127286,.935652,.00737969,0,.140443,.925813,.00733612,0,.154151,.914397,.00723094,0,.168405,.903257,.00714002,0,.183201,.890015,.00700149,0,.198536,.876014,.00682813,0,.214409,.861436,.00665567,0,.23082,.845752,.00644526,0,.24777,.829169,.00621635,0,.265263,.813435,.00597789,0,.283301,.799701,.00575694,0,.301889,.785726,.00549866,0,.321035,.77152,.0052503,0,.340746,.75683,.00499619,0,.361032,.741951,.0047543,0,.381904,.726367,.0045084,0,.403374,.710537,.00426784,0,.425457,.693965,.00403487,0,.448169,.677724,.0038075,0,.47153,.66117,.00359431,0,.495561,.644274,.00338354,0,.520284,.627449,.00318163,0,.545725,.611645,.00299672,0,.571911,.595614,.00281016,0,.598873,.579426,.00264252,0,.62664,.563016,.00247509,0,.655239,.546728,.00232647,0,.684692,.530539,.00217803,0,.714999,.514164,.00204216,0,.746106,.498344,.00191403,0,.777778,.482957,.00179203,0,.809524,.467336,.00167695,0,.84127,.451994,.00157567,0,.873016,.436514,.00147113,0,.904762,.42178,.00138034,0,.936508,.407271,.00129219,0,.968254,.392822,.0012098,0,1,1,.00637427,0,0,1,.00637431,0,0,.999999,.00637485,0,0,.999996,.00637721,0,0,.999987,.00638357,0,0,.999971,.006397,0,0,.999939,.00642142,0,0,.999888,.00646177,0,0,.999807,.00652387,0,207916e-9,.999689,.00661454,0,.00112051,.99952,.00674155,0,.00287719,.999283,.00691313,0,.00550145,.998936,.00713598,0,.00897928,.998165,.00738501,0,.0132829,.994847,.00734388,0,.01838,.993182,.00749991,0,.0242381,.991665,.0077246,0,.030826,.989708,.00797579,0,.0381152,.986663,.00813011,0,.0460794,.983288,.00830365,0,.0546951,.980104,.00853496,0,.0639411,.974855,.00861045,0,.0737988,.97045,.00879133,0,.0842516,.964509,.00886377,0,.0952848,.957594,.00890346,0,.106886,.950546,.00893289,0,.119044,.942225,.00890074,0,.131749,.933365,.00886826,0,.144994,.923202,.0087316,0,.158772,.912605,.00863082,0,.173078,.901099,.00847403,0,.187908,.888177,.00825838,0,.203261,.873955,.00801834,0,.219134,.860091,.00779026,0,.235527,.84434,.00752478,0,.252443,.828517,.00724074,0,.269883,.81239,.00693769,0,.287851,.79721,.00664817,0,.306352,.783489,.00634763,0,.325393,.769514,.00604221,0,.344981,.755419,.00573568,0,.365126,.741083,.00544359,0,.385839,.726059,.00515515,0,.407132,.710809,.00487139,0,.42902,.695052,.00459846,0,.45152,.678886,.00433412,0,.474651,.663042,.00407981,0,.498433,.646634,.00384264,0,.52289,.630117,.00360897,0,.548048,.613804,.00338863,0,.573936,.598338,.00318486,0,.600584,.582687,.00298377,0,.628027,.566809,.00280082,0,.656295,.550817,.00262255,0,.685417,.534937,.00245835,0,.715406,.519151,.00230574,0,.74624,.503118,.0021549,0,.777778,.487723,.00202008,0,.809524,.472725,.00189355,0,.84127,.457599,.00177108,0,.873016,.442558,.00165843,0,.904762,.427624,.00155494,0,.936508,.413171,.00145273,0,.968254,.399122,.00136454,0,1,1,.00826496,0,0,1,.00826499,0,0,1,.00826564,0,0,.999996,.00826842,0,0,.999987,.00827589,0,0,.999967,.00829167,0,0,.999933,.00832037,0,0,.999876,.00836768,0,109338e-10,.999786,.00844031,0,427145e-9,.999655,.00854603,0,.0016384,.999468,.00869337,0,.00372392,.999203,.008891,0,.00668513,.998803,.00914387,0,.0104968,.99748,.00935838,0,.015125,.994446,.00933309,0,.0205338,.99292,.00953084,0,.0266884,.991414,.0097893,0,.0335565,.989049,.0100228,0,.0411086,.98582,.0101664,0,.0493181,.982441,.0103582,0,.0581613,.978595,.0105292,0,.0676169,.973495,.0106274,0,.0776661,.968405,.0107261,0,.0882926,.962717,.0108234,0,.0994817,.955478,.0108102,0,.111221,.948275,.0107914,0,.123499,.940006,.0107161,0,.136308,.930831,.0106309,0,.149639,.920648,.0104083,0,.163485,.910205,.0102312,0,.177843,.898445,.0100051,0,.192707,.885986,.00971928,0,.208077,.872204,.00940747,0,.22395,.858436,.0091085,0,.240326,.843454,.00876595,0,.257208,.827437,.00839794,0,.274596,.811488,.00803692,0,.292496,.796039,.00767352,0,.310911,.781083,.0073097,0,.329849,.767642,.00694032,0,.349316,.753901,.00657476,0,.369323,.740131,.00622699,0,.38988,.725845,.0058838,0,.410999,.710991,.00555586,0,.432696,.696002,.00523089,0,.454987,.680461,.00492494,0,.47789,.664875,.00463464,0,.501426,.649273,.00435422,0,.52562,.63302,.0040875,0,.550498,.61705,.00384075,0,.576089,.601154,.00359557,0,.602427,.586008,.00337636,0,.629544,.570699,.00316019,0,.657479,.555166,.00296033,0,.686264,.539645,.00277552,0,.715924,.524159,.00259499,0,.746459,.508682,.00243257,0,.777789,.493163,.00227851,0,.809524,.478004,.00213083,0,.84127,.46347,.00199502,0,.873016,.448778,.00186967,0,.904762,.434105,.00174732,0,.936508,.419576,.00163861,0,.968254,.405541,.00153341,0,1,1,.0106462,0,0,1,.0106462,0,0,.999999,.010647,0,0,.999995,.0106502,0,0,.999985,.0106589,0,0,.999964,.0106773,0,0,.999925,.0107106,0,0,.999861,.0107655,0,712986e-10,.999763,.0108497,0,743959e-9,.999616,.0109716,0,.00227361,.999408,.0111408,0,.0046983,.999112,.0113659,0,.00800158,.998637,.0116475,0,.0121493,.996223,.0117231,0,.0171023,.994006,.0118064,0,.0228218,.992444,.0120254,0,.0292711,.991028,.0123314,0,.036417,.98803,.0124954,0,.0442295,.984816,.0126538,0,.0526815,.981399,.0128537,0,.0617492,.977085,.0129694,0,.0714114,.972154,.013091,0,.0816495,.966617,.0131166,0,.0924472,.960628,.0131583,0,.10379,.953295,.0131094,0,.115665,.94575,.0129966,0,.128062,.937654,.0128796,0,.140972,.927716,.0126477,0,.154387,.917932,.0123889,0,.168301,.907719,.012131,0,.182709,.89584,.0118013,0,.197608,.883526,.0114145,0,.212994,.870301,.0110075,0,.228867,.856272,.0106019,0,.245227,.842251,.0101938,0,.262074,.826466,.00973254,0,.279412,.810859,.0092846,0,.297244,.795051,.00883304,0,.315575,.780053,.00840272,0,.334412,.76575,.00796438,0,.35376,.752298,.00752526,0,.373631,.739153,.00711486,0,.394034,.725514,.00670361,0,.414983,.711473,.00632656,0,.436491,.696936,.00595206,0,.458575,.682126,.00559191,0,.481253,.667027,.00525362,0,.504547,.651875,.00493805,0,.528481,.636463,.00462848,0,.553081,.620641,.00433936,0,.578377,.604931,.00407,0,.604404,.589549,.00380864,0,.631197,.574712,.00357049,0,.658795,.559775,.00334466,0,.687238,.544514,.00312505,0,.716559,.529555,.00293199,0,.746776,.514402,.00274204,0,.777849,.499302,.00256647,0,.809524,.484114,.00239901,0,.84127,.469308,.00225148,0,.873016,.455133,.00210178,0,.904762,.440939,.0019727,0,.936508,.426627,.00184382,0,.968254,.412509,.00172548,0,1,1,.013628,0,0,1,.0136281,0,0,.999999,.0136289,0,0,.999995,.0136327,0,0,.999983,.0136427,0,0,.99996,.0136638,0,0,.999917,.0137022,0,0,.999846,.0137652,0,204597e-9,.999736,.0138615,0,.00116837,.999573,.0140007,0,.00303325,.99934,.0141927,0,.00580613,.999004,.0144457,0,.00945626,.998407,.0147489,0,.0139421,.995464,.014731,0,.0192202,.993328,.0148283,0,.0252495,.991799,.0150797,0,.0319921,.990397,.0154316,0,.0394138,.986835,.0155005,0,.0474843,.983938,.0157308,0,.0561763,.980154,.0158753,0,.0654661,.975659,.0159581,0,.0753326,.970171,.0159832,0,.0857571,.964803,.0160084,0,.0967236,.958366,.0159484,0,.108218,.950613,.0158001,0,.120227,.942874,.0155845,0,.132741,.935005,.0154292,0,.145751,.924991,.0150742,0,.159249,.914814,.0146757,0,.17323,.904743,.0143097,0,.187687,.893216,.0138695,0,.202619,.880769,.0133706,0,.218021,.868136,.0128606,0,.233894,.85469,.0123403,0,.250238,.840593,.0118091,0,.267052,.825808,.011253,0,.284341,.81009,.0107099,0,.302106,.79504,.0101636,0,.320354,.779757,.00964041,0,.33909,.764697,.00911896,0,.358322,.750913,.00859533,0,.378059,.738175,.00811592,0,.398311,.725242,.00764504,0,.41909,.711864,.00718885,0,.440412,.698009,.00675843,0,.462292,.683841,.00634984,0,.484748,.669391,.00595502,0,.507802,.654731,.00558671,0,.531477,.639805,.00523578,0,.555802,.624789,.00490834,0,.580805,.609325,.00459448,0,.606522,.593975,.00430342,0,.63299,.578983,.00403019,0,.66025,.564442,.0037707,0,.688346,.549835,.0035316,0,.717319,.535039,.00330255,0,.7472,.520403,.00308932,0,.777982,.505687,.00289335,0,.809524,.490939,.00270818,0,.84127,.476233,.0025343,0,.873016,.461624,.00237097,0,.904762,.447833,.00222065,0,.936508,.433992,.00207561,0,.968254,.420147,.00194955,0,1,1,.0173415,0,0,1,.0173416,0,0,.999999,.0173426,0,0,.999995,.0173468,0,0,.999983,.0173582,0,0,.999954,.0173822,0,0,.999908,.0174258,0,669501e-11,.999828,.0174973,0,427399e-9,.999705,.0176063,0,.00171019,.999524,.0177631,0,.0039248,.999263,.0179781,0,.00705382,.998878,.018258,0,.0110552,.998012,.0185551,0,.0158812,.994614,.0184264,0,.0214852,.993132,.0186385,0,.0278239,.991563,.0189067,0,.0348585,.989298,.0191577,0,.0425544,.986036,.0192522,0,.050881,.982558,.0194063,0,.059811,.978531,.019486,0,.0693209,.974198,.0195847,0,.0793895,.968148,.0194749,0,.0899984,.962565,.0194277,0,.101132,.956041,.0192991,0,.112775,.947749,.0189893,0,.124917,.94018,.018704,0,.137547,.93165,.0183458,0,.150655,.921798,.0178775,0,.164236,.911573,.0173618,0,.178281,.901569,.0168482,0,.192788,.890341,.016265,0,.207752,.877835,.0156199,0,.223171,.865472,.0149516,0,.239044,.852905,.0143274,0,.255371,.838906,.0136643,0,.272153,.824888,.0129903,0,.289393,.809977,.0123218,0,.307093,.794697,.0116572,0,.325259,.780028,.0110307,0,.343896,.765124,.0104236,0,.363012,.750411,.0098219,0,.382617,.737264,.00924397,0,.402719,.724799,.00868719,0,.423332,.712253,.00816476,0,.444469,.699267,.00767262,0,.466146,.685618,.00719746,0,.488383,.671736,.00673916,0,.511199,.657777,.00631937,0,.534618,.643497,.00592411,0,.558668,.62889,.00553928,0,.58338,.614299,.0051934,0,.608787,.599197,.00485985,0,.634929,.584175,.00454357,0,.661849,.569541,.00425787,0,.689594,.555193,.00397905,0,.718211,.540947,.00372364,0,.747742,.526593,.00348599,0,.778205,.512335,.00326103,0,.80953,.498017,.00305137,0,.84127,.483609,.00285485,0,.873016,.469368,.00267472,0,.904762,.455037,.00249945,0,.936508,.441493,.00234792,0,.968254,.428147,.00219936,0,1,1,.0219422,0,0,1,.0219423,0,0,.999998,.0219434,0,0,.999993,.0219481,0,0,.999981,.021961,0,0,.999949,.0219879,0,0,.999896,.0220367,0,593194e-10,.999808,.0221167,0,75364e-8,.99967,.0222383,0,.00237884,.999466,.0224125,0,.00495612,.999174,.0226495,0,.00844887,.998725,.0229525,0,.0128058,.996979,.0231123,0,.0179742,.994317,.0230742,0,.0239047,.992781,.0232895,0,.0305526,.991191,.0235734,0,.0378786,.987787,.0236152,0,.0458475,.985092,.0237994,0,.0544287,.981121,.0238553,0,.0635952,.976924,.0238706,0,.0733233,.97218,.0238704,0,.0835922,.965956,.0236598,0,.0943839,.959998,.0234735,0,.105682,.953245,.0232277,0,.117474,.944445,.0226973,0,.129747,.937087,.0223527,0,.142491,.928341,.0218144,0,.155697,.9184,.0211516,0,.169358,.907959,.0204553,0,.183469,.89808,.0197673,0,.198024,.887047,.0189915,0,.21302,.875221,.0182082,0,.228455,.86269,.0173584,0,.244329,.850735,.0165718,0,.260639,.837545,.0157524,0,.277389,.823639,.0149482,0,.29458,.809699,.0141431,0,.312216,.794797,.0133527,0,.3303,.780578,.0126193,0,.34884,.766019,.0118914,0,.367842,.751447,.0111839,0,.387315,.737275,.010514,0,.40727,.724545,.00987277,0,.427717,.712644,.00926569,0,.448671,.700432,.00869029,0,.470149,.687664,.00814691,0,.492167,.674288,.00763012,0,.514746,.660966,.00714437,0,.537911,.647264,.00668457,0,.561688,.633431,.00626581,0,.586108,.619133,.00585593,0,.611206,.604935,.00548188,0,.637022,.590236,.00513288,0,.663599,.575473,.0047906,0,.690989,.561228,.00448895,0,.719242,.547054,.00420233,0,.748411,.533175,.00392869,0,.778531,.519163,.00367445,0,.809583,.505328,.00344097,0,.84127,.491446,.00322003,0,.873016,.477356,.00301283,0,.904762,.46356,.00282592,0,.936508,.449623,.00264956,0,.968254,.436068,.00246956,0,1,1,.0276135,0,0,1,.0276136,0,0,.999998,.0276148,0,0,.999993,.0276201,0,0,.999976,.0276342,0,0,.999945,.027664,0,0,.999884,.0277179,0,18679e-8,.999784,.027806,0,.00119607,.99963,.0279394,0,.00318407,.999401,.0281295,0,.00613601,.999066,.0283858,0,.00999963,.998524,.0287027,0,.0147164,.995702,.0286256,0,.0202295,.993593,.0286733,0,.0264876,.992067,.0288989,0,.0334452,.990548,.0292135,0,.0410621,.986775,.0291296,0,.0493032,.984054,.0293099,0,.0581381,.979481,.0291881,0,.0675397,.975297,.0291598,0,.0774848,.96981,.028954,0,.0879528,.963524,.028628,0,.0989258,.957398,.0283135,0,.110388,.950088,.0278469,0,.122327,.941538,.0271798,0,.134729,.933332,.0265388,0,.147587,.924392,.0257776,0,.160889,.914581,.024916,0,.174631,.904347,.0240242,0,.188806,.894324,.0231229,0,.203409,.883724,.022153,0,.218437,.872207,.0211355,0,.233888,.859927,.0201048,0,.249761,.848373,.0191263,0,.266056,.836023,.0181306,0,.282774,.82289,.0171718,0,.299917,.809324,.0162196,0,.317488,.795361,.0152622,0,.335493,.781253,.01439,0,.353936,.767338,.013533,0,.372825,.753156,.0127244,0,.392168,.739122,.0119454,0,.411976,.725358,.0112054,0,.432259,.712949,.010487,0,.453032,.701621,.00984032,0,.47431,.689703,.00921495,0,.496111,.677216,.00862492,0,.518456,.664217,.00806882,0,.541367,.65137,.00755922,0,.564872,.638,.00705705,0,.589001,.62453,.00661266,0,.613789,.610601,.00618432,0,.639277,.59676,.00578033,0,.66551,.582433,.00540927,0,.692539,.568026,.00506104,0,.720422,.55414,.0047353,0,.749216,.540178,.00442889,0,.778974,.526513,.00414363,0,.809711,.512954,.00388237,0,.84127,.499403,.00362875,0,.873016,.486026,.00340827,0,.904762,.472345,.00318598,0,.936508,.458828,.00297635,0,.968254,.445379,.00279447,0,1,1,.0345716,0,0,1,.0345717,0,0,.999999,.034573,0,0,.999991,.0345787,0,0,.999974,.0345941,0,0,.999937,.0346263,0,188589e-11,.999869,.0346847,0,409238e-9,.999757,.0347798,0,.0017674,.999582,.0349233,0,.00413658,.999322,.0351265,0,.00747408,.998939,.0353967,0,.0117157,.998219,.0357018,0,.0167966,.994974,.0354726,0,.0226572,.993201,.0355621,0,.0292445,.991573,.0357641,0,.0365123,.989301,.0359252,0,.0444203,.985712,.0358017,0,.0529334,.982411,.0358353,0,.0620214,.977827,.035617,0,.0716574,.973278,.0354398,0,.0818186,.967397,.0350483,0,.0924846,.960696,.0344795,0,.103638,.954349,.0339861,0,.115263,.946066,.0331323,0,.127348,.938012,.032359,0,.13988,.929413,.0314413,0,.152849,.920355,.0304103,0,.166248,.910586,.0292785,0,.18007,.900609,.0281391,0,.194308,.890093,.0269103,0,.208958,.880013,.0257269,0,.224018,.869001,.0244671,0,.239485,.85751,.0232252,0,.255359,.84582,.0220117,0,.271638,.834383,.0208274,0,.288324,.822158,.0196628,0,.305419,.809056,.0185306,0,.322927,.795832,.0174174,0,.340851,.782547,.0163758,0,.359199,.7689,.015391,0,.377975,.755526,.0144488,0,.397189,.741681,.0135372,0,.416851,.728178,.0126957,0,.436971,.714642,.0118812,0,.457564,.702756,.0111165,0,.478644,.69175,.0104145,0,.500229,.680159,.00974439,0,.522339,.668073,.00911926,0,.544997,.655405,.00851393,0,.56823,.642921,.00797637,0,.592068,.629993,.00745119,0,.616546,.616828,.00696972,0,.641705,.603305,.00652425,0,.66759,.589833,.00610188,0,.694255,.575945,.00570834,0,.72176,.561745,.00533384,0,.750168,.548277,.00500001,0,.779545,.534467,.00467582,0,.809933,.521032,.00438092,0,.841272,.507877,.00410348,0,.873016,.494654,.00383618,0,.904762,.481592,.00358699,0,.936508,.468509,.00337281,0,.968254,.455293,.00316196,0,1,1,.0430698,0,0,1,.0430699,0,0,.999998,.0430713,0,0,.999991,.0430773,0,0,.99997,.0430936,0,0,.999928,.0431277,0,406396e-10,.999852,.0431893,0,744376e-9,.999724,.0432895,0,.0024806,.999527,.0434397,0,.00524779,.99923,.0436507,0,.00898164,.998783,.0439255,0,.0136083,.997507,.0441104,0,.0190582,.994418,.0438225,0,.0252694,.992864,.0439396,0,.0321879,.991127,.0440962,0,.039767,.987331,.0438408,0,.0479667,.984819,.0438991,0,.056752,.980384,.0435906,0,.0660929,.975846,.0432543,0,.075963,.970748,.0428293,0,.0863398,.964303,.042153,0,.0972035,.95772,.0414111,0,.108537,.950747,.0405893,0,.120325,.942533,.0394887,0,.132554,.934045,.0383544,0,.145215,.924942,.037057,0,.158296,.915811,.0356993,0,.17179,.90612,.0342401,0,.185691,.896434,.0328078,0,.199993,.886021,.031288,0,.214691,.876081,.0297776,0,.229782,.865608,.0282334,0,.245265,.854924,.026749,0,.261138,.843607,.02526,0,.277401,.832456,.0238214,0,.294056,.821342,.0224682,0,.311104,.809303,.0211297,0,.328548,.796468,.0198387,0,.346394,.784046,.0186227,0,.364645,.771262,.0174561,0,.38331,.758118,.0163806,0,.402396,.745075,.0153287,0,.421912,.731926,.0143647,0,.44187,.71863,.0134363,0,.462283,.705414,.0125603,0,.483165,.693792,.0117508,0,.504535,.683108,.0110016,0,.52641,.67183,.0102757,0,.548816,.66015,.00962044,0,.571776,.647907,.00898031,0,.595323,.635734,.00840811,0,.619489,.623208,.00786211,0,.644317,.610438,.00734953,0,.669852,.597345,.00687688,0,.696148,.584138,.00643469,0,.723267,.5707,.00602236,0,.75128,.556966,.0056324,0,.780258,.543607,.00528277,0,.810268,.530213,.00493999,0,.841311,.516912,.00462265,0,.873016,.503916,.0043307,0,.904762,.491146,.00406858,0,.936508,.478439,.00381436,0,.968254,.465834,.00358003,0,1,1,.0534039,0,0,1,.053404,0,0,.999998,.0534055,0,0,.999989,.0534116,0,0,.999968,.0534283,0,0,.999918,.0534633,0,155895e-9,.99983,.0535262,0,.00120914,.999685,.0536281,0,.00334944,.999461,.0537799,0,.00653077,.999119,.0539902,0,.0106718,.998582,.0542524,0,.0156907,.995919,.0540318,0,.0215147,.993735,.0538914,0,.0280801,.992126,.0539557,0,.0353323,.990266,.0540401,0,.0432247,.986317,.0536064,0,.0517172,.983213,.0534425,0,.0607754,.978303,.0528622,0,.0703698,.973665,.0523363,0,.0804742,.968091,.0516165,0,.0910667,.961026,.0505434,0,.102128,.954333,.049523,0,.113641,.946372,.0481698,0,.125591,.938254,.0467674,0,.137965,.929516,.0452341,0,.150754,.920106,.0435083,0,.163947,.910899,.0417399,0,.177537,.901532,.0399389,0,.191516,.891919,.0380901,0,.205881,.882006,.0362341,0,.220626,.871965,.0343444,0,.235749,.862145,.0324832,0,.251248,.852058,.0306681,0,.267121,.84161,.0289097,0,.283368,.830806,.0272079,0,.299992,.820476,.0256089,0,.316992,.809514,.0240394,0,.334374,.797865,.0225379,0,.35214,.785621,.0211235,0,.370296,.773765,.0197908,0,.388849,.761629,.0185235,0,.407807,.748891,.0173358,0,.427178,.736437,.0162305,0,.446974,.723707,.0151778,0,.467207,.710606,.0141791,0,.487892,.698019,.0132592,0,.509046,.686203,.0123887,0,.530687,.675692,.0115976,0,.552839,.664826,.0108325,0,.575527,.65349,.0101348,0,.59878,.641774,.00947756,0,.622634,.629794,.00886058,0,.647128,.617647,.00828526,0,.672308,.60534,.00775312,0,.698231,.592718,.00726033,0,.724958,.579746,.00679731,0,.752563,.566763,.00636111,0,.781127,.553515,.00595228,0,.810733,.540118,.00556876,0,.841426,.527325,.00523051,0,.873016,.514265,.00490712,0,.904762,.501406,.00460297,0,.936508,.488922,.00431247,0,.968254,.476541,.0040472,0,1,1,.0659184,0,0,1,.0659185,0,0,.999998,.06592,0,0,.999988,.0659259,0,0,.999963,.0659423,0,0,.999907,.0659764,0,374198e-9,.999806,.0660376,0,.00182071,.999639,.0661361,0,.0043894,.999378,.0662814,0,.00800055,.998985,.0664779,0,.0125594,.998285,.0666914,0,.0179786,.995071,.0661989,0,.0241822,.993172,.0660454,0,.031106,.991438,.0660105,0,.0386952,.988428,.0656875,0,.0469032,.985218,.0652913,0,.0556905,.981128,.0647107,0,.065023,.976015,.0638491,0,.0748717,.97097,.062993,0,.0852112,.964582,.0617927,0,.0960199,.957383,.0603626,0,.107279,.949969,.0588128,0,.118971,.941843,.0570274,0,.131084,.933624,.0551885,0,.143604,.924543,.053122,0,.156521,.914919,.0508897,0,.169825,.905773,.0486418,0,.18351,.896434,.0463364,0,.197569,.887195,.0440623,0,.211997,.877706,.0417799,0,.226789,.867719,.03945,0,.241944,.858587,.037243,0,.257458,.849317,.0350956,0,.273331,.839585,.0329852,0,.289563,.829856,.0310028,0,.306154,.819589,.0290953,0,.323108,.809714,.0272738,0,.340426,.79934,.0255631,0,.358113,.788224,.0239175,0,.376175,.776619,.0223831,0,.394616,.76521,.0209298,0,.413445,.753716,.0195786,0,.432671,.741564,.0183001,0,.452305,.729413,.0171259,0,.472358,.717146,.0159933,0,.492845,.70436,.0149495,0,.513783,.69219,.0139681,0,.535189,.680289,.0130577,0,.557087,.669611,.0122198,0,.5795,.659113,.0114174,0,.602459,.648148,.0106729,0,.625997,.636905,.00998997,0,.650154,.625154,.00934313,0,.674976,.613481,.00874839,0,.700518,.60154,.00818265,0,.726845,.58943,.00766889,0,.754032,.576828,.00717153,0,.782167,.564194,.00672696,0,.811344,.551501,.00630863,0,.841644,.538635,.00592177,0,.873016,.525724,.00554888,0,.904762,.513209,.00520225,0,.936508,.500457,.00488231,0,.968254,.48799,.00457153,0,1,1,.0810131,0,0,1,.0810133,0,0,.999997,.0810145,0,0,.999985,.08102,0,0,.999956,.0810347,0,195026e-10,.999893,.0810656,0,719316e-9,.999777,.0811205,0,.00259774,.999583,.081208,0,.00561807,.999281,.0813343,0,.00967472,.998813,.0814969,0,.0146627,.997597,.0815217,0,.0204902,.994379,.0808502,0,.0270802,.992744,.0806792,0,.0343674,.990745,.0804589,0,.0422974,.986646,.0796107,0,.0508242,.983611,.0790913,0,.0599087,.978869,.0780746,0,.0695175,.973475,.0768218,0,.0796223,.967845,.0754926,0,.0901983,.960778,.0737063,0,.101224,.953333,.0718052,0,.112682,.945274,.0695946,0,.124555,.936955,.0672492,0,.136831,.928319,.0647732,0,.149496,.919075,.0620947,0,.162542,.909114,.0591816,0,.175958,.900137,.0563917,0,.189739,.891069,.0535392,0,.203877,.882262,.0507642,0,.218368,.873232,.0479793,0,.233208,.864042,.045226,0,.248393,.855002,.0425413,0,.263923,.846569,.0400126,0,.279796,.837714,.0375269,0,.296012,.828918,.0352027,0,.312573,.819783,.0330011,0,.329479,.810129,.0308908,0,.346734,.800866,.0289112,0,.364342,.79093,.0270255,0,.382307,.780593,.0252758,0,.400637,.769511,.0236178,0,.419337,.758558,.0220652,0,.438418,.747632,.0206289,0,.457889,.736146,.0192873,0,.477761,.724093,.0180333,0,.49805,.71234,.0168264,0,.51877,.700201,.015746,0,.53994,.687949,.0147027,0,.561581,.676163,.0137512,0,.583718,.665001,.0128655,0,.60638,.65472,.0120366,0,.629599,.644213,.0112604,0,.653415,.633382,.0105413,0,.677874,.62212,.00986498,0,.70303,.610631,.00923308,0,.728948,.599078,.00864206,0,.755706,.587519,.00811784,0,.783396,.575505,.00761237,0,.812121,.563148,.00713949,0,.841989,.550828,.00668379,0,.873035,.538458,.00627715,0,.904762,.525905,.00588336,0,.936508,.513517,.00552687,0,.968254,.501395,.00519681,0,1,1,.0991506,0,0,1,.0991504,0,0,.999996,.0991515,0,0,.999984,.0991558,0,0,.999947,.0991672,0,114389e-9,.999874,.0991912,0,.00121503,.999739,.0992331,0,.00356108,.999514,.0992983,0,.00705578,.999159,.0993877,0,.011574,.998586,.0994837,0,.017003,.995731,.0988425,0,.0232484,.993384,.098276,0,.0302318,.991615,.0979269,0,.0378884,.989029,.0973432,0,.0461641,.985373,.0963539,0,.0550136,.981278,.0952306,0,.0643988,.975777,.0936233,0,.0742868,.970526,.0920219,0,.0846501,.963755,.0898912,0,.0954644,.956676,.0876064,0,.106709,.948099,.0847751,0,.118367,.939718,.0818638,0,.130423,.931305,.078857,0,.142862,.922342,.0756127,0,.155674,.912842,.0721473,0,.168849,.903304,.0686195,0,.182378,.89411,.0650589,0,.196255,.885512,.0616022,0,.210473,.877193,.0582434,0,.225027,.86877,.0548979,0,.239915,.860267,.0516095,0,.255132,.851915,.048468,0,.270678,.843912,.0454447,0,.286551,.83604,.0425612,0,.302751,.828245,.0398752,0,.31928,.820159,.0373198,0,.336138,.81167,.034916,0,.35333,.802659,.0326402,0,.370858,.793921,.0304901,0,.388728,.784713,.0284857,0,.406944,.774946,.0266186,0,.425515,.76448,.0248593,0,.444449,.753793,.0232114,0,.463756,.743506,.0217039,0,.483447,.732555,.0202841,0,.503535,.720965,.0189648,0,.524036,.709422,.0177189,0,.544968,.697756,.0165626,0,.56635,.685565,.015483,0,.588208,.673987,.0144892,0,.610569,.66244,.0135607,0,.633466,.651675,.0126956,0,.656936,.641598,.0118788,0,.681025,.63121,.0111261,0,.705788,.620514,.010437,0,.731289,.609366,.00978747,0,.757606,.598137,.00917257,0,.784834,.586966,.00859778,0,.813085,.575549,.00806803,0,.842485,.563797,.00757294,0,.87313,.551758,.00710592,0,.904762,.539894,.0066841,0,.936508,.527901,.00627901,0,.968254,.515819,.00590506,0,1,1,.120864,0,0,1,.120864,0,0,.999996,.120864,0,0,.99998,.120867,0,0,.99994,.120872,0,323781e-9,.999852,.120884,0,.00188693,.999693,.120903,0,.00473489,.999426,.120929,0,.00872704,.999002,.120955,0,.0137237,.998235,.120918,0,.0196068,.994608,.119764,0,.0262803,.992997,.119265,0,.0336657,.990968,.11863,0,.0416987,.987002,.117261,0,.0503261,.983524,.116009,0,.0595035,.97875,.114252,0,.0691935,.972652,.11193,0,.0793645,.966613,.109555,0,.0899894,.959275,.106612,0,.101045,.951272,.103375,0,.112512,.942323,.0996594,0,.124372,.933679,.0958841,0,.136611,.924822,.0919265,0,.149216,.915742,.0878061,0,.162176,.906348,.0834894,0,.175482,.896883,.079085,0,.189125,.88774,.0746745,0,.203098,.87986,.0705773,0,.217396,.871998,.0665005,0,.232015,.864325,.0625413,0,.24695,.856685,.0586781,0,.2622,.84925,.0550063,0,.277761,.841719,.0514727,0,.293634,.834755,.0481398,0,.309819,.827853,.0450172,0,.326315,.820888,.0420969,0,.343126,.813616,.0393702,0,.360254,.805767,.0367771,0,.377701,.797338,.0343274,0,.395474,.789122,.0320529,0,.413577,.780601,.0299485,0,.432018,.771424,.0279812,0,.450804,.761502,.0261054,0,.469944,.751166,.0243942,0,.489451,.741276,.0228087,0,.509337,.730898,.0213265,0,.529617,.719878,.0199307,0,.550307,.708379,.0186574,0,.571428,.697165,.0174446,0,.593003,.685554,.0163144,0,.615059,.673631,.015276,0,.637628,.662385,.0143003,0,.660746,.651059,.0134112,0,.68446,.640451,.0125794,0,.70882,.630536,.011793,0,.733893,.620316,.0110547,0,.759756,.609722,.0103668,0,.786505,.598804,.00973009,0,.814259,.587871,.00912812,0,.843157,.577121,.00858916,0,.87334,.566019,.00807333,0,.904762,.554664,.00759687,0,.936508,.543101,.00714759,0,.968254,.531558,.00673418,0,1,1,.146767,0,0,1,.146767,0,0,.999997,.146767,0,0,.999977,.146765,0,320658e-11,.999929,.146762,0,682576e-9,.999823,.146753,0,.00276402,.999633,.146735,0,.00614771,.999314,.146699,0,.0106613,.998796,.14662,0,.0161546,.997124,.146107,0,.0225063,.994062,.144857,0,.0296198,.992154,.144011,0,.037417,.989186,.142712,0,.0458348,.985279,.140926,0,.0548211,.980826,.13885,0,.0643326,.975056,.136168,0,.074333,.969005,.133217,0,.0847917,.961554,.12959,0,.0956828,.954206,.125886,0,.106984,.945046,.121335,0,.118675,.935678,.116492,0,.130741,.926748,.111635,0,.143166,.917764,.106625,0,.155939,.908358,.101325,0,.169049,.899219,.0960249,0,.182487,.890089,.0906527,0,.196245,.881488,.0853905,0,.210317,.874031,.0804177,0,.224697,.866932,.0756005,0,.23938,.859976,.0709019,0,.254364,.853375,.0664391,0,.269646,.846971,.0622012,0,.285223,.840483,.058129,0,.301096,.833969,.0542762,0,.317265,.82806,.0507042,0,.333729,.822128,.047368,0,.350491,.815989,.044272,0,.367554,.809336,.0413444,0,.38492,.802177,.038601,0,.402594,.79441,.0360227,0,.420582,.786573,.0336383,0,.438891,.778619,.0314321,0,.457527,.77,.029362,0,.476499,.760698,.0274102,0,.49582,.750932,.0256146,0,.5155,.740993,.023974,0,.535555,.731159,.0224182,0,.556,.720836,.0209889,0,.576855,.709913,.0196411,0,.598143,.698415,.0183824,0,.619888,.68745,.0172222,0,.642123,.676154,.0161509,0,.664883,.664383,.0151397,0,.688211,.6533,.0141873,0,.71216,.642072,.0133105,0,.736792,.631412,.0124932,0,.762186,.621622,.0117408,0,.788439,.611681,.0110358,0,.815672,.60142,.0103775,0,.844034,.59083,.00975623,0,.873699,.580254,.00918084,0,.904765,.569841,.00864721,0,.936508,.559224,.00815731,0,.968254,.548315,.00767924,0,1,1,.177563,0,0,1,.177563,0,0,.999994,.177562,0,0,.999972,.177555,0,664171e-10,.999914,.177536,0,.0012276,.999787,.177496,0,.00388025,.999556,.17742,0,.00783463,.999165,.177285,0,.0128953,.9985,.177037,0,.0189053,.995388,.175634,0,.025742,.993102,.174375,0,.033309,.990992,.173121,0,.0415298,.986932,.170896,0,.0503425,.982786,.16847,0,.0596964,.977592,.165455,0,.0695498,.971075,.161676,0,.0798676,.963967,.157458,0,.0906201,.956397,.152836,0,.101783,.947489,.147467,0,.113333,.937564,.14145,0,.125254,.928182,.135383,0,.137529,.919027,.129212,0,.150144,.909618,.12276,0,.163088,.900492,.116273,0,.176351,.891671,.1098,0,.189924,.883146,.103362,0,.203799,.875151,.0970799,0,.21797,.868338,.0911732,0,.232433,.862033,.0854966,0,.247182,.856107,.0800691,0,.262216,.850644,.0749618,0,.27753,.845261,.070079,0,.293124,.839885,.0654321,0,.308997,.834609,.0610975,0,.325149,.829083,.0569741,0,.341581,.82404,.0531736,0,.358294,.818968,.049665,0,.37529,.813496,.0463856,0,.392573,.807533,.0433217,0,.410148,.80099,.0404402,0,.428019,.793891,.0377578,0,.446192,.786281,.0352616,0,.464676,.778773,.0329577,0,.483478,.770737,.030808,0,.502608,.762094,.0287964,0,.522079,.752898,.0269254,0,.541905,.743306,.0251926,0,.5621,.733416,.023595,0,.582684,.723742,.0221155,0,.603677,.713542,.0207435,0,.625106,.702755,.019434,0,.646998,.691484,.0182046,0,.66939,.680531,.0170771,0,.692324,.66953,.0160339,0,.715849,.658126,.0150677,0,.740028,.646933,.0141551,0,.764937,.636107,.0133179,0,.790673,.625271,.0125284,0,.817358,.615225,.0117937,0,.84515,.605678,.0111181,0,.874244,.59583,.0104759,0,.904828,.585704,.00986672,0,.936508,.575413,.00929712,0,.968254,.565373,.00876713,0,1,1,.214058,0,0,.999999,.214058,0,0,.999994,.214055,0,0,.999966,.214039,0,259642e-9,.999893,.213998,0,.00200075,.999737,.21391,0,.00527775,.999449,.213745,0,.00983959,.99896,.213458,0,.0154755,.9979,.212855,0,.0220249,.994278,.210779,0,.0293654,.992254,.20926,0,.0374021,.98881,.206908,0,.0460604,.984715,.204009,0,.0552802,.979738,.200471,0,.0650127,.972884,.195813,0,.0752175,.965996,.190856,0,.0858612,.957974,.185077,0,.0969155,.949155,.17868,0,.108356,.939288,.171513,0,.120163,.928996,.163838,0,.132319,.919563,.156246,0,.144808,.910004,.148359,0,.157618,.900791,.140417,0,.170737,.892135,.132569,0,.184155,.883803,.124741,0,.197866,.876034,.117091,0,.211861,.869219,.109835,0,.226134,.863062,.102859,0,.240682,.857795,.0962928,0,.255499,.853009,.0900725,0,.270583,.848603,.0842101,0,.285931,.844335,.0786527,0,.301542,.840208,.0734397,0,.317415,.836035,.0685334,0,.33355,.83172,.0639275,0,.349948,.827135,.0595909,0,.36661,.822797,.0556204,0,.383539,.818387,.0519394,0,.400738,.813565,.0485317,0,.41821,.808142,.0453138,0,.435961,.802212,.0423354,0,.453997,.79573,.0395553,0,.472324,.788741,.036988,0,.490951,.781093,.0345688,0,.509887,.773597,.0323297,0,.529144,.765622,.0302719,0,.548735,.757083,.0283477,0,.568674,.747992,.0265562,0,.588979,.738591,.0248844,0,.609671,.728719,.0233342,0,.630773,.719146,.0219081,0,.652314,.709165,.0205711,0,.674328,.69875,.0193248,0,.696854,.687884,.0181582,0,.719942,.676818,.0170746,0,.743651,.666247,.0160718,0,.768057,.655284,.0151262,0,.793253,.64401,.0142561,0,.819363,.633353,.0134327,0,.846547,.622674,.012653,0,.875017,.612265,.0119354,0,.905021,.602455,.0112533,0,.936508,.593147,.0106234,0,.968254,.583592,.0100213,0,1,1,.25717,0,0,1,.25717,0,0,.999992,.257164,0,0,.999958,.257135,0,641715e-9,.999864,.25706,0,.00305314,.999666,.256897,0,.00700975,.999302,.256596,0,.0122194,.998663,.25607,0,.0184622,.995607,.254123,0,.0255773,.993094,.252081,0,.0334439,.9907,.249867,0,.0419696,.98594,.246118,0,.0510823,.981214,.242049,0,.0607242,.974966,.236869,0,.0708486,.967589,.230724,0,.081417,.95915,.223635,0,.0923974,.950257,.21596,0,.103763,.940165,.207296,0,.115491,.929396,.197901,0,.127562,.919288,.188437,0,.13996,.909428,.178762,0,.15267,.900105,.169072,0,.165679,.891418,.159478,0,.178979,.883347,.15002,0,.192558,.875992,.140813,0,.20641,.869466,.13196,0,.220529,.863699,.123501,0,.234907,.858553,.115436,0,.249542,.854379,.107901,0,.264428,.850894,.10088,0,.279564,.847632,.0942296,0,.294947,.844571,.0879861,0,.310575,.84163,.0821534,0,.326448,.838542,.0766409,0,.342566,.835412,.0715322,0,.358929,.831899,.0666883,0,.37554,.828177,.0622175,0,.392399,.82416,.0580452,0,.409511,.820393,.054267,0,.426878,.816068,.0507172,0,.444506,.811201,.0474041,0,.4624,.805785,.0443174,0,.480566,.799878,.0414562,0,.499013,.793469,.0388147,0,.517749,.786473,.0363453,0,.536785,.778874,.0340225,0,.556134,.771277,.0318599,0,.575809,.763426,.0298859,0,.595827,.755044,.0280357,0,.616207,.746161,.0262979,0,.636973,.737124,.0247295,0,.65815,.72761,.0232514,0,.679772,.717822,.0218755,0,.701876,.708279,.0205942,0,.724509,.698333,.0193947,0,.74773,.68802,.0182717,0,.771609,.677321,.0172044,0,.79624,.666504,.0162122,0,.821743,.656184,.0152924,0,.84828,.64556,.0144326,0,.876069,.634636,.0136157,0,.905404,.624124,.0128612,0,.936508,.613914,.0121435,0,.968254,.603589,.0114887,0,1,1,.307946,0,0,.999999,.307945,0,0,.999988,.307934,0,204479e-10,.999944,.307886,0,.00127833,.999824,.307756,0,.00445047,.999565,.30748,0,.00914673,.999085,.306966,0,.0150498,.998103,.306004,0,.0219367,.994249,.303028,0,.0296485,.991807,.300435,0,.038068,.987773,.296554,0,.0471062,.982673,.2916,0,.0566942,.976623,.285641,0,.0667768,.968757,.27815,0,.0773099,.959849,.269529,0,.088257,.950663,.260248,0,.0995879,.940129,.249704,0,.111277,.92895,.238291,0,.123304,.917996,.226501,0,.13565,.907813,.214669,0,.148299,.898305,.202835,0,.161237,.889626,.191158,0,.174455,.88175,.179695,0,.187941,.874715,.168548,0,.201687,.868746,.15792,0,.215687,.863703,.147807,0,.229933,.859315,.138149,0,.24442,.855538,.128993,0,.259145,.852428,.120414,0,.274103,.850168,.112498,0,.289293,.848132,.105054,0,.304711,.846291,.0981087,0,.320357,.844431,.0915942,0,.33623,.842493,.0855056,0,.35233,.840368,.0798204,0,.368658,.83798,.0745097,0,.385214,.83523,.0695424,0,.402002,.832091,.0649092,0,.419023,.828667,.0606291,0,.436282,.824805,.0566523,0,.453782,.820988,.0530229,0,.471529,.816635,.0496364,0,.489528,.811725,.0464658,0,.507788,.806316,.0435082,0,.526317,.800469,.0407873,0,.545124,.794107,.038255,0,.564221,.787218,.0358825,0,.583621,.779872,.0336785,0,.603341,.772097,.0316379,0,.623397,.764484,.0297379,0,.643812,.756428,.0279581,0,.664611,.748022,.0263153,0,.685824,.739268,.0247799,0,.707488,.73024,.0233385,0,.729646,.720893,.0220035,0,.752354,.71119,.0207555,0,.77568,.701791,.0195843,0,.799715,.692184,.0184891,0,.824574,.682258,.0174541,0,.850417,.67206,.0164873,0,.877466,.661717,.0155959,0,.90604,.651462,.0147519,0,.936528,.641467,.0139727,0,.968254,.631229,.0132363,0,1,1,.367573,0,0,.999999,.367571,0,0,.999984,.367553,0,183382e-9,.999925,.367473,0,.00225254,.999759,.367259,0,.00628165,.99941,.366801,0,.0117858,.998739,.365946,0,.0184359,.995529,.363191,0,.0260114,.992875,.360171,0,.0343581,.989135,.355981,0,.0433637,.984166,.350401,0,.0529438,.977871,.343348,0,.0630334,.96951,.334341,0,.0735805,.959964,.323862,0,.0845437,.950162,.312521,0,.095889,.938882,.299577,0,.107588,.926992,.285573,0,.119617,.915589,.271212,0,.131957,.904791,.256611,0,.144591,.895177,.242224,0,.157503,.886403,.227952,0,.170682,.878957,.214192,0,.184117,.872418,.200795,0,.197799,.867029,.188015,0,.21172,.862835,.175975,0,.225873,.859411,.164526,0,.240253,.856655,.153693,0,.254854,.854519,.14352,0,.269673,.852828,.13397,0,.284707,.851412,.124984,0,.299953,.850609,.116748,0,.315408,.849855,.10905,0,.331073,.849017,.101839,0,.346946,.848079,.0951359,0,.363028,.846911,.0888774,0,.379318,.845445,.0830375,0,.395818,.84362,.0775844,0,.41253,.841411,.0725054,0,.429457,.838768,.0677691,0,.446602,.835801,.0634016,0,.463968,.832341,.0593095,0,.481561,.828424,.0555121,0,.499386,.824312,.052024,0,.51745,.819918,.0487865,0,.535761,.815072,.0457801,0,.554328,.809863,.0430184,0,.573162,.804164,.0404245,0,.592275,.798034,.0380146,0,.611681,.791436,.0357436,0,.631398,.784498,.0336475,0,.651445,.777125,.0316666,0,.671845,.769365,.0298122,0,.692628,.761579,.0281001,0,.713827,.753746,.0265049,0,.735484,.745573,.0250067,0,.75765,.737083,.0236026,0,.78039,.728545,.0223302,0,.803789,.719691,.0211243,0,.82796,.710569,.0199983,0,.853056,.701216,.0189569,0,.879298,.692094,.0179702,0,.907014,.682909,.0170418,0,.936691,.673509,.0161732,0,.968254,.663863,.0153406,0,1,1,.437395,0,0,.999998,.437394,0,0,.99998,.437363,0,616704e-9,.999891,.437232,0,.00367925,.999656,.436877,0,.00867446,.999148,.436121,0,.0150679,.997959,.434564,0,.022531,.993464,.430134,0,.0308507,.990606,.426077,0,.0398805,.985027,.419397,0,.0495148,.978491,.41118,0,.0596749,.969643,.40048,0,.0703001,.959189,.38769,0,.0813427,.948223,.373575,0,.0927641,.935955,.357622,0,.104533,.923237,.34043,0,.116624,.911074,.322735,0,.129015,.899724,.30479,0,.141687,.890189,.287392,0,.154626,.881796,.270248,0,.167818,.874781,.253659,0,.181252,.869166,.237786,0,.194918,.864725,.222618,0,.208807,.861565,.208356,0,.222913,.859284,.194867,0,.237229,.857677,.18212,0,.25175,.856714,.17018,0,.266473,.856155,.158969,0,.281392,.8558,.148413,0,.296505,.855672,.138578,0,.311811,.855538,.129345,0,.327306,.855689,.120861,0,.342991,.855767,.112969,0,.358864,.855618,.105593,0,.374925,.85525,.0987451,0,.391176,.854583,.0923727,0,.407616,.853534,.0864143,0,.424249,.852061,.0808338,0,.441076,.850253,.0756771,0,.4581,.848004,.0708612,0,.475324,.845333,.0663784,0,.492754,.842376,.0622631,0,.510394,.838956,.0584112,0,.528251,.835121,.0548328,0,.546331,.830842,.0514838,0,.564644,.826212,.048355,0,.583198,.821522,.0454714,0,.602005,.816551,.0428263,0,.621078,.811211,.0403612,0,.640434,.805479,.038039,0,.660089,.799409,.0358739,0,.680066,.79306,.0338727,0,.70039,.786395,.0319985,0,.721094,.779416,.030241,0,.742215,.77214,.0285951,0,.7638,.764636,.0270747,0,.785912,.756836,.0256354,0,.808628,.749315,.0243027,0,.832055,.741561,.0230497,0,.856338,.733589,.0218801,0,.88169,.725479,.020784,0,.908441,.717255,.0197702,0,.937125,.708829,.0188168,0,.968254,.700191,.0179113,0,1,1,.518937,0,0,.999998,.518933,0,0,.999967,.518883,0,.00147741,.999832,.51866,0,.00573221,.999466,.518057,0,.011826,.998644,.516752,0,.0192116,.994458,.512347,0,.027573,.991223,.507675,0,.0367099,.985515,.500188,0,.046487,.978308,.490408,0,.0568071,.968359,.477357,0,.0675984,.95682,.461752,0,.0788059,.943929,.443796,0,.090386,.930224,.423893,0,.102304,.916514,.402682,0,.114532,.903653,.380914,0,.127047,.892315,.359212,0,.139828,.882942,.338102,0,.152861,.875438,.31773,0,.16613,.869642,.298186,0,.179624,.865304,.279491,0,.193332,.862382,.261804,0,.207247,.860666,.245146,0,.22136,.859788,.229406,0,.235666,.859608,.214605,0,.250158,.859912,.200691,0,.264832,.86053,.187623,0,.279684,.861368,.17539,0,.294711,.862237,.163901,0,.309911,.863127,.153175,0,.32528,.863923,.143147,0,.340819,.864567,.133781,0,.356524,.865013,.125042,0,.372397,.86539,.116952,0,.388438,.865591,.109476,0,.404645,.865517,.102542,0,.421022,.865084,.0960688,0,.437569,.864309,.0900499,0,.454287,.863151,.0844328,0,.471181,.861649,.0792218,0,.488253,.859742,.0743482,0,.505507,.857446,.0697963,0,.522947,.854757,.0655364,0,.54058,.851783,.061608,0,.558412,.848516,.0579701,0,.576449,.844897,.0545742,0,.594701,.840956,.0514167,0,.613178,.836676,.0484598,0,.631892,.832075,.0456934,0,.650856,.827191,.0431178,0,.670088,.822295,.0407718,0,.689606,.817294,.0386032,0,.709434,.812013,.0365675,0,.7296,.806465,.0346547,0,.750138,.800691,.0328717,0,.771093,.794709,.031211,0,.792519,.788493,.0296504,0,.814488,.782049,.0281782,0,.837097,.775403,.0267965,0,.860481,.76857,.0255002,0,.884842,.761536,.0242759,0,.910494,.754303,.0231142,0,.937985,.74692,.0220305,0,.968254,.739745,.0210192,0,1,1,.613914,0,0,.999996,.613907,0,963597e-10,.999942,.613814,0,.00301247,.999704,.613407,0,.00870385,.999046,.612302,0,.0160714,.995516,.608266,0,.0245899,.991726,.602863,0,.0339681,.985157,.593956,0,.0440254,.97642,.581748,0,.0546409,.964404,.565183,0,.0657284,.950601,.545273,0,.0772246,.935158,.522129,0,.0890812,.919364,.496782,0,.10126,.904754,.470571,0,.113731,.89176,.444037,0,.126469,.881492,.418322,0,.139454,.873656,.393522,0,.15267,.868053,.369795,0,.166101,.864336,.347171,0,.179736,.862259,.325737,0,.193565,.861556,.305532,0,.207578,.861776,.286416,0,.221769,.862661,.268355,0,.23613,.864015,.251334,0,.250656,.865711,.235352,0,.265343,.867519,.220302,0,.280187,.869351,.206161,0,.295183,.871144,.192908,0,.31033,.872839,.180505,0,.325624,.874307,.168848,0,.341065,.875667,.158021,0,.35665,.876758,.147877,0,.37238,.87764,.138441,0,.388253,.878237,.129627,0,.404269,.878563,.121415,0,.42043,.878572,.113741,0,.436735,.87842,.106652,0,.453187,.878057,.100097,0,.469786,.877413,.0940128,0,.486536,.87646,.0883462,0,.503439,.875233,.0830924,0,.520498,.8737,.0781975,0,.537717,.871873,.07364,0,.555102,.86978,.0694103,0,.572657,.867405,.0654696,0,.59039,.864751,.0617914,0,.608307,.861818,.0583491,0,.626419,.858645,.0551443,0,.644733,.855307,.0521894,0,.663264,.851736,.0494334,0,.682025,.847927,.0468504,0,.701032,.843888,.0444261,0,.720308,.839629,.0421497,0,.739875,.835158,.0400082,0,.759764,.830509,.0380076,0,.780014,.825714,.0361488,0,.800673,.820729,.0343956,0,.821803,.815751,.0327781,0,.843492,.810752,.031275,0,.86586,.805587,.0298542,0,.889087,.800317,.0285397,0,.913466,.79489,.0272948,0,.93952,.789314,.0261139,0,.96835,.783593,.0249938,0,1,1,.724258,0,0,.999992,.724243,0,726889e-9,.99987,.724044,0,.00569574,.999336,.72317,0,.0131702,.996271,.719432,0,.0220738,.991159,.712576,0,.0319405,.982465,.700927,0,.0425202,.97049,.684297,0,.0536599,.953973,.661244,0,.065258,.935546,.633804,0,.0772427,.916596,.603071,0,.0895616,.899353,.57105,0,.102175,.885216,.539206,0,.11505,.875076,.508714,0,.128164,.868334,.479571,0,.141495,.864414,.451796,0,.155026,.862678,.425328,0,.168745,.862835,.400352,0,.182639,.864067,.376532,0,.196699,.866086,.35391,0,.210915,.868557,.332424,0,.225282,.871271,.312053,0,.239792,.874058,.292764,0,.25444,.8768,.27453,0,.269223,.87939,.257297,0,.284135,.8819,.24114,0,.299174,.884187,.225934,0,.314337,.886262,.211669,0,.329622,.888119,.198311,0,.345026,.889709,.185783,0,.360549,.891054,.174063,0,.376189,.892196,.163143,0,.391946,.893101,.152952,0,.407819,.893803,.143475,0,.423808,.894277,.134647,0,.439914,.894532,.126434,0,.456137,.894576,.1188,0,.472479,.894393,.111694,0,.48894,.893976,.105069,0,.505523,.893346,.0989077,0,.52223,.892502,.0931724,0,.539064,.891441,.0878276,0,.556028,.890276,.082903,0,.573125,.888972,.0783505,0,.590361,.887469,.0741083,0,.607741,.885785,.0701633,0,.62527,.883914,.0664835,0,.642957,.881872,.0630567,0,.660809,.879651,.0598527,0,.678836,.877267,.0568615,0,.69705,.874717,.05406,0,.715465,.872012,.0514378,0,.734098,.869157,.0489805,0,.752968,.866155,.0466727,0,.772101,.863014,.0445056,0,.791529,.859748,.0424733,0,.81129,.856416,.0405957,0,.831438,.852958,.0388273,0,.852044,.849382,.0371619,0,.87321,.845694,.0355959,0,.89509,.841893,.0341155,0,.917932,.837981,.0327141,0,.942204,.833963,.0313856,0,.968981,.829847,.0301275,0,1,1,.85214,0,0,.999969,.852095,0,.00279627,.999483,.851408,0,.0107635,.994545,.84579,0,.0206454,.986188,.835231,0,.0315756,.969847,.814687,0,.0432021,.945951,.783735,0,.0553396,.91917,.746074,0,.0678766,.895488,.706938,0,.0807395,.878232,.669534,0,.0938767,.868252,.635168,0,.10725,.863873,.603069,0,.120832,.863369,.572514,0,.134598,.86545,.543169,0,.148533,.868803,.514578,0,.16262,.872794,.486762,0,.176849,.87702,.459811,0,.19121,.881054,.433654,0,.205694,.884974,.408574,0,.220294,.888587,.384525,0,.235005,.891877,.36156,0,.24982,.894793,.339661,0,.264737,.89743,.318913,0,.279751,.899796,.299302,0,.294859,.901943,.280843,0,.310058,.903858,.263481,0,.325346,.905574,.247197,0,.340721,.907069,.231915,0,.356181,.908379,.217614,0,.371725,.90952,.20425,0,.387353,.910483,.191758,0,.403063,.91128,.180092,0,.418854,.911936,.169222,0,.434727,.912454,.159098,0,.450682,.912835,.149668,0,.466718,.913078,.140884,0,.482837,.913192,.132709,0,.499038,.913175,.125095,0,.515324,.91304,.118012,0,.531695,.912781,.111417,0,.548153,.91241,.105281,0,.5647,.911924,.0995691,0,.581338,.911331,.0942531,0,.59807,.910637,.0893076,0,.6149,.90984,.0846998,0,.63183,.908941,.0804044,0,.648865,.907944,.0763984,0,.666011,.906857,.0726638,0,.683273,.90568,.0691783,0,.700659,.904416,.0659222,0,.718176,.903067,.0628782,0,.735834,.901637,.0600307,0,.753646,.900128,.0573647,0,.771625,.898544,.0548668,0,.78979,.89689,.052527,0,.808162,.895165,.0503306,0,.826771,.893371,.0482668,0,.845654,.891572,.0463605,0,.864863,.889763,.0445998,0,.884472,.887894,.0429451,0,.904592,.885967,.0413884,0,.925407,.883984,.0399225,0,.947271,.881945,.0385405,0,.97105,.879854,.0372362,0,1,.999804,.995833,0,0,.938155,.933611,0,.0158731,.864755,.854311,0,.0317461,.888594,.865264,0,.0476191,.905575,.863922,0,.0634921,.915125,.850558,0,.0793651,.920665,.829254,0,.0952381,.924073,.802578,0,.111111,.926304,.772211,0,.126984,.927829,.739366,0,.142857,.928924,.705033,0,.15873,.92973,.670019,0,.174603,.930339,.634993,0,.190476,.930811,.600485,0,.206349,.931191,.566897,0,.222222,.93149,.534485,0,.238095,.931737,.503429,0,.253968,.931939,.473811,0,.269841,.932108,.445668,0,.285714,.93225,.418993,0,.301587,.932371,.393762,0,.31746,.932474,.369939,0,.333333,.932562,.347479,0,.349206,.932638,.326336,0,.365079,.932703,.306462,0,.380952,.93276,.287805,0,.396825,.932809,.270313,0,.412698,.932851,.253933,0,.428571,.932887,.23861,0,.444444,.932917,.224289,0,.460317,.932943,.210917,0,.47619,.932965,.19844,0,.492063,.932982,.186807,0,.507937,.932995,.175966,0,.52381,.933005,.165869,0,.539683,.933011,.156468,0,.555556,.933013,.147719,0,.571429,.933013,.139579,0,.587302,.93301,.132007,0,.603175,.933004,.124965,0,.619048,.932994,.118416,0,.634921,.932982,.112326,0,.650794,.932968,.106663,0,.666667,.93295,.101397,0,.68254,.932931,.0964993,0,.698413,.932908,.0919438,0,.714286,.932883,.0877057,0,.730159,.932856,.0837623,0,.746032,.932827,.0800921,0,.761905,.932796,.0766754,0,.777778,.932762,.0734936,0,.793651,.932727,.0705296,0,.809524,.932689,.0677676,0,.825397,.93265,.0651929,0,.84127,.932609,.0627917,0,.857143,.932565,.0605515,0,.873016,.932521,.0584606,0,.888889,.932474,.0565082,0,.904762,.932427,.0546841,0,.920635,.932377,.0529793,0,.936508,.932326,.0513851,0,.952381,.932274,.0498936,0,.968254,.93222,.0484975,0,.984127,.932164,.0471899,0,1],r=new Float32Array(e),C=new Float32Array(n),w=new DataTexture(r,64,64,RGBAFormat,FloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1),E=new DataTexture(C,64,64,RGBAFormat,FloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1);w.needsUpdate=!0,E.needsUpdate=!0;const O=new Uint16Array(e.length);e.forEach(function(ze,ke){O[ke]=DataUtils.toHalfFloat(ze)});const le=new Uint16Array(n.length);n.forEach(function(ze,ke){le[ke]=DataUtils.toHalfFloat(ze)});const fe=new DataTexture(O,64,64,RGBAFormat,HalfFloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1),Se=new DataTexture(le,64,64,RGBAFormat,HalfFloatType,UVMapping,ClampToEdgeWrapping,ClampToEdgeWrapping,LinearFilter,NearestFilter,1);return fe.needsUpdate=!0,Se.needsUpdate=!0,this.LTC_HALF_1=fe,this.LTC_HALF_2=Se,this.LTC_FLOAT_1=w,this.LTC_FLOAT_2=E,this}}RectAreaLightTexturesLib.LTC_HALF_1=null;RectAreaLightTexturesLib.LTC_HALF_2=null;RectAreaLightTexturesLib.LTC_FLOAT_1=null;RectAreaLightTexturesLib.LTC_FLOAT_2=null;class RectAreaLightUniformsLib{static init(){RectAreaLightTexturesLib.init();const{LTC_FLOAT_1:e,LTC_FLOAT_2:n,LTC_HALF_1:r,LTC_HALF_2:C}=RectAreaLightTexturesLib;UniformsLib.LTC_FLOAT_1=e,UniformsLib.LTC_FLOAT_2=n,UniformsLib.LTC_HALF_1=r,UniformsLib.LTC_HALF_2=C}}const _viewport=new Vector4,_start=new Vector3,_end=new Vector3,_start4=new Vector4,_end4=new Vector4,_ssOrigin=new Vector4,_ssOrigin3=new Vector3,_mvMatrix=new Matrix4,_line=new Line3,_closestPoint=new Vector3,_box=new Box3,_sphere=new Sphere$1,_clipToWorldVector=new Vector4;let _ray,_lineWidth;function getWorldSpaceHalfWidth(v,e,n){return _clipToWorldVector.set(0,0,-e,1).applyMatrix4(v.projectionMatrix),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),_clipToWorldVector.x=_lineWidth/n.width,_clipToWorldVector.y=_lineWidth/n.height,_clipToWorldVector.applyMatrix4(v.projectionMatrixInverse),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),Math.abs(Math.max(_clipToWorldVector.x,_clipToWorldVector.y))}function raycastWorldUnits(v,e){const n=v.matrixWorld,r=v.geometry,C=r.attributes.instanceStart,w=r.attributes.instanceEnd,E=Math.min(r.instanceCount,C.count);for(let O=0,le=E;O<le;O++){_line.start.fromBufferAttribute(C,O),_line.end.fromBufferAttribute(w,O),_line.applyMatrix4(n);const fe=new Vector3,Se=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,Se,fe),Se.distanceTo(fe)<_lineWidth*.5&&e.push({point:Se,pointOnLine:fe,distance:_ray.origin.distanceTo(Se),object:v,face:null,faceIndex:O,uv:null,uv1:null})}}function raycastScreenSpace(v,e,n){const r=e.projectionMatrix,w=v.material.resolution,E=v.matrixWorld,O=v.geometry,le=O.attributes.instanceStart,fe=O.attributes.instanceEnd,Se=Math.min(O.instanceCount,le.count),ze=-e.near;_ray.at(1,_ssOrigin),_ssOrigin.w=1,_ssOrigin.applyMatrix4(e.matrixWorldInverse),_ssOrigin.applyMatrix4(r),_ssOrigin.multiplyScalar(1/_ssOrigin.w),_ssOrigin.x*=w.x/2,_ssOrigin.y*=w.y/2,_ssOrigin.z=0,_ssOrigin3.copy(_ssOrigin),_mvMatrix.multiplyMatrices(e.matrixWorldInverse,E);for(let ke=0,Fe=Se;ke<Fe;ke++){if(_start4.fromBufferAttribute(le,ke),_end4.fromBufferAttribute(fe,ke),_start4.w=1,_end4.w=1,_start4.applyMatrix4(_mvMatrix),_end4.applyMatrix4(_mvMatrix),_start4.z>ze&&_end4.z>ze)continue;if(_start4.z>ze){const xt=_start4.z-_end4.z,Xt=(_start4.z-ze)/xt;_start4.lerp(_end4,Xt)}else if(_end4.z>ze){const xt=_end4.z-_start4.z,Xt=(_end4.z-ze)/xt;_end4.lerp(_start4,Xt)}_start4.applyMatrix4(r),_end4.applyMatrix4(r),_start4.multiplyScalar(1/_start4.w),_end4.multiplyScalar(1/_end4.w),_start4.x*=w.x/2,_start4.y*=w.y/2,_end4.x*=w.x/2,_end4.y*=w.y/2,_line.start.copy(_start4),_line.start.z=0,_line.end.copy(_end4),_line.end.z=0;const Lt=_line.closestPointToPointParameter(_ssOrigin3,!0);_line.at(Lt,_closestPoint);const bt=MathUtils.lerp(_start4.z,_end4.z,Lt),Ue=bt>=-1&&bt<=1,Gt=_ssOrigin3.distanceTo(_closestPoint)<_lineWidth*.5;if(Ue&&Gt){_line.start.fromBufferAttribute(le,ke),_line.end.fromBufferAttribute(fe,ke),_line.start.applyMatrix4(E),_line.end.applyMatrix4(E);const xt=new Vector3,Xt=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,Xt,xt),n.push({point:Xt,pointOnLine:xt,distance:_ray.origin.distanceTo(Xt),object:v,face:null,faceIndex:ke,uv:null,uv1:null})}}}class LineSegments2 extends Mesh{constructor(e=new LineSegmentsGeometry,n=new LineMaterial({color:Math.random()*16777215})){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,r=e.attributes.instanceEnd,C=new Float32Array(2*n.count);for(let E=0,O=0,le=n.count;E<le;E++,O+=2)_start.fromBufferAttribute(n,E),_end.fromBufferAttribute(r,E),C[O]=O===0?0:C[O-1],C[O+1]=C[O]+_start.distanceTo(_end);const w=new InstancedInterleavedBuffer(C,2,1);return e.setAttribute("instanceDistanceStart",new InterleavedBufferAttribute(w,1,0)),e.setAttribute("instanceDistanceEnd",new InterleavedBufferAttribute(w,1,1)),this}raycast(e,n){const r=this.material.worldUnits,C=e.camera;C===null&&!r&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const w=e.params.Line2!==void 0&&e.params.Line2.threshold||0;_ray=e.ray;const E=this.matrixWorld,O=this.geometry,le=this.material;_lineWidth=le.linewidth+w,O.boundingSphere===null&&O.computeBoundingSphere(),_sphere.copy(O.boundingSphere).applyMatrix4(E);let fe;if(r)fe=_lineWidth*.5;else{const ze=Math.max(C.near,_sphere.distanceToPoint(_ray.origin));fe=getWorldSpaceHalfWidth(C,ze,le.resolution)}if(_sphere.radius+=fe,_ray.intersectsSphere(_sphere)===!1)return;O.boundingBox===null&&O.computeBoundingBox(),_box.copy(O.boundingBox).applyMatrix4(E);let Se;if(r)Se=_lineWidth*.5;else{const ze=Math.max(C.near,_box.distanceToPoint(_ray.origin));Se=getWorldSpaceHalfWidth(C,ze,le.resolution)}_box.expandByScalar(Se),_ray.intersectsBox(_box)!==!1&&(r?raycastWorldUnits(this,n):raycastScreenSpace(this,C,n))}onBeforeRender(e){const n=this.material.uniforms;n&&n.resolution&&(e.getViewport(_viewport),this.material.uniforms.resolution.value.set(_viewport.z,_viewport.w))}}var Je$1=Object.defineProperty,Qe$1=Object.defineProperties,Ke$1=Object.getOwnPropertyDescriptors,he=Object.getOwnPropertySymbols,Be$1=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable,Ie$1=(v,e,n)=>e in v?Je$1(v,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):v[e]=n,z$2=(v,e)=>{for(var n in e||(e={}))Be$1.call(e,n)&&Ie$1(v,n,e[n]);if(he)for(var n of he(e))Oe.call(e,n)&&Ie$1(v,n,e[n]);return v},ue$1=(v,e)=>Qe$1(v,Ke$1(e)),ye$1=(v,e)=>{var n={};for(var r in v)Be$1.call(v,r)&&e.indexOf(r)<0&&(n[r]=v[r]);if(v!=null&&he)for(var r of he(v))e.indexOf(r)<0&&Oe.call(v,r)&&(n[r]=v[r]);return n},oe$1=(v,e,n)=>new Promise((r,C)=>{var w=le=>{try{O(n.next(le))}catch(fe){C(fe)}},E=le=>{try{O(n.throw(le))}catch(fe){C(fe)}},O=le=>le.done?r(le.value):Promise.resolve(le.value).then(w,E);O((n=n.apply(v,e)).next())});function V$1(v,e=0){const n=v[0].index!==null,r=new Set(Object.keys(v[0].attributes)),C=new Set(Object.keys(v[0].morphAttributes)),w={},E={},O=v[0].morphTargetsRelative,le=new BufferGeometry;let fe=0;for(let Se=0;Se<v.length;++Se){const ze=v[Se];let ke=0;if(n!==(ze.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const Fe in ze.attributes){if(!r.has(Fe))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+'. All geometries must have compatible attributes; make sure "'+Fe+'" attribute exists among all geometries, or in none of them.'),null;w[Fe]===void 0&&(w[Fe]=[]),w[Fe].push(ze.attributes[Fe]),ke++}if(ke!==r.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". Make sure all geometries have the same number of attributes."),null;if(O!==ze.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const Fe in ze.morphAttributes){if(!C.has(Fe))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". .morphAttributes must be consistent throughout all geometries."),null;E[Fe]===void 0&&(E[Fe]=[]),E[Fe].push(ze.morphAttributes[Fe])}if(e){let Fe;if(n)Fe=ze.index.count;else if(ze.attributes.position!==void 0)Fe=ze.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+Se+". The geometry must have either an index or a position attribute"),null;if(e===1)le.addGroup(fe,Fe,Se);else if(e===2&&ze.groups.length>0)for(let mt of ze.groups){let Lt=mt.materialIndex;le.addGroup(fe+mt.start,Math.min(mt.count,Fe),Lt)}fe+=Fe}}if(n){let Se=0;const ze=[];for(let ke=0;ke<v.length;++ke){const Fe=v[ke].index;for(let mt=0;mt<Fe.count;++mt)ze.push(Fe.getX(mt)+Se);Se+=v[ke].attributes.position.count}le.setIndex(ze)}for(const Se in w){const ze=mergeAttributes(w[Se]);if(!ze)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+Se+" attribute."),null;le.setAttribute(Se,ze)}for(const Se in E){const ze=E[Se][0].length;if(ze===0)break;le.morphAttributes=le.morphAttributes||{},le.morphAttributes[Se]=[];for(let ke=0;ke<ze;++ke){const Fe=[];for(let Lt=0;Lt<E[Se].length;++Lt)Fe.push(E[Se][Lt][ke]);const mt=mergeAttributes(Fe);if(!mt)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+Se+" morphAttribute."),null;le.morphAttributes[Se].push(mt)}}return e===2?mergeGroups(le):le}const De=v=>{const e=v,{coordinate:n,startHeight:r,height:C}=e,w=ye$1(e,["coordinate","startHeight","height"]);let E=r||0;return typeof r!="undefined"&&typeof C!="undefined"&&(E=r+C),new zt([n],ue$1(z$2({},w),{startHeight:r,endHeight:E}))};class Jt extends pe$1{constructor(e){super(),this.options=z$2({},e)}create(){const e=this.options,{geometry:n,coordinateArr:r,coordinate:C,material:w,useGroups:E}=e,O=ye$1(e,["geometry","coordinateArr","coordinate","material","useGroups"]);let le=n;if(!le&&C)le=De(z$2({coordinate:C},O));else if(!le&&r){const fe=r.map(Se=>De(z$2({coordinate:Se},O)));le=V$1(fe,E!=null?E:0)}this.createMesh(le,w)}}const Bt={ArcCurve,CatmullRomCurve3,CubicBezierCurve,CubicBezierCurve3,EllipseCurve,LineCurve,LineCurve3,QuadraticBezierCurve,QuadraticBezierCurve3,SplineCurve};let K$1=class zn extends BufferGeometry{constructor(e=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),n={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:n},e=Array.isArray(e)?e:[e];const r=this,C=[],w=[];for(let O=0,le=e.length;O<le;O++){const fe=e[O];E(fe)}this.setAttribute("position",new Float32BufferAttribute(C,3)),this.setAttribute("uv",new Float32BufferAttribute(w,2)),this.computeVertexNormals();function E(O){var le,fe,Se;const ze=[],ke=n.curveSegments!==void 0?n.curveSegments:12,Fe=n.steps!==void 0?n.steps:1,mt=n.depth!==void 0?n.depth:1;let Lt=n.bevelEnabled!==void 0?n.bevelEnabled:!0,bt=n.bevelThickness!==void 0?n.bevelThickness:.2,Ue=n.bevelSize!==void 0?n.bevelSize:bt-.1,Gt=n.bevelOffset!==void 0?n.bevelOffset:0,xt=n.bevelSegments!==void 0?n.bevelSegments:3;const Xt=n.extrudePath,Zt=n.UVGenerator!==void 0?n.UVGenerator:Ot$1,wt=(le=n.hasTop)!=null?le:!0,Vt=(fe=n.hasBottom)!=null?fe:!0,Wt=(Se=n.hasSide)!=null?Se:!0;let It,Nt=!1,Ft,jt,n0,s0;Xt&&(It=Xt.getSpacedPoints(Fe),Nt=!0,Lt=!1,Ft=Xt.computeFrenetFrames(Fe,!1),jt=new Vector3,n0=new Vector3,s0=new Vector3),Lt||(xt=0,bt=0,Ue=0,Gt=0);const qt=O.extractPoints(ke);let Ht=qt.shape;const $t=qt.holes;if(!ShapeUtils.isClockWise(Ht)){Ht=Ht.reverse();for(let S0=0,L0=$t.length;S0<L0;S0++){const A0=$t[S0];ShapeUtils.isClockWise(A0)&&($t[S0]=A0.reverse())}}function Kt(S0){const L0=10000000000000001e-36;let A0=S0[0];for(let B0=1;B0<=S0.length;B0++){const r0=B0%S0.length,t0=S0[r0],m0=t0.x-A0.x,v0=t0.y-A0.y,k0=m0*m0+v0*v0,C0=Math.max(Math.abs(t0.x),Math.abs(t0.y),Math.abs(A0.x),Math.abs(A0.y)),Ci=L0*C0*C0;if(k0<=Ci){S0.splice(r0,1),B0--;continue}A0=t0}}Kt(Ht),$t.forEach(Kt);const e0=$t.length,u0=Ht;for(let S0=0;S0<e0;S0++){const L0=$t[S0];Ht=Ht.concat(L0)}function d0(S0,L0,A0){return L0||error("ExtrudeGeometry: vec does not exist"),S0.clone().addScaledVector(L0,A0)}const _0=Ht.length;function J0(S0,L0,A0){let B0,r0,t0;const m0=S0.x-L0.x,v0=S0.y-L0.y,k0=A0.x-S0.x,C0=A0.y-S0.y,Ci=m0*m0+v0*v0,yi=m0*C0-v0*k0;if(Math.abs(yi)>Number.EPSILON){const wi=Math.sqrt(Ci),Ei=Math.sqrt(k0*k0+C0*C0),gi=L0.x-v0/wi,Ti=L0.y+m0/wi,Ii=A0.x-C0/Ei,Ni=A0.y+k0/Ei,Gi=((Ii-gi)*C0-(Ni-Ti)*k0)/(m0*C0-v0*k0);B0=gi+m0*Gi-S0.x,r0=Ti+v0*Gi-S0.y;const zi=B0*B0+r0*r0;if(zi<=2)return new Vector2(B0,r0);t0=Math.sqrt(zi/2)}else{let wi=!1;m0>Number.EPSILON?k0>Number.EPSILON&&(wi=!0):m0<-Number.EPSILON?k0<-Number.EPSILON&&(wi=!0):Math.sign(v0)===Math.sign(C0)&&(wi=!0),wi?(B0=-v0,r0=m0,t0=Math.sqrt(Ci)):(B0=m0,r0=v0,t0=Math.sqrt(Ci/2))}return new Vector2(B0/t0,r0/t0)}const H0=[];for(let S0=0,L0=u0.length,A0=L0-1,B0=S0+1;S0<L0;S0++,A0++,B0++)A0===L0&&(A0=0),B0===L0&&(B0=0),H0[S0]=J0(u0[S0],u0[A0],u0[B0]);const bi=[];let b0,V0=H0.concat();for(let S0=0,L0=e0;S0<L0;S0++){const A0=$t[S0];b0=[];for(let B0=0,r0=A0.length,t0=r0-1,m0=B0+1;B0<r0;B0++,t0++,m0++)t0===r0&&(t0=0),m0===r0&&(m0=0),b0[B0]=J0(A0[B0],A0[t0],A0[m0]);bi.push(b0),V0=V0.concat(b0)}let D0;if(xt===0)D0=ShapeUtils.triangulateShape(u0,$t);else{const S0=[],L0=[];for(let A0=0;A0<xt;A0++){const B0=A0/xt,r0=bt*Math.cos(B0*Math.PI/2),t0=Ue*Math.sin(B0*Math.PI/2)+Gt;for(let m0=0,v0=u0.length;m0<v0;m0++){const k0=d0(u0[m0],H0[m0],t0);P0(k0.x,k0.y,-r0),B0===0&&S0.push(k0)}for(let m0=0,v0=e0;m0<v0;m0++){const k0=$t[m0];b0=bi[m0];const C0=[];for(let Ci=0,yi=k0.length;Ci<yi;Ci++){const wi=d0(k0[Ci],b0[Ci],t0);P0(wi.x,wi.y,-r0),B0===0&&C0.push(wi)}B0===0&&L0.push(C0)}}D0=ShapeUtils.triangulateShape(S0,L0)}const Si=D0.length,q0=Ue+Gt;for(let S0=0;S0<_0;S0++){const L0=Lt?d0(Ht[S0],V0[S0],q0):Ht[S0];Nt?(n0.copy(Ft.normals[0]).multiplyScalar(L0.x),jt.copy(Ft.binormals[0]).multiplyScalar(L0.y),s0.copy(It[0]).add(n0).add(jt),P0(s0.x,s0.y,s0.z)):P0(L0.x,L0.y,0)}for(let S0=1;S0<=Fe;S0++)for(let L0=0;L0<_0;L0++){const A0=Lt?d0(Ht[L0],V0[L0],q0):Ht[L0];Nt?(n0.copy(Ft.normals[S0]).multiplyScalar(A0.x),jt.copy(Ft.binormals[S0]).multiplyScalar(A0.y),s0.copy(It[S0]).add(n0).add(jt),P0(s0.x,s0.y,s0.z)):P0(A0.x,A0.y,mt/Fe*S0)}for(let S0=xt-1;S0>=0;S0--){const L0=S0/xt,A0=bt*Math.cos(L0*Math.PI/2),B0=Ue*Math.sin(L0*Math.PI/2)+Gt;for(let r0=0,t0=u0.length;r0<t0;r0++){const m0=d0(u0[r0],H0[r0],B0);P0(m0.x,m0.y,mt+A0)}for(let r0=0,t0=$t.length;r0<t0;r0++){const m0=$t[r0];b0=bi[r0];for(let v0=0,k0=m0.length;v0<k0;v0++){const C0=d0(m0[v0],b0[v0],B0);Nt?P0(C0.x,C0.y+It[Fe-1].y,It[Fe-1].x+A0):P0(C0.x,C0.y,mt+A0)}}}Wi(),Wt&&Ai();function Wi(){const S0=C.length/3;if(Lt){let L0=0,A0=_0*L0;if(Vt)for(let B0=0;B0<Si;B0++){const r0=D0[B0];F0(r0[2]+A0,r0[1]+A0,r0[0]+A0)}if(L0=Fe+xt*2,A0=_0*L0,wt)for(let B0=0;B0<Si;B0++){const r0=D0[B0];F0(r0[0]+A0,r0[1]+A0,r0[2]+A0)}}else{if(Vt)for(let L0=0;L0<Si;L0++){const A0=D0[L0];F0(A0[2],A0[1],A0[0])}if(wt)for(let L0=0;L0<Si;L0++){const A0=D0[L0];F0(A0[0]+_0*Fe,A0[1]+_0*Fe,A0[2]+_0*Fe)}}r.addGroup(S0,C.length/3-S0,0)}function Ai(){const S0=C.length/3;let L0=0;a0(u0,L0),L0+=u0.length;for(let A0=0,B0=$t.length;A0<B0;A0++){const r0=$t[A0];a0(r0,L0),L0+=r0.length}r.addGroup(S0,C.length/3-S0,1)}function a0(S0,L0){let A0=S0.length;for(;--A0>=0;){const B0=A0;let r0=A0-1;r0<0&&(r0=S0.length-1);for(let t0=0,m0=Fe+xt*2;t0<m0;t0++){const v0=_0*t0,k0=_0*(t0+1),C0=L0+B0+v0,Ci=L0+r0+v0,yi=L0+r0+k0,wi=L0+B0+k0;K0(C0,Ci,yi,wi)}}}function P0(S0,L0,A0){ze.push(S0),ze.push(L0),ze.push(A0)}function F0(S0,L0,A0){I0(S0),I0(L0),I0(A0);const B0=C.length/3,r0=Zt.generateTopUV(r,C,B0-3,B0-2,B0-1);Q0(r0[0]),Q0(r0[1]),Q0(r0[2])}function K0(S0,L0,A0,B0){I0(S0),I0(L0),I0(B0),I0(L0),I0(A0),I0(B0);const r0=C.length/3,t0=Zt.generateSideWallUV(r,C,r0-6,r0-3,r0-2,r0-1);Q0(t0[0]),Q0(t0[1]),Q0(t0[3]),Q0(t0[1]),Q0(t0[2]),Q0(t0[3])}function I0(S0){C.push(ze[S0*3+0]),C.push(ze[S0*3+1]),C.push(ze[S0*3+2])}function Q0(S0){w.push(S0.x),w.push(S0.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),n=this.parameters.shapes,r=this.parameters.options;return Rt$1(n,r,e)}static fromJSON(e,n){const r=[];for(let w=0,E=e.shapes.length;w<E;w++){const O=n[e.shapes[w]];r.push(O)}const C=e.options.extrudePath;return C!==void 0&&(e.options.extrudePath=new Bt[C.type]().fromJSON(C)),new zn(r,e.options)}};const Ot$1={generateTopUV:function(v,e,n,r,C){const w=e[n*3],E=e[n*3+1],O=e[r*3],le=e[r*3+1],fe=e[C*3],Se=e[C*3+1];return[new Vector2(w,E),new Vector2(O,le),new Vector2(fe,Se)]},generateSideWallUV:function(v,e,n,r,C,w){const E=e[n*3],O=e[n*3+1],le=e[n*3+2],fe=e[r*3],Se=e[r*3+1],ze=e[r*3+2],ke=e[C*3],Fe=e[C*3+1],mt=e[C*3+2],Lt=e[w*3],bt=e[w*3+1],Ue=e[w*3+2];return Math.abs(O-Se)<Math.abs(E-fe)?[new Vector2(E,1-le),new Vector2(fe,1-ze),new Vector2(ke,1-mt),new Vector2(Lt,1-Ue)]:[new Vector2(O,1-le),new Vector2(Se,1-ze),new Vector2(Fe,1-mt),new Vector2(bt,1-Ue)]}};function Rt$1(v,e,n){if(n.shapes=[],Array.isArray(v))for(let r=0,C=v.length;r<C;r++){const w=v[r];n.shapes.push(w.uuid)}else n.shapes.push(v.uuid);return n.options=Object.assign({},e),e.extrudePath!==void 0&&(n.options.extrudePath=e.extrudePath.toJSON()),n}class Ut extends K$1{constructor(e,n){super(e,n);const r=new Brush(new K$1(e,ue$1(z$2({},n),{hasTop:!0,hasSide:!0,hasBottom:!1})));r.updateMatrixWorld();const C=new Box3().setFromObject(r),w=new Vector3;C.getSize(w);const E=new Vector3(C.min.x+w.x/2,C.min.y+w.y/2,0);let O=n.topSegments,le=n.box3;if(le){le=le.union(C);const bt=new Vector3;le.getSize(bt);const Ue=Math.max(w.x/bt.x,w.y/bt.y);O=Math.ceil(n.topSegments*Ue)}if(O<4)return this;const fe=new PlaneGeometry(w.x,w.y,O,O),Se=new Brush(fe);Se.position.set(E.x,E.y,E.z),Se.updateMatrixWorld();const ze=new Evaluator().evaluate(Se,r,INTERSECTION),ke=ze.geometry.getAttribute("position"),Fe=new Float32BufferAttribute(ke.count*2,2);for(let bt=0;bt<ke.count;bt++){const Ue=ke.getZ(bt);ke.setZ(bt,n.depth+Ue)}if(le){const bt=le.min,Ue=le.max,Gt=new Vector3().subVectors(Ue,bt);for(let xt=0;xt<ke.count;xt++){const Xt=ke.getX(xt),Zt=ke.getY(xt),wt=(Xt-bt.x)/Gt.x,Vt=(Zt-bt.y)/Gt.y;Fe.setXY(xt,wt,Vt)}ze.geometry.setAttribute("uv",Fe)}ke.needsUpdate=!0;const mt=new K$1(e,ue$1(z$2({},n),{hasTop:!1})),Lt=V$1([ze.geometry,mt],2);this.copy(Lt.toNonIndexed())}}const Ve$1=v=>{const{split:e,depth:n,points:r,box3:C,hasTop:w,hasBottom:E,hasSide:O,sideRepeat:le,topSegments:fe}=v,Se=fe?Ut:K$1,ze=new Se(new Shape(r),{depth:n,bevelEnabled:!1,box3:C,UVGenerator:R$1({split:e,box3:C,sideRepeat:le}),hasTop:w,hasBottom:E,hasSide:O,topSegments:fe});return P$1(),ze};class Qt extends pe$1{constructor(e){super(),this.options=z$2({depth:1},e)}create(){return oe$1(this,null,function*(){const{points:e,pointsArr:n,useGroups:r,depth:C,geometry:w,geometryArr:E,material:O,box3:le,split:fe,hasTop:Se,hasBottom:ze,hasSide:ke}=this.options,Fe=Array.isArray(C)?C:[C],mt=Array.isArray(le)?le:[le],Lt=O;let bt=w;Lt||console.log("material is null"),!bt&&e?bt=Ve$1({points:e,depth:Fe[0],box3:mt[0],split:fe,hasTop:Se,hasBottom:ze,hasSide:ke}):!bt&&n?bt=V$1(n.map((Ue,Gt)=>{var xt,Xt;return Ve$1({points:Ue,depth:(xt=Fe[Gt])!=null?xt:Fe[0],box3:(Xt=mt[Gt])!=null?Xt:mt[0],split:fe,hasTop:Se,hasBottom:ze,hasSide:ke})}),r!=null?r:0):!bt&&E&&E.length>1?bt=V$1(E,r!=null?r:0):!bt&&E&&E.length===1&&([bt]=E),this.createMesh(bt,Lt)})}addGeometries(e){const n=this.object3d,r=V$1([n.geometry,...e]);n.geometry=r}setTextureAnisotropic(e,n){e.anisotropy=n||this.pencil.renderer.capabilities.getMaxAnisotropy()}}class en extends pe$1{create(){this.createGroup()}}class tn extends pe$1{constructor(e){super(),this.rectAreaLightUniformsLibInit=!1,this.options=e}create(){var e,n,r,C,w,E,O,le,fe,Se,ze,ke,Fe,mt,Lt,bt,Ue;const Gt=this.options;if(Gt.type==="AmbientLight"){const xt=new AmbientLight(Gt.color);xt.name="环境光",this.object3d=xt}else if(Gt.type==="DirectionalLight"){const xt=new DirectionalLight(Gt.color,Gt.intensity);xt.name="平行光",xt.target.position.set(0,0,0),this.object3d=xt,xt.target.name="平行光目标",xt.shadow.camera.name="平行光阴影相机",xt.shadow.camera.userData.directionalLightShadow=!0,this.directionalLight=xt}else if(Gt.type==="PointLight"){const xt=new PointLight((e=Gt.color)!=null?e:16777215,(n=Gt.intensity)!=null?n:1,(r=Gt.distance)!=null?r:0,(C=Gt.decay)!=null?C:2);xt.name="点光源",this.object3d=xt,this.pointLight=xt}else if(Gt.type==="SpotLight"){const xt=new SpotLight((w=Gt.color)!=null?w:16777215,(E=Gt.intensity)!=null?E:1,(O=Gt.distance)!=null?O:0,(le=Gt.angle)!=null?le:Math.PI/3,(fe=Gt.penumbra)!=null?fe:1,(Se=Gt.decay)!=null?Se:2);xt.name="聚光灯",this.object3d=xt,this.spotLight=xt,xt.target.name="聚光灯目标"}else if(Gt.type==="HemisphereLight"){const xt=new HemisphereLight((ze=Gt.color)!=null?ze:16777215,(ke=Gt.groundColor)!=null?ke:16777215,(Fe=Gt.intensity)!=null?Fe:1);xt.name="半球光",this.object3d=xt,this.hemisphereLight=xt}else if(Gt.type==="RectAreaLight"){this.rectAreaLightUniformsLibInit||(RectAreaLightUniformsLib.init(),this.rectAreaLightUniformsLibInit=!0);const xt=new RectAreaLight((mt=Gt.color)!=null?mt:16777215,(Lt=Gt.intensity)!=null?Lt:1,(bt=Gt.width)!=null?bt:10,(Ue=Gt.height)!=null?Ue:10);xt.name="矩形区域光",this.object3d=xt,this.rectAreaLight=xt}}render(){const e=this.object3d;e.target&&this.pencil.scene.add(e.target);const n=this.pencil.cameraTarget;if(this.spotLight||this.directionalLight){const r=this.spotLight||this.directionalLight;r.position.copy(n),r.target.position.copy(n)}else this.pointLight&&this.pointLight.position.copy(n)}dispose(){const e=this.object3d;e.target&&this.pencil.scene.remove(e.target),super.dispose()}}let Dt$1=class extends BufferGeometry{constructor(e=[],n="none",r){super(),this.type="MeshLineGeometry",this.pointCount=0,this._points=[],this.shape="none",this.shapeFunction=C=>1,this.matrixWorld=new Matrix4,this.shape=n,r&&(this.shapeFunction=r),e.length>0&&this.setPoints(e)}convertToVector3Array(e){if(typeof e[0]=="number"){const n=[],r=e;for(let C=0;C<r.length;C+=3)n.push(new Vector3(r[C],r[C+1],r[C+2]));return n}else return e.map(n=>{if(n instanceof Vector2)return new Vector3(n.x,n.y,0);if(n instanceof Vector3)return n;if(Array.isArray(n)&&n.length===2)return new Vector3(n[0],n[1],0);if(Array.isArray(n)&&n.length===3)return new Vector3(n[0],n[1],n[2])}).filter(Boolean)}setMatrixWorld(e){this.matrixWorld=e}setPoints(e,n){!e||e.length===0||(this._points=this.convertToVector3Array(e),this.pointCount=this._points.length,n&&(this.shapeFunction=n,this.shape="custom"),this.initializeGeometry(),this.updateGeometry())}initializeGeometry(){const e=new BufferAttribute(new Float32Array(this.pointCount*6),3),n=new BufferAttribute(new Float32Array(this.pointCount*6),3),r=new BufferAttribute(new Float32Array(this.pointCount*6),3),C=new BufferAttribute(new Float32Array(this.pointCount*2),1),w=new BufferAttribute(new Float32Array(this.pointCount*2),1),E=new BufferAttribute(new Float32Array(this.pointCount*2),1),O=new BufferAttribute(new Float32Array(this.pointCount*4),2),le=new BufferAttribute(new Uint16Array((this.pointCount-1)*6),1);this.shape==="taper"&&(this.shapeFunction=fe=>1*Math.pow(4*fe*(1-fe),1));for(let fe=0,Se=0,ze=0;fe<this.pointCount;fe+=1,Se+=2,ze+=6){C.setX(Se,fe/this.pointCount),C.setX(Se+1,fe/this.pointCount),w.setX(Se,1),w.setX(Se+1,-1);const ke=this.shape==="none"?1:this.shapeFunction(fe/(this.pointCount-1));E.setX(Se,ke),E.setX(Se+1,ke);const Fe=fe/(this.pointCount-1);if(O.setXY(Se,Fe,0),O.setXY(Se+1,Fe,1),fe<this.pointCount-1){const mt=fe*2;le.setX(ze+0,mt+0),le.setX(ze+1,mt+1),le.setX(ze+2,mt+2),le.setX(ze+3,mt+2),le.setX(ze+4,mt+1),le.setX(ze+5,mt+3)}}this.setAttribute("position",e),this.setAttribute("previous",n),this.setAttribute("next",r),this.setAttribute("counters",C),this.setAttribute("side",w),this.setAttribute("width",E),this.setAttribute("uv",O),this.setIndex(le)}updateGeometry(){if(!this._points[0])return;const e=this.getAttribute("position"),n=this.getAttribute("previous"),r=this.getAttribute("next");let C=0,w=0,E=0;const O=this._points[0];n.setXYZ(w,O.x,O.y,O.z),w+=1,n.setXYZ(w,O.x,O.y,O.z),w+=1;for(let fe=0;fe<this.pointCount;fe++){const Se=this._points[fe];e.setXYZ(C,Se.x,Se.y,Se.z),C+=1,e.setXYZ(C,Se.x,Se.y,Se.z),C+=1,fe<this.pointCount-1&&(n.setXYZ(w,Se.x,Se.y,Se.z),w+=1,n.setXYZ(w,Se.x,Se.y,Se.z),w+=1),fe>0&&fe+1<=this.pointCount&&(r.setXYZ(E,Se.x,Se.y,Se.z),E+=1,r.setXYZ(E,Se.x,Se.y,Se.z),E+=1)}const le=this._points[this.pointCount-1];r.setXYZ(E,le.x,le.y,le.z),E+=1,r.setXYZ(E,le.x,le.y,le.z),E+=1,e.needsUpdate=!0,n.needsUpdate=!0,r.needsUpdate=!0,this.computeBoundingSphere(),this.computeBoundingBox()}get points(){return this._points}set points(e){this.setPoints(e)}updatePoints(e,n){const r=this.convertToVector3Array(e);if(r.length!==this.pointCount){console.warn("MeshLineGeometry: Cannot update points with different length. Use setPoints() instead.");return}this._points=r,n&&(this.shapeFunction=n,this.shape="custom",this.initializeGeometry()),this.updateGeometry()}setShape(e,n){this.shape=e,n&&(this.shapeFunction=n),this._points.length>0&&(this.initializeGeometry(),this.updateGeometry())}};const be$1=v=>{const{setPointWidth:e,nodes:n}=v,r=new Dt$1;return r.setPoints(n,e),r},He$1=new WeakMap,de$1=new Map;let sn=class extends pe$1{constructor(v={}){super(),this.options=z$2({},v)}get material(){var v;return(v=this.object3d)==null?void 0:v.material}create(){return oe$1(this,null,function*(){const{nodes:v,nodesArr:e,geometry:n,geometryArr:r,material:C,useGroups:w,setPointWidth:E,lineWidthArr:O,materialParameters:le}=this.options;let fe=C,Se=n;!fe&&le&&(fe=this.getMaterial(le)),!Se&&v?Se=be$1({nodes:v,setPointWidth:E}):!Se&&e?Se=V$1(e.map((ze,ke)=>{let Fe=E;return!Fe&&O&&(Fe=()=>{var mt;return(mt=O[ke])!=null?mt:O[0]}),be$1({nodes:ze,setPointWidth:Fe})}),w!=null?w:0):!Se&&r&&r.length>1?Se=V$1(r,w!=null?w:0):!Se&&r&&r.length===1&&([Se]=r),this.createMesh(Se,fe)})}setGeometry(v,e){const n=be$1({nodes:v,setPointWidth:e}),r=this.object3d,C=r.geometry;r.geometry=n,C.dispose()}getMaterial(v){const{width:e,height:n}=this.pencil.getSize(),r=new Ot$2(z$2({color:new Color$1("#ffffff")},v));return r.uniforms.resolution.value.set(e,n),r}addGeometries(v){const e=this.object3d,n=V$1([e.geometry,...v]);e.geometry=n}resize(v,e){var n,r;(r=(n=this.material)==null?void 0:n.uniforms)==null||r.resolution.value.set(v,e)}handleMaterialChange(v){if(v){const{width:e,height:n}=this.pencil.getSize();this.resize(e,n)}}animate({duration:v=1e3,delay:e=0,repeat:n=0,lineLoop:r,onRepeat:C,onUpdate:w,onComplete:E,startShow:O}={}){const{offset:le,offsetLoop:fe}=this.material.uniforms,Se=this.pencil.userData.debugLine?de$1:He$1;if(Se.get(this.material)&&this.stopAnimation(),v===0)return;const ze=r!=null?r:!0;le.value.x=1,fe.value=ze&&O?1:0;let ke=0;const Fe=new Tween(le.value).to({x:-1},v).delay(e).repeat(n).onUpdate(({x:mt})=>{ze&&mt<=0&&fe.value===0&&(fe.value=1),w==null||w(mt)}).onRepeat(()=>{ke+=1,C==null||C(ke)}).onComplete(()=>{E==null||E()}).start();Se.set(this.material,Fe),this.material.addEventListener("dispose",()=>{this.stopAnimation()}),this.pencil.userData.debugLine&&console.log("animate",de$1.size)}stopAnimation(){const v=this.pencil.userData.debugLine?de$1:He$1,e=v.get(this.material);e&&(e.stop(),remove(e),v.delete(this.material),this.material.uniforms.offset.value.x=0,this.material.uniforms.offsetLoop.value=1),this.pencil.userData.debugLine&&console.log("stopAnimation",de$1.size)}render(){const{width:v,height:e}=this.pencil.getSize();this.resize(v,e)}};const Xe$1=v=>{const{points:e}=v,n=e.reduce((r,C,w)=>(w<e.length-1&&r.push(C,e[w+1]),r),[]);return new BufferGeometry().setFromPoints(n)};class rn extends pe$1{constructor(e={}){super(),this.options=z$2({},e)}get material(){var e;return(e=this.object3d)==null?void 0:e.material}create(){return oe$1(this,null,function*(){const{points:e,pointsArr:n,geometry:r,geometryArr:C,material:w,useGroups:E,setPointWidth:O,lineWidthArr:le,materialParameters:fe,instanceCount:Se}=this.options;let ze=w,ke=r;!ze&&fe&&(ze=this.getMaterial(fe)),!ke&&e?ke=Xe$1({points:e}):!ke&&n?ke=V$1(n.map(mt=>Xe$1({points:mt})),E!=null?E:0):!ke&&C&&C.length>1?ke=V$1(C,E!=null?E:0):!ke&&C&&C.length===1&&([ke]=C);const Fe=new LineSegmentsGeometry().fromLineSegments(new LineSegments(ke));if(this.pencil.options.WebGPUTHREE){Se&&(Fe.instanceCount=Se);const mt=new _t$1(Fe,ze);mt.computeLineDistances(),this.object3d=mt}else{const mt=new LineSegments2(Fe,ze);mt.computeLineDistances(),this.object3d=mt}})}getMaterial(e){return new LineMaterial(z$2({color:new Color$1("#ffffff")},e))}}class an extends pe$1{constructor(e){super(),this.objectType="Node",this.onNodePointerIndex=[],this.options=z$2({type:"2d"},e)}create(){const{position:e,children:n}=this.options,r=document.createElement("div");this.element=r,n&&r.appendChild(n),this.options.type==="3d"?this.createCSS3DObject(r):this.options.type==="3dSprite"?this.createCSS3DSprite(r):this.createCSS2DObject(r),e&&this.object3d.position.copy(e)}setChildren(e){this.options.children=e,this.element.innerHTML="",this.element.appendChild(e)}showAndEnsureVisible(){const e=this.options.children;e&&(e.style.visibility="hidden",this.show(),setTimeout(()=>{e.style.visibility="",this.ensureVisible()}))}moveElementToViewport(){const e=this.options.children;if(!e)return;const n=e.getBoundingClientRect(),r=window.innerWidth,C=window.innerHeight;let w=0,E=0;n.left<0?w=-n.left:n.right>r&&(w=r-n.right),n.top<0?E=-n.top:n.bottom>C&&(E=C-n.bottom),n.left+w<0&&(w=-n.left),n.top+E<0&&(E=-n.top),(w!==0||E!==0)&&(e.style.transform=`translate(${w}px, ${E}px)`)}ensureVisible(){const e=this.options.children;if(!e)return;e.style.transform&&(e.style.transform="");const n=new IntersectionObserver(r=>{r.forEach(C=>{C.isIntersecting&&(this.moveElementToViewport(),n.disconnect())})});n.observe(e)}onPointerEvent(e,n){const r=this.lead.handlePickNode([this],e,n);this.onNodePointerIndex.push(r)}dispose(){this.onNodePointerIndex.forEach(e=>{this.lead.removePickNode(e)}),super.dispose()}}class Light extends tn{constructor(e){super(e),this.keyType=e.type}update(e,n){var C;super.update(e,n);const r=this.object3d;(C=r.shadow)!=null&&C.camera&&(r.shadow.camera.near!==this.pencil.camera.near&&(r.shadow.camera.near=this.pencil.camera.near),r.shadow.camera.far!==this.pencil.camera.far&&(r.shadow.camera.far=this.pencil.camera.far))}render(){super.render();const e=this.object3d;e.userData=new Proxy({},{set:(w,E,O)=>(E==="keepCamera"&&(O?(this.pencil.render(),this.pencil.camera.attach(e),e.target&&this.pencil.camera.attach(e.target),this.userData.disabledTC=!0):O||(this.pencil.render(),this.lead.group.object3d.attach(e),e.target&&this.lead.scene.object3d.attach(e.target),this.userData.disabledTC=!1)),Reflect.set(w,E,O))}),e.target&&(e.target.userData.light=e);const n=this.object3d;n.isDirectionalLight&&(n.shadow.mapSize.width=1024,n.shadow.mapSize.height=1024);const r=this.object3d;r.isSpotLight&&r.shadow.mapSize.set(1024,1024);const C=this.object3d;C.isPointLight&&(C.shadow.mapSize.width=1024,C.shadow.mapSize.height=1024)}}function getDefaultExportFromCjs(v){return v&&v.__esModule&&Object.prototype.hasOwnProperty.call(v,"default")?v.default:v}var isMergeableObject=function(e){return isNonNullObject(e)&&!isSpecial(e)};function isNonNullObject(v){return!!v&&typeof v=="object"}function isSpecial(v){var e=Object.prototype.toString.call(v);return e==="[object RegExp]"||e==="[object Date]"||isReactElement(v)}var canUseSymbol=typeof Symbol=="function"&&Symbol.for,REACT_ELEMENT_TYPE=canUseSymbol?Symbol.for("react.element"):60103;function isReactElement(v){return v.$$typeof===REACT_ELEMENT_TYPE}function emptyTarget(v){return Array.isArray(v)?[]:{}}function cloneUnlessOtherwiseSpecified(v,e){return e.clone!==!1&&e.isMergeableObject(v)?deepmerge(emptyTarget(v),v,e):v}function defaultArrayMerge(v,e,n){return v.concat(e).map(function(r){return cloneUnlessOtherwiseSpecified(r,n)})}function getMergeFunction(v,e){if(!e.customMerge)return deepmerge;var n=e.customMerge(v);return typeof n=="function"?n:deepmerge}function getEnumerableOwnPropertySymbols(v){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(v).filter(function(e){return Object.propertyIsEnumerable.call(v,e)}):[]}function getKeys(v){return Object.keys(v).concat(getEnumerableOwnPropertySymbols(v))}function propertyIsOnObject(v,e){try{return e in v}catch(n){return!1}}function propertyIsUnsafe(v,e){return propertyIsOnObject(v,e)&&!(Object.hasOwnProperty.call(v,e)&&Object.propertyIsEnumerable.call(v,e))}function mergeObject(v,e,n){var r={};return n.isMergeableObject(v)&&getKeys(v).forEach(function(C){r[C]=cloneUnlessOtherwiseSpecified(v[C],n)}),getKeys(e).forEach(function(C){propertyIsUnsafe(v,C)||(propertyIsOnObject(v,C)&&n.isMergeableObject(e[C])?r[C]=getMergeFunction(C,n)(v[C],e[C],n):r[C]=cloneUnlessOtherwiseSpecified(e[C],n))}),r}function deepmerge(v,e,n){n=n||{},n.arrayMerge=n.arrayMerge||defaultArrayMerge,n.isMergeableObject=n.isMergeableObject||isMergeableObject,n.cloneUnlessOtherwiseSpecified=cloneUnlessOtherwiseSpecified;var r=Array.isArray(e),C=Array.isArray(v),w=r===C;return w?r?n.arrayMerge(v,e,n):mergeObject(v,e,n):cloneUnlessOtherwiseSpecified(e,n)}deepmerge.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(r,C){return deepmerge(r,C,n)},{})};var deepmerge_1=deepmerge,cjs=deepmerge_1;const Dt=getDefaultExportFromCjs(cjs);class Panel{constructor(e,n,r){this.id=0,this.name=e,this.fg=n,this.bg=r,this.gradient=null,this.PR=Math.round(window.devicePixelRatio||1),this.WIDTH=90*this.PR,this.HEIGHT=48*this.PR,this.TEXT_X=3*this.PR,this.TEXT_Y=2*this.PR,this.GRAPH_X=3*this.PR,this.GRAPH_Y=15*this.PR,this.GRAPH_WIDTH=84*this.PR,this.GRAPH_HEIGHT=30*this.PR,this.canvas=document.createElement("canvas"),this.canvas.width=this.WIDTH,this.canvas.height=this.HEIGHT,this.canvas.style.width="90px",this.canvas.style.height="48px",this.canvas.style.position="absolute",this.canvas.style.cssText="width:90px;height:48px;background-color: transparent !important;",this.context=this.canvas.getContext("2d"),this.initializeCanvas()}createGradient(){if(!this.context)throw new Error("No context");const e=this.context.createLinearGradient(0,this.GRAPH_Y,0,this.GRAPH_Y+this.GRAPH_HEIGHT);let n;const r=this.fg;switch(this.fg.toLowerCase()){case"#0ff":n="#006666";break;case"#0f0":n="#006600";break;case"#ff0":n="#666600";break;case"#e1e1e1":n="#666666";break;default:n=this.bg;break}return e.addColorStop(0,n),e.addColorStop(1,r),e}initializeCanvas(){this.context&&(this.context.imageSmoothingEnabled=!1,this.context.font="bold "+9*this.PR+"px Helvetica,Arial,sans-serif",this.context.textBaseline="top",this.gradient=this.createGradient(),this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.HEIGHT),this.context.fillStyle=this.fg,this.context.fillText(this.name,this.TEXT_X,this.TEXT_Y),this.context.fillStyle=this.bg,this.context.globalAlpha=.9,this.context.fillRect(this.GRAPH_X,this.GRAPH_Y,this.GRAPH_WIDTH,this.GRAPH_HEIGHT))}update(e,n,r=0){if(!this.context||!this.gradient)return;const C=Math.min(1/0,e),w=Math.max(n,e);this.context.globalAlpha=1,this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.GRAPH_Y),this.context.fillStyle=this.fg,this.context.fillText(`${e.toFixed(r)} ${this.name} (${C.toFixed(r)}-${parseFloat(w.toFixed(r))})`,this.TEXT_X,this.TEXT_Y)}updateGraph(e,n){if(!this.context||!this.gradient)return;e===0&&n===0&&(n=1),n=Math.max(n,e,.1),e=Math.max(e,0);const r=Math.round(this.GRAPH_X),C=Math.round(this.GRAPH_Y),w=Math.round(this.GRAPH_WIDTH),E=Math.round(this.GRAPH_HEIGHT),O=Math.round(this.PR);this.context.drawImage(this.canvas,r+O,C,w-O,E,r,C,w-O,E),this.context.fillStyle=this.bg,this.context.fillRect(r+w-O,C,O,E);const le=Math.min(E,Math.round(e/n*E));le>0&&(this.context.globalAlpha=.9,this.context.fillStyle=this.gradient,this.context.fillRect(r+w-O,C+(E-le),O,le)),this.context.globalAlpha=1}}class PanelVSync extends Panel{constructor(e,n,r){super(e,n,r),this.vsyncValue=0,this.SMALL_HEIGHT=9*this.PR,this.HEIGHT=this.SMALL_HEIGHT,this.WIDTH=35*this.PR,this.TEXT_Y=0*this.PR,this.canvas.height=this.HEIGHT,this.canvas.width=this.WIDTH,this.canvas.style.height="9px",this.canvas.style.width="35px",this.canvas.style.cssText=`
|
|
4350
4350
|
width: 35px;
|
|
4351
4351
|
height: 9px;
|
|
4352
4352
|
position: absolute;
|