{"version":3,"file":"Leaflet.VectorGrid.bundled.js","sources":["../.gobble-build/03-merge/1/bundle-extra.js","../.gobble-build/03-merge/1/Leaflet.Renderer.Canvas.Tile.js","../.gobble-build/03-merge/1/Leaflet.VectorGrid.Slicer.js","../.gobble-build/03-merge/1/Leaflet.VectorGrid.Protobuf.js","../.gobble-build/03-merge/1/Leaflet.VectorGrid.js","../.gobble-build/03-merge/1/Symbolizer.Fill.js","../.gobble-build/03-merge/1/Symbolizer.Line.js","../.gobble-build/03-merge/1/Symbolizer.Point.js","../.gobble-build/03-merge/1/Symbolizer.PolyBase.js","../.gobble-build/03-merge/1/Symbolizer.js","../.gobble-build/03-merge/1/Leaflet.Renderer.SVG.Tile.js","../node_modules/vector-tile/index.js","../node_modules/vector-tile/lib/vectortile.js","../node_modules/vector-tile/lib/vectortilelayer.js","../node_modules/vector-tile/lib/vectortilefeature.js","../node_modules/point-geometry/index.js","../node_modules/pbf/index.js","../node_modules/ieee754/index.js","../node_modules/whatwg-fetch/fetch.js"],"sourcesContent":["\n// Aux file to bundle everything together, including the optional dependencies\n// for protobuf tiles\n\nimport {} from 'whatwg-fetch'\n\nimport {} from 'pbf';\nimport {VectorTile} from 'vector-tile';\n\nimport {} from './Leaflet.VectorGrid.js';\nimport {} from './Leaflet.VectorGrid.Protobuf.js';\nimport {} from './Leaflet.VectorGrid.Slicer.js';\nimport {} from './Leaflet.Renderer.Canvas.Tile.js';\nimport {} from './Leaflet.Renderer.SVG.Tile.js';\n\n","\n\nL.Canvas.Tile = L.Canvas.extend({\n\n\tinitialize: function (tileCoord, tileSize, options) {\n\t\tL.Canvas.prototype.initialize.call(this, options);\n\t\tthis._tileCoord = tileCoord;\n\t\tthis._size = tileSize;\n\n\t\tthis._initContainer();\n\t\tthis._container.setAttribute('width', this._size.x);\n\t\tthis._container.setAttribute('height', this._size.y);\n\t\tthis._layers = {};\n\t\tthis._drawnLayers = {};\n\t\tthis._drawing = true;\n\n\t\tif (options.interactive) {\n\t\t\t// By default, Leaflet tiles do not have pointer events\n\t\t\tthis._container.style.pointerEvents = 'auto';\n\t\t}\n\t},\n\n\tgetCoord: function() {\n\t\treturn this._tileCoord;\n\t},\n\n\tgetContainer: function() {\n\t\treturn this._container;\n\t},\n\n\tgetOffset: function() {\n\t\treturn this._tileCoord.scaleBy(this._size).subtract(this._map.getPixelOrigin());\n\t},\n\n\tonAdd: L.Util.falseFn,\n\n\taddTo: function(map) {\n\t\tthis._map = map;\n\t},\n\n\tremoveFrom: function (map) {\n\t\tdelete this._map;\n\t},\n\n\t_onClick: function (e) {\n\t\tvar point = this._map.mouseEventToLayerPoint(e).subtract(this.getOffset()), layer, clickedLayer;\n\n\t\tfor (var id in this._layers) {\n\t\t\tlayer = this._layers[id];\n\t\t\tif (layer.options.interactive && layer._containsPoint(point) && !this._map._draggableMoved(layer)) {\n\t\t\t\tclickedLayer = layer;\n\t\t\t}\n\t\t}\n\t\tif (clickedLayer) {\n\t\t\tL.DomEvent.fakeStop(e);\n\t\t\tthis._fireEvent([clickedLayer], e);\n\t\t}\n\t},\n\n\t_onMouseMove: function (e) {\n\t\tif (!this._map || this._map.dragging.moving() || this._map._animatingZoom) { return; }\n\n\t\tvar point = this._map.mouseEventToLayerPoint(e).subtract(this.getOffset());\n\t\tthis._handleMouseHover(e, point);\n\t},\n\n\t/// TODO: Modify _initPath to include an extra parameter, a group name\n\t/// to order symbolizers by z-index\n\n\t_updateIcon: function (layer) {\n\t\tif (!this._drawing) { return; }\n\n\t\tvar icon = layer.options.icon,\n\t\t options = icon.options,\n\t\t size = L.point(options.iconSize),\n\t\t anchor = options.iconAnchor ||\n\t\t \t size && size.divideBy(2, true),\n\t\t p = layer._point.subtract(anchor),\n\t\t ctx = this._ctx,\n\t\t img = layer._getImage();\n\n\t\tif (img.complete) {\n\t\t\tctx.drawImage(img, p.x, p.y, size.x, size.y);\n\t\t} else {\n\t\t\tL.DomEvent.on(img, 'load', function() {\n\t\t\t\tctx.drawImage(img, p.x, p.y, size.x, size.y);\n\t\t\t});\n\t\t}\n\n\t\tthis._drawnLayers[layer._leaflet_id] = layer;\n\t}\n});\n\n\nL.canvas.tile = function(tileCoord, tileSize, opts){\n\treturn new L.Canvas.Tile(tileCoord, tileSize, opts);\n}\n\n","\n// The geojson/topojson is sliced into tiles via a web worker.\n// This import statement depends on rollup-file-as-blob, so that the\n// variable 'workerCode' is a blob URL.\n\nimport workerCode from './slicerWebWorker.js.worker';\n\n/*\n * 🍂class VectorGrid.Slicer\n * 🍂extends VectorGrid\n *\n * A `VectorGrid` for slicing up big GeoJSON or TopoJSON documents in vector\n * tiles, leveraging [`geojson-vt`](https://github.com/mapbox/geojson-vt).\n *\n * 🍂example\n *\n * ```\n * var geoJsonDocument = {\n * \ttype: 'FeatureCollection',\n * \tfeatures: [ ... ]\n * };\n *\n * L.vectorGrid.slicer(geoJsonDocument, {\n * \tvectorTileLayerStyles: {\n * \t\tsliced: { ... }\n * \t}\n * }).addTo(map);\n *\n * ```\n *\n * `VectorGrid.Slicer` can also handle [TopoJSON](https://github.com/mbostock/topojson) transparently:\n * ```js\n * var layer = L.vectorGrid.slicer(topojson, options);\n * ```\n *\n * The TopoJSON format [implicitly groups features into \"objects\"](https://github.com/mbostock/topojson-specification/blob/master/README.md#215-objects).\n * These will be transformed into vector tile layer names when styling (the\n * `vectorTileLayerName` option is ignored when using TopoJSON).\n *\n */\n\nL.VectorGrid.Slicer = L.VectorGrid.extend({\n\n\toptions: {\n\t\t// 🍂section\n\t\t// Additionally to these options, `VectorGrid.Slicer` can take in any\n\t\t// of the [`geojson-vt` options](https://github.com/mapbox/geojson-vt#options).\n\n\t\t// 🍂option vectorTileLayerName: String = 'sliced'\n\t\t// Vector tiles contain a set of *data layers*, and those data layers\n\t\t// contain features. Thus, the slicer creates one data layer, with\n\t\t// the name given in this option. This is important for symbolizing the data.\n\t\tvectorTileLayerName: 'sliced',\n\n\t\textent: 4096,\t// Default for geojson-vt\n\t\tmaxZoom: 14 \t// Default for geojson-vt\n\t},\n\n\tinitialize: function(geojson, options) {\n\t\tL.VectorGrid.prototype.initialize.call(this, options);\n\n\t\t// Create a shallow copy of this.options, excluding things that might\n\t\t// be functions - we only care about topojson/geojsonvt options\n\t\tvar options = {};\n\t\tfor (var i in this.options) {\n\t\t\tif (i !== 'rendererFactory' &&\n\t\t\t\ti !== 'vectorTileLayerStyles' &&\n\t\t\t\ttypeof (this.options[i]) !== 'function'\n\t\t\t) {\n\t\t\t\toptions[i] = this.options[i];\n\t\t\t}\n\t\t}\n\n// \t\tthis._worker = new Worker(window.URL.createObjectURL(new Blob([workerCode])));\n\t\tthis._worker = new Worker(workerCode);\n\n\t\t// Send initial data to worker.\n\t\tthis._worker.postMessage(['slice', geojson, options]);\n\n\t},\n\n\n\t_getVectorTilePromise: function(coords) {\n\n\t\tvar _this = this;\n\n\t\tvar p = new Promise( function waitForWorker(res) {\n\t\t\t_this._worker.addEventListener('message', function recv(m) {\n\t\t\t\tif (m.data.coords &&\n\t\t\t\t m.data.coords.x === coords.x &&\n\t\t\t\t m.data.coords.y === coords.y &&\n\t\t\t\t m.data.coords.z === coords.z ) {\n\n\t\t\t\t\tres(m.data);\n\t\t\t\t\t_this._worker.removeEventListener('message', recv);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis._worker.postMessage(['get', coords]);\n\n\t\treturn p;\n\t},\n\n});\n\n\nL.vectorGrid.slicer = function (geojson, options) {\n\treturn new L.VectorGrid.Slicer(geojson, options);\n};\n\n","\nimport Pbf from 'pbf';\nimport {VectorTile} from 'vector-tile';\n\n/*\n * 🍂class VectorGrid.Protobuf\n * 🍂extends VectorGrid\n *\n * A `VectorGrid` for vector tiles fetched from the internet.\n * Tiles are supposed to be protobufs (AKA \"protobuffer\" or \"Protocol Buffers\"),\n * containing data which complies with the\n * [MapBox Vector Tile Specification](https://github.com/mapbox/vector-tile-spec/tree/master/2.1).\n *\n * This is the format used by:\n * - Mapbox Vector Tiles\n * - Mapzen Vector Tiles\n * - ESRI Vector Tiles\n * - [OpenMapTiles hosted Vector Tiles](https://openmaptiles.com/hosting/)\n *\n * 🍂example\n *\n * You must initialize a `VectorGrid.Protobuf` with a URL template, just like in\n * `L.TileLayer`s. The difference is that the template must point to vector tiles\n * (usually `.pbf` or `.mvt`) instead of raster (`.png` or `.jpg`) tiles, and that\n * you should define the styling for all the features.\n *\n *
\n *\n * For OpenMapTiles, with a key from [https://openmaptiles.org/docs/host/use-cdn/](https://openmaptiles.org/docs/host/use-cdn/),\n * initialization looks like this:\n *\n * ```\n * L.vectorGrid.protobuf(\"https://free-{s}.tilehosting.com/data/v3/{z}/{x}/{y}.pbf.pict?key={key}\", {\n * \tvectorTileLayerStyles: { ... },\n * \tsubdomains: \"0123\",\n * \tkey: 'abcdefghi01234567890',\n * \tmaxNativeZoom: 14\n * }).addTo(map);\n * ```\n *\n * And for Mapbox vector tiles, it looks like this:\n *\n * ```\n * L.vectorGrid.protobuf(\"https://{s}.tiles.mapbox.com/v4/mapbox.mapbox-streets-v6/{z}/{x}/{y}.vector.pbf?access_token={token}\", {\n * \tvectorTileLayerStyles: { ... },\n * \tsubdomains: \"abcd\",\n * \ttoken: \"pk.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRTS.TUVWXTZ0123456789abcde\"\n * }).addTo(map);\n * ```\n */\nL.VectorGrid.Protobuf = L.VectorGrid.extend({\n\n\toptions: {\n\t\t// 🍂section\n\t\t// As with `L.TileLayer`, the URL template might contain a reference to\n\t\t// any option (see the example above and note the `{key}` or `token` in the URL\n\t\t// template, and the corresponding option).\n\t\t//\n\t\t// 🍂option subdomains: String = 'abc'\n\t\t// Akin to the `subdomains` option for `L.TileLayer`.\n\t\tsubdomains: 'abc',\t// Like L.TileLayer\n\t\t//\n\t\t// 🍂option fetchOptions: Object = {}\n\t\t// options passed to `fetch`, e.g. {credentials: 'same-origin'} to send cookie for the current domain\n\t\tfetchOptions: {}\n\t},\n\n\tinitialize: function(url, options) {\n\t\t// Inherits options from geojson-vt!\n// \t\tthis._slicer = geojsonvt(geojson, options);\n\t\tthis._url = url;\n\t\tL.VectorGrid.prototype.initialize.call(this, options);\n\t},\n\n\t// 🍂method setUrl(url: String, noRedraw?: Boolean): this\n\t// Updates the layer's URL template and redraws it (unless `noRedraw` is set to `true`).\n\tsetUrl: function(url, noRedraw) {\n\t\tthis._url = url;\n\n\t\tif (!noRedraw) {\n\t\t\tthis.redraw();\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_getSubdomain: L.TileLayer.prototype._getSubdomain,\n\n\t_getVectorTilePromise: function(coords) {\n\t\tvar data = {\n\t\t\ts: this._getSubdomain(coords),\n\t\t\tx: coords.x,\n\t\t\ty: coords.y,\n\t\t\tz: coords.z\n// \t\t\tz: this._getZoomForUrl()\t/// TODO: Maybe replicate TileLayer's maxNativeZoom\n\t\t};\n\t\tif (this._map && !this._map.options.crs.infinite) {\n\t\t\tvar invertedY = this._globalTileRange.max.y - coords.y;\n\t\t\tif (this.options.tms) { // Should this option be available in Leaflet.VectorGrid?\n\t\t\t\tdata['y'] = invertedY;\n\t\t\t}\n\t\t\tdata['-y'] = invertedY;\n\t\t}\n\n\t\tvar tileUrl = L.Util.template(this._url, L.extend(data, this.options));\n\n\t\treturn fetch(tileUrl, this.options.fetchOptions).then(function(response){\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {layers:[]};\n\t\t\t}\n\n\t\t\treturn response.blob().then( function (blob) {\n// \t\t\t\tconsole.log(blob);\n\n\t\t\t\tvar reader = new FileReader();\n\t\t\t\treturn new Promise(function(resolve){\n\t\t\t\t\treader.addEventListener(\"loadend\", function() {\n\t\t\t\t\t\t// reader.result contains the contents of blob as a typed array\n\n\t\t\t\t\t\t// blob.type === 'application/x-protobuf'\n\t\t\t\t\t\tvar pbf = new Pbf( reader.result );\n// \t\t\t\t\t\tconsole.log(pbf);\n\t\t\t\t\t\treturn resolve(new VectorTile( pbf ));\n\n\t\t\t\t\t});\n\t\t\t\t\treader.readAsArrayBuffer(blob);\n\t\t\t\t});\n\t\t\t});\n\t\t}).then(function(json){\n\n// \t\t\tconsole.log('Vector tile:', json.layers);\n// \t\t\tconsole.log('Vector tile water:', json.layers.water);\t// Instance of VectorTileLayer\n\n\t\t\t// Normalize feature getters into actual instanced features\n\t\t\tfor (var layerName in json.layers) {\n\t\t\t\tvar feats = [];\n\n\t\t\t\tfor (var i=0; i> 3;\n\n value = tag === 1 ? pbf.readString() :\n tag === 2 ? pbf.readFloat() :\n tag === 3 ? pbf.readDouble() :\n tag === 4 ? pbf.readVarint64() :\n tag === 5 ? pbf.readVarint() :\n tag === 6 ? pbf.readSVarint() :\n tag === 7 ? pbf.readBoolean() : null;\n }\n\n return value;\n}\n\n// return feature `i` from this layer as a `VectorTileFeature`\nVectorTileLayer.prototype.feature = function(i) {\n if (i < 0 || i >= this._features.length) throw new Error('feature index out of bounds');\n\n this._pbf.pos = this._features[i];\n\n var end = this._pbf.readVarint() + this._pbf.pos;\n return new VectorTileFeature(this._pbf, end, this.extent, this._keys, this._values);\n};\n","'use strict';\n\nvar Point = require('point-geometry');\n\nmodule.exports = VectorTileFeature;\n\nfunction VectorTileFeature(pbf, end, extent, keys, values) {\n // Public\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n\n // Private\n this._pbf = pbf;\n this._geometry = -1;\n this._keys = keys;\n this._values = values;\n\n pbf.readFields(readFeature, this, end);\n}\n\nfunction readFeature(tag, feature, pbf) {\n if (tag == 1) feature.id = pbf.readVarint();\n else if (tag == 2) readTag(pbf, feature);\n else if (tag == 3) feature.type = pbf.readVarint();\n else if (tag == 4) feature._geometry = pbf.pos;\n}\n\nfunction readTag(pbf, feature) {\n var end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n var key = feature._keys[pbf.readVarint()],\n value = feature._values[pbf.readVarint()];\n feature.properties[key] = value;\n }\n}\n\nVectorTileFeature.types = ['Unknown', 'Point', 'LineString', 'Polygon'];\n\nVectorTileFeature.prototype.loadGeometry = function() {\n var pbf = this._pbf;\n pbf.pos = this._geometry;\n\n var end = pbf.readVarint() + pbf.pos,\n cmd = 1,\n length = 0,\n x = 0,\n y = 0,\n lines = [],\n line;\n\n while (pbf.pos < end) {\n if (!length) {\n var cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n\n if (cmd === 1) { // moveTo\n if (line) lines.push(line);\n line = [];\n }\n\n line.push(new Point(x, y));\n\n } else if (cmd === 7) {\n\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (line) {\n line.push(line[0].clone()); // closePolygon\n }\n\n } else {\n throw new Error('unknown command ' + cmd);\n }\n }\n\n if (line) lines.push(line);\n\n return lines;\n};\n\nVectorTileFeature.prototype.bbox = function() {\n var pbf = this._pbf;\n pbf.pos = this._geometry;\n\n var end = pbf.readVarint() + pbf.pos,\n cmd = 1,\n length = 0,\n x = 0,\n y = 0,\n x1 = Infinity,\n x2 = -Infinity,\n y1 = Infinity,\n y2 = -Infinity;\n\n while (pbf.pos < end) {\n if (!length) {\n var cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (x < x1) x1 = x;\n if (x > x2) x2 = x;\n if (y < y1) y1 = y;\n if (y > y2) y2 = y;\n\n } else if (cmd !== 7) {\n throw new Error('unknown command ' + cmd);\n }\n }\n\n return [x1, y1, x2, y2];\n};\n\nVectorTileFeature.prototype.toGeoJSON = function(x, y, z) {\n var size = this.extent * Math.pow(2, z),\n x0 = this.extent * x,\n y0 = this.extent * y,\n coords = this.loadGeometry(),\n type = VectorTileFeature.types[this.type],\n i, j;\n\n function project(line) {\n for (var j = 0; j < line.length; j++) {\n var p = line[j], y2 = 180 - (p.y + y0) * 360 / size;\n line[j] = [\n (p.x + x0) * 360 / size - 180,\n 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90\n ];\n }\n }\n\n switch (this.type) {\n case 1:\n var points = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n project(coords);\n break;\n\n case 2:\n for (i = 0; i < coords.length; i++) {\n project(coords[i]);\n }\n break;\n\n case 3:\n coords = classifyRings(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n project(coords[i][j]);\n }\n }\n break;\n }\n\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = 'Multi' + type;\n }\n\n var result = {\n type: \"Feature\",\n geometry: {\n type: type,\n coordinates: coords\n },\n properties: this.properties\n };\n\n if ('id' in this) {\n result.id = this.id;\n }\n\n return result;\n};\n\n// classifies an array of rings into polygons with outer rings and holes\n\nfunction classifyRings(rings) {\n var len = rings.length;\n\n if (len <= 1) return [rings];\n\n var polygons = [],\n polygon,\n ccw;\n\n for (var i = 0; i < len; i++) {\n var area = signedArea(rings[i]);\n if (area === 0) continue;\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) polygons.push(polygon);\n polygon = [rings[i]];\n\n } else {\n polygon.push(rings[i]);\n }\n }\n if (polygon) polygons.push(polygon);\n\n return polygons;\n}\n\nfunction signedArea(ring) {\n var sum = 0;\n for (var i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2.x - p1.x) * (p1.y + p2.y);\n }\n return sum;\n}\n","'use strict';\n\nmodule.exports = Point;\n\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n clone: function() { return new Point(this.x, this.y); },\n\n add: function(p) { return this.clone()._add(p); },\n sub: function(p) { return this.clone()._sub(p); },\n mult: function(k) { return this.clone()._mult(k); },\n div: function(k) { return this.clone()._div(k); },\n rotate: function(a) { return this.clone()._rotate(a); },\n matMult: function(m) { return this.clone()._matMult(m); },\n unit: function() { return this.clone()._unit(); },\n perp: function() { return this.clone()._perp(); },\n round: function() { return this.clone()._round(); },\n\n mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n equals: function(p) {\n return this.x === p.x &&\n this.y === p.y;\n },\n\n dist: function(p) {\n return Math.sqrt(this.distSqr(p));\n },\n\n distSqr: function(p) {\n var dx = p.x - this.x,\n dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n\n angle: function() {\n return Math.atan2(this.y, this.x);\n },\n\n angleTo: function(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n\n angleWith: function(b) {\n return this.angleWithSep(b.x, b.y);\n },\n\n // Find the angle of the two vectors, solving the formula for the cross product a x b = |a||b|sin(θ) for θ.\n angleWithSep: function(x, y) {\n return Math.atan2(\n this.x * y - this.y * x,\n this.x * x + this.y * y);\n },\n\n _matMult: function(m) {\n var x = m[0] * this.x + m[1] * this.y,\n y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n\n _rotate: function(angle) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = cos * this.x - sin * this.y,\n y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n};\n\n// constructs Point from an array if necessary\nPoint.convert = function (a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n};\n","'use strict';\n\nmodule.exports = Pbf;\n\nvar ieee754 = require('ieee754');\n\nfunction Pbf(buf) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);\n this.pos = 0;\n this.type = 0;\n this.length = this.buf.length;\n}\n\nPbf.Varint = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum\nPbf.Fixed64 = 1; // 64-bit: double, fixed64, sfixed64\nPbf.Bytes = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields\nPbf.Fixed32 = 5; // 32-bit: float, fixed32, sfixed32\n\nvar SHIFT_LEFT_32 = (1 << 16) * (1 << 16),\n SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\nPbf.prototype = {\n\n destroy: function() {\n this.buf = null;\n },\n\n // === READING =================================================================\n\n readFields: function(readField, result, end) {\n end = end || this.length;\n\n while (this.pos < end) {\n var val = this.readVarint(),\n tag = val >> 3,\n startPos = this.pos;\n\n this.type = val & 0x7;\n readField(tag, result, this);\n\n if (this.pos === startPos) this.skip(val);\n }\n return result;\n },\n\n readMessage: function(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n },\n\n readFixed32: function() {\n var val = readUInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n readSFixed32: function() {\n var val = readInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed)\n\n readFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readSFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readFloat: function() {\n var val = ieee754.read(this.buf, this.pos, true, 23, 4);\n this.pos += 4;\n return val;\n },\n\n readDouble: function() {\n var val = ieee754.read(this.buf, this.pos, true, 52, 8);\n this.pos += 8;\n return val;\n },\n\n readVarint: function(isSigned) {\n var buf = this.buf,\n val, b;\n\n b = buf[this.pos++]; val = b & 0x7f; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 7; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) return val;\n b = buf[this.pos]; val |= (b & 0x0f) << 28;\n\n return readVarintRemainder(val, isSigned, this);\n },\n\n readVarint64: function() { // for compatibility with v2.0.1\n return this.readVarint(true);\n },\n\n readSVarint: function() {\n var num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n },\n\n readBoolean: function() {\n return Boolean(this.readVarint());\n },\n\n readString: function() {\n var end = this.readVarint() + this.pos,\n str = readUtf8(this.buf, this.pos, end);\n this.pos = end;\n return str;\n },\n\n readBytes: function() {\n var end = this.readVarint() + this.pos,\n buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n },\n\n // verbose for performance reasons; doesn't affect gzipped size\n\n readPackedVarint: function(arr, isSigned) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readVarint(isSigned));\n return arr;\n },\n readPackedSVarint: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSVarint());\n return arr;\n },\n readPackedBoolean: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readBoolean());\n return arr;\n },\n readPackedFloat: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFloat());\n return arr;\n },\n readPackedDouble: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readDouble());\n return arr;\n },\n readPackedFixed32: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed32());\n return arr;\n },\n readPackedSFixed32: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed32());\n return arr;\n },\n readPackedFixed64: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed64());\n return arr;\n },\n readPackedSFixed64: function(arr) {\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed64());\n return arr;\n },\n\n skip: function(val) {\n var type = val & 0x7;\n if (type === Pbf.Varint) while (this.buf[this.pos++] > 0x7f) {}\n else if (type === Pbf.Bytes) this.pos = this.readVarint() + this.pos;\n else if (type === Pbf.Fixed32) this.pos += 4;\n else if (type === Pbf.Fixed64) this.pos += 8;\n else throw new Error('Unimplemented type: ' + type);\n },\n\n // === WRITING =================================================================\n\n writeTag: function(tag, type) {\n this.writeVarint((tag << 3) | type);\n },\n\n realloc: function(min) {\n var length = this.length || 16;\n\n while (length < this.pos + min) length *= 2;\n\n if (length !== this.length) {\n var buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.length = length;\n }\n },\n\n finish: function() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n },\n\n writeFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeSFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeSFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeVarint: function(val) {\n val = +val || 0;\n\n if (val > 0xfffffff || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n\n this.realloc(4);\n\n this.buf[this.pos++] = val & 0x7f | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = (val >>> 7) & 0x7f;\n },\n\n writeSVarint: function(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n },\n\n writeBoolean: function(val) {\n this.writeVarint(Boolean(val));\n },\n\n writeString: function(str) {\n str = String(str);\n this.realloc(str.length * 4);\n\n this.pos++; // reserve 1 byte for short string length\n\n var startPos = this.pos;\n // write the string directly to the buffer and see how much was written\n this.pos = writeUtf8(this.buf, str, this.pos);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeFloat: function(val) {\n this.realloc(4);\n ieee754.write(this.buf, val, this.pos, true, 23, 4);\n this.pos += 4;\n },\n\n writeDouble: function(val) {\n this.realloc(8);\n ieee754.write(this.buf, val, this.pos, true, 52, 8);\n this.pos += 8;\n },\n\n writeBytes: function(buffer) {\n var len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n for (var i = 0; i < len; i++) this.buf[this.pos++] = buffer[i];\n },\n\n writeRawMessage: function(fn, obj) {\n this.pos++; // reserve 1 byte for short message length\n\n // write the message directly to the buffer and see how much was written\n var startPos = this.pos;\n fn(obj, this);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeMessage: function(tag, fn, obj) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeRawMessage(fn, obj);\n },\n\n writePackedVarint: function(tag, arr) { this.writeMessage(tag, writePackedVarint, arr); },\n writePackedSVarint: function(tag, arr) { this.writeMessage(tag, writePackedSVarint, arr); },\n writePackedBoolean: function(tag, arr) { this.writeMessage(tag, writePackedBoolean, arr); },\n writePackedFloat: function(tag, arr) { this.writeMessage(tag, writePackedFloat, arr); },\n writePackedDouble: function(tag, arr) { this.writeMessage(tag, writePackedDouble, arr); },\n writePackedFixed32: function(tag, arr) { this.writeMessage(tag, writePackedFixed32, arr); },\n writePackedSFixed32: function(tag, arr) { this.writeMessage(tag, writePackedSFixed32, arr); },\n writePackedFixed64: function(tag, arr) { this.writeMessage(tag, writePackedFixed64, arr); },\n writePackedSFixed64: function(tag, arr) { this.writeMessage(tag, writePackedSFixed64, arr); },\n\n writeBytesField: function(tag, buffer) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeBytes(buffer);\n },\n writeFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFixed32(val);\n },\n writeSFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeSFixed32(val);\n },\n writeFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeFixed64(val);\n },\n writeSFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeSFixed64(val);\n },\n writeVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeVarint(val);\n },\n writeSVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeSVarint(val);\n },\n writeStringField: function(tag, str) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeString(str);\n },\n writeFloatField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFloat(val);\n },\n writeDoubleField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeDouble(val);\n },\n writeBooleanField: function(tag, val) {\n this.writeVarintField(tag, Boolean(val));\n }\n};\n\nfunction readVarintRemainder(l, s, p) {\n var buf = p.buf,\n h, b;\n\n b = buf[p.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);\n\n throw new Error('Expected varint not more than 10 bytes');\n}\n\nfunction readPackedEnd(pbf) {\n return pbf.type === Pbf.Bytes ?\n pbf.readVarint() + pbf.pos : pbf.pos + 1;\n}\n\nfunction toNum(low, high, isSigned) {\n if (isSigned) {\n return high * 0x100000000 + (low >>> 0);\n }\n\n return ((high >>> 0) * 0x100000000) + (low >>> 0);\n}\n\nfunction writeBigVarint(val, pbf) {\n var low, high;\n\n if (val >= 0) {\n low = (val % 0x100000000) | 0;\n high = (val / 0x100000000) | 0;\n } else {\n low = ~(-val % 0x100000000);\n high = ~(-val / 0x100000000);\n\n if (low ^ 0xffffffff) {\n low = (low + 1) | 0;\n } else {\n low = 0;\n high = (high + 1) | 0;\n }\n }\n\n if (val >= 0x10000000000000000 || val < -0x10000000000000000) {\n throw new Error('Given varint doesn\\'t fit into 10 bytes');\n }\n\n pbf.realloc(10);\n\n writeBigVarintLow(low, high, pbf);\n writeBigVarintHigh(high, pbf);\n}\n\nfunction writeBigVarintLow(low, high, pbf) {\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos] = low & 0x7f;\n}\n\nfunction writeBigVarintHigh(high, pbf) {\n var lsb = (high & 0x07) << 4;\n\n pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f;\n}\n\nfunction makeRoomForExtraLength(startPos, len, pbf) {\n var extraLen =\n len <= 0x3fff ? 1 :\n len <= 0x1fffff ? 2 :\n len <= 0xfffffff ? 3 : Math.ceil(Math.log(len) / (Math.LN2 * 7));\n\n // if 1 byte isn't enough for encoding message length, shift the data to the right\n pbf.realloc(extraLen);\n for (var i = pbf.pos - 1; i >= startPos; i--) pbf.buf[i + extraLen] = pbf.buf[i];\n}\n\nfunction writePackedVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeVarint(arr[i]); }\nfunction writePackedSVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSVarint(arr[i]); }\nfunction writePackedFloat(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFloat(arr[i]); }\nfunction writePackedDouble(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeDouble(arr[i]); }\nfunction writePackedBoolean(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeBoolean(arr[i]); }\nfunction writePackedFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed32(arr[i]); }\nfunction writePackedSFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed32(arr[i]); }\nfunction writePackedFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed64(arr[i]); }\nfunction writePackedSFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed64(arr[i]); }\n\n// Buffer code below from https://github.com/feross/buffer, MIT-licensed\n\nfunction readUInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] * 0x1000000);\n}\n\nfunction writeInt32(buf, val, pos) {\n buf[pos] = val;\n buf[pos + 1] = (val >>> 8);\n buf[pos + 2] = (val >>> 16);\n buf[pos + 3] = (val >>> 24);\n}\n\nfunction readInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] << 24);\n}\n\nfunction readUtf8(buf, pos, end) {\n var str = '';\n var i = pos;\n\n while (i < end) {\n var b0 = buf[i];\n var c = null; // codepoint\n var bytesPerSequence =\n b0 > 0xEF ? 4 :\n b0 > 0xDF ? 3 :\n b0 > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence > end) break;\n\n var b1, b2, b3;\n\n if (bytesPerSequence === 1) {\n if (b0 < 0x80) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 0xC0) === 0x80) {\n c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F);\n if (c <= 0x7F) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F);\n if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F);\n if (c <= 0xFFFF || c >= 0x110000) {\n c = null;\n }\n }\n }\n\n if (c === null) {\n c = 0xFFFD;\n bytesPerSequence = 1;\n\n } else if (c > 0xFFFF) {\n c -= 0x10000;\n str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800);\n c = 0xDC00 | c & 0x3FF;\n }\n\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n\n return str;\n}\n\nfunction writeUtf8(buf, str, pos) {\n for (var i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i); // code point\n\n if (c > 0xD7FF && c < 0xE000) {\n if (lead) {\n if (c < 0xDC00) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = c;\n continue;\n } else {\n c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000;\n lead = null;\n }\n } else {\n if (c > 0xDBFF || (i + 1 === str.length)) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = null;\n }\n\n if (c < 0x80) {\n buf[pos++] = c;\n } else {\n if (c < 0x800) {\n buf[pos++] = c >> 0x6 | 0xC0;\n } else {\n if (c < 0x10000) {\n buf[pos++] = c >> 0xC | 0xE0;\n } else {\n buf[pos++] = c >> 0x12 | 0xF0;\n buf[pos++] = c >> 0xC & 0x3F | 0x80;\n }\n buf[pos++] = c >> 0x6 & 0x3F | 0x80;\n }\n buf[pos++] = c & 0x3F | 0x80;\n }\n }\n return pos;\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n"],"names":["Pbf","require$$2","VectorTileLayer","VectorTile","require$$0","VectorTileFeature","Point","this"],"mappings":"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"}