';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),Ge={ie:_e,ielt9:ge,edge:ve,webkit:ye,android:we,android23:xe,androidStock:Le,opera:Me,chrome:ke,gecko:Te,safari:Pe,phantom:Se,opera12:Ce,win:Ee,ie3d:Ne,webkit3d:De,gecko3d:Ae,any3d:Oe,mobile:ze,mobileWebkit:Re,mobileWebkit3d:Ie,msPointer:Ye,pointer:Ze,touch:Be,mobileOpera:je,mobileGecko:We,retina:He,passiveEvents:Fe,canvas:qe,svg:Ue,vml:Ve},Xe=Ye?"MSPointerDown":"pointerdown",$e=Ye?"MSPointerMove":"pointermove",Ke=Ye?"MSPointerUp":"pointerup",Je=Ye?"MSPointerCancel":"pointercancel",Qe={},tn=!1,en=Ye?"MSPointerDown":Ze?"pointerdown":"touchstart",nn=Ye?"MSPointerUp":Ze?"pointerup":"touchend",on="_leaflet_",rn=K(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),sn=K(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),an="webkitTransition"===sn||"OTransition"===sn?sn+"End":"transitionend";he="onselectstart"in document?(le=function(){at(window,"selectstart",mt)},function(){ut(window,"selectstart",mt)}):(ue=K(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]),le=function(){var t;ue&&(t=document.documentElement.style,ae=t[ue],t[ue]="none")},function(){ue&&(document.documentElement.style[ue]=ae,ae=void 0)});var un={TRANSFORM:rn,TRANSITION:sn,TRANSITION_END:an,get:Y,getStyle:Z,create:B,remove:j,empty:W,toFront:H,toBack:F,hasClass:q,addClass:U,removeClass:V,setClass:G,getClass:X,setOpacity:$,testProp:K,setTransform:J,setPosition:Q,getPosition:tt,disableTextSelection:le,enableTextSelection:he,disableImageDrag:et,enableImageDrag:nt,preventOutline:it,restoreOutline:ot,getSizedParentNode:rt,getScale:st},ln="_leaflet_events",hn={mouseenter:"mouseover",mouseleave:"mouseout",wheel:!("onwheel"in window)&&"mousewheel"},cn=Ee&&ke?2*window.devicePixelRatio:Te?window.devicePixelRatio:1,dn={},fn={on:at,off:ut,stopPropagation:dt,disableScrollPropagation:ft,disableClickPropagation:pt,preventDefault:mt,stop:_t,getMousePosition:gt,getWheelDelta:vt,fakeStop:yt,skipped:wt,isExternalTarget:xt,addListener:at,removeListener:ut},pn=te.extend({run:function(t,e,n,i){this.stop(),this._el=t,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(i||.5,.2),this._startPos=tt(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=b(this._animate,this),this._step()},_step:function(t){var e=new Date-this._startTime,n=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var n=this.getCenter(),i=this._limitCenter(n,this._zoom,T(t));return n.equals(i)||this.panTo(i,e),this._enforcingBounds=!1,this},panInside:function(t,e){var n,i,o=w((e=e||{}).paddingTopLeft||e.padding||[0,0]),r=w(e.paddingBottomRight||e.padding||[0,0]),s=this.getCenter(),a=this.project(s),u=this.project(t),l=this.getPixelBounds(),h=l.getSize().divideBy(2),c=M([l.min.add(o),l.max.subtract(r)]);return c.contains(u)||(this._enforcingBounds=!0,n=a.subtract(u),i=w(u.x+n.x,u.y+n.y),(u.xc.max.x)&&(i.x=a.x-n.x,0c.max.y)&&(i.y=a.y-n.y,0=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var n,i=[],o="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,s=!1;r;){if((n=this._targets[_(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(n)){s=!0;break}if(n&&n.listens(e,!0)){if(o&&!xt(r,t))break;if(i.push(n),o)break}if(r===this._container)break;r=r.parentNode}return i.length||s||o||!xt(r,t)||(i=[this]),i},_handleDOMEvent:function(t){var e;this._loaded&&!wt(t)&&("mousedown"!==(e=t.type)&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||it(t.target||t.srcElement),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){var i;if("click"===t.type&&((i=u({},t)).type="preclick",this._fireDOMEvent(i,i.type,n)),!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var o=n[0];"contextmenu"===e&&o.listens(e,!0)&&mt(t);var r,s={originalEvent:t};"keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type&&(r=o.getLatLng&&(!o._radius||o._radius<=10),s.containerPoint=r?this.latLngToContainerPoint(o.getLatLng()):this.mouseEventToContainerPoint(t),s.layerPoint=this.containerPointToLayerPoint(s.containerPoint),s.latlng=r?o.getLatLng():this.layerPointToLatLng(s.layerPoint));for(var a=0;athis.options.zoomAnimationThreshold)return!1;var i=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/i);return!(!0!==n.animate&&!this.getSize().contains(o)||(b(function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)},this),0))},_animateZoom:function(t,e,n,i){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,U(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:i}),setTimeout(m(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&V(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),b(function(){this._moveEnd(!0)},this))}}),_n=v.extend({options:{position:"topright"},initialize:function(t){s(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),n=this.getPosition(),i=t._controlCorners[n];return U(e,"leaflet-control"),-1!==n.indexOf("bottom")?i.insertBefore(e,i.firstChild):i.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(j(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0 ",i=document.createElement("div");return i.innerHTML=n,i.firstChild},_addItem:function(t){var e,n=document.createElement("label"),i=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=i):e=this._createRadioElement("leaflet-base-layers_"+_(this),i),this._layerControlInputs.push(e),e.layerId=_(t.layer),at(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var r=document.createElement("div");return n.appendChild(r),r.appendChild(e),r.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(n),this._checkDisabledLayers(),n},_onInputClick:function(){var t,e,n=this._layerControlInputs,i=[],o=[];this._handlingClick=!0;for(var r=n.length-1;0<=r;r--)t=n[r],e=this._getLayer(t.layerId).layer,t.checked?i.push(e):t.checked||o.push(e);for(r=0;re.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),vn=_n.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",n=B("div",e+" leaflet-bar"),i=this.options;return this._zoomInButton=this._createButton(i.zoomInText,i.zoomInTitle,e+"-in",n,this._zoomIn),this._zoomOutButton=this._createButton(i.zoomOutText,i.zoomOutTitle,e+"-out",n,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),n},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,n,i,o){var r=B("a",n,i);return r.innerHTML=t,r.href="#",r.title=e,r.setAttribute("role","button"),r.setAttribute("aria-label",e),pt(r),at(r,"click",_t),at(r,"click",o,this),at(r,"click",this._refocusOnMap,this),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";V(this._zoomInButton,e),V(this._zoomOutButton,e),!this._disabled&&t._zoom!==t.getMinZoom()||U(this._zoomOutButton,e),!this._disabled&&t._zoom!==t.getMaxZoom()||U(this._zoomInButton,e)}});mn.mergeOptions({zoomControl:!0}),mn.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new vn,this.addControl(this.zoomControl))});var yn=_n.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",n=B("div",e),i=this.options;return this._addScales(i,e+"-line",n),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),n},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,n){t.metric&&(this._mScale=B("div",e,n)),t.imperial&&(this._iScale=B("div",e,n))},_update:function(){var t=this._map,e=t.getSize().y/2,n=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(n)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),n=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,n,e/t)},_updateImperial:function(t){var e,n,i,o=3.2808399*t;5280Leaflet'},initialize:function(t){s(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=B("div","leaflet-control-attribution"),pt(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var n=[];this.options.prefix&&n.push(this.options.prefix),t.length&&n.push(t.join(", ")),this._container.innerHTML=n.join(" | ")}}});mn.mergeOptions({attributionControl:!0}),mn.addInitHook(function(){this.options.attributionControl&&(new wn).addTo(this)}),_n.Layers=gn,_n.Zoom=vn,_n.Scale=yn,_n.Attribution=wn,bt.layers=function(t,e,n){return new gn(t,e,n)},bt.zoom=function(t){return new vn(t)},bt.scale=function(t){return new yn(t)},bt.attribution=function(t){return new wn(t)};var xn=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});xn.addTo=function(t,e){return t.addHandler(e,this),this};var bn,Ln,Mn={Events:Qt},kn=Be?"touchstart mousedown":"mousedown",Tn={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Pn={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Sn=te.extend({options:{clickTolerance:3},initialize:function(t,e,n,i){s(this,i),this._element=t,this._dragStartTarget=e||t,this._preventOutline=n},enable:function(){this._enabled||(at(this._dragStartTarget,kn,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Sn._dragging===this&&this.finishDrag(),ut(this._dragStartTarget,kn,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,n;!t._simulated&&this._enabled&&(this._moved=!1,q(this._element,"leaflet-zoom-anim")||Sn._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Sn._dragging=this)._preventOutline&&it(this._element),et(),le(),this._moving||(this.fire("down"),e=t.touches?t.touches[0]:t,n=rt(this._element),this._startPoint=new y(e.clientX,e.clientY),this._parentScale=st(n),at(document,Pn[t.type],this._onMove,this),at(document,Tn[t.type],this._onUp,this))))},_onMove:function(t){var e,n;!t._simulated&&this._enabled&&(t.touches&&1this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=i.y>t.y&&t.x<(i.x-n.x)*(t.y-n.y)/(i.y-n.y)+n.x&&(l=!l);return l||Vn.prototype._containsPoint.call(this,t,!0)}}),Xn=Zn.extend({initialize:function(t,e){s(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,n,i,o=Vt(t)?t:t.features;if(o){for(e=0,n=o.length;el.x&&(h=r.x+i-l.x+u.x),r.x-h-a.x<0&&(h=r.x-a.x),r.y+n+u.y>l.y&&(c=r.y+n-l.y+u.y),r.y-c-a.y<0&&(c=r.y-a.y),(h||c)&&t.fire("autopanstart").panBy([h,c]))},_onCloseButtonClick:function(t){this._close(),_t(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});mn.mergeOptions({closePopupOnClick:!0}),mn.include({openPopup:function(t,e,n){return t instanceof ni||(t=new ni(n).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),In.include({bindPopup:function(t,e){return t instanceof ni?(s(t,e),(this._popup=t)._source=this):(this._popup&&!e||(this._popup=new ni(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(_t(t),e instanceof Fn?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var ii=ei.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){ei.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){ei.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=ei.prototype.getEvents.call(this);return Be&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=B("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,n=this._map,i=this._container,o=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),s=this.options.direction,a=i.offsetWidth,u=i.offsetHeight,l=w(this.options.offset),h=this._getAnchor(),c="top"===s?(e=a/2,u):"bottom"===s?(e=a/2,0):(e="center"===s?a/2:"right"===s?0:"left"===s?a:r.xthis.options.maxZoom||ithis.options.maxZoom||void 0!==this.options.minZoom&&on.max.x)||!e.wrapLat&&(t.yn.max.y))return!1}if(!this.options.bounds)return!0;var i=this._tileCoordsToBounds(t);return T(this.options.bounds).overlaps(i)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,n=this.getTileSize(),i=t.scaleBy(n),o=i.add(n);return[e.unproject(i,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),n=new k(e[0],e[1]);return this.options.noWrap||(n=this._map.wrapLatLngBounds(n)),n},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),n=new y(+e[0],+e[1]);return n.z=+e[2],n},_removeTile:function(t){var e=this._tiles[t];e&&(j(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){U(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=a,t.onmousemove=a,ge&&this.options.opacity<1&&$(t,this.options.opacity),we&&!xe&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var n=this._getTilePos(t),i=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),m(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&b(m(this._tileReady,this,t,null,o)),Q(o,n),this._tiles[i]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,n){e&&this.fire("tileerror",{error:e,tile:n,coords:t});var i=this._tileCoordsToKey(t);(n=this._tiles[i])&&(n.loaded=+new Date,this._map._fadeAnimated?($(n.el,0),g(this._fadeFrame),this._fadeFrame=b(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),e||(U(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),ge||!this._map._fadeAnimated?b(this._pruneTiles,this):setTimeout(m(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new y(this._wrapX?i(t.x,this._wrapX):t.x,this._wrapY?i(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new x(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),si=ri.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=s(this,e)).detectRetina&&He&&0')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),ci={_initContainer:function(){this._container=B("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ui.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=hi("shape");U(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=hi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[_(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;j(e),t.removeInteractiveTarget(e),delete this._layers[_(t)]},_updateStyle:function(t){var e=t._stroke,n=t._fill,i=t.options,o=t._container;o.stroked=!!i.stroke,o.filled=!!i.fill,i.stroke?(e=e||(t._stroke=hi("stroke")),o.appendChild(e),e.weight=i.weight+"px",e.color=i.color,e.opacity=i.opacity,i.dashArray?e.dashStyle=Vt(i.dashArray)?i.dashArray.join(" "):i.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=i.lineCap.replace("butt","flat"),e.joinstyle=i.lineJoin):e&&(o.removeChild(e),t._stroke=null),i.fill?(n=n||(t._fill=hi("fill")),o.appendChild(n),n.color=i.fillColor||i.color,n.opacity=i.fillOpacity):n&&(o.removeChild(n),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),n=Math.round(t._radius),i=Math.round(t._radiusY||n);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+n+","+i+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){H(t._container)},_bringToBack:function(t){F(t._container)}},di=Ve?hi:N,fi=ui.extend({getEvents:function(){var t=ui.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=di("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=di("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){j(this._container),ut(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){var t,e,n;this._map._animatingZoom&&this._bounds||(ui.prototype._update.call(this),e=(t=this._bounds).getSize(),n=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,n.setAttribute("width",e.x),n.setAttribute("height",e.y)),Q(n,t.min),n.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=di("path");t.options.className&&U(e,t.options.className),t.options.interactive&&U(e,"leaflet-interactive"),this._updateStyle(t),this._layers[_(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){j(t._path),t.removeInteractiveTarget(t._path),delete this._layers[_(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,n=t.options;e&&(n.stroke?(e.setAttribute("stroke",n.color),e.setAttribute("stroke-opacity",n.opacity),e.setAttribute("stroke-width",n.weight),e.setAttribute("stroke-linecap",n.lineCap),e.setAttribute("stroke-linejoin",n.lineJoin),n.dashArray?e.setAttribute("stroke-dasharray",n.dashArray):e.removeAttribute("stroke-dasharray"),n.dashOffset?e.setAttribute("stroke-dashoffset",n.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),n.fill?(e.setAttribute("fill",n.fillColor||n.color),e.setAttribute("fill-opacity",n.fillOpacity),e.setAttribute("fill-rule",n.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,D(t._parts,e))},_updateCircle:function(t){var e=t._point,n=Math.max(Math.round(t._radius),1),i="a"+n+","+(Math.max(Math.round(t._radiusY),1)||n)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-n)+","+e.y+i+2*n+",0 "+i+2*-n+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){H(t._path)},_bringToBack:function(t){F(t._path)}});Ve&&fi.include(ci),mn.include({getRenderer:function(t){var e=(e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&Wt(t)||Ht(t)}});var pi=Gn.extend({initialize:function(t,e){Gn.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=T(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});fi.create=di,fi.pointsToPath=D,Xn.geometryToLayer=Dt,Xn.coordsToLatLng=Ot,Xn.coordsToLatLngs=zt,Xn.latLngToCoords=Rt,Xn.latLngsToCoords=It,Xn.getFeature=Yt,Xn.asFeature=Zt,mn.mergeOptions({boxZoom:!0});var mi=xn.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){at(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ut(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){j(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),le(),et(),this._startPoint=this._map.mouseEventToContainerPoint(t),at(document,{contextmenu:_t,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=B("div","leaflet-zoom-box",this._container),U(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new x(this._point,this._startPoint),n=e.getSize();Q(this._box,e.min),this._box.style.width=n.x+"px",this._box.style.height=n.y+"px"},_finish:function(){this._moved&&(j(this._box),V(this._container,"leaflet-crosshair")),he(),nt(),ut(document,{contextmenu:_t,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){var e;1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(m(this._resetState,this),0),e=new k(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})))},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});mn.addInitHook("addHandler","boxZoom",mi),mn.mergeOptions({doubleClickZoom:!0});var _i=xn.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,n=e.getZoom(),i=e.options.zoomDelta,o=t.originalEvent.shiftKey?n-i:n+i;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});mn.addInitHook("addHandler","doubleClickZoom",_i),mn.mergeOptions({dragging:!0,inertia:!xe,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var gi=xn.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Sn(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),U(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){V(this._map._container,"leaflet-grab"),V(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=T(this._map.options.maxBounds),this._offsetLimit=M(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,n;this._map.options.inertia&&(e=this._lastTime=+new Date,n=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(n),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),n=this._initialWorldOffset,i=this._draggable._newPos.x,o=(i-e+n)%t+e-n,r=(i+e+n)%t-e-n,s=Math.abs(o+n)e.getMaxZoom()&&1>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?new d(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?new d(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=I.exec(t))?new d(e[1],e[2],e[3],1):(e=Y.exec(t))?new d(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Z.exec(t))?s(e[1],e[2],e[3],e[4]):(e=B.exec(t))?s(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=j.exec(t))?m(e[1],e[2]/100,e[3]/100,1):(e=W.exec(t))?m(e[1],e[2]/100,e[3]/100,e[4]):H.hasOwnProperty(t)?r(H[t]):"transparent"===t?new d(NaN,NaN,NaN,0):null}function r(t){return new d(t>>16&255,t>>8&255,255&t,1)}function s(t,e,n,i){return i<=0&&(t=e=n=NaN),new d(t,e,n,i)}function c(t){return t instanceof l||(t=h(t)),t?new d((t=t.rgb()).r,t.g,t.b,t.opacity):new d}function a(t,e,n,i){return 1===arguments.length?c(t):new d(t,e,n,null==i?1:i)}function d(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function u(){return"#"+p(this.r)+p(this.g)+p(this.b)}function f(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function p(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function m(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||1<=n?t=e=NaN:e<=0&&(t=NaN),new v(t,e,n,i)}function _(t){if(t instanceof v)return new v(t.h,t.s,t.l,t.opacity);if(t instanceof l||(t=h(t)),!t)return new v;if(t instanceof v)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,o=Math.min(e,n,i),r=Math.max(e,n,i),s=NaN,a=r-o,u=(r+o)/2;return a?(s=e===r?(n-i)/a+6*(na&&(o=i.slice(a,o),l[u]?l[u]+=o:l[++u]=o),(e=e[0])===(n=n[0])?l[u]?l[u]+=n:l[++u]=n:(l[++u]=null,h.push({i:u,x:m(e,n)})),a=D.lastIndex;return a=t.minX&&e.maxY>=t.minY}function _(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function y(t,e,n,i,o){for(var r=[e,n];r.length;)if(!((n=r.pop())-(e=r.pop())<=i)){var s=e+Math.ceil((n-e)/i/2)*i;u=o,function t(e,n,i,o,r){for(;ithis._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},t.prototype._split=function(t,e){var n=t[e],i=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,i);var r=this._chooseSplitIndex(n,o,i),s=_(n.children.splice(r,n.children.length-r));s.height=n.height,s.leaf=n.leaf,f(n,this.toBBox),f(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s)},t.prototype._splitRoot=function(t,e){this.data=_([t,e]),this.data.height=t.height+1,this.data.leaf=!1,f(this.data,this.toBBox)},t.prototype._chooseSplitIndex=function(t,e,n){for(var i,o=1/0,r=1/0,s=e;s<=n-e;s++){var a=g(t,0,s,this.toBBox),u=g(t,s,n,this.toBBox),l=(c=a,d=u,f=Math.max(c.minX,d.minX),p=Math.max(c.minY,d.minY),m=Math.min(c.maxX,d.maxX),_=Math.min(c.maxY,d.maxY),Math.max(0,m-f)*Math.max(0,_-p)),h=v(a)+v(u);l=i.clients_wifi24+i.clients_wifi5?(r=1,t.fill(),t.beginPath(),t.fillStyle=config.client.wifi5):0===r&&a>=i.clients_wifi24&&(r=2,t.fill(),t.beginPath(),t.fillStyle=config.client.other);var d=2*Math.PI/l*c,f=e.x+u*Math.cos(d+n),p=e.y+u*Math.sin(d+n);t.moveTo(f,p),t.arc(f,p,3,0,2*Math.PI)}t.fill()}},fullscreen:function(t){if(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement)(n=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen)&&(n.call(document),t.classList.remove("ion-full-exit"),t.classList.add("ion-full-enter"));else{var e=document.firstElementChild,n=e.requestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen;n.call(e),t.classList.remove("ion-full-enter"),t.classList.add("ion-full-exit")}},escape:function(t){return t.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}}),define("map/clientlayer",["leaflet","rbush","helper"],function(u,n,l){"use strict";return u.GridLayer.extend({mapRTree:function(t){return{minX:t.location.latitude,minY:t.location.longitude,maxX:t.location.latitude,maxY:t.location.longitude,node:t}},setData:function(t){var e=new n(9);this.data=e.load(t.nodes.online.filter(l.hasLocation).map(this.mapRTree)),this.data.all().forEach(function(t){t.startAngle=parseInt(t.node.node_id.substr(10,2),16)/255*2*Math.PI}),this.redraw()},createTile:function(t){var e=u.DomUtil.create("canvas","leaflet-tile"),n=this.options.tileSize;if(e.width=n,e.height=n,!this.data)return e;var i=e.getContext("2d"),o=t.multiplyBy(n),r=this._map,s=l.getTileBBox(o,r,n,50),a=this.data.search(s);return 0===a.length||a.forEach(function(t){var e=r.project([t.node.location.latitude,t.node.location.longitude]);e.x-=o.x,e.y-=o.y,l.positionClients(i,e,t.startAngle,t.node,10)}),e}})}),define("map/labellayer",["leaflet","rbush","helper","moment"],function(x,c,b,L){"use strict";function d(t){return{minX:t.position.lat,minY:t.position.lng,maxX:t.position.lat,maxY:t.position.lng,label:t}}function f(o,r,s,a){return function(t){var e,n,i=r+"px "+l.fontFamily;return{position:x.latLng(t.location.latitude,t.location.longitude),label:t.hostname,offset:s,fillStyle:o,height:1.2*r,font:i,stroke:a,width:(e=i,n=t.hostname,h.font=e,h.measureText(n)).width}}}function p(t,e){return[t*Math.cos(2*e[2]*Math.PI),t*Math.sin(2*e[2]*Math.PI)]}function m(t,e,n,i,o,r,s){var a=1+1.41*(1-(s-o)/(r-o)),u=i.width*a,l=i.height*a,h={left:0,right:-u,center:-u/2},c={top:0,ideographic:-l,middle:-l/2},d=t.x+e[0]+h[n[0]],f=t.y+e[1]+c[n[1]];return{minX:d,minY:f,maxX:d+u,maxY:f+l}}function M(n,i){return function(t){var e=x.circleMarker([t.location.latitude,t.location.longitude],i(t));return e.resetStyle=function(){e.setStyle(i(t))},e.on("click",function(){router.fullUrl({node:t.node_id})}),e.bindTooltip(b.escape(t.hostname)),n[t.node_id]=e}}function k(t){return Object.assign({},config.icon.base,config.icon[t])}var T,P,S,C,E,u,_=[["left","middle",0],["center","top",.75],["right","middle",.5],["left","top",7/8],["left","ideographic",1/8],["right","top",5/8],["center","ideographic",.25],["right","ideographic",3/8]],l={fontFamily:"sans-serif"},h=document.createElement("canvas").getContext("2d");return x.GridLayer.extend({onAdd:function(t){x.GridLayer.prototype.onAdd.call(this,t),this.data&&this.prepareLabels()},setData:function(n,t,e,i,o){var r=k("online"),s=k("offline"),a=k("lost"),u=k("alert"),l=k("new");E&&(P.clearLayers(),T.clearLayers(),S.clearLayers(),C.clearLayers(),E.clearLayers());var h,c,d=(h=i,c=o,n.links.filter(function(t){return"distance"in t&&0!==t.type.indexOf("vpn")}).map(function(t){var e={color:c((t.source_tq+t.target_tq)/2),weight:4,opacity:.5,dashArray:"none"},n=x.polyline(t.latlngs,e);return n.resetStyle=function(){n.setStyle(e)},n.bindTooltip(b.escape(t.source.hostname+" – "+t.target.hostname)+""+b.showDistance(t)+" / "+b.showTq(t.source_tq)+" - "+b.showTq(t.target_tq)+" "+t.type+" "),n.on("click",function(){router.fullUrl({link:t.id})}),h[t.id]=n}));E=x.featureGroup(d).addTo(t);var f=b.subtract(n.nodes.online,n.nodes.new).filter(b.hasLocation),p=b.subtract(n.nodes.offline,n.nodes.lost).filter(b.hasLocation),m=n.nodes.new.filter(b.hasLocation),_=n.nodes.lost.filter(b.hasLocation),g=f.map(M(e,function(){return r})),v=p.map(M(e,function(){return s})),y=m.map(M(e,function(){return l})),w=_.map(M(e,function(t){var e=L(n.now).diff(t.lastseen,"days",!0);return e<=config.maxAgeAlert?u:e<=config.maxAge?a:null}));P=x.featureGroup(v).addTo(t),C=x.featureGroup(w).addTo(t),T=x.featureGroup(g).addTo(t),S=x.featureGroup(y).addTo(t),this.data={online:f,offline:p,new:m,lost:_},this.updateLayer()},updateLayer:function(){this._map&&this.prepareLabels()},prepareLabels:function(){for(var t=this.data,e=t.online.map(f(null,11,8,!0)),n=t.offline.map(f(config.icon.offline.color,9,5,!1)),i=t.new.map(f(config.map.labelNewColor,11,8,!0)),o=t.lost.map(f(config.icon.lost.color,11,8,!0)),r=[].concat(i).concat(o).concat(e).concat(n),s=this.options.minZoom,a=this.options.maxZoom,u=[],l=this._map,h=s;h<=a;h++)u[h]=new c(9),u[h].load(r.map(function(n){return function(t){var e=l.project(t.position,n);return{minX:e.x-4,minY:e.y-4,maxX:e.x+4,maxY:e.y+4}}}(h)));r=r.map(function(o){var t=_.map(function(t){var e,n=p(o.offset,t);for(e=a;s<=e;e--){var i=m(l.project(o.position,e),n,t,o,s,a,e);if(0=t.z;e--){var n=m(l.project(o.position,e),o.offset,t.loc,o,s,a,e);u[e].insert(n)}return o}}).filter(function(t){return void 0!==t}),this.margin=16,0=t.label.minZoom}).forEach(function(t){a.font=t.label.font,a.textAlign=t.label.anchor[0],a.textBaseline=t.label.anchor[1],a.fillStyle=null===t.label.fillStyle?l.color:t.label.fillStyle,t.label.stroke&&a.strokeText(t.label.label,t.p.x+t.label.offset[0],t.p.y+t.label.offset[1]),a.fillText(t.label.label,t.p.x+t.label.offset[0],t.p.y+t.label.offset[1])}),t}})}),define("map/locationmarker",["leaflet"],function(e){"use strict";return e.CircleMarker.extend({initialize:function(t){this.accuracyCircle=e.circle(t,0,config.locate.accuracyCircle),this.outerCircle=e.circleMarker(t,config.locate.outerCircle),e.CircleMarker.prototype.initialize.call(this,t,config.locate.innerCircle),this.on("remove",function(){this._map.removeLayer(this.accuracyCircle),this._map.removeLayer(this.outerCircle)})},setLatLng:function(t){this.accuracyCircle.setLatLng(t),this.outerCircle.setLatLng(t),e.CircleMarker.prototype.setLatLng.call(this,t)},setAccuracy:function(t){this.accuracyCircle.setRadius(t)},onAdd:function(t){this.accuracyCircle.addTo(t).bringToBack(),this.outerCircle.addTo(t),e.CircleMarker.prototype.onAdd.call(this,t)}})}),define("map/button",["map/clientlayer","map/labellayer","leaflet","map/locationmarker"],function(t,e,n,l){"use strict";var h={},i=n.Control.extend({options:{position:"bottomright"},active:!1,button:void 0,initialize:function(t,e){n.Util.setOptions(this,e),this.f=t},update:function(){this.button.classList.toggle("active",this.active)},set:function(t){this.active=t,this.update()}}),c=i.extend({onAdd:function(){var t=n.DomUtil.create("button","ion-locate");return t.setAttribute("aria-label",_.t("button.tracking")),n.DomEvent.disableClickPropagation(t),n.DomEvent.addListener(t,"click",this.onClick,this),this.button=t},onClick:function(){this.f(!this.active)}}),d=i.extend({onAdd:function(){var t=n.DomUtil.create("button","ion-pin");return t.setAttribute("aria-label",_.t("button.location")),n.DomEvent.addListener(t,"click",this.onClick,this),this.button=t},onClick:function(t){n.DomEvent.stopPropagation(t),this.f(!this.active)}});return function(e,n){function t(t){var e=t.onAdd();a.push(e),n.appendChild(e)}function i(){e.getContainer().classList.remove("pick-coordinates"),e.off("click",o),u.set(!1)}function o(t){router.fullUrl({zoom:e.getZoom(),lat:t.latlng.lat,lng:t.latlng.lng}),i()}var r,s=new c(function(t){t?(e.locate({watch:!0,enableHighAccuracy:!0,setView:!0}),s.set(!0)):h.disableTracking()}),a=[];h.clearButtons=function(){a.forEach(function(t){n.removeChild(t)})};var u=new d(function(t){t?(e.getContainer().classList.add("pick-coordinates"),e.on("click",o),u.set(!0)):i()});return h.disableTracking=function(){e.stopLocate(),h.locationError(),s.set(!1)},h.locationFound=function(t){r||(r=new l(t.latlng).addTo(e)),r.setLatLng(t.latlng),r.setAccuracy(t.accuracy)},h.locationError=function(){r&&(e.removeLayer(r),r=null)},h.init=function(){t(s),t(u)},h}}),define("map/activearea",[],function(){var a={getCenter:L.Map.prototype.getCenter,setView:L.Map.prototype.setView,setZoomAround:L.Map.prototype.setZoomAround,getBoundsZoom:L.Map.prototype.getBoundsZoom,RendererUpdate:L.Renderer.prototype._update};L.Map.include({getBounds:function(){if(this._viewport)return this.getViewportLatLngBounds();var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),n=this.unproject(t.getTopRight());return new L.LatLngBounds(e,n)},getViewport:function(){return this._viewport},getViewportBounds:function(){var t=this._viewport,e=L.point(t.offsetLeft,t.offsetTop),n=L.point(t.clientWidth,t.clientHeight);return 0!==n.x&&0!==n.y||(t=this.getContainer())&&(e=L.point(0,0),n=L.point(t.clientWidth,t.clientHeight)),L.bounds(e,e.add(n))},getViewportLatLngBounds:function(){var t=this.getViewportBounds();return L.latLngBounds(this.containerPointToLatLng(t.min),this.containerPointToLatLng(t.max))},getOffset:function(){var t=this.getSize().divideBy(2),e=this.getViewportBounds().getCenter();return t.subtract(e)},getCenter:function(t){var e=a.getCenter.call(this);if(this.getViewport()&&!t){var n=this.getZoom(),i=this.project(e,n);i=i.subtract(this.getOffset()),e=this.unproject(i,n)}return e},setView:function(t,e,n){if(t=L.latLng(t),e=void 0===e?this._zoom:this._limitZoom(e),this.getViewport()){var i=this.project(t,this._limitZoom(e));i=i.add(this.getOffset()),t=this.unproject(i,this._limitZoom(e))}return a.setView.call(this,t,e,n)},setZoomAround:function(t,e,n){if(this.getViewport()){var i=this.getZoomScale(e),o=this.getViewportBounds().getCenter(),r=(t instanceof L.Point?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/i),s=this.containerPointToLatLng(o.add(r));return this.setView(s,e,{zoom:n})}return a.setZoomAround.call(this,t,e,n)},getBoundsZoom:function(t,e,n){t=L.latLngBounds(t),n=L.point(n||[0,0]);var i=this.getZoom()||0,o=this.getMinZoom(),r=this.getMaxZoom(),s=t.getNorthWest(),a=t.getSouthEast(),u=this.getViewport(),l=(u?L.point(u.clientWidth,u.clientHeight):this.getSize()).subtract(n),h=this.project(a,i).subtract(this.project(s,i)),c=L.Browser.any3d?this.options.zoomSnap:1,d=Math.min(l.x/h.x,l.y/h.y);return i=this.getScaleZoom(d,i),c&&(i=Math.round(i/(c/100))*(c/100),i=e?Math.ceil(i/c)*c:Math.floor(i/c)*c),Math.max(o,Math.min(r,i))}}),L.Map.include({setActiveArea:function(t,e,n){var i;if(e&&this._zoom&&(i=this.getCenter()),!this._viewport){var o=this.getContainer();this._viewport=L.DomUtil.create("div",""),o.insertBefore(this._viewport,o.firstChild)}return"string"==typeof t?this._viewport.className=t:L.extend(this._viewport.style,t),i&&this.setView(i,this.getZoom(),{animate:!!n}),this}}),L.Renderer.include({_onZoom:function(){this._updateTransform(this._map.getCenter(!0),this._map.getZoom())},_update:function(){a.RendererUpdate.call(this),this._center=this._map.getCenter(!0)}}),L.GridLayer.include({_updateLevels:function(){var t=this._tileZoom,e=this.options.maxZoom;if(void 0!==t){for(var n in this._levels)this._levels[n].el.children.length||n===t?this._levels[n].el.style.zIndex=e-Math.abs(t-n):(L.DomUtil.remove(this._levels[n].el),this._removeTilesAtZoom(n),delete this._levels[n]);var i=this._levels[t],o=this._map;return i||((i=this._levels[t]={}).el=L.DomUtil.create("div","leaflet-tile-container leaflet-zoom-animated",this._container),i.el.style.zIndex=e,i.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),i.zoom=t,this._setZoomTransform(i,o.getCenter(!0),o.getZoom()),L.Util.falseFn(i.el.offsetWidth)),this._level=i}},_resetView:function(t){var e=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(!0),this._map.getZoom(),e,e)},_update:function(t){var e=this._map;if(e){var n=e.getZoom();if(void 0===t&&(t=e.getCenter(this)),void 0!==this._tileZoom){var i=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(i),r=o.getCenter(),s=[];for(var a in this._tiles)this._tiles[a].current=!1;if(1c.getHours()?t.config.order=-1*t.config.start:t.config.order=e}),config.mapLayers=config.mapLayers.sort(function(t,e){return t.config.order-e.config.order});var d=config.mapLayers.map(function(t){return{name:t.name,layer:b.tileLayer(t.url.replace("{format}",0===document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp")?"webp":"png"),t.config)}});u.addLayer(d[0].layer),d.forEach(function(t){l[t.name]=t.layer});var f=new x(u,n);u.on("locationfound",f.locationFound),u.on("locationerror",f.locationError),u.on("dragend",function(){a={center:u.getCenter(),zoom:u.getZoom()}}),u.on("contextmenu",function(){document.querySelector(".leaflet-control-layers").classList.add("leaflet-control-layers-expanded")}),config.geo&&[].forEach.call(config.geo,function(e){e.json().then(function(t){t&&b.geoJSON(t,e.option).addTo(u)})}),f.init(),b.control.layers(l,[],{position:"bottomright"}).addTo(u),u.zoomControl.setPosition("topright");var p=new y({minZoom:config.clientZoom});p.addTo(u),p.setZIndex(5);var m=new w({minZoom:config.labelZoom});m.addTo(u),m.setZIndex(6),t.button.addEventListener("visibility",o),u.on("zoom",function(){p.redraw(),m.redraw()}),u.on("baselayerchange",function(t){u.options.maxZoom=t.layer.options.maxZoom,p.options.maxZoom=u.options.maxZoom,m.options.maxZoom=u.options.maxZoom,u.getZoom()>u.options.maxZoom&&u.setZoom(u.options.maxZoom);var e=document.querySelector('.css-mode:not([media="not"])');if(e&&""!==t.layer.options.mode&&!e.classList.contains(t.layer.options.mode)&&(e.media="not",m.updateLayer()),t.layer.options.mode){var n=document.querySelector(".css-mode."+t.layer.options.mode);n.media="",n.appendChild(document.createTextNode("")),m.updateLayer()}}),u.on("load",function(){var t=document.querySelectorAll(".leaflet-control-layers-selector");[].forEach.call(t,function(t){t.setAttribute("role","radiogroup"),t.setAttribute("aria-label",t.nextSibling.innerHTML.trim())})});var _,g={},v={};return this.setData=function(t){g={},v={},p.setData(t),m.setData(t,u,g,v,e),s(!0)},this.resetView=function(){f.disableTracking(),_=void 0,s()},this.gotoNode=function(t){f.disableTracking(),_={type:"node",o:t},s()},this.gotoLink=function(t){f.disableTracking(),_={type:"link",o:t[0]},s()},this.gotoLocation=function(t){f.disableTracking(),u.setView([t.lat,t.lng],t.zoom)},this.destroy=function(){f.clearButtons(),t.button.removeEventListener("visibility",o),u.remove(),h.parentNode&&h.parentNode.removeChild(h)},this.render=function(t){t.appendChild(h),u.invalidateSize()},this}}),define("sidebar",[],function(){"use strict";return function(t){var e=[992,446],n=[1200,560],i=document.createElement("div");i.classList.add("sidebar"),t.appendChild(i);var o=document.createElement("button"),r=new CustomEvent("visibility");i.appendChild(o),o.classList.add("sidebarhandle"),o.setAttribute("aria-label",_.t("sidebar.toggle")),o.onclick=function(){o.dispatchEvent(r),i.classList.toggle("hidden")};var s=document.createElement("div");return s.classList.add("container"),i.appendChild(s),this.getWidth=function(){return e[0]>window.innerWidth||i.classList.contains("hidden")?0:n[0]>window.innerWidth?e[1]:n[1]},this.add=function(t){t.render(s)},this.ensureVisible=function(){i.classList.remove("hidden")},this.hide=function(){s.children[1].classList.add("hide"),s.children[2].classList.add("hide")},this.reveal=function(){s.children[1].classList.remove("hide"),s.children[2].classList.remove("hide")},this.container=i,this.button=o,this}}),define("tabs",[],function(){"use strict";return function(){function r(t){for(var e=0;e=t.nproc)},showRAM:function(t){return o(Math.round(100*t.memory_usage)+" %",t.memory_usage,.8<=t.memory_usage)},showDomain:function(t){var e=t.domain;return config.domainNames&&config.domainNames.some(function(t){if(e===t.domain)return e=t.name,!0}),e},showClients:function(t){if(t.is_online){var e=[i.h("span",[0"+(config.deprecation_text||_.t("deprecation"))+"",t.appendChild(u),t.appendChild(f),t.appendChild(l),t.appendChild(c),t.appendChild(d.el),t.appendChild(h),e.render=function(){p.patch(u,p.h("h2",r.hostname));var t,e,n=[];config.nodeAttr.forEach(function(t){var e=r[t.value];"function"==typeof t.value?e=t.value(r,s):void 0!==g["show"+t.value]&&(e=g["show"+t.value](r)),config.deprecation_enabled&&"node.hardware"===t.name&&config.deprecated&&e&&config.deprecated.includes(e)&&f.setAttribute("style","display: block;"),e&&("object"!=typeof e&&(e=p.h("td",e)),n.push(p.h("tr",[void 0!==t.name?p.h("th",_.t(t.name)):null,e])))}),n.push(p.h("tr",[p.h("th",_.t("node.gateway")),(t=r,e=[p.h("span",[a(t.gateway_nexthop),p.h("br"),_.t("node.nexthop")]),p.h("span",{props:{className:"ion-arrow-right-c"}}),p.h("span",[a(t.gateway),p.h("br"),"IPv4"])],void 0!==t.gateway6&&e.push(p.h("span",[a(t.gateway6),p.h("br"),"IPv6"])),p.h("td",{props:{className:"gateway"}},e))]));var i=p.h("table",n);if((l=p.patch(l,i)).elm.classList.add("attributes"),p.patch(c,p.h("h3",_.t("node.link",r.neighbours.length)+" ("+r.neighbours.length+")")),0"+t.display_name+"
")});var o=document.createElement("input");o.setAttribute("aria-label",_.t("location.latitude")),o.type="text",o.value=e.lat.toFixed(9),t.appendChild(n("lat",_.t("location.latitude"),o));var r=document.createElement("input");r.setAttribute("aria-label",_.t("location.longitude")),r.type="text",r.value=e.lng.toFixed(9),t.appendChild(n("lng",_.t("location.longitude"),r));var s=document.createElement("textarea");s.setAttribute("aria-label","Uci"),s.value="uci set gluon-node-info.@location[0]='location'; uci set gluon-node-info.@location[0].share_location='1';uci set gluon-node-info.@location[0].latitude='"+e.lat.toFixed(9)+"';uci set gluon-node-info.@location[0].longitude='"+e.lng.toFixed(9)+"';uci commit gluon-node-info",t.appendChild(n("uci","Uci",s))}}),define("infobox/main",["infobox/link","infobox/node","infobox/location"],function(u,l,h){"use strict";return function(e,n){function i(){r&&r.parentNode&&(r.parentNode.removeChild(r),s=a=r=void 0,e.reveal())}function o(){i(),e.ensureVisible(),e.hide(),r=document.createElement("div"),e.container.children[1].appendChild(r),r.scrollIntoView(!1),r.classList.add("infobox"),r.destroy=i;var t=document.createElement("button");t.classList.add("close"),t.classList.add("ion-close"),t.setAttribute("aria-label",_.t("close")),t.onclick=function(){router.fullUrl()},r.appendChild(t)}var r,s,a;return this.resetView=i,this.gotoNode=function(t,e){o(),(s=new l(r,t,n,e)).render()},this.gotoLink=function(t){o(),(a=new u(r,t,n)).render()},this.gotoLocation=function(t){o(),h(r,t)},this.setData=function(t){"object"==typeof s&&s.setData(t),"object"==typeof a&&a.setData(t)},this}}),define("utils/version",[],function(){"use strict";function i(t){var e=/^[a-zA-Z]?([0-9]*(?=:))?:(.*)/.exec(t);this.epoch=e?e[1]:0,e=(e=e&&e[2]?e[2]:t).split("-"),this.debian=1n.length?"~"===i[n.length]?1:-1:0:i[o]?this.charCode(n[o])>this.charCode(i[o])?1:-1:"~"===n[o]?-1:1},i.prototype.compareStrings=function(t,e){if(t===e)return 0;for(var n=/([^0-9]+|[0-9]+)/g,i=/([^0-9]+|[0-9]+)/g,o=n.exec(t),r=i.exec(e);null!==o&&null!==r;){if((isNaN(o[1])||isNaN(r[1]))&&o[1]!==r[1])return this.compareChunk(o[1],r[1]);if(o[1]!==r[1])return parseInt(o[1],10)>parseInt(r[1],10)?1:-1;o=n.exec(t),r=i.exec(e)}return!o&&r?0=m.length)return null!=f&&t.sort(f),null!=p?p(t):t;for(var e,r,s,a=-1,u=t.length,l=m[n++],h=_(),c=i();++am.length)return t;var o,r=s[i-1];return null!=p&&i>=m.length?o=t.entries():(o=[],t.each(function(t,e){o.push({key:e,values:n(t,i)})})),null!=r?o.sort(function(t,e){return r(t.key,e.key)}):o}(d(t,0,o,r),0)},key:function(t){return m.push(t),e},sortKeys:function(t){return s[m.length-1]=t,e},sortValues:function(t){return f=t,e},rollup:function(t){return p=t,e}}},t.set=e,t.map=_,t.keys=function(t){var e=[];for(var n in t)e.push(n);return e},t.values=function(t){var e=[];for(var n in t)e.push(t[n]);return e},t.entries=function(t){var e=[];for(var n in t)e.push({key:n,value:t[n]});return e},Object.defineProperty(t,"__esModule",{value:!0})}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define("d3-dispatch",["exports"],e):e((t=t||self).d3=t.d3||{})}(this,function(t){"use strict";function e(){for(var t,e=0,n=arguments.length,i={};e=(r=(m+g)/2))?m=r:g=r,(h=n>=(s=(_+v)/2))?_=s:v=s,!(f=(o=f)[c=h<<1|l]))return o[c]=p,t;if(a=+t._x.call(null,f.data),u=+t._y.call(null,f.data),e===a&&n===u)return p.next=f,o?o[c]=p:t._root=p,t;for(;o=o?o[c]=new Array(4):t._root=new Array(4),(l=e>=(r=(m+g)/2))?m=r:g=r,(h=n>=(s=(_+v)/2))?_=s:v=s,(c=h<<1|l)==(d=(s<=u)<<1|r<=a););return o[d]=f,o[c]=p,t}function b(t,e,n,i,o){this.node=t,this.x0=e,this.y0=n,this.x1=i,this.y1=o}function o(t){return t[0]}function r(t){return t[1]}function e(t,e,n){var i=new s(null==e?o:e,null==n?r:n,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function s(t,e,n,i,o,r){this._x=t,this._y=e,this._x0=n,this._y0=i,this._x1=o,this._y1=r,this._root=void 0}function a(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var n=e.prototype=s.prototype;n.copy=function(){var t,e,n=new s(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=a(i),n;for(t=[{source:i,target:n._root=new Array(4)}];i=t.pop();)for(var o=0;o<4;++o)(e=i.source[o])&&(e.length?t.push({source:e,target:i.target[o]=new Array(4)}):i.target[o]=a(e));return n},n.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return d(this.cover(e,n),e,n,t)},n.addAll=function(t){var e,n,i,o,r=t.length,s=new Array(r),a=new Array(r),u=1/0,l=1/0,h=-1/0,c=-1/0;for(n=0;nd||(r=u.y0)>f||(s=u.x1)=(a=(p+_)/2))?p=a:_=a,(h=s>=(u=(m+g)/2))?m=u:g=u,!(f=(e=f)[c=h<<1|l]))return this;if(!f.length)break;(e[c+1&3]||e[c+2&3]||e[c+3&3])&&(n=e,d=c)}for(;f.data!==t;)if(!(f=(i=f).next))return this;return(o=f.next)&&delete f.next,i?o?i.next=o:delete i.next:e?(o?e[c]=o:delete e[c],(f=e[0]||e[1]||e[2]||e[3])&&f===(e[3]||e[2]||e[1]||e[0])&&!f.length&&(n?n[d]=f:this._root=f)):this._root=o,this},n.removeAll=function(t){for(var e=0,n=t.length;en._time&&(i=n._time),(t=n)._next):(e=n._next,n._next=null,t?t._next=e:l=e);h=t,s(i)}(),_=0}}function r(){var t=v.now(),e=t-m;pc.index){var u=d-r.x-r.vx,l=f-r.y-r.vy,h=u*u+l*l;ht.r&&(t.r=t[e].r)}function n(){if(s){var t,e,n=s.length;for(a=new Array(n),t=0;td)throw new Error("too late; already scheduled");return n}function N(t,e){var n=v(t,e);if(n.state>_)throw new Error("too late; already running");return n}function v(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function o(t,e){var n,i,o,r=t.__transition,s=!0;if(r){for(o in e=null==e?null:e+"",r)(n=r[o]).name===e?(i=n.state>m&&n.statep&&n.name===e)return new y([[t]],T,e,+i);return null},t.interrupt=o,t.transition=r,Object.defineProperty(t,"__esModule",{value:!0})}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define("d3-zoom",["exports","d3-dispatch","d3-drag","d3-interpolate","d3-selection","d3-transition"],e):e((t=t||self).d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,C,E,N,D,A){"use strict";function O(t){return function(){return t}}function z(t,e,n){this.target=t,this.type=e,this.transform=n}function R(t,e,n){this.k=t,this.x=e,this.y=n}function e(t){for(;!t.__zoom;)if(!(t=t.parentNode))return q;return t.__zoom}function I(){D.event.stopImmediatePropagation()}function Y(){D.event.preventDefault(),D.event.stopImmediatePropagation()}function Z(){return!D.event.ctrlKey&&!D.event.button}function B(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function j(){return this.__zoom||q}function W(){return-D.event.deltaY*(1===D.event.deltaMode?.05:D.event.deltaMode?1:.002)}function H(){return navigator.maxTouchPoints||"ontouchstart"in this}function F(t,e,n){var i=t.invertX(e[0][0])-n[0][0],o=t.invertX(e[1][0])-n[1][0],r=t.invertY(e[0][1])-n[0][1],s=t.invertY(e[1][1])-n[1][1];return t.translate(io[0]&&t.target.x>o[0]||t.source.y>o[1]&&t.target.y>o[1])){a.beginPath(),a.moveTo(t.source.x,t.source.y);var r=[t.target.x,t.target.y];e=t,n=r,c&&"link"===c.type&&e.o.id===c.id&&(a.lineTo(n[0],n[1]),a.strokeStyle=config.forceGraph.highlightColor,a.lineWidth=24,a.lineCap="round",a.stroke(),n=[e.source.x,e.source.y]),r=n;var s=a.createLinearGradient(t.source.x,t.source.y,t.target.x,t.target.y);s.addColorStop(.45,t.color),s.addColorStop(.55,t.color_to),a.lineTo(r[0],r[1]),a.strokeStyle=s,0===t.o.type.indexOf("vpn")?(a.globalAlpha=.2,a.lineWidth=1.5):(a.globalAlpha=.8,a.lineWidth=2.5),a.stroke(),a.globalAlpha=1}},setCTX:function(t){a=t},setHighlight:function(t){c=t},setTransform:function(t){h=t},setMaxArea:function(t,e){u=t,l=e}};return t}),define("forcegraph",["d3-selection","d3-force","d3-zoom","d3-drag","d3-timer","d3-ease","d3-interpolate","utils/math","forcegraph/draw"],function(w,x,b,L,M,k,T,P,S){"use strict";return function(n,h){function i(){f.width=e.offsetWidth,f.height=e.offsetHeight,S.setMaxArea(f.width,f.height)}function c(t,e){if(clearTimeout(m),!e&&.3"+_.t("node.nodes")+' '+_.t("sidebar.nodeNew")+' '+_.t("sidebar.nodeOnline")+' '+_.t("sidebar.nodeOffline")+"
"+_.t("node.clients")+' 2.4 GHz 5 GHz '+_.t("others")+'
Feel free to contribute! Please support this meshviewer-fork by opening issues or sending pull requests!
https://github.com/freifunkMUC/meshviewer
Fork maintained by Marvin Gaube
AGPL 3 Copyright (C) Milan Pässler
Copyright (C) Nils Schneider
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/ .
The source code is available at https://github.com/freifunkMUC/meshviewer .
'}}}),define("filters/nodefilter",[],function(){"use strict";return function(i){return function(t){var e=Object.create(t);for(var n in e.nodes={},t.nodes)t.nodes.hasOwnProperty(n)&&(e.nodes[n]=t.nodes[n].filter(i));return e.links=t.links.filter(function(t){return i(t.source)&&i(t.target)}),e}}}),define("datadistributor",["filters/nodefilter"],function(u){"use strict";return function(){function i(){if(void 0!==n){var t=a.reduce(function(e,n){return function(t){return e(t)&&n.run(t)}},function(){return!0});e=new u(t)(n),r.forEach(function(t){t.setData(e)})}}function t(){s.forEach(function(t){t.filtersChanged(a)})}function o(e){a=a.filter(function(t){return e!==t}),t(),i()}var e,n,r=[],s=[],a=[];return{add:function(t){r.push(t),void 0!==e&&t.setData(e)},remove:function(e){r=r.filter(function(t){return e!==t})},setData:function(t){n=t,i()},addFilter:function(e){var n=!0;a.forEach(function(t){t.getKey&&t.getKey()===e.getKey()&&(o(t),n=!1)}),n&&(a.push(e),t(),e.setRefresh(i),i())},removeFilter:o,watchFilters:function(e){return s.push(e),e.filtersChanged(a),function(){s=s.filter(function(t){return e!==t})}}}}}),define("filters/filtergui",[],function(){"use strict";return function(i){var o=document.createElement("ul");o.classList.add("filters");var e=document.createElement("div");return{render:function(t){t.appendChild(e)},filtersChanged:function(t){for(;o.firstChild;)o.removeChild(o.firstChild);t.forEach(function(t){var e=document.createElement("li");o.appendChild(e),t.render(e);var n=document.createElement("button");n.classList.add("ion-close"),n.setAttribute("aria-label",_.t("remove")),n.onclick=function(){i.removeFilter(t)},e.appendChild(n)}),o.parentNode===e&&0===t.length?e.removeChild(o):0Language";for(var n=0;n'+config.supportedLocale[n]+""}}}}),define("main",["moment","utils/router","leaflet","gui","helper","utils/language"],function(c,e,d,o,f,r){"use strict";return function(){function t(t){for(var e,n=[],i=[],o={},r=0;rTry to reload or report to your community',console.warn(t)})}}),define("load",["config_default","main"],function(e,n){return function(){fetch("config.json").then(function(t){return t.json()}).then(function(t){window.config=Object.assign(e,t),n()}).catch(function(t){throw t})}}),require.config({paths:{polyglot:"../node_modules/node-polyglot/build/polyglot",Navigo:"../node_modules/navigo/lib/navigo",leaflet:"../node_modules/leaflet/dist/leaflet",moment:"../node_modules/moment/min/moment.min","d3-ease":"../node_modules/d3-ease/dist/d3-ease","d3-transition":"../node_modules/d3-transition/dist/d3-transition","d3-color":"../node_modules/d3-color/dist/d3-color","d3-interpolate":"../node_modules/d3-interpolate/dist/d3-interpolate","d3-collection":"../node_modules/d3-collection/dist/d3-collection","d3-dispatch":"../node_modules/d3-dispatch/dist/d3-dispatch","d3-quadtree":"../node_modules/d3-quadtree/dist/d3-quadtree","d3-timer":"../node_modules/d3-timer/dist/d3-timer","d3-selection":"../node_modules/d3-selection/dist/d3-selection","d3-force":"../node_modules/d3-force/dist/d3-force","d3-zoom":"../node_modules/d3-zoom/dist/d3-zoom","d3-drag":"../node_modules/d3-drag/dist/d3-drag",snabbdom:"../node_modules/snabbdom/dist/snabbdom-patch",rbush:"../node_modules/rbush/rbush",helper:"utils/helper"},shim:{"d3-drag":["d3-selection"],"d3-force":["d3-collection","d3-dispatch","d3-quadtree","d3-timer"],"d3-interpolate":["d3-color"],"d3-zoom":["d3-drag","d3-ease","d3-transition","d3-interpolate"]}}),require(["load"],function(t){t()}),define("../app",function(){})LadeMeshviewer Karten & Knoten...
JavaScript required