!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(r.topojson=r.topojson||{})}(this,function(r){"use strict";function t(r,n){var t=n.id,e=n.bbox,o=null==n.properties?{}:n.properties,a=i(r,n);return null==t&&null==e?{type:"Feature",properties:o,geometry:a}:null==e?{type:"Feature",id:t,properties:o,geometry:a}:{type:"Feature",id:t,bbox:e,properties:o,geometry:a}}function i(r,n){function o(r){return u(r)}function a(r){for(var n=[],t=0,e=r.length;ti&&(o=t[0],t[0]=t[a],t[a]=o,i=e);return t})}}function M(r,n,t){for(var e,o=n+(t---n>>1);nu&&(u=r[0]),r[1]c&&(c=r[1])}function t(r){switch(r.type){case"GeometryCollection":r.geometries.forEach(t);break;case"Point":n(r.coordinates);break;case"MultiPoint":r.coordinates.forEach(n)}}var e,o=T(r.transform),a=1/0,i=a,u=-a,c=-a;for(e in r.arcs.forEach(function(r){for(var n,t=-1,e=r.length;++tu&&(u=n[0]),n[1]c&&(c=n[1])}),r.objects)t(r.objects[e]);return[a,i,u,c]}function P(n,r){return"GeometryCollection"===r.type?{type:"FeatureCollection",features:r.geometries.map(function(r){return t(n,r)})}:t(n,r)}function x(h,o){function r(r,n){for(var t in r){var e=r[t];delete n[e.start],delete e.start,delete e.end,e.forEach(function(r){a[r<0?~r:r]=1}),i.push(e)}}var a={},p={},g={},i=[],u=-1;return o.forEach(function(r,n){var t,e=h.arcs[r<0?~r:r];e.length<3&&!e[1][0]&&!e[1][1]&&(t=o[++u],o[u]=r,o[n]=t)}),o.forEach(function(r){var n,t,e,o,a,i,u,c,f=(e=r,a=h.arcs[e<0?~e:e],i=a[0],h.transform?(o=[0,0],a.forEach(function(r){o[0]+=r[0],o[1]+=r[1]})):o=a[a.length-1],e<0?[o,i]:[i,o]),s=f[0],l=f[1];(n=g[s])?(delete g[n.end],n.push(r),n.end=l,(t=p[l])?(delete p[t.start],u=t===n?n:n.concat(t),p[u.start=n.start]=g[u.end=t.end]=u):p[n.start]=g[n.end]=n):(n=p[l])?(delete p[n.start],n.unshift(r),n.start=s,(t=g[s])?(delete g[t.end],c=t===n?n:t.concat(n),p[c.start=t.start]=g[c.end=n.end]=c):p[n.start]=g[n.end]=n):p[(n=[r]).start=s]=g[n.end=l]=n}),r(g,p),r(p,g),o.forEach(function(r){a[r<0?~r:r]||i.push([r])}),i}function w(r,n){for(var t=0,e=r.length;t>>1;r[o]=a)throw new Error("full hashmap");e=f[t=t+1&l]}return f[t]=r,s[t]=n},maybeSet:function(r,n){for(var t=i(r)&l,e=f[t],o=0;e!=c;){if(u(e,r))return s[t];if(++o>=a)throw new Error("full hashmap");e=f[t=t+1&l]}return f[t]=r,s[t]=n},get:function(r,n){for(var t=i(r)&l,e=f[t],o=0;e!=c;){if(u(e,r))return s[t];if(++o>=a)break;e=f[t=t+1&l]}return n},keys:function(){for(var r=[],n=0,t=f.length;n>7^O[2]^O[3])}function S(r){function n(r,n,t,e){var o,a;c[t]!==r&&(c[t]=r,0<=(o=f[t])?(a=s[t],o===n&&a===e||o===e&&a===n||(++h,l[t]=1)):(f[t]=n,s[t]=e))}function o(r){return C(i[r])}function a(r,n){return L(i[r],i[n])}for(var i=r.coordinates,t=r.lines,e=r.rings,u=function(){for(var r=A(1.4*i.length,o,a,Int32Array,-1,Int32Array),n=new Int32Array(i.length),t=0,e=i.length;t=o)throw new Error("full hashset");t=c[n=n+1&f]}return c[n]=r,!0},has:function(r){for(var n=a(r)&f,t=c[n],e=0;t!=u;){if(i(t,r))return!0;if(++e>=o)break;t=c[n=n+1&f]}return!1},values:function(){for(var r=[],n=0,t=c.length;n=e}}var T=function(r){if(null==r)return d;var a,i,u=r.scale[0],c=r.scale[1],f=r.translate[0],s=r.translate[1];return function(r,n){n||(a=i=0);var t=2,e=r.length,o=new Array(e);for(o[0]=(a+=r[0])*u+f,o[1]=(i+=r[1])*c+s;t>1)-1,e=i[t];if(0<=v(r,e))break;i[e._=n]=e,i[r._=n=t]=r}}function o(r,n){for(;;){var t=n+1<<1,e=t-1,o=n,a=i[o];if(e=i&&(a[e++]=[n[0],n[1]]);return a.length=e,a});return{type:"Topology",transform:r.transform,bbox:r.bbox,objects:r.objects,arcs:n}},r.sphericalRingArea=function(r,n){var t=m(r,!0);return n&&(t*=-1),2*(t<0?U+t:t)},r.sphericalTriangleArea=function(r){return 2*V(m(r,!1))},Object.defineProperty(r,"__esModule",{value:!0})});