UNPKG

mapillary-js

Version:

WebGL JavaScript library for displaying street level imagery from mapillary.com

1 lines 1.75 MB
(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.Mapillary=e()}})(function(){var o,e,t;return function o(a,s,u){function c(r,e){if(!s[r]){if(!a[r]){var t=typeof require=="function"&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=s[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return c(t?t:e)},i,i.exports,o,a,s,u)}return s[r].exports}var l=typeof require=="function"&&require;for(var e=0;e<u.length;e++)c(u[e]);return c}({1:[function(e,t,r){"use strict";var b=e("tinyqueue");t.exports=n;t.exports.default=n;function n(e,t,r){t=t||1;var n,i,o,a;for(var s=0;s<e[0].length;s++){var u=e[0][s];if(!s||u[0]<n)n=u[0];if(!s||u[1]<i)i=u[1];if(!s||u[0]>o)o=u[0];if(!s||u[1]>a)a=u[1]}var c=o-n;var l=a-i;var h=Math.min(c,l);var p=h/2;var f=new b(null,x);if(h===0)return[n,i];for(var d=n;d<o;d+=h){for(var v=i;v<a;v+=h){f.push(new w(d+p,v+p,p,e))}}var m=S(e);var g=new w(n+c/2,i+l/2,0,e);if(g.d>m.d)m=g;var _=f.length;while(f.length){var y=f.pop();if(y.d>m.d){m=y;if(r)console.log("found best %d after %d probes",Math.round(1e4*y.d)/1e4,_)}if(y.max-m.d<=t)continue;p=y.h/2;f.push(new w(y.x-p,y.y-p,p,e));f.push(new w(y.x+p,y.y-p,p,e));f.push(new w(y.x-p,y.y+p,p,e));f.push(new w(y.x+p,y.y+p,p,e));_+=4}if(r){console.log("num probes: "+_);console.log("best distance: "+m.d)}return[m.x,m.y]}function x(e,t){return t.max-e.max}function w(e,t,r,n){this.x=e;this.y=t;this.h=r;this.d=i(e,t,n);this.max=this.d+this.h*Math.SQRT2}function i(e,t,r){var n=false;var i=Infinity;for(var o=0;o<r.length;o++){var a=r[o];for(var s=0,u=a.length,c=u-1;s<u;c=s++){var l=a[s];var h=a[c];if(l[1]>t!==h[1]>t&&e<(h[0]-l[0])*(t-l[1])/(h[1]-l[1])+l[0])n=!n;i=Math.min(i,p(e,t,l,h))}}return(n?1:-1)*Math.sqrt(i)}function S(e){var t=0;var r=0;var n=0;var i=e[0];for(var o=0,a=i.length,s=a-1;o<a;s=o++){var u=i[o];var c=i[s];var l=u[0]*c[1]-c[0]*u[1];r+=(u[0]+c[0])*l;n+=(u[1]+c[1])*l;t+=l*3}if(t===0)return new w(i[0][0],i[0][1],0,e);return new w(r/t,n/t,0,e)}function p(e,t,r,n){var i=r[0];var o=r[1];var a=n[0]-i;var s=n[1]-o;if(a!==0||s!==0){var u=((e-i)*a+(t-o)*s)/(a*a+s*s);if(u>1){i=n[0];o=n[1]}else if(u>0){i+=a*u;o+=s*u}}a=e-i;s=t-o;return a*a+s*s}},{tinyqueue:243}],2:[function(e,t,r){t.exports=n;function n(e,t,r,n){this.cx=3*e;this.bx=3*(r-e)-this.cx;this.ax=1-this.cx-this.bx;this.cy=3*t;this.by=3*(n-t)-this.cy;this.ay=1-this.cy-this.by;this.p1x=e;this.p1y=n;this.p2x=r;this.p2y=n}n.prototype.sampleCurveX=function(e){return((this.ax*e+this.bx)*e+this.cx)*e};n.prototype.sampleCurveY=function(e){return((this.ay*e+this.by)*e+this.cy)*e};n.prototype.sampleCurveDerivativeX=function(e){return(3*this.ax*e+2*this.bx)*e+this.cx};n.prototype.solveCurveX=function(e,t){if(typeof t==="undefined")t=1e-6;var r,n,i,o,a;for(i=e,a=0;a<8;a++){o=this.sampleCurveX(i)-e;if(Math.abs(o)<t)return i;var s=this.sampleCurveDerivativeX(i);if(Math.abs(s)<1e-6)break;i=i-o/s}r=0;n=1;i=e;if(i<r)return r;if(i>n)return n;while(r<n){o=this.sampleCurveX(i);if(Math.abs(o-e)<t)return i;if(e>o){r=i}else{n=i}i=(n-r)*.5+r}return i};n.prototype.solve=function(e,t){return this.sampleCurveY(this.solveCurveX(e,t))}},{}],3:[function(e,t,r){"use strict";r.byteLength=a;r.toByteArray=s;r.fromByteArray=d;var c=[];var u=[];var l=typeof Uint8Array!=="undefined"?Uint8Array:Array;var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,o=n.length;i<o;++i){c[i]=n[i];u[n.charCodeAt(i)]=i}u["-".charCodeAt(0)]=62;u["_".charCodeAt(0)]=63;function h(e){var t=e.length;if(t%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}return e[t-2]==="="?2:e[t-1]==="="?1:0}function a(e){return e.length*3/4-h(e)}function s(e){var t,r,n,i,o;var a=e.length;i=h(e);o=new l(a*3/4-i);r=i>0?a-4:a;var s=0;for(t=0;t<r;t+=4){n=u[e.charCodeAt(t)]<<18|u[e.charCodeAt(t+1)]<<12|u[e.charCodeAt(t+2)]<<6|u[e.charCodeAt(t+3)];o[s++]=n>>16&255;o[s++]=n>>8&255;o[s++]=n&255}if(i===2){n=u[e.charCodeAt(t)]<<2|u[e.charCodeAt(t+1)]>>4;o[s++]=n&255}else if(i===1){n=u[e.charCodeAt(t)]<<10|u[e.charCodeAt(t+1)]<<4|u[e.charCodeAt(t+2)]>>2;o[s++]=n>>8&255;o[s++]=n&255}return o}function p(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[e&63]}function f(e,t,r){var n;var i=[];for(var o=t;o<r;o+=3){n=(e[o]<<16)+(e[o+1]<<8)+e[o+2];i.push(p(n))}return i.join("")}function d(e){var t;var r=e.length;var n=r%3;var i="";var o=[];var a=16383;for(var s=0,u=r-n;s<u;s+=a){o.push(f(e,s,s+a>u?u:s+a))}if(n===1){t=e[r-1];i+=c[t>>2];i+=c[t<<4&63];i+="=="}else if(n===2){t=(e[r-2]<<8)+e[r-1];i+=c[t>>10];i+=c[t>>4&63];i+=c[t<<2&63];i+="="}o.push(i);return o.join("")}},{}],4:[function(e,t,r){},{}],5:[function(e,t,r){t.exports=function e(l){var h=String.prototype.split,p=/()??/.exec("")[1]===l,t;t=function(e,t,r){if(Object.prototype.toString.call(t)!=="[object RegExp]"){return h.call(e,t,r)}var n=[],i=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.extended?"x":"")+(t.sticky?"y":""),o=0,t=new RegExp(t.source,i+"g"),a,s,u,c;e+="";if(!p){a=new RegExp("^"+t.source+"$(?!\\s)",i)}r=r===l?-1>>>0:r>>>0;while(s=t.exec(e)){u=s.index+s[0].length;if(u>o){n.push(e.slice(o,s.index));if(!p&&s.length>1){s[0].replace(a,function(){for(var e=1;e<arguments.length-2;e++){if(arguments[e]===l){s[e]=l}}})}if(s.length>1&&s.index<e.length){Array.prototype.push.apply(n,s.slice(1))}c=s[0].length;o=u;if(n.length>=r){break}}if(t.lastIndex===s.index){t.lastIndex++}}if(o===e.length){if(c||!t.test("")){n.push("")}}else{n.push(e.slice(o))}return n.length>r?n.slice(0,r):n};return t}()},{}],6:[function(e,t,n){"use strict";var i=e("base64-js");var o=e("ieee754");n.Buffer=p;n.SlowBuffer=_;n.INSPECT_MAX_BYTES=50;var r=2147483647;n.kMaxLength=r;p.TYPED_ARRAY_SUPPORT=a();if(!p.TYPED_ARRAY_SUPPORT&&typeof console!=="undefined"&&typeof console.error==="function"){console.error("This browser lacks typed array (Uint8Array) support which is required by "+"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}function a(){try{var e=new Uint8Array(1);e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return e.foo()===42}catch(e){return false}}Object.defineProperty(p.prototype,"parent",{enumerable:true,get:function(){if(!p.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(p.prototype,"offset",{enumerable:true,get:function(){if(!p.isBuffer(this))return undefined;return this.byteOffset}});function s(e){if(e>r){throw new RangeError('The value "'+e+'" is invalid for option "size"')}var t=new Uint8Array(e);t.__proto__=p.prototype;return t}function p(e,t,r){if(typeof e==="number"){if(typeof t==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return h(e)}return u(e,t,r)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&p[Symbol.species]===p){Object.defineProperty(p,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}p.poolSize=8192;function u(e,t,r){if(typeof e==="string"){return f(e,t)}if(ArrayBuffer.isView(e)){return d(e)}if(e==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof e)}if(Z(e,ArrayBuffer)||e&&Z(e.buffer,ArrayBuffer)){return v(e,t,r)}if(typeof e==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var n=e.valueOf&&e.valueOf();if(n!=null&&n!==e){return p.from(n,t,r)}var i=m(e);if(i)return i;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]==="function"){return p.from(e[Symbol.toPrimitive]("string"),t,r)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof e)}p.from=function(e,t,r){return u(e,t,r)};p.prototype.__proto__=Uint8Array.prototype;p.__proto__=Uint8Array;function c(e){if(typeof e!=="number"){throw new TypeError('"size" argument must be of type number')}else if(e<0){throw new RangeError('The value "'+e+'" is invalid for option "size"')}}function l(e,t,r){c(e);if(e<=0){return s(e)}if(t!==undefined){return typeof r==="string"?s(e).fill(t,r):s(e).fill(t)}return s(e)}p.alloc=function(e,t,r){return l(e,t,r)};function h(e){c(e);return s(e<0?0:g(e)|0)}p.allocUnsafe=function(e){return h(e)};p.allocUnsafeSlow=function(e){return h(e)};function f(e,t){if(typeof t!=="string"||t===""){t="utf8"}if(!p.isEncoding(t)){throw new TypeError("Unknown encoding: "+t)}var r=y(e,t)|0;var n=s(r);var i=n.write(e,t);if(i!==r){n=n.slice(0,i)}return n}function d(e){var t=e.length<0?0:g(e.length)|0;var r=s(t);for(var n=0;n<t;n+=1){r[n]=e[n]&255}return r}function v(e,t,r){if(t<0||e.byteLength<t){throw new RangeError('"offset" is outside of buffer bounds')}if(e.byteLength<t+(r||0)){throw new RangeError('"length" is outside of buffer bounds')}var n;if(t===undefined&&r===undefined){n=new Uint8Array(e)}else if(r===undefined){n=new Uint8Array(e,t)}else{n=new Uint8Array(e,t,r)}n.__proto__=p.prototype;return n}function m(e){if(p.isBuffer(e)){var t=g(e.length)|0;var r=s(t);if(r.length===0){return r}e.copy(r,0,0,t);return r}if(e.length!==undefined){if(typeof e.length!=="number"||J(e.length)){return s(0)}return d(e)}if(e.type==="Buffer"&&Array.isArray(e.data)){return d(e.data)}}function g(e){if(e>=r){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+r.toString(16)+" bytes")}return e|0}function _(e){if(+e!=e){e=0}return p.alloc(+e)}p.isBuffer=function e(t){return t!=null&&t._isBuffer===true&&t!==p.prototype};p.compare=function e(t,r){if(Z(t,Uint8Array))t=p.from(t,t.offset,t.byteLength);if(Z(r,Uint8Array))r=p.from(r,r.offset,r.byteLength);if(!p.isBuffer(t)||!p.isBuffer(r)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(t===r)return 0;var n=t.length;var i=r.length;for(var o=0,a=Math.min(n,i);o<a;++o){if(t[o]!==r[o]){n=t[o];i=r[o];break}}if(n<i)return-1;if(i<n)return 1;return 0};p.isEncoding=function e(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};p.concat=function e(t,r){if(!Array.isArray(t)){throw new TypeError('"list" argument must be an Array of Buffers')}if(t.length===0){return p.alloc(0)}var n;if(r===undefined){r=0;for(n=0;n<t.length;++n){r+=t[n].length}}var i=p.allocUnsafe(r);var o=0;for(n=0;n<t.length;++n){var a=t[n];if(Z(a,Uint8Array)){a=p.from(a)}if(!p.isBuffer(a)){throw new TypeError('"list" argument must be an Array of Buffers')}a.copy(i,o);o+=a.length}return i};function y(e,t){if(p.isBuffer(e)){return e.length}if(ArrayBuffer.isView(e)||Z(e,ArrayBuffer)){return e.byteLength}if(typeof e!=="string"){throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. '+"Received type "+typeof e)}var r=e.length;var n=arguments.length>2&&arguments[2]===true;if(!n&&r===0)return 0;var i=false;for(;;){switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return Y(e).length;default:if(i){return n?-1:q(e).length}t=(""+t).toLowerCase();i=true}}}p.byteLength=y;function b(e,t,r){var n=false;if(t===undefined||t<0){t=0}if(t>this.length){return""}if(r===undefined||r>this.length){r=this.length}if(r<=0){return""}r>>>=0;t>>>=0;if(r<=t){return""}if(!e)e="utf8";while(true){switch(e){case"hex":return I(this,t,r);case"utf8":case"utf-8":return j(this,t,r);case"ascii":return L(this,t,r);case"latin1":case"binary":return N(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase();n=true}}}p.prototype._isBuffer=true;function x(e,t,r){var n=e[t];e[t]=e[r];e[r]=n}p.prototype.swap16=function e(){var t=this.length;if(t%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var r=0;r<t;r+=2){x(this,r,r+1)}return this};p.prototype.swap32=function e(){var t=this.length;if(t%4!==0){throw new RangeError("Buffer size must be a multiple of 32-bits")}for(var r=0;r<t;r+=4){x(this,r,r+3);x(this,r+1,r+2)}return this};p.prototype.swap64=function e(){var t=this.length;if(t%8!==0){throw new RangeError("Buffer size must be a multiple of 64-bits")}for(var r=0;r<t;r+=8){x(this,r,r+7);x(this,r+1,r+6);x(this,r+2,r+5);x(this,r+3,r+4)}return this};p.prototype.toString=function e(){var t=this.length;if(t===0)return"";if(arguments.length===0)return j(this,0,t);return b.apply(this,arguments)};p.prototype.toLocaleString=p.prototype.toString;p.prototype.equals=function e(t){if(!p.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(this===t)return true;return p.compare(this,t)===0};p.prototype.inspect=function e(){var t="";var r=n.INSPECT_MAX_BYTES;t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim();if(this.length>r)t+=" ... ";return"<Buffer "+t+">"};p.prototype.compare=function e(t,r,n,i,o){if(Z(t,Uint8Array)){t=p.from(t,t.offset,t.byteLength)}if(!p.isBuffer(t)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof t)}if(r===undefined){r=0}if(n===undefined){n=t?t.length:0}if(i===undefined){i=0}if(o===undefined){o=this.length}if(r<0||n>t.length||i<0||o>this.length){throw new RangeError("out of range index")}if(i>=o&&r>=n){return 0}if(i>=o){return-1}if(r>=n){return 1}r>>>=0;n>>>=0;i>>>=0;o>>>=0;if(this===t)return 0;var a=o-i;var s=n-r;var u=Math.min(a,s);var c=this.slice(i,o);var l=t.slice(r,n);for(var h=0;h<u;++h){if(c[h]!==l[h]){a=c[h];s=l[h];break}}if(a<s)return-1;if(s<a)return 1;return 0};function w(e,t,r,n,i){if(e.length===0)return-1;if(typeof r==="string"){n=r;r=0}else if(r>2147483647){r=2147483647}else if(r<-2147483648){r=-2147483648}r=+r;if(J(r)){r=i?0:e.length-1}if(r<0)r=e.length+r;if(r>=e.length){if(i)return-1;else r=e.length-1}else if(r<0){if(i)r=0;else return-1}if(typeof t==="string"){t=p.from(t,n)}if(p.isBuffer(t)){if(t.length===0){return-1}return S(e,t,r,n,i)}else if(typeof t==="number"){t=t&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(i){return Uint8Array.prototype.indexOf.call(e,t,r)}else{return Uint8Array.prototype.lastIndexOf.call(e,t,r)}}return S(e,[t],r,n,i)}throw new TypeError("val must be string, number or Buffer")}function S(e,t,r,n,i){var o=1;var a=e.length;var s=t.length;if(n!==undefined){n=String(n).toLowerCase();if(n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le"){if(e.length<2||t.length<2){return-1}o=2;a/=2;s/=2;r/=2}}function u(e,t){if(o===1){return e[t]}else{return e.readUInt16BE(t*o)}}var c;if(i){var l=-1;for(c=r;c<a;c++){if(u(e,c)===u(t,l===-1?0:c-l)){if(l===-1)l=c;if(c-l+1===s)return l*o}else{if(l!==-1)c-=c-l;l=-1}}}else{if(r+s>a)r=a-s;for(c=r;c>=0;c--){var h=true;for(var p=0;p<s;p++){if(u(e,c+p)!==u(t,p)){h=false;break}}if(h)return c}}return-1}p.prototype.includes=function e(t,r,n){return this.indexOf(t,r,n)!==-1};p.prototype.indexOf=function e(t,r,n){return w(this,t,r,n,true)};p.prototype.lastIndexOf=function e(t,r,n){return w(this,t,r,n,false)};function M(e,t,r,n){r=Number(r)||0;var i=e.length-r;if(!n){n=i}else{n=Number(n);if(n>i){n=i}}var o=t.length;if(n>o/2){n=o/2}for(var a=0;a<n;++a){var s=parseInt(t.substr(a*2,2),16);if(J(s))return a;e[r+a]=s}return a}function C(e,t,r,n){return K(q(t,e.length-r),e,r,n)}function T(e,t,r,n){return K(W(t),e,r,n)}function E(e,t,r,n){return T(e,t,r,n)}function O(e,t,r,n){return K(Y(t),e,r,n)}function P(e,t,r,n){return K(X(t,e.length-r),e,r,n)}p.prototype.write=function e(t,r,n,i){if(r===undefined){i="utf8";n=this.length;r=0}else if(n===undefined&&typeof r==="string"){i=r;n=this.length;r=0}else if(isFinite(r)){r=r>>>0;if(isFinite(n)){n=n>>>0;if(i===undefined)i="utf8"}else{i=n;n=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var o=this.length-r;if(n===undefined||n>o)n=o;if(t.length>0&&(n<0||r<0)||r>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!i)i="utf8";var a=false;for(;;){switch(i){case"hex":return M(this,t,r,n);case"utf8":case"utf-8":return C(this,t,r,n);case"ascii":return T(this,t,r,n);case"latin1":case"binary":return E(this,t,r,n);case"base64":return O(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r,n);default:if(a)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase();a=true}}};p.prototype.toJSON=function e(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(e,t,r){if(t===0&&r===e.length){return i.fromByteArray(e)}else{return i.fromByteArray(e.slice(t,r))}}function j(e,t,r){r=Math.min(e.length,r);var n=[];var i=t;while(i<r){var o=e[i];var a=null;var s=o>239?4:o>223?3:o>191?2:1;if(i+s<=r){var u,c,l,h;switch(s){case 1:if(o<128){a=o}break;case 2:u=e[i+1];if((u&192)===128){h=(o&31)<<6|u&63;if(h>127){a=h}}break;case 3:u=e[i+1];c=e[i+2];if((u&192)===128&&(c&192)===128){h=(o&15)<<12|(u&63)<<6|c&63;if(h>2047&&(h<55296||h>57343)){a=h}}break;case 4:u=e[i+1];c=e[i+2];l=e[i+3];if((u&192)===128&&(c&192)===128&&(l&192)===128){h=(o&15)<<18|(u&63)<<12|(c&63)<<6|l&63;if(h>65535&&h<1114112){a=h}}}}if(a===null){a=65533;s=1}else if(a>65535){a-=65536;n.push(a>>>10&1023|55296);a=56320|a&1023}n.push(a);i+=s}return k(n)}var R=4096;function k(e){var t=e.length;if(t<=R){return String.fromCharCode.apply(String,e)}var r="";var n=0;while(n<t){r+=String.fromCharCode.apply(String,e.slice(n,n+=R))}return r}function L(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i){n+=String.fromCharCode(e[i]&127)}return n}function N(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i){n+=String.fromCharCode(e[i])}return n}function I(e,t,r){var n=e.length;if(!t||t<0)t=0;if(!r||r<0||r>n)r=n;var i="";for(var o=t;o<r;++o){i+=U(e[o])}return i}function D(e,t,r){var n=e.slice(t,r);var i="";for(var o=0;o<n.length;o+=2){i+=String.fromCharCode(n[o]+n[o+1]*256)}return i}p.prototype.slice=function e(t,r){var n=this.length;t=~~t;r=r===undefined?n:~~r;if(t<0){t+=n;if(t<0)t=0}else if(t>n){t=n}if(r<0){r+=n;if(r<0)r=0}else if(r>n){r=n}if(r<t)r=t;var i=this.subarray(t,r);i.__proto__=p.prototype;return i};function B(e,t,r){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}p.prototype.readUIntLE=function e(t,r,n){t=t>>>0;r=r>>>0;if(!n)B(t,r,this.length);var i=this[t];var o=1;var a=0;while(++a<r&&(o*=256)){i+=this[t+a]*o}return i};p.prototype.readUIntBE=function e(t,r,n){t=t>>>0;r=r>>>0;if(!n){B(t,r,this.length)}var i=this[t+--r];var o=1;while(r>0&&(o*=256)){i+=this[t+--r]*o}return i};p.prototype.readUInt8=function e(t,r){t=t>>>0;if(!r)B(t,1,this.length);return this[t]};p.prototype.readUInt16LE=function e(t,r){t=t>>>0;if(!r)B(t,2,this.length);return this[t]|this[t+1]<<8};p.prototype.readUInt16BE=function e(t,r){t=t>>>0;if(!r)B(t,2,this.length);return this[t]<<8|this[t+1]};p.prototype.readUInt32LE=function e(t,r){t=t>>>0;if(!r)B(t,4,this.length);return(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};p.prototype.readUInt32BE=function e(t,r){t=t>>>0;if(!r)B(t,4,this.length);return this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};p.prototype.readIntLE=function e(t,r,n){t=t>>>0;r=r>>>0;if(!n)B(t,r,this.length);var i=this[t];var o=1;var a=0;while(++a<r&&(o*=256)){i+=this[t+a]*o}o*=128;if(i>=o)i-=Math.pow(2,8*r);return i};p.prototype.readIntBE=function e(t,r,n){t=t>>>0;r=r>>>0;if(!n)B(t,r,this.length);var i=r;var o=1;var a=this[t+--i];while(i>0&&(o*=256)){a+=this[t+--i]*o}o*=128;if(a>=o)a-=Math.pow(2,8*r);return a};p.prototype.readInt8=function e(t,r){t=t>>>0;if(!r)B(t,1,this.length);if(!(this[t]&128))return this[t];return(255-this[t]+1)*-1};p.prototype.readInt16LE=function e(t,r){t=t>>>0;if(!r)B(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};p.prototype.readInt16BE=function e(t,r){t=t>>>0;if(!r)B(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};p.prototype.readInt32LE=function e(t,r){t=t>>>0;if(!r)B(t,4,this.length);return this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};p.prototype.readInt32BE=function e(t,r){t=t>>>0;if(!r)B(t,4,this.length);return this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};p.prototype.readFloatLE=function e(t,r){t=t>>>0;if(!r)B(t,4,this.length);return o.read(this,t,true,23,4)};p.prototype.readFloatBE=function e(t,r){t=t>>>0;if(!r)B(t,4,this.length);return o.read(this,t,false,23,4)};p.prototype.readDoubleLE=function e(t,r){t=t>>>0;if(!r)B(t,8,this.length);return o.read(this,t,true,52,8)};p.prototype.readDoubleBE=function e(t,r){t=t>>>0;if(!r)B(t,8,this.length);return o.read(this,t,false,52,8)};function F(e,t,r,n,i,o){if(!p.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}p.prototype.writeUIntLE=function e(t,r,n,i){t=+t;r=r>>>0;n=n>>>0;if(!i){var o=Math.pow(2,8*n)-1;F(this,t,r,n,o,0)}var a=1;var s=0;this[r]=t&255;while(++s<n&&(a*=256)){this[r+s]=t/a&255}return r+n};p.prototype.writeUIntBE=function e(t,r,n,i){t=+t;r=r>>>0;n=n>>>0;if(!i){var o=Math.pow(2,8*n)-1;F(this,t,r,n,o,0)}var a=n-1;var s=1;this[r+a]=t&255;while(--a>=0&&(s*=256)){this[r+a]=t/s&255}return r+n};p.prototype.writeUInt8=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,1,255,0);this[r]=t&255;return r+1};p.prototype.writeUInt16LE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,2,65535,0);this[r]=t&255;this[r+1]=t>>>8;return r+2};p.prototype.writeUInt16BE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,2,65535,0);this[r]=t>>>8;this[r+1]=t&255;return r+2};p.prototype.writeUInt32LE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,4,4294967295,0);this[r+3]=t>>>24;this[r+2]=t>>>16;this[r+1]=t>>>8;this[r]=t&255;return r+4};p.prototype.writeUInt32BE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,4,4294967295,0);this[r]=t>>>24;this[r+1]=t>>>16;this[r+2]=t>>>8;this[r+3]=t&255;return r+4};p.prototype.writeIntLE=function e(t,r,n,i){t=+t;r=r>>>0;if(!i){var o=Math.pow(2,8*n-1);F(this,t,r,n,o-1,-o)}var a=0;var s=1;var u=0;this[r]=t&255;while(++a<n&&(s*=256)){if(t<0&&u===0&&this[r+a-1]!==0){u=1}this[r+a]=(t/s>>0)-u&255}return r+n};p.prototype.writeIntBE=function e(t,r,n,i){t=+t;r=r>>>0;if(!i){var o=Math.pow(2,8*n-1);F(this,t,r,n,o-1,-o)}var a=n-1;var s=1;var u=0;this[r+a]=t&255;while(--a>=0&&(s*=256)){if(t<0&&u===0&&this[r+a+1]!==0){u=1}this[r+a]=(t/s>>0)-u&255}return r+n};p.prototype.writeInt8=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,1,127,-128);if(t<0)t=255+t+1;this[r]=t&255;return r+1};p.prototype.writeInt16LE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,2,32767,-32768);this[r]=t&255;this[r+1]=t>>>8;return r+2};p.prototype.writeInt16BE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,2,32767,-32768);this[r]=t>>>8;this[r+1]=t&255;return r+2};p.prototype.writeInt32LE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,4,2147483647,-2147483648);this[r]=t&255;this[r+1]=t>>>8;this[r+2]=t>>>16;this[r+3]=t>>>24;return r+4};p.prototype.writeInt32BE=function e(t,r,n){t=+t;r=r>>>0;if(!n)F(this,t,r,4,2147483647,-2147483648);if(t<0)t=4294967295+t+1;this[r]=t>>>24;this[r+1]=t>>>16;this[r+2]=t>>>8;this[r+3]=t&255;return r+4};function z(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function $(e,t,r,n,i){t=+t;r=r>>>0;if(!i){z(e,t,r,4,34028234663852886e22,-34028234663852886e22)}o.write(e,t,r,n,23,4);return r+4}p.prototype.writeFloatLE=function e(t,r,n){return $(this,t,r,true,n)};p.prototype.writeFloatBE=function e(t,r,n){return $(this,t,r,false,n)};function G(e,t,r,n,i){t=+t;r=r>>>0;if(!i){z(e,t,r,8,17976931348623157e292,-17976931348623157e292)}o.write(e,t,r,n,52,8);return r+8}p.prototype.writeDoubleLE=function e(t,r,n){return G(this,t,r,true,n)};p.prototype.writeDoubleBE=function e(t,r,n){return G(this,t,r,false,n)};p.prototype.copy=function e(t,r,n,i){if(!p.isBuffer(t))throw new TypeError("argument should be a Buffer");if(!n)n=0;if(!i&&i!==0)i=this.length;if(r>=t.length)r=t.length;if(!r)r=0;if(i>0&&i<n)i=n;if(i===n)return 0;if(t.length===0||this.length===0)return 0;if(r<0){throw new RangeError("targetStart out of bounds")}if(n<0||n>=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");if(i>this.length)i=this.length;if(t.length-r<i-n){i=t.length-r+n}var o=i-n;if(this===t&&typeof Uint8Array.prototype.copyWithin==="function"){this.copyWithin(r,n,i)}else if(this===t&&n<r&&r<i){for(var a=o-1;a>=0;--a){t[a+r]=this[a+n]}}else{Uint8Array.prototype.set.call(t,this.subarray(n,i),r)}return o};p.prototype.fill=function e(t,r,n,i){if(typeof t==="string"){if(typeof r==="string"){i=r;r=0;n=this.length}else if(typeof n==="string"){i=n;n=this.length}if(i!==undefined&&typeof i!=="string"){throw new TypeError("encoding must be a string")}if(typeof i==="string"&&!p.isEncoding(i)){throw new TypeError("Unknown encoding: "+i)}if(t.length===1){var o=t.charCodeAt(0);if(i==="utf8"&&o<128||i==="latin1"){t=o}}}else if(typeof t==="number"){t=t&255}if(r<0||this.length<r||this.length<n){throw new RangeError("Out of range index")}if(n<=r){return this}r=r>>>0;n=n===undefined?this.length:n>>>0;if(!t)t=0;var a;if(typeof t==="number"){for(a=r;a<n;++a){this[a]=t}}else{var s=p.isBuffer(t)?t:p.from(t,i);var u=s.length;if(u===0){throw new TypeError('The value "'+t+'" is invalid for argument "value"')}for(a=0;a<n-r;++a){this[a+r]=s[a%u]}}return this};var V=/[^+/0-9A-Za-z-_]/g;function H(e){e=e.split("=")[0];e=e.trim().replace(V,"");if(e.length<2)return"";while(e.length%4!==0){e=e+"="}return e}function U(e){if(e<16)return"0"+e.toString(16);return e.toString(16)}function q(e,t){t=t||Infinity;var r;var n=e.length;var i=null;var o=[];for(var a=0;a<n;++a){r=e.charCodeAt(a);if(r>55295&&r<57344){if(!i){if(r>56319){if((t-=3)>-1)o.push(239,191,189);continue}else if(a+1===n){if((t-=3)>-1)o.push(239,191,189);continue}i=r;continue}if(r<56320){if((t-=3)>-1)o.push(239,191,189);i=r;continue}r=(i-55296<<10|r-56320)+65536}else if(i){if((t-=3)>-1)o.push(239,191,189)}i=null;if(r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else{throw new Error("Invalid code point")}}return o}function W(e){var t=[];for(var r=0;r<e.length;++r){t.push(e.charCodeAt(r)&255)}return t}function X(e,t){var r,n,i;var o=[];for(var a=0;a<e.length;++a){if((t-=2)<0)break;r=e.charCodeAt(a);n=r>>8;i=r%256;o.push(i);o.push(n)}return o}function Y(e){return i.toByteArray(H(e))}function K(e,t,r,n){for(var i=0;i<n;++i){if(i+r>=t.length||i>=e.length)break;t[i+r]=e[i]}return i}function Z(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function J(e){return e!==e}},{"base64-js":3,ieee754:17}],7:[function(e,t,r){var n=t.exports={};var i;var o;function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){i=setTimeout}else{i=a}}catch(e){i=a}try{if(typeof clearTimeout==="function"){o=clearTimeout}else{o=s}}catch(e){o=s}})();function u(t){if(i===setTimeout){return setTimeout(t,0)}if((i===a||!i)&&setTimeout){i=setTimeout;return setTimeout(t,0)}try{return i(t,0)}catch(e){try{return i.call(null,t,0)}catch(e){return i.call(this,t,0)}}}function c(t){if(o===clearTimeout){return clearTimeout(t)}if((o===s||!o)&&clearTimeout){o=clearTimeout;return clearTimeout(t)}try{return o(t)}catch(e){try{return o.call(null,t)}catch(e){return o.call(this,t)}}}var l=[];var h=false;var p;var f=-1;function d(){if(!h||!p){return}h=false;if(p.length){l=p.concat(l)}else{f=-1}if(l.length){v()}}function v(){if(h){return}var e=u(d);h=true;var t=l.length;while(t){p=l;l=[];while(++f<t){if(p){p[f].run()}}f=-1;t=l.length}p=null;h=false;c(e)}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1){for(var r=1;r<arguments.length;r++){t[r-1]=arguments[r]}}l.push(new m(e,t));if(l.length===1&&!h){u(v)}};function m(e,t){this.fun=e;this.array=t}m.prototype.run=function(){this.fun.apply(null,this.array)};n.title="browser";n.browser=true;n.env={};n.argv=[];n.version="";n.versions={};function g(){}n.on=g;n.addListener=g;n.once=g;n.off=g;n.removeListener=g;n.removeAllListeners=g;n.emit=g;n.prependListener=g;n.prependOnceListener=g;n.listeners=function(e){return[]};n.binding=function(e){throw new Error("process.binding is not supported")};n.cwd=function(){return"/"};n.chdir=function(e){throw new Error("process.chdir is not supported")};n.umask=function(){return 0}},{}],8:[function(e,t,r){"use strict";t.exports=n;t.exports.default=n;function n(e,t,r){r=r||2;var n=t&&t.length,i=n?t[0]*r:e.length,o=v(e,0,i,r,true),a=[];if(!o||o.next===o.prev)return a;var s,u,c,l,h,p,f;if(n)o=g(e,t,o,r);if(e.length>80*r){s=c=e[0];u=l=e[1];for(var d=r;d<i;d+=r){h=e[d];p=e[d+1];if(h<s)s=h;if(p<u)u=p;if(h>c)c=h;if(p>l)l=p}f=Math.max(c-s,l-u);f=f!==0?1/f:0}m(o,a,r,s,u,f);return a}function v(e,t,r,n,i){var o,a;if(i===L(e,t,r,n)>0){for(o=t;o<r;o+=n)a=j(o,e[o],e[o+1],a)}else{for(o=r-n;o>=t;o-=n)a=j(o,e[o],e[o+1],a)}if(a&&s(a,a.next)){R(a);a=a.next}return a}function l(e,t){if(!e)return e;if(!t)t=e;var r=e,n;do{n=false;if(!r.steiner&&(s(r,r.next)||C(r.prev,r,r.next)===0)){R(r);r=t=r.prev;if(r===r.next)break;n=true}else{r=r.next}}while(n||r!==t);return t}function m(e,t,r,n,i,o,a){if(!e)return;if(!a&&o)x(e,n,i,o);var s=e,u,c;while(e.prev!==e.next){u=e.prev;c=e.next;if(o?p(e,n,i,o):h(e)){t.push(u.i/r);t.push(e.i/r);t.push(c.i/r);R(e);e=c.next;s=c.next;continue}e=c;if(e===s){if(!a){m(l(e),t,r,n,i,o,1)}else if(a===1){e=f(l(e),t,r);m(e,t,r,n,i,o,2)}else if(a===2){d(e,t,r,n,i,o)}break}}}function h(e){var t=e.prev,r=e,n=e.next;if(C(t,r,n)>=0)return false;var i=e.next.next;while(i!==e.prev){if(M(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&C(i.prev,i,i.next)>=0)return false;i=i.next}return true}function p(e,t,r,n){var i=e.prev,o=e,a=e.next;if(C(i,o,a)>=0)return false;var s=i.x<o.x?i.x<a.x?i.x:a.x:o.x<a.x?o.x:a.x,u=i.y<o.y?i.y<a.y?i.y:a.y:o.y<a.y?o.y:a.y,c=i.x>o.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,l=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y;var h=w(s,u,t,r,n),p=w(c,l,t,r,n);var f=e.prevZ,d=e.nextZ;while(f&&f.z>=h&&d&&d.z<=p){if(f!==e.prev&&f!==e.next&&M(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&C(f.prev,f,f.next)>=0)return false;f=f.prevZ;if(d!==e.prev&&d!==e.next&&M(i.x,i.y,o.x,o.y,a.x,a.y,d.x,d.y)&&C(d.prev,d,d.next)>=0)return false;d=d.nextZ}while(f&&f.z>=h){if(f!==e.prev&&f!==e.next&&M(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&C(f.prev,f,f.next)>=0)return false;f=f.prevZ}while(d&&d.z<=p){if(d!==e.prev&&d!==e.next&&M(i.x,i.y,o.x,o.y,a.x,a.y,d.x,d.y)&&C(d.prev,d,d.next)>=0)return false;d=d.nextZ}return true}function f(e,t,r){var n=e;do{var i=n.prev,o=n.next.next;if(!s(i,o)&&a(i,n,n.next,o)&&O(i,o)&&O(o,i)){t.push(i.i/r);t.push(n.i/r);t.push(o.i/r);R(n);R(n.next);n=e=o}n=n.next}while(n!==e);return l(n)}function d(e,t,r,n,i,o){var a=e;do{var s=a.next.next;while(s!==a.prev){if(a.i!==s.i&&c(a,s)){var u=A(a,s);a=l(a,a.next);u=l(u,u.next);m(a,t,r,n,i,o);m(u,t,r,n,i,o);return}s=s.next}a=a.next}while(a!==e)}function g(e,t,r,n){var i=[],o,a,s,u,c;for(o=0,a=t.length;o<a;o++){s=t[o]*n;u=o<a-1?t[o+1]*n:e.length;c=v(e,s,u,n,false);if(c===c.next)c.steiner=true;i.push(S(c))}i.sort(_);for(o=0;o<i.length;o++){y(i[o],r);r=l(r,r.next)}return r}function _(e,t){return e.x-t.x}function y(e,t){t=i(e,t);if(t){var r=A(t,e);l(t,t.next);l(r,r.next)}}function i(e,t){var r=t,n=e.x,i=e.y,o=-Infinity,a;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var s=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=n&&s>o){o=s;if(s===n){if(i===r.y)return r;if(i===r.next.y)return r.next}a=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!a)return null;if(n===o)return a;var u=a,c=a.x,l=a.y,h=Infinity,p;r=a;do{if(n>=r.x&&r.x>=c&&n!==r.x&&M(i<l?n:o,i,c,l,i<l?o:n,i,r.x,r.y)){p=Math.abs(i-r.y)/(n-r.x);if(O(r,e)&&(p<h||p===h&&(r.x>a.x||r.x===a.x&&b(a,r)))){a=r;h=p}}r=r.next}while(r!==u);return a}function b(e,t){return C(e.prev,e,t.prev)<0&&C(t.next,e,e.next)<0}function x(e,t,r,n){var i=e;do{if(i.z===null)i.z=w(i.x,i.y,t,r,n);i.prevZ=i.prev;i.nextZ=i.next;i=i.next}while(i!==e);i.prevZ.nextZ=null;i.prevZ=null;o(i)}function o(e){var t,r,n,i,o,a,s,u,c=1;do{r=e;e=null;o=null;a=0;while(r){a++;n=r;s=0;for(t=0;t<c;t++){s++;n=n.nextZ;if(!n)break}u=c;while(s>0||u>0&&n){if(s!==0&&(u===0||!n||r.z<=n.z)){i=r;r=r.nextZ;s--}else{i=n;n=n.nextZ;u--}if(o)o.nextZ=i;else e=i;i.prevZ=o;o=i}r=n}o.nextZ=null;c*=2}while(a>1);return e}function w(e,t,r,n,i){e=32767*(e-r)*i;t=32767*(t-n)*i;e=(e|e<<8)&16711935;e=(e|e<<4)&252645135;e=(e|e<<2)&858993459;e=(e|e<<1)&1431655765;t=(t|t<<8)&16711935;t=(t|t<<4)&252645135;t=(t|t<<2)&858993459;t=(t|t<<1)&1431655765;return e|t<<1}function S(e){var t=e,r=e;do{if(t.x<r.x||t.x===r.x&&t.y<r.y)r=t;t=t.next}while(t!==e);return r}function M(e,t,r,n,i,o,a,s){return(i-a)*(t-s)-(e-a)*(o-s)>=0&&(e-a)*(n-s)-(r-a)*(t-s)>=0&&(r-a)*(o-s)-(i-a)*(n-s)>=0}function c(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!E(e,t)&&(O(e,t)&&O(t,e)&&P(e,t)&&(C(e.prev,e,t.prev)||C(e,t.prev,t))||s(e,t)&&C(e.prev,e,e.next)>0&&C(t.prev,t,t.next)>0)}function C(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function s(e,t){return e.x===t.x&&e.y===t.y}function a(e,t,r,n){var i=T(C(e,t,r));var o=T(C(e,t,n));var a=T(C(r,n,e));var s=T(C(r,n,t));if(i!==o&&a!==s)return true;if(i===0&&u(e,r,t))return true;if(o===0&&u(e,n,t))return true;if(a===0&&u(r,e,n))return true;if(s===0&&u(r,t,n))return true;return false}function u(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function T(e){return e>0?1:e<0?-1:0}function E(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&a(r,r.next,e,t))return true;r=r.next}while(r!==e);return false}function O(e,t){return C(e.prev,e,e.next)<0?C(e,t,e.next)>=0&&C(e,e.prev,t)>=0:C(e,t,e.prev)<0||C(e,e.next,t)<0}function P(e,t){var r=e,n=false,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do{if(r.y>o!==r.next.y>o&&r.next.y!==r.y&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x)n=!n;r=r.next}while(r!==e);return n}function A(e,t){var r=new k(e.i,e.x,e.y),n=new k(t.i,t.x,t.y),i=e.next,o=t.prev;e.next=t;t.prev=e;r.next=i;i.prev=r;n.next=r;r.prev=n;o.next=n;n.prev=o;return n}function j(e,t,r,n){var i=new k(e,t,r);if(!n){i.prev=i;i.next=i}else{i.next=n.next;i.prev=n;n.next.prev=i;n.next=i}return i}function R(e){e.next.prev=e.prev;e.prev.next=e.next;if(e.prevZ)e.prevZ.nextZ=e.nextZ;if(e.nextZ)e.nextZ.prevZ=e.prevZ}function k(e,t,r){this.i=e;this.x=t;this.y=r;this.prev=null;this.next=null;this.z=null;this.prevZ=null;this.nextZ=null;this.steiner=false}n.deviation=function(e,t,r,n){var i=t&&t.length;var o=i?t[0]*r:e.length;var a=Math.abs(L(e,0,o,r));if(i){for(var s=0,u=t.length;s<u;s++){var c=t[s]*r;var l=s<u-1?t[s+1]*r:e.length;a-=Math.abs(L(e,c,l,r))}}var h=0;for(s=0;s<n.length;s+=3){var p=n[s]*r;var f=n[s+1]*r;var d=n[s+2]*r;h+=Math.abs((e[p]-e[d])*(e[f+1]-e[p+1])-(e[p]-e[f])*(e[d+1]-e[p+1]))}return a===0&&h===0?0:Math.abs((h-a)/a)};function L(e,t,r,n){var i=0;for(var o=t,a=r-n;o<r;o+=n){i+=(e[a]-e[o])*(e[o+1]+e[a+1]);a=o}return i}n.flatten=function(e){var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0;for(var i=0;i<e.length;i++){for(var o=0;o<e[i].length;o++){for(var a=0;a<t;a++)r.vertices.push(e[i][o][a])}if(i>0){n+=e[i-1].length;r.holes.push(n)}}return r}},{}],9:[function(e,t,r){"use strict";var n=e("individual/one-version");var i="7";n("ev-store",i);var o="__EV_STORE_KEY@"+i;t.exports=a;function a(e){var t=e[o];if(!t){t=e[o]={}}return t}},{"individual/one-version":19}],10:[function(e,t,r){"use strict";var l=e("./request");var n=e("./buildQueryObject");var i=Array.isArray;function h(e,t){var r;for(r in t){e[r]=t[r]}return e}function o(e,t){this._jsongUrl=e;if(typeof t==="number"){var r={timeout:t};t=r}this._config=h({timeout:15e3,headers:{}},t||{})}o.prototype={constructor:o,buildQueryObject:n,get:function e(t){var r="GET";var n=this.buildQueryObject(this._jsongUrl,r,{paths:t,method:"get"});var i=h(n,this._config);var o=this;return l(r,i,o)},set:function e(t){var r="POST";var n=this.buildQueryObject(this._jsongUrl,r,{jsonGraph:t,method:"set"});var i=h(n,this._config);i.headers["Content-Type"]="application/x-www-form-urlencoded";var o=this;return l(r,i,o)},call:function e(t,r,n,i){r=r||[];n=n||[];i=i||[];var o="POST";var a=[];a.push("method=call");a.push("callPath="+encodeURIComponent(JSON.stringify(t)));a.push("arguments="+encodeURIComponent(JSON.stringify(r)));a.push("pathSuffixes="+encodeURIComponent(JSON.stringify(n)));a.push("paths="+encodeURIComponent(JSON.stringify(i)));var s=this.buildQueryObject(this._jsongUrl,o,a.join("&"));var u=h(s,this._config);u.headers["Content-Type"]="application/x-www-form-urlencoded";var c=this;return l(o,u,c)}};o.XMLHttpSource=o;o["default"]=o;t.exports=o},{"./buildQueryObject":11,"./request":14}],11:[function(e,t,r){"use strict";t.exports=function e(t,r,n){var i=[];var o;var a={url:t};var s=t.indexOf("?")!==-1;var u=s?"&":"?";if(typeof n==="string"){i.push(n)}else{o=Object.keys(n);o.forEach(function(e){var t=typeof n[e]==="object"?JSON.stringify(n[e]):n[e];i.push(e+"="+encodeURIComponent(t))})}if(r==="GET"){a.url+=u+i.join("&")}else{a.data=i.join("&")}return a}},{}],12:[function(e,t,r){(function(r){"use strict";t.exports=function e(){var t=new r.XMLHttpRequest;if("withCredentials"in t){return t}else if(!!r.XDomainRequest){return new XDomainRequest}else{throw new Error("CORS is not supported by your browser")}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],13:[function(e,t,r){(function(i){"use strict";t.exports=function e(){var t,r,n;if(i.XMLHttpRequest){return new i.XMLHttpRequest}else{try{r=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];for(n=0;n<3;n++){try{t=r[n];if(new i.ActiveXObject(t)){break}}catch(e){}}return new i.ActiveXObject(t)}catch(e){throw new Error("XMLHttpRequest is not supported by your browser")}}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],14:[function(e,t,r){"use strict";var h=e("./getXMLHttpRequest");var p=e("./getCORSRequest");var f=Object.prototype.hasOwnProperty;var a=function(){};function n(){}n.create=function(o){var e=new n;e.subscribe=function(e,t,r){var n;var i;if(typeof e==="function"){n={onNext:e,onError:t||a,onCompleted:r||a}}else{n=e}i=o(n);if(typeof i==="function"){return{dispose:i}}else{return i}};return e};function i(u,c,l){return n.create(function e(r){var t={method:u||"GET",crossDomain:false,async:true,headers:{},responseType:"json"};var n,i,o,a,s;for(s in c){if(f.call(c,s)){t[s]=c[s]}}if(!t.crossDomain&&!t.headers["X-Requested-With"]){t.headers["X-Requested-With"]="XMLHttpRequest"}if(l.onBeforeRequest!=null){l.onBeforeRequest(t)}try{n=t.crossDomain?p():h()}catch(e){r.onError(e)}try{if(t.user){n.open(t.method,t.url,t.async,t.user,t.password)}else{n.open(t.method,t.url,t.async)}n.timeout=t.timeout;n.withCredentials=t.withCredentials!==false;o=t.headers;for(a in o){if(f.call(o,a)){n.setRequestHeader(a,o[a])}}if(t.responseType){try{n.responseType=t.responseType}catch(e){if(t.responseType!=="json"){throw e}}}n.onreadystatechange=function e(t){if(n.readyState===4){if(!i){i=true;d(r,n,t)}}};n.ontimeout=function e(t){if(!i){i=true;v(r,n,"timeout error",t)}};n.send(t.data)}catch(e){r.onError(e)}return function e(){if(!i&&n.readyState!==4){i=true;n.abort()}}})}function s(e,t,r){if(!r){r=new Error(t)}e.onError(r)}function d(e,t,r){var n,i,o;if(t&&e){o=t.responseType;n="response"in t?t.response:t.responseText;var a=t.status===1223?204:t.status;if(a>=200&&a<=399){try{if(o!=="json"){n=JSON.parse(n||"")}if(typeof n==="string"){n=JSON.parse(n||"")}}catch(r){s(e,"invalid json",r)}e.onNext(n);e.onCompleted();return}else if(a===401||a===403||a===407){return s(e,n)}else if(a===410){return s(e,n)}else if(a===408||a===504){return s(e,n)}else{return s(e,n||"Response code "+a)}}}function v(e,t,r,n){s(e,r||t.statusText||"request error",n)}t.exports=i},{"./getCORSRequest":12,"./getXMLHttpRequest":13}],15:[function(h,r,i){(function(n){!function(e){if("object"==typeof i&&"undefined"!=typeof r)r.exports=e();else if("function"==typeof o&&o.amd)o([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof n?n:"undefined"!=typeof self?self:this,t.falcor=e()}}(function(){var Ir;return function o(a,s,u){function c(r,e){if(!s[r]){if(!a[r]){var t="function"==typeof h&&h;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=s[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return c(t?t:e)},i,i.exports,o,a,s,u)}return s[r].exports}for(var l="function"==typeof h&&h,e=0;e<u.length;e++)c(u[e]);return c}({1:[function(e,t,r){var n=e(32),i=e(130);n.atom=i.atom,n.ref=i.ref,n.error=i.error,n.pathValue=i.pathValue,n.HttpDataSource=e(125),t.exports=n},{125:125,130:130,32:32}],2:[function(e,t,r){function i(e){var t=e||{};this._root=t._root||new n(t),this._path=t.path||t._path||[],this._scheduler=t.scheduler||t._scheduler||new f,this._source=t.source||t._source,this._request=t.request||t._request||new a(this,this._scheduler),this._ID=E++,"number"==typeof t.maxSize?this._maxSize=t.maxSize:this._maxSize=t._maxSize||i.prototype._maxSize,"number"==typeof t.collectRatio?this._collectRatio=t.collectRatio:this._collectRatio=t._collectRatio||i.prototype._collectRatio,(t.boxed||t.hasOwnProperty("_boxed"))&&(this._boxed=t.boxed||t._boxed),(t.materialized||t.hasOwnProperty("_materialized"))&&(this._materialized=t.materialized||t._materialized),"boolean"==typeof t.treatErrorsAsValues?this._treatErrorsAsValues=t.treatErrorsAsValues:t.hasOwnProperty("_treatErrorsAsValues")&&(this._treatErrorsAsValues=t._treatErrorsAsValues),t.cache&&this.setCache(t.cache)}var n=e(4),o=e(3),a=e(55),s=e(64),u=e(65),c=e(61),l=e(63),h=e(73),p=e(75),f=e(74),d=e(81),v=e(84),m=e(49),g=e(134),_=e(88),y=e(100),b=e(96),x=e(102),w=e(98),S=e(99),M=e(77),C=e(76),T=e(130),E=0,O=e(116),P=function(){},A=e(14),j=e(19),R={pathValue:!0,pathSyntax:!0,json:!0,jsonGraph:!0},k=e(72);t.exports=i,i.ref=T.ref,i.atom=T.atom,i.error=T.error,i.pathValue=T.pathValue,i.prototype.constructor=i,i.prototype._materialized=!1,i.prototype._boxed=!1,i.prototype._progressive=!1,i.prototype._treatErrorsAsValues=!1,i.prototype._maxSize=Math.pow(2,53)-1,i.prototype._collectRatio=.75,i.prototype.get=e(71),i.prototype._getWithPaths=e(70),i.prototype.set=function(){var t=O(arguments,R,"set");return t!==!0?new s(function(e){e.onError(t)}):this._set.apply(this,arguments)},i.prototype.preload=function(){var t=O(arguments,k,"preload");if(t!==!0)return new s(function(e){e.onError(t)});var e=Array.prototype.slice.call(arguments),r=this;return new s(function(t){return r.get.apply(r,e).subscribe(function(){},function(e){t.onError(e)},function(){t.onCompleted()})})},i.prototype._set=function(){var e,t=-1,r=arguments.length,n=arguments[r-1];for(b(n)?r-=1:n=void 0,e=new Array(r);++t<r;)e[t]=arguments[t];return u.create(this,e,n)},i.prototype.call=function(){var e,t=-1,r=arguments.length;for(e=new Array(r);++t<r;){var n=arguments[t];e[t]=n;var i=typeof n;if(t>1&&!Array.isArray(n)||0===t&&!Array.isArray(n)&&"string"!==i||1===t&&!Array.isArray(n)&&!x(n))return new s(function(e){e.onError(new Error("Invalid argument"))})}return c.create(this,e)},i.prototype.invalidate=function(){var e,t=-1,r=arguments.length,n=arguments[r-1];for(e=new Array(r);++t<r;)if(e[t]=g.fromPath(arguments[t]),"object"!=typeof e[t])throw new Error("Invalid argument");l.create(this,e,n).subscribe(P,function(e){throw e})},i.prototype.deref=e(5),i.prototype.getValue=e(16),i.prototype.setValue=e(79),i.prototype._getValueSync=e(24),i.prototype._setValueSync=e(80),i.prototype._derefSync=e(6),i.prototype.setCache=function(e){var t=this._root.cache;if(e!==t){var r=this._root,n=this._path;this._path=[],this._root.cache={},"undefined"!=typeof t&&m(r,r.expired,_(t),0),S(e)?C(this,[e]):w(e)?M(this,[e]):y(e)&&M(this,[{json:e}]),this._path=n}else"undefined"==typeof t&&(this._root.cache={});return this},i.prototype.getCache=function(){var e=v(arguments);if(0===e.length)return A(this._root.cache);var t=[{}],r=this._path;return j.getWithPathsAsJSONGraph(this,e,t),this._path=r,t[0].jsonGraph},i.prototype.getVersion=function(e){var t=e&&g.fromPath(e)||[];if(Array.isArray(t)===!1)throw new Error("Model#getVersion must be called with an Array path.");return this._path.length&&(t=this._path.concat(t)),this._getVersion(this,t)},i.prototype._syncCheck=function(e){if(Boolean(this._source)&&this._root.syncRefCount<=0&&this._root.unsafeMode===!1)throw new Error("Model#"+e+" may only be called within the context of a request selector.");return!0},i.prototype._clone=function(e){var t=new i(this);for(var r in e){var n=e[r];"delete"===n?delete t[r]:t[r]=n}return t.setCache=void 0,t},i.prototype.batch=function(e){var t=e;"number"==typeof t?t=new p(Math.round(Math.abs(t))):t&&t.schedule||(t=new h);var r=this._clone();return r._request=new a(r,t),r},i.prototype.unbatch=function(){var e=this._clone();return e._request=new a(e,new f),e},i.prototype.treatErrorsAsValues=function(){return this._clone({_treatErrorsAsValues:!0})},i.prototype.asDataSource=function(){return new o(this)},i.prototype._materialize=function(){return this._clone({_materialized:!0})},i.prototype._dematerialize=function(){return this._clone({_materialized:"delete"})},i.prototype.boxValues=function(){return this._clone({_boxed:!0})},i.prototype.unboxValues=function(){return this._clone({_boxed:"delete"})},i.prototype.withoutDataSource=function(){return this._clone({_source:"delete"})},i.prototype.toJSON=function(){return{$type:"ref",value:this._path}},i.prototype.getPath=function(){return d(this._path)},i.prototype._getBoundValue=e(13),i.prototype._getVersion=e(18),i.prototype._getValueSync=e(17),i.prototype._getPathValuesAsPathMap=j.getWithPathsAsPathMap,i.prototype._getPathValuesAsJSONG=j.getWithPathsAsJSONGraph,i.prototype._setPathValuesAsJSON=e(78),i.prototype._setPathValuesAsJSONG=e(78),i.prototype._setPathValuesAsPathMap=e(78),i.prototype._setPathValuesAsValues=e(78),i.prototype._setPathMapsAsJSON=e(77),i.prototype._setPathMapsAsJSONG=e(77),i.prototype._setPathMapsAsPathMap=e(77),i.prototype._setPathMapsAsValues=e(77),i.prototype._setJSONGsAsJSON=e(76),i.prototype._setJSONGsAsJSONG=e(76),i.prototype._setJSONGsAsPathMap=e(76),i.prototype._setJSONGsAsValues=e(76),i.prototype._setCache=e(77),i.prototype._invalidatePathValuesAsJSON=e(48),i.prototype._invalidatePathMapsAsJSON=e(47)},{100:100,102:102,116:116,13:13,130:130,134:134,14:14,16:16,17:17,18:18,19:19,24:24,3:3,4:4,47:47,48:48,49:49,5:5,55:55,6:6,61:61,63:63,64:64,65:65,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,84:84,88:88,96:96,98:98,99:99}],3:[function(e,t,r){function n(e){this._model=e._materialize().treatErrorsAsValues()}n.prototype.get=function(e){return this._model.get.apply(this._model,e)._toJSONG()},n.prototype.set=function(e){return this._model.set(e)._toJSONG()},n.prototype.call=function(e,t,r,n){var i=[e,t,r].concat(n);return this._model.call.apply(this._model,i)._toJSONG()},t.exports=n},{}],4:[function(e,t,r){function n(e){var t=e||{};this.syncRefCount=0,this.expired=t.expired||[],this.unsafeMode=t.unsafeMode||!1,this.collectionScheduler=t.collectionScheduler||new a,this.cache={},i(t.comparator)&&(this.comparator=t.comparator),i(t.errorSelector)&&(this.errorSelector=t.errorSelector),i(t.onChange)&&(this.onChange=t.onChange)}var i=e(96),o=e(91),a=e(74);n.prototype.errorSelector=function(e,t){return t},n.prototype.comparator=function(e,t){return o(e,"value")&&o(t,"value")?e.value===t.value&&e.$type===t.$type&&e.$expires===t.$expires:e===t},t.exports=n},{74:74,91:91,96:96}],5:[function(e,t,r){function s(e,t){var r,n=!1;try{++e._root.syncRefCount,r=e._derefSync(t)}catch(e){r=e,n=!0}finally{--e._root.syncRefCount}return n?u.Observable["throw"](r):u.Observable["return"](r)}var u=e(159),c=e(134);t.exports=function(e){for(var n=this,t=-1,i=arguments.length-1,o=new Array(i),a=c.fromPath(e);++t<i;)o[t]=c.fromPath(arguments[t+1]);if(0===i)throw new Error("Model#deref requires at least one value path.");return u.Observable.defer(function(){return s(n,a)}).flatMap(function(e){if(Boolean(e)){if(i>0){var t=u.Observable.of(e);return e.get.apply(e,o)["catch"](u.Observable.empty()).concat(t).last().flatMap(function(){return s(n,a)}).filter(function(e){return e})}return u.Observable["return"](e)}if(i>0){var r=o.map(function(e){return a.concat(e)});return n.get.apply(n,r).concat(u.Observable.defer(function(){return s(n,a)})).last().filter(function(e){return e})}return u.Observable.empty()})}},{134:134,159:159}],6:[function(e,t,r){var a=e(134),s=e(13),u=e(8),c=e(118);t.exports=function(e){var t=a.fromPath(e);if(!Array.isArray(t))throw new Error("Model#derefSync must be called with an Array path.");var r=s(this,this._path.concat(t),!1),n=r.path,i=r.value,o=r.found;if(o&&void 0!==i&&(i.$type!==c||void 0!==i.value)){if(i.$type)throw new u;return this._clone({_path:n})}}},{118:118,13:13,134:134,8:8}],7:[function(e,t,r){function n(){this.message=n.message,this.stack=(new Error).stack}n.prototype=new Error,n.prototype.name="BoundJSONGraphModelError",n.message="It is not legal to use the JSON Graph format from a bound Model. JSON Graph format can only be used from a root model.",t.exports=n},{}],8:[functio