From 964f65a9dd94ae0a18b8be3d9a9c1b0b1fdf6424 Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Sun, 18 Dec 2016 20:26:02 +0100 Subject: [PATCH] Refactored BufferReader/Writer to their own files and removed unnecessary operations (node always has FloatXXArray and browser buffer uses ieee anyway) --- README.md | 3 +- dist/protobuf.js | 376 +++++++++++++++---------------- dist/protobuf.js.map | 2 +- dist/protobuf.min.js | 6 +- dist/protobuf.min.js.gz | Bin 18013 -> 17947 bytes dist/protobuf.min.js.map | 2 +- dist/runtime/protobuf.js | 215 ++++++++---------- dist/runtime/protobuf.js.map | 2 +- dist/runtime/protobuf.min.js | 4 +- dist/runtime/protobuf.min.js.gz | Bin 5655 -> 5637 bytes dist/runtime/protobuf.min.js.map | 2 +- package.json | 2 +- src/index.js | 8 +- src/mapfield.js | 11 +- src/reader.js | 100 +------- src/reader_buffer.js | 60 +++++ src/writer.js | 123 ++-------- src/writer_buffer.js | 84 +++++++ types/protobuf.js.d.ts | 4 +- 19 files changed, 471 insertions(+), 533 deletions(-) create mode 100644 src/reader_buffer.js create mode 100644 src/writer_buffer.js diff --git a/README.md b/README.md index ed11335a0..bad17bd7a 100644 --- a/README.md +++ b/README.md @@ -487,8 +487,7 @@ Note that JSON is a native binding nowadays and as such is about as fast as it p * Reader and writer interfaces configure themselves according to the environment to eliminate redundant conditionals. * Node-specific reader and writer subclasses benefit from node's buffer binding. * Reflection has built-in code generation that builds type-specific encoders, decoders and verifiers at runtime. -* Encoders and decoders do not verify that required fields are present (with proto3 this is dead code anyway). There is a `verify` method to check this manually instead - where applicable. -* For entirely bogus values encoders intentionally rely on runtime errors to be thrown somewhere down the road. +* Encoders and decoders do not implicitly call `verify` on messages to avoid unnecessary overhead where messages are already known to be valid. It's up to the user to call `verify` where necessary. * Quite a bit of V8-specific profiling is accountable for everything else. You can also run [the benchmark](https://github.com/dcodeIO/protobuf.js/blob/master/bench/index.js) ... diff --git a/dist/protobuf.js b/dist/protobuf.js index 8c2e027e1..f96bed5e9 100644 --- a/dist/protobuf.js +++ b/dist/protobuf.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.3.0 (c) 2016 Daniel Wirtz - * Compiled Sun, 18 Dec 2016 17:54:03 UTC + * Compiled Sun, 18 Dec 2016 19:23:21 UTC * Licensed under the Apache License, Version 2.0 * see: https://github.com/dcodeIO/protobuf.js for details */ @@ -826,7 +826,7 @@ utf8.write = function(string, buffer, offset) { module.exports = Class; var Message = require(19), - util = require(33); + util = require(34); var Type; // cyclic @@ -851,7 +851,7 @@ function Class(type) { */ function create(type, ctor) { if (!Type) - Type = require(31); + Type = require(32); if (!(type instanceof Type)) throw TypeError("type", "a Type"); if (ctor) { @@ -961,7 +961,7 @@ Class.prototype = Message; * @returns {?string} `null` if valid, otherwise the reason why it is not */ -},{"19":19,"31":31,"33":33}],13:[function(require,module,exports){ +},{"19":19,"32":32,"34":34}],13:[function(require,module,exports){ "use strict"; module.exports = common; @@ -1099,8 +1099,8 @@ common("struct", { module.exports = decoder; var Enum = require(16), - types = require(32), - util = require(33); + types = require(33), + util = require(34); /** * Generates a decoder specific to the specified message type. @@ -1186,13 +1186,13 @@ function decoder(mtype) { /* eslint-enable no-unexpected-multiline */ } -},{"16":16,"32":32,"33":33}],15:[function(require,module,exports){ +},{"16":16,"33":33,"34":34}],15:[function(require,module,exports){ "use strict"; module.exports = encoder; var Enum = require(16), - types = require(32), - util = require(33); + types = require(33), + util = require(34); var safeProp = util.safeProp; @@ -1313,7 +1313,7 @@ function encoder(mtype) { ("return w"); /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */ } -},{"16":16,"32":32,"33":33}],16:[function(require,module,exports){ +},{"16":16,"33":33,"34":34}],16:[function(require,module,exports){ "use strict"; module.exports = Enum; @@ -1323,7 +1323,7 @@ var EnumPrototype = ReflectionObject.extend(Enum); Enum.className = "Enum"; -var util = require(33); +var util = require(34); var TypeError = util._TypeError; @@ -1456,7 +1456,7 @@ EnumPrototype.remove = function(name) { return clearCache(this); }; -},{"22":22,"33":33}],17:[function(require,module,exports){ +},{"22":22,"34":34}],17:[function(require,module,exports){ "use strict"; module.exports = Field; @@ -1468,8 +1468,8 @@ Field.className = "Field"; var Message = require(19), Enum = require(16), - types = require(32), - util = require(33); + types = require(33), + util = require(34); var Type, // cyclic MapField; // cyclic @@ -1695,7 +1695,7 @@ FieldPrototype.resolve = function resolve() { // if not a basic type, resolve it if (typeDefault === undefined) { if (!Type) - Type = require(31); + Type = require(32); if (this.resolvedType = this.parent.lookup(this.type, Type)) typeDefault = null; else if (this.resolvedType = this.parent.lookup(this.type, Enum)) @@ -1752,7 +1752,7 @@ FieldPrototype.jsonConvert = function(value, options) { return value; }; -},{"16":16,"18":18,"19":19,"22":22,"31":31,"32":32,"33":33}],18:[function(require,module,exports){ +},{"16":16,"18":18,"19":19,"22":22,"32":32,"33":33,"34":34}],18:[function(require,module,exports){ "use strict"; module.exports = MapField; @@ -1765,8 +1765,8 @@ var MapFieldPrototype = Field.extend(MapField); MapField.className = "MapField"; var Enum = require(16), - types = require(32), - util = require(33); + types = require(33), + util = require(34); /** * Constructs a new map field instance. @@ -1840,19 +1840,14 @@ MapFieldPrototype.resolve = function resolve() { if (this.resolved) return this; - // Besides a value type, map fields have a key type to resolve - var keyWireType = types.mapKey[this.keyType]; - if (keyWireType === undefined) { - var resolved = this.parent.lookup(this.keyType); - if (!(resolved instanceof Enum)) - throw Error("unresolvable key type: " + this.keyType); - this.resolvedKeyType = resolved; - } + // Besides a value type, map fields possibily have an enum as its key type to resolve + if (types.mapKey[this.keyType] === undefined && !(this.resolvedKeyType = this.parent.lookup(this.keyType, Enum))) + throw Error("unresolvable key type: " + this.keyType); return FieldPrototype.resolve.call(this); }; -},{"16":16,"17":17,"32":32,"33":33}],19:[function(require,module,exports){ +},{"16":16,"17":17,"33":33,"34":34}],19:[function(require,module,exports){ "use strict"; module.exports = Message; @@ -2000,8 +1995,8 @@ var MethodPrototype = ReflectionObject.extend(Method); Method.className = "Method"; -var Type = require(31), - util = require(33); +var Type = require(32), + util = require(34); var TypeError = util._TypeError; @@ -2127,7 +2122,7 @@ MethodPrototype.resolve = function resolve() { return ReflectionObject.prototype.resolve.call(this); }; -},{"22":22,"31":31,"33":33}],21:[function(require,module,exports){ +},{"22":22,"32":32,"34":34}],21:[function(require,module,exports){ "use strict"; module.exports = Namespace; @@ -2139,7 +2134,7 @@ Namespace.className = "Namespace"; var Enum = require(16), Field = require(17), - util = require(33); + util = require(34); var Type, // cyclic Service; // cyclic @@ -2148,9 +2143,9 @@ var nestedTypes, // contains cyclics nestedError; function initNested() { if (!Type) - Type = require(31); + Type = require(32); if (!Service) - Service = require(29); + Service = require(30); nestedTypes = [ Enum, Type, Service, Field, Namespace ]; nestedError = "one of " + nestedTypes.map(function(ctor) { return ctor.name; }).join(", "); } @@ -2309,9 +2304,9 @@ NamespacePrototype.add = function add(object) { var prev = this.get(object.name); if (prev) { if (!Type) - Type = require(31); + Type = require(32); if (!Service) - Service = require(29); + Service = require(30); if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) { // replace plain namespace but keep existing nested elements and options var nested = prev.getNestedArray(); @@ -2441,7 +2436,7 @@ NamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyCheck */ NamespacePrototype.lookupType = function lookupType(path) { if (!Type) - Type = require(31); + Type = require(32); var found = this.lookup(path, Type); if (!found) throw Error("no such type"); @@ -2457,7 +2452,7 @@ NamespacePrototype.lookupType = function lookupType(path) { */ NamespacePrototype.lookupService = function lookupService(path) { if (!Service) - Service = require(29); + Service = require(30); var found = this.lookup(path, Service); if (!found) throw Error("no such service"); @@ -2478,11 +2473,11 @@ NamespacePrototype.lookupEnum = function lookupEnum(path) { return found; }; -},{"16":16,"17":17,"22":22,"29":29,"31":31,"33":33}],22:[function(require,module,exports){ +},{"16":16,"17":17,"22":22,"30":30,"32":32,"34":34}],22:[function(require,module,exports){ "use strict"; module.exports = ReflectionObject; -var util = require(33); +var util = require(34); ReflectionObject.className = "ReflectionObject"; ReflectionObject.extend = util.extend; @@ -2590,7 +2585,7 @@ ReflectionObjectPrototype.onAdd = function onAdd(parent) { this.resolved = false; var root = parent.getRoot(); if (!Root) - Root = require(26); + Root = require(27); if (root instanceof Root) root._handleAdd(this); }; @@ -2603,7 +2598,7 @@ ReflectionObjectPrototype.onAdd = function onAdd(parent) { ReflectionObjectPrototype.onRemove = function onRemove(parent) { var root = parent.getRoot(); if (!Root) - Root = require(26); + Root = require(27); if (root instanceof Root) root._handleRemove(this); this.parent = null; @@ -2619,7 +2614,7 @@ ReflectionObjectPrototype.resolve = function resolve() { return this; var root = this.getRoot(); if (!Root) - Root = require(26); + Root = require(27); if (root instanceof Root) this.resolved = true; // only if part of a root return this; @@ -2675,7 +2670,7 @@ ReflectionObjectPrototype.toString = function toString() { return className; }; -},{"26":26,"33":33}],23:[function(require,module,exports){ +},{"27":27,"34":34}],23:[function(require,module,exports){ "use strict"; module.exports = OneOf; @@ -2686,7 +2681,7 @@ var OneOfPrototype = ReflectionObject.extend(OneOf); OneOf.className = "OneOf"; var Field = require(17), - util = require(33); + util = require(34); var TypeError = util._TypeError; @@ -2842,21 +2837,21 @@ OneOfPrototype.onRemove = function onRemove(parent) { ReflectionObject.prototype.onRemove.call(this, parent); }; -},{"17":17,"22":22,"33":33}],24:[function(require,module,exports){ +},{"17":17,"22":22,"34":34}],24:[function(require,module,exports){ "use strict"; module.exports = parse; -var tokenize = require(30), - Root = require(26), - Type = require(31), +var tokenize = require(31), + Root = require(27), + Type = require(32), Field = require(17), MapField = require(18), OneOf = require(23), Enum = require(16), - Service = require(29), + Service = require(30), Method = require(20), - types = require(32), - util = require(33); + types = require(33), + util = require(34); function isName(token) { return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token); @@ -3460,16 +3455,19 @@ function parse(source, root, options) { * @variation 2 */ -},{"16":16,"17":17,"18":18,"20":20,"23":23,"26":26,"29":29,"30":30,"31":31,"32":32,"33":33}],25:[function(require,module,exports){ +},{"16":16,"17":17,"18":18,"20":20,"23":23,"27":27,"30":30,"31":31,"32":32,"33":33,"34":34}],25:[function(require,module,exports){ "use strict"; module.exports = Reader; -Reader.BufferReader = BufferReader; - -var util = require(35), +var util = require(36), ieee754 = require(1); + +var BufferReader; // cyclic + var LongBits = util.LongBits, utf8 = util.utf8; + +/* istanbul ignore next */ var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; function indexOutOfRange(reader, writeLength) { @@ -3509,7 +3507,12 @@ function Reader(buffer) { * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} */ Reader.create = function create(buffer) { - return new (util.Buffer ? BufferReader : Reader)(buffer); + if (util.Buffer) { + if (!BufferReader) + BufferReader = require(26); + return new BufferReader(buffer); + } + return new Reader(buffer); }; /** @alias Reader.prototype */ @@ -3928,13 +3931,43 @@ ReaderPrototype.finish = function finish(buffer) { return remain; }; +function configure() { + if (util.Long) { + ReaderPrototype.int64 = read_int64_long; + ReaderPrototype.uint64 = read_uint64_long; + ReaderPrototype.sint64 = read_sint64_long; + ReaderPrototype.fixed64 = read_fixed64_long; + ReaderPrototype.sfixed64 = read_sfixed64_long; + } else { + ReaderPrototype.int64 = read_int64_number; + ReaderPrototype.uint64 = read_uint64_number; + ReaderPrototype.sint64 = read_sint64_number; + ReaderPrototype.fixed64 = read_fixed64_number; + ReaderPrototype.sfixed64 = read_sfixed64_number; + } +} + +Reader._configure = configure; + +configure(); + +},{"1":1,"26":26,"36":36}],26:[function(require,module,exports){ +"use strict"; +module.exports = BufferReader; + +var Reader = require(25); +/** @alias BufferReader.prototype */ +var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); +BufferReaderPrototype.constructor = BufferReader; + +var util = require(36); + // One time function to initialize BufferReader with the now-known buffer implementation's slice method var initBufferReader = function() { - var Buffer = util.Buffer; - if (!Buffer) + if (!util.Buffer) throw Error("Buffer is not supported"); - BufferReaderPrototype._slice = Buffer.prototype.slice; - readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer + BufferReaderPrototype._slice = util.Buffer.prototype.slice; + readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer ? readStringBuffer_utf8Slice : readStringBuffer_toString; initBufferReader = false; @@ -3953,35 +3986,6 @@ function BufferReader(buffer) { Reader.call(this, buffer); } -/** @alias BufferReader.prototype */ -var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); - -BufferReaderPrototype.constructor = BufferReader; - -if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) -/** - * @override - */ -BufferReaderPrototype.float = function read_float_buffer() { - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - var value = this.buf.readFloatLE(this.pos, true); - this.pos += 4; - return value; -}; - -if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) -/** - * @override - */ -BufferReaderPrototype.double = function read_double_buffer() { - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - var value = this.buf.readDoubleLE(this.pos, true); - this.pos += 8; - return value; -}; - var readStringBuffer; function readStringBuffer_utf8Slice(buf, start, end) { @@ -3996,13 +4000,8 @@ function readStringBuffer_toString(buf, start, end) { * @override */ BufferReaderPrototype.string = function read_string_buffer() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - if (end > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - return readStringBuffer(this.buf, start, end); + var len = this.uint32(); // modifies pos + return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len)); }; /** @@ -4014,27 +4013,7 @@ BufferReaderPrototype.finish = function finish_buffer(buffer) { return remain; }; -function configure() { - if (util.Long) { - ReaderPrototype.int64 = read_int64_long; - ReaderPrototype.uint64 = read_uint64_long; - ReaderPrototype.sint64 = read_sint64_long; - ReaderPrototype.fixed64 = read_fixed64_long; - ReaderPrototype.sfixed64 = read_sfixed64_long; - } else { - ReaderPrototype.int64 = read_int64_number; - ReaderPrototype.uint64 = read_uint64_number; - ReaderPrototype.sint64 = read_sint64_number; - ReaderPrototype.fixed64 = read_fixed64_number; - ReaderPrototype.sfixed64 = read_sfixed64_number; - } -} - -Reader._configure = configure; - -configure(); - -},{"1":1,"35":35}],26:[function(require,module,exports){ +},{"25":25,"36":36}],27:[function(require,module,exports){ "use strict"; module.exports = Root; @@ -4045,7 +4024,7 @@ var RootPrototype = Namespace.extend(Root); Root.className = "Root"; var Field = require(17), - util = require(33), + util = require(34), common = require(13); var parse; // cyclic @@ -4330,7 +4309,7 @@ RootPrototype._handleRemove = function handleRemove(object) { } }; -},{"13":13,"17":17,"21":21,"24":24,"33":33}],27:[function(require,module,exports){ +},{"13":13,"17":17,"21":21,"24":24,"34":34}],28:[function(require,module,exports){ "use strict"; /** @@ -4339,13 +4318,13 @@ RootPrototype._handleRemove = function handleRemove(object) { */ var rpc = exports; -rpc.Service = require(28); +rpc.Service = require(29); -},{"28":28}],28:[function(require,module,exports){ +},{"29":29}],29:[function(require,module,exports){ "use strict"; module.exports = Service; -var util = require(33); +var util = require(34); var EventEmitter = util.EventEmitter; /** @@ -4385,7 +4364,7 @@ ServicePrototype.end = function end(endedByRPC) { return this; }; -},{"33":33}],29:[function(require,module,exports){ +},{"34":34}],30:[function(require,module,exports){ "use strict"; module.exports = Service; @@ -4398,8 +4377,8 @@ var ServicePrototype = Namespace.extend(Service); Service.className = "Service"; var Method = require(20), - util = require(33), - rpc = require(27); + util = require(34), + rpc = require(28); /** * Constructs a new service instance. @@ -4598,7 +4577,7 @@ ServicePrototype.create = function create(rpcImpl, requestDelimited, responseDel return rpcService; }; -},{"20":20,"21":21,"27":27,"33":33}],30:[function(require,module,exports){ +},{"20":20,"21":21,"28":28,"34":34}],31:[function(require,module,exports){ "use strict"; module.exports = tokenize; @@ -4802,7 +4781,7 @@ function tokenize(source) { }; /* eslint-enable callback-return */ } -},{}],31:[function(require,module,exports){ +},{}],32:[function(require,module,exports){ "use strict"; module.exports = Type; @@ -4817,12 +4796,12 @@ Type.className = "Type"; var Enum = require(16), OneOf = require(23), Field = require(17), - Service = require(29), + Service = require(30), Class = require(12), Message = require(19), Reader = require(25), - Writer = require(37), - util = require(33); + Writer = require(38), + util = require(34); var encoder, // might become cyclic decoder, // might become cyclic @@ -5147,7 +5126,7 @@ TypePrototype.setup = function setup() { if (!encoder) { encoder = require(15); decoder = require(14); - verifier = require(36); + verifier = require(37); } this.encode = encoder(this).eof(this.getFullName() + "$encode", { Writer : Writer, @@ -5215,7 +5194,7 @@ TypePrototype.verify = function verify_setup(message) { return this.setup().verify(message); // overrides this method }; -},{"12":12,"14":14,"15":15,"16":16,"17":17,"19":19,"21":21,"23":23,"25":25,"29":29,"33":33,"36":36,"37":37}],32:[function(require,module,exports){ +},{"12":12,"14":14,"15":15,"16":16,"17":17,"19":19,"21":21,"23":23,"25":25,"30":30,"34":34,"37":37,"38":38}],33:[function(require,module,exports){ "use strict"; /** @@ -5224,7 +5203,7 @@ TypePrototype.verify = function verify_setup(message) { */ var types = exports; -var util = require(33); +var util = require(34); var s = [ "double", // 0 @@ -5409,14 +5388,14 @@ types.packed = bake([ /* bool */ 0 ]); -},{"33":33}],33:[function(require,module,exports){ +},{"34":34}],34:[function(require,module,exports){ "use strict"; /** * Various utility functions. * @namespace */ -var util = module.exports = require(35); +var util = module.exports = require(36); util.asPromise = require(2); util.codegen = require(4); @@ -5536,12 +5515,12 @@ util.newBuffer = function newBuffer(size) { : new (typeof Uint8Array !== "undefined" ? Uint8Array : Array)(size); }; -},{"2":2,"35":35,"4":4,"5":5,"6":6,"7":7,"9":9}],34:[function(require,module,exports){ +},{"2":2,"36":36,"4":4,"5":5,"6":6,"7":7,"9":9}],35:[function(require,module,exports){ "use strict"; module.exports = LongBits; -var util = require(35); +var util = require(36); /** * Any compatible Long instance. @@ -5737,13 +5716,13 @@ LongBitsPrototype.length = function length() { return part2 < 1 << 7 ? 9 : 10; }; -},{"35":35}],35:[function(require,module,exports){ +},{"36":36}],36:[function(require,module,exports){ (function (global){ "use strict"; var util = exports; -util.LongBits = require(34); +util.LongBits = require(35); util.base64 = require(3); util.inquire = require(8); util.utf8 = require(11); @@ -5905,13 +5884,13 @@ util.emptyObject = Object.freeze({}); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"10":10,"11":11,"3":3,"34":34,"8":8}],36:[function(require,module,exports){ +},{"10":10,"11":11,"3":3,"35":35,"8":8}],37:[function(require,module,exports){ "use strict"; module.exports = verifier; var Enum = require(16), - Type = require(31), - util = require(33); + Type = require(32), + util = require(34); function invalid(field, expected) { return "invalid value for field " + field.getFullName() + " (" + expected + (field.repeated && expected !== "array" ? "[]" : field.map && expected !== "object" ? "{k:"+field.keyType+"}" : "") + " expected)"; @@ -6026,17 +6005,20 @@ function verifier(mtype) { ("return null"); /* eslint-enable no-unexpected-multiline */ } -},{"16":16,"31":31,"33":33}],37:[function(require,module,exports){ +},{"16":16,"32":32,"34":34}],38:[function(require,module,exports){ "use strict"; module.exports = Writer; -Writer.BufferWriter = BufferWriter; - -var util = require(35), +var util = require(36), ieee754 = require(1); + +var BufferWriter; // cyclic + var LongBits = util.LongBits, base64 = util.base64, utf8 = util.utf8; + +/* istanbul ignore next */ var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; /** @@ -6079,6 +6061,7 @@ function Op(fn, len, val) { Writer.Op = Op; +/* istanbul ignore next */ function noop() {} // eslint-disable-line no-empty-function /** @@ -6162,7 +6145,12 @@ function Writer() { * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} */ Writer.create = function create() { - return new (util.Buffer ? BufferWriter : Writer); + if (util.Buffer) { + if (!BufferWriter) + BufferWriter = require(39); + return new BufferWriter(); + } + return new Writer(); }; /** @@ -6176,6 +6164,7 @@ Writer.alloc = function alloc(size) { // Use Uint8Array buffer pool in the browser, just like node does with buffers if (ArrayImpl !== Array) + /* istanbul ignore next */ Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice); /** @alias Writer.prototype */ @@ -6349,6 +6338,7 @@ var writeFloat = typeof Float32Array !== "undefined" f8b = new Uint8Array(f32.buffer); f32[0] = -0; return f8b[3] // already le? + /* istanbul ignore next */ ? function writeFloat_f32(val, buf, pos) { f32[0] = val; buf[pos++] = f8b[0]; @@ -6364,6 +6354,7 @@ var writeFloat = typeof Float32Array !== "undefined" buf[pos ] = f8b[0]; }; })() + /* istanbul ignore next */ : function writeFloat_ieee754(val, buf, pos) { ieee754.write(buf, val, pos, false, 23, 4); }; @@ -6384,6 +6375,7 @@ var writeDouble = typeof Float64Array !== "undefined" f8b = new Uint8Array(f64.buffer); f64[0] = -0; return f8b[7] // already le? + /* istanbul ignore next */ ? function writeDouble_f64(val, buf, pos) { f64[0] = val; buf[pos++] = f8b[0]; @@ -6407,6 +6399,7 @@ var writeDouble = typeof Float64Array !== "undefined" buf[pos ] = f8b[0]; }; })() + /* istanbul ignore next */ : function writeDouble_ieee754(val, buf, pos) { ieee754.write(buf, val, pos, false, 52, 8); }; @@ -6425,6 +6418,7 @@ var writeBytes = ArrayImpl.prototype.set ? function writeBytes_set(val, buf, pos) { buf.set(val, pos); } + /* istanbul ignore next */ : function writeBytes_for(val, buf, pos) { for (var i = 0; i < val.length; ++i) buf[pos + i] = val[i]; @@ -6456,6 +6450,7 @@ WriterPrototype.string = function write_string(value) { var len = utf8.length(value); return len ? this.uint32(len).push(utf8.write, len, value) + /* istanbul ignore next */ : this.push(writeByte, 1, 0); }; @@ -6524,10 +6519,22 @@ WriterPrototype.finish = function finish() { return buf; }; +},{"1":1,"36":36,"39":39}],39:[function(require,module,exports){ +"use strict"; +module.exports = BufferWriter; + +var Writer = require(38); +/** @alias BufferWriter.prototype */ +var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); +BufferWriterPrototype.constructor = BufferWriter; + +var util = require(36); + +var utf8 = util.utf8; + /** * Constructs a new buffer writer instance. * @classdesc Wire format writer using node buffers. - * @exports BufferWriter * @extends Writer * @constructor */ @@ -6547,37 +6554,8 @@ BufferWriter.alloc = function alloc_buffer(size) { return BufferWriter.alloc(size); }; -/** @alias BufferWriter.prototype */ -var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); -BufferWriterPrototype.constructor = BufferWriter; - -function writeFloatBuffer(val, buf, pos) { - buf.writeFloatLE(val, pos, true); -} - -if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) -/** - * @override - */ -BufferWriterPrototype.float = function write_float_buffer(value) { - return this.push(writeFloatBuffer, 4, value); -}; - -function writeDoubleBuffer(val, buf, pos) { - buf.writeDoubleLE(val, pos, true); -} - -if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) -/** - * @override - */ -BufferWriterPrototype.double = function write_double_buffer(value) { - return this.push(writeDoubleBuffer, 8, value); -}; - function writeBytesBuffer(val, buf, pos) { - if (val.length) - val.copy(buf, pos, 0, val.length); + val.copy(buf, pos, 0, val.length); } var Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); }; @@ -6589,9 +6567,10 @@ BufferWriterPrototype.bytes = function write_bytes_buffer(value) { if (typeof value === "string") value = Buffer_from(value, "base64"); var len = value.length >>> 0; - return len - ? this.uint32(len).push(writeBytesBuffer, len, value) - : this.push(writeByte, 1, 0); + this.uint32(len); + if (len) + this.push(writeBytesBuffer, len, value); + return this; }; var writeStringBuffer = (function() { // eslint-disable-line wrap-iife @@ -6620,12 +6599,13 @@ BufferWriterPrototype.string = function write_string_buffer(value) { var len = value.length < 40 ? utf8.length(value) : util.Buffer.byteLength(value); - return len - ? this.uint32(len).push(writeStringBuffer, len, value) - : this.push(writeByte, 1, 0); + this.uint32(len); + if (len) + this.push(writeStringBuffer, len, value); + return this; }; -},{"1":1,"35":35}],38:[function(require,module,exports){ +},{"36":36,"38":38}],40:[function(require,module,exports){ (function (global){ "use strict"; var protobuf = global.protobuf = exports; @@ -6703,28 +6683,28 @@ protobuf.loadSync = loadSync; protobuf.roots = {}; // Parser -protobuf.tokenize = require(30); +protobuf.tokenize = require(31); protobuf.parse = require(24); // Serialization -protobuf.BufferWriter = ( -protobuf.Writer = require(37)).BufferWriter; -protobuf.BufferReader = ( -protobuf.Reader = require(25)).BufferReader; +protobuf.Writer = require(38); +protobuf.BufferWriter = require(39); +protobuf.Reader = require(25); +protobuf.BufferReader = require(26); protobuf.encoder = require(15); protobuf.decoder = require(14); -protobuf.verifier = require(36); +protobuf.verifier = require(37); // Reflection protobuf.ReflectionObject = require(22); protobuf.Namespace = require(21); -protobuf.Root = require(26); +protobuf.Root = require(27); protobuf.Enum = require(16); -protobuf.Type = require(31); +protobuf.Type = require(32); protobuf.Field = require(17); protobuf.OneOf = require(23); protobuf.MapField = require(18); -protobuf.Service = require(29); +protobuf.Service = require(30); protobuf.Method = require(20); // Runtime @@ -6732,10 +6712,10 @@ protobuf.Class = require(12); protobuf.Message = require(19); // Utility -protobuf.types = require(32); +protobuf.types = require(33); protobuf.common = require(13); -protobuf.rpc = require(27); -protobuf.util = require(33); +protobuf.rpc = require(28); +protobuf.util = require(34); protobuf.configure = configure; /** @@ -6758,7 +6738,7 @@ if (typeof define === "function" && define.amd) }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"12":12,"13":13,"14":14,"15":15,"16":16,"17":17,"18":18,"19":19,"20":20,"21":21,"22":22,"23":23,"24":24,"25":25,"26":26,"27":27,"29":29,"30":30,"31":31,"32":32,"33":33,"36":36,"37":37}]},{},[38]) +},{"12":12,"13":13,"14":14,"15":15,"16":16,"17":17,"18":18,"19":19,"20":20,"21":21,"22":22,"23":23,"24":24,"25":25,"26":26,"27":27,"28":28,"30":30,"31":31,"32":32,"33":33,"34":34,"37":37,"38":38,"39":39}]},{},[40]) //# sourceMappingURL=protobuf.js.map diff --git a/dist/protobuf.js.map b/dist/protobuf.js.map index db4ebfeb5..70624f5fe 100644 --- a/dist/protobuf.js.map +++ b/dist/protobuf.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/runtime.js","src/verifier.js","src/writer.js","src/index.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {function(?Error, ...*)} fn Function to call\r\n * @param {Object} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue);?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n \r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function \" + (name ? name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\", \") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n return format.replace(/%([djs])/g, function($0, $1) {\r\n var arg = args[i++];\r\n switch ($1) {\r\n case \"j\":\r\n return JSON.stringify(arg);\r\n default:\r\n return String(arg);\r\n }\r\n });\r\n}\r\n\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {Object} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(2),\r\n inquire = require(8);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted \r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(19),\r\n util = require(33);\r\n\r\nvar Type; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a class instance, which is also a message prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(31);\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type\", \"a Type\");\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor\", \"a function\");\r\n } else\r\n ctor = (function(MessageCtor) { // eslint-disable-line wrap-iife\r\n return function Message(properties) {\r\n MessageCtor.call(this, properties);\r\n };\r\n })(Message);\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n \r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa.\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.getFieldsArray().forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue)\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.getOneofsArray().forEach(function(oneof) {\r\n util.prop(prototype, oneof.resolve().name, {\r\n get: function getVirtual() {\r\n // > If the parser encounters multiple members of the same oneof on the wire, only the last member seen is used in the parsed message.\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (oneof.oneof.indexOf(keys[i]) > -1)\r\n return keys[i];\r\n return undefined;\r\n },\r\n set: function setVirtual(value) {\r\n for (var keys = oneof.oneof, i = 0; i < keys.length; ++i)\r\n if (keys[i] !== value)\r\n delete this[keys[i]];\r\n }\r\n });\r\n });\r\n\r\n // Register\r\n type.setCtor(ctor);\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa.\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\n\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object} google/protobuf/any.proto Any\r\n * @property {Object} google/protobuf/duration.proto Duration\r\n * @property {Object} google/protobuf/empty.proto Empty\r\n * @property {Object} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object} google/protobuf/timestamp.proto Timestamp\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n// - google/protobuf/descriptor.proto\r\n// - google/protobuf/field_mask.proto\r\n// - google/protobuf/source_context.proto\r\n// - google/protobuf/type.proto\r\n// - google/protobuf/wrappers.proto\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [ \"nullValue\", \"numberValue\", \"stringValue\", \"boolValue\", \"structValue\", \"listValue\" ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\nmodule.exports = decoder;\r\n\r\nvar Enum = require(16),\r\n types = require(32),\r\n util = require(33);\r\n\r\n/**\r\n * Generates a decoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction decoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray(); \r\n var gen = util.codegen(\"r\", \"l\")\r\n\r\n (\"r instanceof Reader||(r=Reader.create(r))\")\r\n (\"var c=l===undefined?r.len:r.pos+l,m=new(this.getCtor())\")\r\n (\"while(r.pos>>3){\");\r\n \r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n prop = util.safeProp(field.name);\r\n gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) {\r\n\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"r.skip().pos++\")\r\n (\"if(m%s===util.emptyObject)\", prop)\r\n (\"m%s={}\", prop)\r\n (\"var k=r.%s()\", keyType)\r\n (\"if(typeof k===\\\"object\\\")\")\r\n (\"k=util.longToHash(k)\")\r\n (\"r.pos++\");\r\n if (types.basic[type] === undefined) gen\r\n (\"m%s[k]=types[%d].decode(r,r.uint32())\", prop, i); // can't be groups\r\n else gen\r\n (\"m%s[k]=r.%s()\", prop, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"m%s&&m%s.length?m%s:m%s=[]\", prop, prop, prop, prop);\r\n\r\n // Packed\r\n if (field.packed && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var e=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0);\r\n return alwaysRequired || field.required\r\n ? gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()\", fieldIndex, ref, field.id);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.getFieldsArray();\r\n var oneofs = mtype.getOneofsArray();\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"w||(w=Writer.create())\");\r\n\r\n var i;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"if(m%s&&m%s!==util.emptyObject){\", prop, prop)\r\n (\"for(var ks=Object.keys(m%s),i=0;i>> 0, 8 | types.mapKey[keyType], keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()\", i, prop); // can't be groups\r\n else gen\r\n (\"w.uint32(%d).%s(m%s[ks[i]])\", 16 | wireType, type, prop);\r\n gen\r\n (\"w.ldelim()\")\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(m%s&&m%s.length){\", prop, prop)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i>> 0, type, prop);\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else if (!field.partOf) {\r\n if (!field.required) {\r\n\r\n if (field.long) {\r\n gen\r\n (\"if(m%s!==undefined&&util.longNe(m%s,%d,%d))\", prop, prop, field.defaultValue.low, field.defaultValue.high);\r\n } else gen\r\n (\"if(m%s!==undefined&&m%s!==%j)\", prop, prop, field.defaultValue);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, i, \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n }\r\n }\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i],\r\n prop = safeProp(oneof.name);\r\n gen\r\n (\"switch(m%s){\", prop);\r\n var oneofFields = oneof.getFieldsArray();\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n gen\r\n (\"case%j:\", field.name);\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, fields.indexOf(field), \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n gen\r\n (\"break;\");\r\n\r\n } gen\r\n (\"}\"); \r\n }\r\n\r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(33);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = values || {}; // toJSON, marker\r\n\r\n /**\r\n * Cached values by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._valuesById = null;\r\n}\r\n\r\nutil.props(EnumPrototype, {\r\n\r\n /**\r\n * Enum values by id.\r\n * @name Enum#valuesById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n valuesById: {\r\n get: function getValuesById() {\r\n if (!this._valuesById) {\r\n this._valuesById = {};\r\n Object.keys(this.values).forEach(function(name) {\r\n var id = this.values[name];\r\n if (this._valuesById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._valuesById[id] = name;\r\n }, this);\r\n }\r\n return this._valuesById;\r\n }\r\n }\r\n\r\n /**\r\n * Gets this enum's values by id. This is an alias of {@link Enum#valuesById}'s getter for use within non-ES5 environments.\r\n * @name Enum#getValuesById\r\n * @function\r\n * @returns {Object.}\r\n */\r\n});\r\n\r\nfunction clearCache(enm) {\r\n enm._valuesById = null;\r\n return enm;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\r\n if (this.getValuesById()[id] !== undefined)\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this.values[name] = id;\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (this.values[name] === undefined)\r\n throw Error(\"'\" + name + \"' is not a name of \" + this);\r\n delete this.values[name];\r\n return clearCache(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Message = require(19),\r\n Enum = require(16),\r\n types = require(32),\r\n util = require(33);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object} [rule=\"optional\"] Field rule\r\n * @param {string|Object} [extend] Extended type if different from parent\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (!util.isString(type))\r\n throw TypeError(\"type\");\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend\");\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule\", \"a valid rule string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field's default value. Only relevant when working with proto2.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\nutil.props(FieldPrototype, {\r\n\r\n /**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\n packed: {\r\n get: FieldPrototype.isPacked = function() {\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether this field is packed. This is an alias of {@link Field#packed}'s getter for use within non-ES5 environments.\r\n * @name Field#isPacked\r\n * @function\r\n * @returns {boolean}\r\n */\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(18);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n var typeDefault = types.defaults[this.type];\r\n\r\n // if not a basic type, resolve it\r\n if (typeDefault === undefined) {\r\n if (!Type)\r\n Type = require(31);\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n typeDefault = 0;\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // when everything is resolved determine the default value\r\n var optionDefault;\r\n if (this.map)\r\n this.defaultValue = {};\r\n else if (this.repeated)\r\n this.defaultValue = [];\r\n else if (this.options && (optionDefault = this.options[\"default\"]) !== undefined) // eslint-disable-line dot-notation\r\n this.defaultValue = optionDefault;\r\n else\r\n this.defaultValue = typeDefault;\r\n\r\n if (this.long)\r\n this.defaultValue = util.Long.fromValue(this.defaultValue);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Converts a field value to JSON using the specified options. Note that this method does not account for repeated fields and must be called once for each repeated element instead.\r\n * @param {*} value Field value\r\n * @param {Object.} [options] Conversion options\r\n * @returns {*} Converted value\r\n * @see {@link Message#asJSON}\r\n */\r\nFieldPrototype.jsonConvert = function(value, options) {\r\n if (options) {\r\n if (value instanceof Message)\r\n return value.asJSON(options);\r\n if (this.resolvedType instanceof Enum && options[\"enum\"] === String) // eslint-disable-line dot-notation\r\n return this.resolvedType.getValuesById()[value];\r\n if (options.long && this.long)\r\n return options.long === Number\r\n ? typeof value === \"number\"\r\n ? value\r\n : util.LongBits.from(value).toNumber(this.type.charAt(0) === \"u\")\r\n : util.Long.fromValue(value, this.type.charAt(0) === \"u\").toString();\r\n if (options.bytes && this.bytes) {\r\n if (options.bytes === String)\r\n return util.base64.encode(value, 0, value.length);\r\n if (options.bytes === Array)\r\n return Array.prototype.slice.call(value);\r\n if (options.bytes === util.Buffer && !util.Buffer.isBuffer(value))\r\n return util.Buffer.from ? util.Buffer.from(value) : new util.Buffer(value);\r\n }\r\n }\r\n return value;\r\n};\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar Enum = require(16),\r\n types = require(32),\r\n util = require(33);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n if (!util.isString(keyType))\r\n throw util._TypeError(\"keyType\");\r\n \r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n \r\n // Besides a value type, map fields have a key type to resolve\r\n var keyWireType = types.mapKey[this.keyType];\r\n if (keyWireType === undefined) {\r\n var resolved = this.parent.lookup(this.keyType);\r\n if (!(resolved instanceof Enum))\r\n throw Error(\"unresolvable key type: \" + this.keyType);\r\n this.resolvedKeyType = resolved;\r\n }\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This method should be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @extends {Object}\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @abstract\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/** @alias Message.prototype */\r\nvar MessagePrototype = Message.prototype;\r\n\r\n/**\r\n * Converts this message to a JSON object.\r\n * @param {Object.} [options] Conversion options\r\n * @param {boolean} [options.fieldsOnly=false] Converts only properties that reference a field\r\n * @param {*} [options.long] Long conversion type. Only relevant with a long library.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to a possibly unsafe number without, and a `Long` with a long library.\r\n * @param {*} [options.enum=Number] Enum value conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to the numeric ids.\r\n * @param {*} [options.bytes] Bytes value conversion type.\r\n * Valid values are `Array` and `String` (the global types).\r\n * Defaults to return the underlying buffer type.\r\n * @param {boolean} [options.defaults=false] Also sets default values on the resulting object\r\n * @returns {Object.} JSON object\r\n */\r\nMessagePrototype.asJSON = function asJSON(options) {\r\n if (!options)\r\n options = {};\r\n var fields = this.$type.fields,\r\n json = {};\r\n var keys;\r\n if (options.defaults) {\r\n keys = Object.keys(fields);\r\n } else\r\n keys = Object.keys(this);\r\n for (var i = 0, key; i < keys.length; ++i) {\r\n var field = fields[key = keys[i]],\r\n value = this[key];\r\n if (field) {\r\n if (field.repeated) {\r\n if (value && (value.length || options.defaults)) {\r\n var array = new Array(value.length);\r\n for (var j = 0, l = value.length; j < l; ++j)\r\n array[j] = field.jsonConvert(value[j], options);\r\n json[key] = array;\r\n }\r\n } else\r\n json[key] = field.jsonConvert(value, options);\r\n } else if (!options.fieldsOnly)\r\n json[key] = value;\r\n }\r\n return json;\r\n};\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(readerOrBuffer) {\r\n return this.$type.decode(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n return this.$type.decodeDelimited(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(31),\r\n util = require(33);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object} [responseStream] Whether the response is streamed\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type\");\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType\");\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {Object} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream || undefined,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream || undefined,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(33);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\nfunction initNested() {\r\n if (!Type)\r\n Type = require(31);\r\n if (!Service)\r\n Service = require(29);\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @classdesc Reflected namespace and base class of all reflection objects containing nested objects.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\nutil.props(NamespacePrototype, {\r\n\r\n /**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name Namespace#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\n nestedArray: {\r\n get: function getNestedArray() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @param {string} name Namespace name\r\n * @param {Object} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.getNestedArray())\r\n };\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n throw TypeError(\"nested.\" + nestedName, \"JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n if (!nestedTypes)\r\n initNested();\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object\", nestedError);\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object\", \"an extension field when not part of a type\");\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n if (!Type)\r\n Type = require(31);\r\n if (!Service)\r\n Service = require(29);\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object\", \"a ReflectionObject\");\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path)) {\r\n json = path;\r\n path = undefined;\r\n }\r\n var ptr = this;\r\n if (path)\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolve() {\r\n var nested = this.getNestedArray(), i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n if (util.isString(path) && path.length)\r\n path = path.split(\".\");\r\n else if (!path.length)\r\n return null;\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.getRoot().lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found && path.length === 1 && (!filterType || found instanceof filterType) || found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name Namespace#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n if (!Type)\r\n Type = require(31);\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n if (!Service)\r\n Service = require(29);\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up enum\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(33);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options\", \"an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nutil.props(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function getRoot() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: ReflectionObjectPrototype.getFullName = function getFullName() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(26);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(26);\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n var root = this.getRoot();\r\n if (!Root)\r\n Root = require(26);\r\n if (root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className;\r\n var fullName = this.getFullName();\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17),\r\n util = require(33);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames\", \"an Array\");\r\n\r\n /**\r\n * Upper cased name for getter/setter calls.\r\n * @type {string}\r\n */\r\n this.ucName = this.name.substring(0, 1).toUpperCase() + this.name.substring(1);\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nutil.prop(OneOfPrototype, \"fieldsArray\", {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n if (field.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n var index = this._fieldsArray.indexOf(field);\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n if (index > -1)\r\n this.oneof.splice(index, 1);\r\n if (field.parent)\r\n field.parent.remove(field);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nvar tokenize = require(30),\r\n Root = require(26),\r\n Type = require(31),\r\n Field = require(17),\r\n MapField = require(18),\r\n OneOf = require(23),\r\n Enum = require(16),\r\n Service = require(29),\r\n Method = require(20),\r\n types = require(32),\r\n util = require(33);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n root = new Root();\r\n options = root || {};\r\n } else if (!options)\r\n options = {};\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n if (!root)\r\n root = new Root();\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\r\n\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 0x1FFFFFFF;\r\n case \"0\": return 0;\r\n }\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n \r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (lower(type) === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new Field(name, id, type, rule, extend));\r\n if (field.repeated)\r\n field.setOption(\"packed\", isProto3, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new MapField(name, id, keyType, valueType));\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n var oneof = new OneOf(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var values = {};\r\n var enm = new Enum(name, values);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumField(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumField(parent, token) {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true);\r\n parent.values[name] = value;\r\n parseInlineOptions({}); // skips enum value options\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (!isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n name = name + \".\" + token;\r\n if (skip(\":\", true))\r\n setOption(parent, name, readValue(true));\r\n else\r\n parseOptionValue(parent, name);\r\n }\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n else\r\n parent[name] = value;\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n var name = token;\r\n var service = new Service(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n var st;\r\n if (skip(st = \"stream\", true))\r\n requestStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(st, true))\r\n responseStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nReader.BufferReader = BufferReader;\r\n\r\nvar util = require(35),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n return new (util.Buffer ? BufferReader : Reader)(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n var Buffer = util.Buffer;\r\n if (!Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = Buffer.prototype.slice;\r\n readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\n\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.float = function read_float_buffer() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = this.buf.readFloatLE(this.pos, true);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.double = function read_double_buffer() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n var value = this.buf.readDoubleLE(this.pos, true);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return readStringBuffer(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n util = require(33),\r\n common = require(13);\r\n\r\nvar parse; // cyclic\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {Object} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files. \r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {*} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (!parse)\r\n parse = require(24);\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n cb(err, root);\r\n }\r\n\r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n return;\r\n }\r\n if (!sync && !queued)\r\n finish(null, self);\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.indexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename) {\r\n return this.load(filename, SYNC);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.getFullName(), field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field && object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n }\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n }\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\nrpc.Service = require(28);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(33);\r\nvar EventEmitter = util.EventEmitter;\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @memberof rpc\r\n * @extends util.EventEmitter\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n */\r\nfunction Service(rpcImpl) {\r\n EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.$rpc = rpcImpl;\r\n}\r\n\r\n/** @alias rpc.Service.prototype */\r\nvar ServicePrototype = Service.prototype = Object.create(EventEmitter.prototype);\r\nServicePrototype.constructor = Service;\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nServicePrototype.end = function end(endedByRPC) {\r\n if (this.$rpc) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.$rpc(null, null, null);\r\n this.$rpc = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(20),\r\n util = require(33),\r\n rpc = require(27);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\nutil.props(ServicePrototype, {\r\n\r\n /**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\n methodsArray: {\r\n get: function getMethodsArray() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n }\r\n\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.getMethodsArray()) || {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolve() {\r\n var methods = this.getMethodsArray();\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method} method Reflected method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Uint8Array} [responseData] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {function(Method, Uint8Array, function)} rpcImpl RPC implementation ({@link RPCImpl|see})\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} Runtime RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl);\r\n this.getMethodsArray().forEach(function(method) {\r\n rpcService[util.lcFirst(method.name)] = function callVirtual(request, /* optional */ callback) {\r\n if (!rpcService.$rpc) // already ended?\r\n return;\r\n if (!request)\r\n throw util._TypeError(\"request\", \"not null\");\r\n method.resolve();\r\n var requestData;\r\n try {\r\n requestData = (requestDelimited ? method.resolvedRequestType.encodeDelimited(request) : method.resolvedRequestType.encode(request)).finish();\r\n } catch (err) {\r\n (typeof setImmediate === \"function\" ? setImmediate : setTimeout)(function() { callback(err); });\r\n return;\r\n }\r\n // Calls the custom RPC implementation with the reflected method and binary request data\r\n // and expects the rpc implementation to call its callback with the binary response data.\r\n rpcImpl(method, requestData, function(err, responseData) {\r\n if (err) {\r\n rpcService.emit(\"error\", err, method);\r\n return callback ? callback(err) : undefined;\r\n }\r\n if (responseData === null) {\r\n rpcService.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n var response;\r\n try {\r\n response = responseDelimited ? method.resolvedResponseType.decodeDelimited(responseData) : method.resolvedResponseType.decode(responseData);\r\n } catch (err2) {\r\n rpcService.emit(\"error\", err2, method);\r\n return callback ? callback(\"error\", err2) : undefined;\r\n }\r\n rpcService.emit(\"data\", response, method);\r\n return callback ? callback(null, response) : undefined;\r\n });\r\n };\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n case \"0\":\r\n return \"\\u0000\";\r\n default:\r\n return $1;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n */\r\n/**/\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n \r\n var offset = 0,\r\n length = source.length,\r\n line = 1;\r\n \r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n if (offset === length)\r\n return null;\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n line: function() { return line; },\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type; \r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(23),\r\n Field = require(17),\r\n Service = require(29),\r\n Class = require(12),\r\n Message = require(19),\r\n Reader = require(25),\r\n Writer = require(37),\r\n util = require(33);\r\n\r\nvar encoder, // might become cyclic\r\n decoder, // might become cyclic\r\n verifier; // cyclic\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached repeated fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._repeatedFieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nutil.props(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function getFieldsById() {\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Repeated fields of this message as an array for iteration.\r\n * @name Type#repeatedFieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n repeatedFieldsArray: {\r\n get: function getRepeatedFieldsArray() {\r\n return this._repeatedFieldsArray || (this._repeatedFieldsArray = this.getFieldsArray().filter(function(field) { return field.repeated; }));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function getOneofsArray() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function getCtor() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function setCtor(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw util._TypeError(\"ctor\", \"a Message constructor\");\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n if (json.fields)\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.getOneofsArray()),\r\n fields : Namespace.arrayToJSON(this.getFieldsArray().filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolve() {\r\n var fields = this.getFieldsArray(), i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.getOneofsArray(); i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n if (this.getFieldsById()[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n if (this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.message = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object|*} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new (this.getCtor())(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode}, {@link Type#decode} and {@link Type#verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n if (!encoder) {\r\n encoder = require(15);\r\n decoder = require(14);\r\n verifier = require(36);\r\n }\r\n this.encode = encoder(this).eof(this.getFullName() + \"$encode\", {\r\n Writer : Writer,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(this.getFullName() + \"$decode\", {\r\n Reader : Reader,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(this.getFullName() + \"$verify\", {\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(readerOrBuffer, length) {\r\n return this.setup().decode(readerOrBuffer, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n readerOrBuffer = readerOrBuffer instanceof Reader ? readerOrBuffer : Reader.create(readerOrBuffer);\r\n return this.decode(readerOrBuffer, readerOrBuffer.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(33);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\", // 14\r\n \"message\" // 15\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(35);\r\n\r\nutil.asPromise = require(2);\r\nutil.codegen = require(4);\r\nutil.EventEmitter = require(5);\r\nutil.extend = require(6);\r\nutil.fetch = require(7);\r\nutil.path = require(9);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n if (!object)\r\n return [];\r\n var names = Object.keys(object),\r\n length = names.length;\r\n var array = new Array(length);\r\n for (var i = 0; i < length; ++i)\r\n array[i] = object[names[i]];\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a type error.\r\n * @param {string} name Argument name\r\n * @param {string} [description=\"a string\"] Expected argument descripotion\r\n * @returns {TypeError} Created type error\r\n * @private\r\n */\r\nutil._TypeError = function(name, description) {\r\n return TypeError(name + \" must be \" + (description || \"a string\"));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object} dst Destination object\r\n * @param {Object} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) {\r\n if (src) {\r\n var keys = Object.keys(src);\r\n for (var i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n }\r\n return dst;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts a string to camel case notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.camelCase = function camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n};\r\n\r\n/**\r\n * Converts a string to underscore notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.underScore = function underScore(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return \"_\" + $1.toLowerCase(); });\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Converts the second character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number} [size=0] Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(size) {\r\n size = size || 0;\r\n return util.Buffer\r\n ? util.Buffer.allocUnsafe ? util.Buffer.allocUnsafe(size) : new util.Buffer(size)\r\n : new (typeof Uint8Array !== \"undefined\" ? Uint8Array : Array)(size);\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(35);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n Type = require(31),\r\n util = require(33);\r\n\r\nfunction invalid(field, expected) {\r\n return \"invalid value for field \" + field.getFullName() + \" (\" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected)\";\r\n}\r\n\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var type = field.type,\r\n rtype = field.resolvedType;\r\n if (!rtype && /32/.test(type)) gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n else if (!rtype && /64/.test(type)) gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n else if (type === \"float\" || type === \"double\") gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n else if (type === \"bool\") gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n else if (type === \"string\") gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n else if (type === \"bytes\") gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n else if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else if (field.resolvedType instanceof Type) gen\r\n (\"var r;\")\r\n (\"if(r=types[%d].verify(%s))\", fieldIndex, ref)\r\n (\"return r\");\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var keyType = field.keyType,\r\n rtype = field.resolvedKeyType;\r\n if (!rtype && /32/.test(keyType)) gen\r\n (\"if(!/^-?(?:0|[1-9]\\\\d*)$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n else if (!rtype && /64/.test(keyType)) gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9]\\\\d*))$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n else if (keyType === \"bool\") gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray();\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(m%s!==undefined){\", prop)\r\n (\"if(!util.isObject(m%s))\", prop)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(m%s)\", prop)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @exports BufferWriter\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nfunction writeFloatBuffer(val, buf, pos) {\r\n buf.writeFloatLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.float = function write_float_buffer(value) {\r\n return this.push(writeFloatBuffer, 4, value);\r\n};\r\n\r\nfunction writeDoubleBuffer(val, buf, pos) {\r\n buf.writeDoubleLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.double = function write_double_buffer(value) {\r\n return this.push(writeDoubleBuffer, 8, value);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n if (val.length)\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n return len\r\n ? this.uint32(len).push(writeBytesBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n return len\r\n ? this.uint32(len).push(writeStringBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n// function load(filename:string, root:Root, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n/**\r\n * Named roots.\r\n * @name roots\r\n * @type {Object.}\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Parser\r\nprotobuf.tokenize = require(\"./tokenize\");\r\nprotobuf.parse = require(\"./parse\");\r\n\r\n// Serialization\r\nprotobuf.BufferWriter = (\r\nprotobuf.Writer = require(\"./writer\")).BufferWriter;\r\nprotobuf.BufferReader = (\r\nprotobuf.Reader = require(\"./reader\")).BufferReader;\r\nprotobuf.encoder = require(\"./encoder\");\r\nprotobuf.decoder = require(\"./decoder\");\r\nprotobuf.verifier = require(\"./verifier\");\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(\"./object\");\r\nprotobuf.Namespace = require(\"./namespace\");\r\nprotobuf.Root = require(\"./root\");\r\nprotobuf.Enum = require(\"./enum\");\r\nprotobuf.Type = require(\"./type\");\r\nprotobuf.Field = require(\"./field\");\r\nprotobuf.OneOf = require(\"./oneof\");\r\nprotobuf.MapField = require(\"./mapfield\");\r\nprotobuf.Service = require(\"./service\");\r\nprotobuf.Method = require(\"./method\");\r\n\r\n// Runtime\r\nprotobuf.Class = require(\"./class\");\r\nprotobuf.Message = require(\"./message\");\r\n\r\n// Utility\r\nprotobuf.types = require(\"./types\");\r\nprotobuf.common = require(\"./common\");\r\nprotobuf.rpc = require(\"./rpc\");\r\nprotobuf.util = require(\"./util\");\r\nprotobuf.configure = configure;\r\n\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/runtime.js","src/verifier.js","src/writer.js","src/writer_buffer.js","src/index.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {function(?Error, ...*)} fn Function to call\r\n * @param {Object} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue);?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n \r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function \" + (name ? name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\", \") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n return format.replace(/%([djs])/g, function($0, $1) {\r\n var arg = args[i++];\r\n switch ($1) {\r\n case \"j\":\r\n return JSON.stringify(arg);\r\n default:\r\n return String(arg);\r\n }\r\n });\r\n}\r\n\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {Object} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(2),\r\n inquire = require(8);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted \r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(19),\r\n util = require(34);\r\n\r\nvar Type; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a class instance, which is also a message prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(32);\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type\", \"a Type\");\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor\", \"a function\");\r\n } else\r\n ctor = (function(MessageCtor) { // eslint-disable-line wrap-iife\r\n return function Message(properties) {\r\n MessageCtor.call(this, properties);\r\n };\r\n })(Message);\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n \r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa.\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.getFieldsArray().forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue)\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.getOneofsArray().forEach(function(oneof) {\r\n util.prop(prototype, oneof.resolve().name, {\r\n get: function getVirtual() {\r\n // > If the parser encounters multiple members of the same oneof on the wire, only the last member seen is used in the parsed message.\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (oneof.oneof.indexOf(keys[i]) > -1)\r\n return keys[i];\r\n return undefined;\r\n },\r\n set: function setVirtual(value) {\r\n for (var keys = oneof.oneof, i = 0; i < keys.length; ++i)\r\n if (keys[i] !== value)\r\n delete this[keys[i]];\r\n }\r\n });\r\n });\r\n\r\n // Register\r\n type.setCtor(ctor);\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa.\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\n\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object} google/protobuf/any.proto Any\r\n * @property {Object} google/protobuf/duration.proto Duration\r\n * @property {Object} google/protobuf/empty.proto Empty\r\n * @property {Object} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object} google/protobuf/timestamp.proto Timestamp\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n// - google/protobuf/descriptor.proto\r\n// - google/protobuf/field_mask.proto\r\n// - google/protobuf/source_context.proto\r\n// - google/protobuf/type.proto\r\n// - google/protobuf/wrappers.proto\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [ \"nullValue\", \"numberValue\", \"stringValue\", \"boolValue\", \"structValue\", \"listValue\" ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\nmodule.exports = decoder;\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\n/**\r\n * Generates a decoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction decoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray(); \r\n var gen = util.codegen(\"r\", \"l\")\r\n\r\n (\"r instanceof Reader||(r=Reader.create(r))\")\r\n (\"var c=l===undefined?r.len:r.pos+l,m=new(this.getCtor())\")\r\n (\"while(r.pos>>3){\");\r\n \r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n prop = util.safeProp(field.name);\r\n gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) {\r\n\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"r.skip().pos++\")\r\n (\"if(m%s===util.emptyObject)\", prop)\r\n (\"m%s={}\", prop)\r\n (\"var k=r.%s()\", keyType)\r\n (\"if(typeof k===\\\"object\\\")\")\r\n (\"k=util.longToHash(k)\")\r\n (\"r.pos++\");\r\n if (types.basic[type] === undefined) gen\r\n (\"m%s[k]=types[%d].decode(r,r.uint32())\", prop, i); // can't be groups\r\n else gen\r\n (\"m%s[k]=r.%s()\", prop, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"m%s&&m%s.length?m%s:m%s=[]\", prop, prop, prop, prop);\r\n\r\n // Packed\r\n if (field.packed && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var e=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0);\r\n return alwaysRequired || field.required\r\n ? gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()\", fieldIndex, ref, field.id);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.getFieldsArray();\r\n var oneofs = mtype.getOneofsArray();\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"w||(w=Writer.create())\");\r\n\r\n var i;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"if(m%s&&m%s!==util.emptyObject){\", prop, prop)\r\n (\"for(var ks=Object.keys(m%s),i=0;i>> 0, 8 | types.mapKey[keyType], keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()\", i, prop); // can't be groups\r\n else gen\r\n (\"w.uint32(%d).%s(m%s[ks[i]])\", 16 | wireType, type, prop);\r\n gen\r\n (\"w.ldelim()\")\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(m%s&&m%s.length){\", prop, prop)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i>> 0, type, prop);\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else if (!field.partOf) {\r\n if (!field.required) {\r\n\r\n if (field.long) {\r\n gen\r\n (\"if(m%s!==undefined&&util.longNe(m%s,%d,%d))\", prop, prop, field.defaultValue.low, field.defaultValue.high);\r\n } else gen\r\n (\"if(m%s!==undefined&&m%s!==%j)\", prop, prop, field.defaultValue);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, i, \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n }\r\n }\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i],\r\n prop = safeProp(oneof.name);\r\n gen\r\n (\"switch(m%s){\", prop);\r\n var oneofFields = oneof.getFieldsArray();\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n gen\r\n (\"case%j:\", field.name);\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, fields.indexOf(field), \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n gen\r\n (\"break;\");\r\n\r\n } gen\r\n (\"}\"); \r\n }\r\n\r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = values || {}; // toJSON, marker\r\n\r\n /**\r\n * Cached values by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._valuesById = null;\r\n}\r\n\r\nutil.props(EnumPrototype, {\r\n\r\n /**\r\n * Enum values by id.\r\n * @name Enum#valuesById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n valuesById: {\r\n get: function getValuesById() {\r\n if (!this._valuesById) {\r\n this._valuesById = {};\r\n Object.keys(this.values).forEach(function(name) {\r\n var id = this.values[name];\r\n if (this._valuesById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._valuesById[id] = name;\r\n }, this);\r\n }\r\n return this._valuesById;\r\n }\r\n }\r\n\r\n /**\r\n * Gets this enum's values by id. This is an alias of {@link Enum#valuesById}'s getter for use within non-ES5 environments.\r\n * @name Enum#getValuesById\r\n * @function\r\n * @returns {Object.}\r\n */\r\n});\r\n\r\nfunction clearCache(enm) {\r\n enm._valuesById = null;\r\n return enm;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\r\n if (this.getValuesById()[id] !== undefined)\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this.values[name] = id;\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (this.values[name] === undefined)\r\n throw Error(\"'\" + name + \"' is not a name of \" + this);\r\n delete this.values[name];\r\n return clearCache(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Message = require(19),\r\n Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object} [rule=\"optional\"] Field rule\r\n * @param {string|Object} [extend] Extended type if different from parent\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (!util.isString(type))\r\n throw TypeError(\"type\");\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend\");\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule\", \"a valid rule string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field's default value. Only relevant when working with proto2.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\nutil.props(FieldPrototype, {\r\n\r\n /**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\n packed: {\r\n get: FieldPrototype.isPacked = function() {\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether this field is packed. This is an alias of {@link Field#packed}'s getter for use within non-ES5 environments.\r\n * @name Field#isPacked\r\n * @function\r\n * @returns {boolean}\r\n */\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(18);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n var typeDefault = types.defaults[this.type];\r\n\r\n // if not a basic type, resolve it\r\n if (typeDefault === undefined) {\r\n if (!Type)\r\n Type = require(32);\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n typeDefault = 0;\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // when everything is resolved determine the default value\r\n var optionDefault;\r\n if (this.map)\r\n this.defaultValue = {};\r\n else if (this.repeated)\r\n this.defaultValue = [];\r\n else if (this.options && (optionDefault = this.options[\"default\"]) !== undefined) // eslint-disable-line dot-notation\r\n this.defaultValue = optionDefault;\r\n else\r\n this.defaultValue = typeDefault;\r\n\r\n if (this.long)\r\n this.defaultValue = util.Long.fromValue(this.defaultValue);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Converts a field value to JSON using the specified options. Note that this method does not account for repeated fields and must be called once for each repeated element instead.\r\n * @param {*} value Field value\r\n * @param {Object.} [options] Conversion options\r\n * @returns {*} Converted value\r\n * @see {@link Message#asJSON}\r\n */\r\nFieldPrototype.jsonConvert = function(value, options) {\r\n if (options) {\r\n if (value instanceof Message)\r\n return value.asJSON(options);\r\n if (this.resolvedType instanceof Enum && options[\"enum\"] === String) // eslint-disable-line dot-notation\r\n return this.resolvedType.getValuesById()[value];\r\n if (options.long && this.long)\r\n return options.long === Number\r\n ? typeof value === \"number\"\r\n ? value\r\n : util.LongBits.from(value).toNumber(this.type.charAt(0) === \"u\")\r\n : util.Long.fromValue(value, this.type.charAt(0) === \"u\").toString();\r\n if (options.bytes && this.bytes) {\r\n if (options.bytes === String)\r\n return util.base64.encode(value, 0, value.length);\r\n if (options.bytes === Array)\r\n return Array.prototype.slice.call(value);\r\n if (options.bytes === util.Buffer && !util.Buffer.isBuffer(value))\r\n return util.Buffer.from ? util.Buffer.from(value) : new util.Buffer(value);\r\n }\r\n }\r\n return value;\r\n};\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n if (!util.isString(keyType))\r\n throw util._TypeError(\"keyType\");\r\n \r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n \r\n // Besides a value type, map fields possibily have an enum as its key type to resolve\r\n if (types.mapKey[this.keyType] === undefined && !(this.resolvedKeyType = this.parent.lookup(this.keyType, Enum)))\r\n throw Error(\"unresolvable key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This method should be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @extends {Object}\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @abstract\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/** @alias Message.prototype */\r\nvar MessagePrototype = Message.prototype;\r\n\r\n/**\r\n * Converts this message to a JSON object.\r\n * @param {Object.} [options] Conversion options\r\n * @param {boolean} [options.fieldsOnly=false] Converts only properties that reference a field\r\n * @param {*} [options.long] Long conversion type. Only relevant with a long library.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to a possibly unsafe number without, and a `Long` with a long library.\r\n * @param {*} [options.enum=Number] Enum value conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to the numeric ids.\r\n * @param {*} [options.bytes] Bytes value conversion type.\r\n * Valid values are `Array` and `String` (the global types).\r\n * Defaults to return the underlying buffer type.\r\n * @param {boolean} [options.defaults=false] Also sets default values on the resulting object\r\n * @returns {Object.} JSON object\r\n */\r\nMessagePrototype.asJSON = function asJSON(options) {\r\n if (!options)\r\n options = {};\r\n var fields = this.$type.fields,\r\n json = {};\r\n var keys;\r\n if (options.defaults) {\r\n keys = Object.keys(fields);\r\n } else\r\n keys = Object.keys(this);\r\n for (var i = 0, key; i < keys.length; ++i) {\r\n var field = fields[key = keys[i]],\r\n value = this[key];\r\n if (field) {\r\n if (field.repeated) {\r\n if (value && (value.length || options.defaults)) {\r\n var array = new Array(value.length);\r\n for (var j = 0, l = value.length; j < l; ++j)\r\n array[j] = field.jsonConvert(value[j], options);\r\n json[key] = array;\r\n }\r\n } else\r\n json[key] = field.jsonConvert(value, options);\r\n } else if (!options.fieldsOnly)\r\n json[key] = value;\r\n }\r\n return json;\r\n};\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(readerOrBuffer) {\r\n return this.$type.decode(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n return this.$type.decodeDelimited(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(32),\r\n util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object} [responseStream] Whether the response is streamed\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type\");\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType\");\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {Object} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream || undefined,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream || undefined,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\nfunction initNested() {\r\n if (!Type)\r\n Type = require(32);\r\n if (!Service)\r\n Service = require(30);\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @classdesc Reflected namespace and base class of all reflection objects containing nested objects.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\nutil.props(NamespacePrototype, {\r\n\r\n /**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name Namespace#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\n nestedArray: {\r\n get: function getNestedArray() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @param {string} name Namespace name\r\n * @param {Object} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.getNestedArray())\r\n };\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n throw TypeError(\"nested.\" + nestedName, \"JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n if (!nestedTypes)\r\n initNested();\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object\", nestedError);\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object\", \"an extension field when not part of a type\");\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n if (!Type)\r\n Type = require(32);\r\n if (!Service)\r\n Service = require(30);\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object\", \"a ReflectionObject\");\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path)) {\r\n json = path;\r\n path = undefined;\r\n }\r\n var ptr = this;\r\n if (path)\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolve() {\r\n var nested = this.getNestedArray(), i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n if (util.isString(path) && path.length)\r\n path = path.split(\".\");\r\n else if (!path.length)\r\n return null;\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.getRoot().lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found && path.length === 1 && (!filterType || found instanceof filterType) || found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name Namespace#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n if (!Type)\r\n Type = require(32);\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n if (!Service)\r\n Service = require(30);\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up enum\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(34);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options\", \"an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nutil.props(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function getRoot() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: ReflectionObjectPrototype.getFullName = function getFullName() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n var root = this.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className;\r\n var fullName = this.getFullName();\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17),\r\n util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames\", \"an Array\");\r\n\r\n /**\r\n * Upper cased name for getter/setter calls.\r\n * @type {string}\r\n */\r\n this.ucName = this.name.substring(0, 1).toUpperCase() + this.name.substring(1);\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nutil.prop(OneOfPrototype, \"fieldsArray\", {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n if (field.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n var index = this._fieldsArray.indexOf(field);\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n if (index > -1)\r\n this.oneof.splice(index, 1);\r\n if (field.parent)\r\n field.parent.remove(field);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nvar tokenize = require(31),\r\n Root = require(27),\r\n Type = require(32),\r\n Field = require(17),\r\n MapField = require(18),\r\n OneOf = require(23),\r\n Enum = require(16),\r\n Service = require(30),\r\n Method = require(20),\r\n types = require(33),\r\n util = require(34);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n root = new Root();\r\n options = root || {};\r\n } else if (!options)\r\n options = {};\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n if (!root)\r\n root = new Root();\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\r\n\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 0x1FFFFFFF;\r\n case \"0\": return 0;\r\n }\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n \r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (lower(type) === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new Field(name, id, type, rule, extend));\r\n if (field.repeated)\r\n field.setOption(\"packed\", isProto3, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new MapField(name, id, keyType, valueType));\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n var oneof = new OneOf(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var values = {};\r\n var enm = new Enum(name, values);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumField(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumField(parent, token) {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true);\r\n parent.values[name] = value;\r\n parseInlineOptions({}); // skips enum value options\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (!isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n name = name + \".\" + token;\r\n if (skip(\":\", true))\r\n setOption(parent, name, readValue(true));\r\n else\r\n parseOptionValue(parent, name);\r\n }\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n else\r\n parent[name] = value;\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n var name = token;\r\n var service = new Service(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n var st;\r\n if (skip(st = \"stream\", true))\r\n requestStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(st, true))\r\n responseStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(36),\r\n ieee754 = require(1);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n if (util.Buffer) {\r\n if (!BufferReader)\r\n BufferReader = require(26);\r\n return new BufferReader(buffer);\r\n }\r\n return new Reader(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\nvar Reader = require(25);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(36);\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n if (!util.Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n util = require(34),\r\n common = require(13);\r\n\r\nvar parse; // cyclic\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {Object} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files. \r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {*} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (!parse)\r\n parse = require(24);\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n cb(err, root);\r\n }\r\n\r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n return;\r\n }\r\n if (!sync && !queued)\r\n finish(null, self);\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.indexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename) {\r\n return this.load(filename, SYNC);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.getFullName(), field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field && object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n }\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n }\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\nrpc.Service = require(29);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(34);\r\nvar EventEmitter = util.EventEmitter;\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @memberof rpc\r\n * @extends util.EventEmitter\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n */\r\nfunction Service(rpcImpl) {\r\n EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.$rpc = rpcImpl;\r\n}\r\n\r\n/** @alias rpc.Service.prototype */\r\nvar ServicePrototype = Service.prototype = Object.create(EventEmitter.prototype);\r\nServicePrototype.constructor = Service;\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nServicePrototype.end = function end(endedByRPC) {\r\n if (this.$rpc) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.$rpc(null, null, null);\r\n this.$rpc = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(20),\r\n util = require(34),\r\n rpc = require(28);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\nutil.props(ServicePrototype, {\r\n\r\n /**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\n methodsArray: {\r\n get: function getMethodsArray() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n }\r\n\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.getMethodsArray()) || {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolve() {\r\n var methods = this.getMethodsArray();\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method} method Reflected method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Uint8Array} [responseData] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {function(Method, Uint8Array, function)} rpcImpl RPC implementation ({@link RPCImpl|see})\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} Runtime RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl);\r\n this.getMethodsArray().forEach(function(method) {\r\n rpcService[util.lcFirst(method.name)] = function callVirtual(request, /* optional */ callback) {\r\n if (!rpcService.$rpc) // already ended?\r\n return;\r\n if (!request)\r\n throw util._TypeError(\"request\", \"not null\");\r\n method.resolve();\r\n var requestData;\r\n try {\r\n requestData = (requestDelimited ? method.resolvedRequestType.encodeDelimited(request) : method.resolvedRequestType.encode(request)).finish();\r\n } catch (err) {\r\n (typeof setImmediate === \"function\" ? setImmediate : setTimeout)(function() { callback(err); });\r\n return;\r\n }\r\n // Calls the custom RPC implementation with the reflected method and binary request data\r\n // and expects the rpc implementation to call its callback with the binary response data.\r\n rpcImpl(method, requestData, function(err, responseData) {\r\n if (err) {\r\n rpcService.emit(\"error\", err, method);\r\n return callback ? callback(err) : undefined;\r\n }\r\n if (responseData === null) {\r\n rpcService.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n var response;\r\n try {\r\n response = responseDelimited ? method.resolvedResponseType.decodeDelimited(responseData) : method.resolvedResponseType.decode(responseData);\r\n } catch (err2) {\r\n rpcService.emit(\"error\", err2, method);\r\n return callback ? callback(\"error\", err2) : undefined;\r\n }\r\n rpcService.emit(\"data\", response, method);\r\n return callback ? callback(null, response) : undefined;\r\n });\r\n };\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n case \"0\":\r\n return \"\\u0000\";\r\n default:\r\n return $1;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n */\r\n/**/\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n \r\n var offset = 0,\r\n length = source.length,\r\n line = 1;\r\n \r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n if (offset === length)\r\n return null;\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n line: function() { return line; },\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type; \r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(23),\r\n Field = require(17),\r\n Service = require(30),\r\n Class = require(12),\r\n Message = require(19),\r\n Reader = require(25),\r\n Writer = require(38),\r\n util = require(34);\r\n\r\nvar encoder, // might become cyclic\r\n decoder, // might become cyclic\r\n verifier; // cyclic\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached repeated fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._repeatedFieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nutil.props(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function getFieldsById() {\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Repeated fields of this message as an array for iteration.\r\n * @name Type#repeatedFieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n repeatedFieldsArray: {\r\n get: function getRepeatedFieldsArray() {\r\n return this._repeatedFieldsArray || (this._repeatedFieldsArray = this.getFieldsArray().filter(function(field) { return field.repeated; }));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function getOneofsArray() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function getCtor() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function setCtor(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw util._TypeError(\"ctor\", \"a Message constructor\");\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n if (json.fields)\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.getOneofsArray()),\r\n fields : Namespace.arrayToJSON(this.getFieldsArray().filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolve() {\r\n var fields = this.getFieldsArray(), i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.getOneofsArray(); i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n if (this.getFieldsById()[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n if (this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.message = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object|*} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new (this.getCtor())(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode}, {@link Type#decode} and {@link Type#verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n if (!encoder) {\r\n encoder = require(15);\r\n decoder = require(14);\r\n verifier = require(37);\r\n }\r\n this.encode = encoder(this).eof(this.getFullName() + \"$encode\", {\r\n Writer : Writer,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(this.getFullName() + \"$decode\", {\r\n Reader : Reader,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(this.getFullName() + \"$verify\", {\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(readerOrBuffer, length) {\r\n return this.setup().decode(readerOrBuffer, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n readerOrBuffer = readerOrBuffer instanceof Reader ? readerOrBuffer : Reader.create(readerOrBuffer);\r\n return this.decode(readerOrBuffer, readerOrBuffer.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(34);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\", // 14\r\n \"message\" // 15\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(36);\r\n\r\nutil.asPromise = require(2);\r\nutil.codegen = require(4);\r\nutil.EventEmitter = require(5);\r\nutil.extend = require(6);\r\nutil.fetch = require(7);\r\nutil.path = require(9);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n if (!object)\r\n return [];\r\n var names = Object.keys(object),\r\n length = names.length;\r\n var array = new Array(length);\r\n for (var i = 0; i < length; ++i)\r\n array[i] = object[names[i]];\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a type error.\r\n * @param {string} name Argument name\r\n * @param {string} [description=\"a string\"] Expected argument descripotion\r\n * @returns {TypeError} Created type error\r\n * @private\r\n */\r\nutil._TypeError = function(name, description) {\r\n return TypeError(name + \" must be \" + (description || \"a string\"));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object} dst Destination object\r\n * @param {Object} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) {\r\n if (src) {\r\n var keys = Object.keys(src);\r\n for (var i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n }\r\n return dst;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts a string to camel case notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.camelCase = function camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n};\r\n\r\n/**\r\n * Converts a string to underscore notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.underScore = function underScore(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return \"_\" + $1.toLowerCase(); });\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Converts the second character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number} [size=0] Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(size) {\r\n size = size || 0;\r\n return util.Buffer\r\n ? util.Buffer.allocUnsafe ? util.Buffer.allocUnsafe(size) : new util.Buffer(size)\r\n : new (typeof Uint8Array !== \"undefined\" ? Uint8Array : Array)(size);\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n Type = require(32),\r\n util = require(34);\r\n\r\nfunction invalid(field, expected) {\r\n return \"invalid value for field \" + field.getFullName() + \" (\" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected)\";\r\n}\r\n\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var type = field.type,\r\n rtype = field.resolvedType;\r\n if (!rtype && /32/.test(type)) gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n else if (!rtype && /64/.test(type)) gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n else if (type === \"float\" || type === \"double\") gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n else if (type === \"bool\") gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n else if (type === \"string\") gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n else if (type === \"bytes\") gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n else if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else if (field.resolvedType instanceof Type) gen\r\n (\"var r;\")\r\n (\"if(r=types[%d].verify(%s))\", fieldIndex, ref)\r\n (\"return r\");\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var keyType = field.keyType,\r\n rtype = field.resolvedKeyType;\r\n if (!rtype && /32/.test(keyType)) gen\r\n (\"if(!/^-?(?:0|[1-9]\\\\d*)$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n else if (!rtype && /64/.test(keyType)) gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9]\\\\d*))$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n else if (keyType === \"bool\") gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray();\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(m%s!==undefined){\", prop)\r\n (\"if(!util.isObject(m%s))\", prop)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(m%s)\", prop)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n /* istanbul ignore next */\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n /* istanbul ignore next */\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n /* istanbul ignore next */\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\nvar Writer = require(38);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(36);\r\n\r\nvar utf8 = util.utf8;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n// function load(filename:string, root:Root, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n/**\r\n * Named roots.\r\n * @name roots\r\n * @type {Object.}\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Parser\r\nprotobuf.tokenize = require(\"./tokenize\");\r\nprotobuf.parse = require(\"./parse\");\r\n\r\n// Serialization\r\nprotobuf.Writer = require(\"./writer\");\r\nprotobuf.BufferWriter = require(\"./writer_buffer\");\r\nprotobuf.Reader = require(\"./reader\");\r\nprotobuf.BufferReader = require(\"./reader_buffer\");\r\nprotobuf.encoder = require(\"./encoder\");\r\nprotobuf.decoder = require(\"./decoder\");\r\nprotobuf.verifier = require(\"./verifier\");\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(\"./object\");\r\nprotobuf.Namespace = require(\"./namespace\");\r\nprotobuf.Root = require(\"./root\");\r\nprotobuf.Enum = require(\"./enum\");\r\nprotobuf.Type = require(\"./type\");\r\nprotobuf.Field = require(\"./field\");\r\nprotobuf.OneOf = require(\"./oneof\");\r\nprotobuf.MapField = require(\"./mapfield\");\r\nprotobuf.Service = require(\"./service\");\r\nprotobuf.Method = require(\"./method\");\r\n\r\n// Runtime\r\nprotobuf.Class = require(\"./class\");\r\nprotobuf.Message = require(\"./message\");\r\n\r\n// Utility\r\nprotobuf.types = require(\"./types\");\r\nprotobuf.common = require(\"./common\");\r\nprotobuf.rpc = require(\"./rpc\");\r\nprotobuf.util = require(\"./util\");\r\nprotobuf.configure = configure;\r\n\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/dist/protobuf.min.js b/dist/protobuf.min.js index 65db9ef4e..828b9c86c 100644 --- a/dist/protobuf.min.js +++ b/dist/protobuf.min.js @@ -1,9 +1,9 @@ /*! * protobuf.js v6.3.0 (c) 2016 Daniel Wirtz - * Compiled Sun, 18 Dec 2016 17:54:03 UTC + * Compiled Sun, 18 Dec 2016 19:23:21 UTC * Licensed under the Apache License, Version 2.0 * see: https://github.com/dcodeIO/protobuf.js for details */ -!function t(e,r,n){function i(s,u){if(!r[s]){if(!e[s]){var f="function"==typeof require&&require;if(!u&&f)return f(s,!0);if(o)return o(s,!0);var a=new Error("Cannot find module '"+s+"'");throw a.code="MODULE_NOT_FOUND",a}var h=r[s]={exports:{}};e[s][0].call(h.exports,function(t){var r=e[s][1][t];return i(r?r:t)},h,h.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s>1,h=-7,l=r?0:i-1,c=r?1:-1,d=t[e+l];for(l+=c,o=d&(1<<-h)-1,d>>=-h,h+=u;h>0;o=256*o+t[e+l],l+=c,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=c,h-=8);if(0===o)o=1-a;else{if(o===f)return s?NaN:(d?-1:1)*(1/0);s+=Math.pow(2,n),o-=a}return(d?-1:1)*s*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var s,u,f,a=8*o-i-1,h=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?o-1:0,p=n?-1:1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-s))<1&&(s--,f*=2),e+=s+l>=1?c/f:c*Math.pow(2,1-l),e*f>=2&&(s++,f/=2),s+l>=h?(u=0,s=h):s+l>=1?(u=(e*f-1)*Math.pow(2,i),s+=l):(u=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&u,d+=p,u/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,a-=8);t[r+d-p]|=128*v}},{}],2:[function(t,e,r){"use strict";function n(t,e){for(var r=[],n=2;n1&&"="===t.charAt(e);)++r;return Math.ceil(3*t.length)/4-r};for(var i=new Array(64),o=new Array(123),s=0;s<64;)o[i[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;n.encode=function(t,e,r){for(var n,o=[],s=0,u=0;e>2],n=(3&f)<<4,u=1;break;case 1:o[s++]=i[n|f>>4],n=(15&f)<<2,u=2;break;case 2:o[s++]=i[n|f>>6],o[s++]=i[63&f],u=0}}return u&&(o[s++]=i[n],o[s]=61,1===u&&(o[s+1]=61)),String.fromCharCode.apply(String,o)};var u="invalid encoding";n.decode=function(t,e,r){for(var n,i=r,s=0,f=0;f1)break;if(void 0===(a=o[a]))throw Error(u);switch(s){case 0:n=a,s=1;break;case 1:e[r++]=n<<2|(48&a)>>4,n=a,s=2;break;case 2:e[r++]=(15&n)<<4|(60&a)>>2,n=a,s=3;break;case 3:e[r++]=(3&n)<<6|a,s=0}}if(1===s)throw Error(u);return r-i}},{}],4:[function(t,e,r){"use strict";function n(){function t(){for(var e=[],r=0;r ").replace(/\t/g," "));var o=Object.keys(r||(r={}));return Function.apply(null,o.concat("return "+i)).apply(null,o.map(function(t){return r[t]}))}for(var h=[],l=[],c=1,d=!1,p=0;p0?e.splice(--o,2):r?e.splice(o,1):++o:"."===e[o]?e.splice(o,1):++o;return n+e.join("/")};n.resolve=function(t,e,r){return r||(e=o(e)),i(e)?e:(r||(t=o(t)),(t=t.replace(/(?:\/|^)[^\/]+$/,"")).length?o(t+"/"+e):e)}},{}],10:[function(t,e,r){"use strict";function n(t,e,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(r){if(r<1||r>i)return t(r);s+r>n&&(o=t(n),s=0);var u=e.call(o,s,s+=r);return 7&s&&(s=(7|s)+1),u}}e.exports=n},{}],11:[function(t,e,r){"use strict";var n=r;n.length=function(t){for(var e=0,r=0,n=0;n191&&i<224?s[u++]=(31&i)<<6|63&t[e++]:i>239&&i<365?(i=((7&i)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,s[u++]=55296+(i>>10),s[u++]=56320+(1023&i)):s[u++]=(15&i)<<12|(63&t[e++])<<6|63&t[e++],u>8191&&(o.push(String.fromCharCode.apply(String,s)),u=0);return u&&o.push(String.fromCharCode.apply(String,s.slice(0,u))),o.join("")},n.write=function(t,e,r){for(var n,i,o=r,s=0;s>6|192,e[r++]=63&n|128):55296===(64512&n)&&56320===(64512&(i=t.charCodeAt(s+1)))?(n=65536+((1023&n)<<10)+(1023&i),++s,e[r++]=n>>18|240,e[r++]=n>>12&63|128,e[r++]=n>>6&63|128,e[r++]=63&n|128):(e[r++]=n>>12|224,e[r++]=n>>6&63|128,e[r++]=63&n|128);return r-o}},{}],12:[function(t,e,r){"use strict";function n(t){return i(t)}function i(e,r){if(o||(o=t(31)),!(e instanceof o))throw f("type","a Type");if(r){if("function"!=typeof r)throw f("ctor","a function")}else r=function(t){return function(e){t.call(this,e)}}(s);r.constructor=n;var i=r.prototype=new s;return i.constructor=r,u.merge(r,s,!0),r.$type=e,i.$type=e,e.getFieldsArray().forEach(function(t){i[t.name]=Array.isArray(t.resolve().defaultValue)?u.emptyArray:u.isObject(t.defaultValue)?u.emptyObject:t.defaultValue}),e.getOneofsArray().forEach(function(t){u.prop(i,t.resolve().name,{get:function(){for(var e=Object.keys(this),r=e.length-1;r>-1;--r)if(t.oneof.indexOf(e[r])>-1)return e[r]},set:function(e){for(var r=t.oneof,n=0;n>>3){");for(var n=0;n>>0,(e.id<<3|4)>>>0):i||e.required?t("types[%d].encode(%s,w.uint32(%d).fork()).ldelim()",r,n,(e.id<<3|2)>>>0):t("types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()",r,n,e.id)}function i(t){for(var e,r=t.getFieldsArray(),i=t.getOneofsArray(),a=u.codegen("m","w")("w||(w=Writer.create())"),e=0;e>>0,8|s.mapKey[p],p),void 0===c?a("types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()",e,d):a("w.uint32(%d).%s(m%s[ks[i]])",16|c,l,d),a("w.ldelim()")("}")("}")}else h.repeated?h.packed&&void 0!==s.packed[l]?a("if(m%s&&m%s.length){",d,d)("w.uint32(%d).fork()",(h.id<<3|2)>>>0)("for(var i=0;i>>0,l,d)):h.partOf||(h.required||(h.long?a("if(m%s!==undefined&&util.longNe(m%s,%d,%d))",d,d,h.defaultValue.low,h.defaultValue.high):a("if(m%s!==undefined&&m%s!==%j)",d,d,h.defaultValue)),void 0===c?n(a,h,e,"m"+d):a("w.uint32(%d).%s(m%s)",(h.id<<3|c)>>>0,l,d))}for(var e=0;e>>0,l,d),a("break;")}a("}")}return a("return w")}e.exports=i;var o=t(16),s=t(32),u=t(33),f=u.safeProp},{16:16,32:32,33:33}],16:[function(t,e,r){"use strict";function n(t,e,r){o.call(this,t,r),this.values=e||{},this.c=null}function i(t){return t.c=null,t}e.exports=n;var o=t(22),s=o.extend(n);n.className="Enum";var u=t(33),f=u.b;u.props(s,{valuesById:{get:function(){return this.c||(this.c={},Object.keys(this.values).forEach(function(t){var e=this.values[t];if(this.c[e])throw Error("duplicate id "+e+" in "+this);this.c[e]=t},this)),this.c}}}),n.testJSON=function(t){return Boolean(t&&t.values)},n.fromJSON=function(t,e){return new n(t,e.values,e.options)},s.toJSON=function(){return{options:this.options,values:this.values}},s.add=function(t,e){if(!u.isString(t))throw f("name");if(!u.isInteger(e)||e<0)throw f("id","a non-negative integer");if(void 0!==this.values[t])throw Error("duplicate name '"+t+"' in "+this);if(void 0!==this.getValuesById()[e])throw Error("duplicate id "+e+" in "+this);return this.values[t]=e,i(this)},s.remove=function(t){if(!u.isString(t))throw f("name");if(void 0===this.values[t])throw Error("'"+t+"' is not a name of "+this);return delete this.values[t],i(this)}},{22:22,33:33}],17:[function(t,e,r){"use strict";function n(t,e,r,n,o,s){if(l.isObject(n)?(s=n,n=o=void 0):l.isObject(o)&&(s=o,o=void 0),i.call(this,t,s),!l.isInteger(e)||e<0)throw c("id","a non-negative integer");if(!l.isString(r))throw c("type");if(void 0!==o&&!l.isString(o))throw c("extend");if(void 0!==n&&!/^required|optional|repeated$/.test(n=n.toString().toLowerCase()))throw c("rule","a valid rule string");this.rule=n&&"optional"!==n?n:void 0,this.type=r,this.id=e,this.extend=o||void 0,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.defaultValue=null,this.long=!!l.Long&&void 0!==h.long[r],this.bytes="bytes"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this.d=null}e.exports=n;var i=t(22),o=i.extend(n);n.className="Field";var s,u,f=t(19),a=t(16),h=t(32),l=t(33),c=l.b;l.props(o,{packed:{get:o.isPacked=function(){return null===this.d&&(this.d=this.getOption("packed")!==!1),this.d}}}),o.setOption=function(t,e,r){return"packed"===t&&(this.d=null),i.prototype.setOption.call(this,t,e,r)},n.testJSON=function(t){return Boolean(t&&void 0!==t.id)},n.fromJSON=function(e,r){return void 0!==r.keyType?(u||(u=t(18)),u.fromJSON(e,r)):new n(e,r.id,r.type,r.rule,r.extend,r.options)},o.toJSON=function(){return{rule:"optional"!==this.rule&&this.rule||void 0,type:this.type,id:this.id,extend:this.extend,options:this.options}},o.resolve=function(){if(this.resolved)return this;var e=h.defaults[this.type];if(void 0===e)if(s||(s=t(31)),this.resolvedType=this.parent.lookup(this.type,s))e=null;else{if(!(this.resolvedType=this.parent.lookup(this.type,a)))throw Error("unresolvable field type: "+this.type);e=0}var r;return this.map?this.defaultValue={}:this.repeated?this.defaultValue=[]:this.options&&void 0!==(r=this.options.default)?this.defaultValue=r:this.defaultValue=e,this.long&&(this.defaultValue=l.Long.fromValue(this.defaultValue)),i.prototype.resolve.call(this)},o.jsonConvert=function(t,e){if(e){if(t instanceof f)return t.asJSON(e);if(this.resolvedType instanceof a&&e.enum===String)return this.resolvedType.getValuesById()[t];if(e.long&&this.long)return e.long===Number?"number"==typeof t?t:l.LongBits.from(t).toNumber("u"===this.type.charAt(0)):l.Long.fromValue(t,"u"===this.type.charAt(0)).toString();if(e.bytes&&this.bytes){if(e.bytes===String)return l.base64.encode(t,0,t.length);if(e.bytes===Array)return Array.prototype.slice.call(t);if(e.bytes===l.Buffer&&!l.Buffer.isBuffer(t))return l.Buffer.from?l.Buffer.from(t):new l.Buffer(t)}}return t}},{16:16,18:18,19:19,22:22,31:31,32:32,33:33}],18:[function(t,e,r){"use strict";function n(t,e,r,n,o){if(i.call(this,t,e,n,o),!a.isString(r))throw a.b("keyType");this.keyType=r,this.resolvedKeyType=null,this.map=!0}e.exports=n;var i=t(17),o=i.prototype,s=i.extend(n);n.className="MapField";var u=t(16),f=t(32),a=t(33);n.testJSON=function(t){return i.testJSON(t)&&void 0!==t.keyType},n.fromJSON=function(t,e){return new n(t,e.id,e.keyType,e.type,e.options)},s.toJSON=function(){return{keyType:this.keyType,type:this.type,id:this.id,extend:this.extend,options:this.options}},s.resolve=function(){if(this.resolved)return this;var t=f.mapKey[this.keyType];if(void 0===t){var e=this.parent.lookup(this.keyType);if(!(e instanceof u))throw Error("unresolvable key type: "+this.keyType);this.resolvedKeyType=e}return o.resolve.call(this)}},{16:16,17:17,32:32,33:33}],19:[function(t,e,r){"use strict";function n(t){if(t)for(var e=Object.keys(t),r=0;r0;){var n=t.shift();if(r.nested&&r.nested[n]){if(r=r.nested[n],!(r instanceof i))throw Error("path conflicts with non-namespace objects")}else r.add(r=new i(n))}return e&&r.addJSON(e),r},f.resolveAll=function(){for(var t=this.getNestedArray(),e=0;e-1&&this.oneof.splice(e,1),t.parent&&t.parent.remove(t),t.partOf=null,this},s.onAdd=function(t){o.prototype.onAdd.call(this,t),i(this)},s.onRemove=function(t){this.h.forEach(function(t){t.parent&&t.parent.remove(t)}),o.prototype.onRemove.call(this,t)}},{17:17,22:22,33:33}],24:[function(t,e,r){"use strict";function n(t){return/^[a-zA-Z_][a-zA-Z_0-9]*$/.test(t)}function i(t){return/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(t)}function o(t){return/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(t)}function s(t){return null===t?null:t.toLowerCase()}function u(t,e,r){function b(t,e){var r=u.filename;return u.filename=null,Error("illegal "+(e||"token")+" '"+t+"' ("+(r?r+", ":"")+"line "+K.line()+")")}function w(){var t,e=[];do{if('"'!==(t=W())&&"'"!==t)throw b(t);e.push(W()),G(t),t=X()}while('"'===t||"'"===t);return e.join("")}function k(t){var e=W();switch(s(e)){case"'":case'"':return Z(e),w();case"true":return!0;case"false":return!1}try{return x(e)}catch(r){if(t&&i(e))return e;throw b(e,"value")}}function O(){var t=N(W()),e=t;return G("to",!0)&&(e=N(W())),G(";"),[t,e]}function x(t){var e=1;"-"===t.charAt(0)&&(e=-1,t=t.substring(1));var r=s(t);switch(r){case"inf":return e*(1/0);case"nan":return NaN;case"0":return 0}if(/^[1-9][0-9]*$/.test(t))return e*parseInt(t,10);if(/^0[x][0-9a-f]+$/.test(r))return e*parseInt(t,16);if(/^0[0-7]+$/.test(t))return e*parseInt(t,8);if(/^(?!e)[0-9]*(?:\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(r))return e*parseFloat(t);throw b(t,"number")}function N(t,e){var r=s(t);switch(r){case"max":return 536870911;case"0":return 0}if("-"===t.charAt(0)&&!e)throw b(t,"id");if(/^-?[1-9][0-9]*$/.test(t))return parseInt(t,10);if(/^-?0[x][0-9a-f]+$/.test(r))return parseInt(t,16);if(/^-?0[0-7]+$/.test(t))return parseInt(t,8);throw b(t,"id")}function A(){if(void 0!==D)throw b("package");if(D=W(),!i(D))throw b(D,"name");et=et.define(D),G(";")}function S(){var t,e=X();switch(e){case"weak":t=_||(_=[]),W();break;case"public":W();default:t=P||(P=[])}e=w(),G(";"),t.push(e)}function j(){if(G("="),H=s(w()),Y="proto3"===H,!Y&&"proto2"!==H)throw b(H,"syntax");G(";")}function T(t,e){switch(e){case"option":return V(t,e),G(";"),!0;case"message":return E(t,e),!0;case"enum":return q(t,e),!0;case"service":return I(t,e),!0;case"extend":return U(t,e),!0}return!1}function E(t,e){var r=W();if(!n(r))throw b(r,"type name");var o=new h(r);if(G("{",!0)){for(;"}"!==(e=W());){var u=s(e);if(!T(o,e))switch(u){case"map":J(o,u);break;case"required":case"optional":case"repeated":F(o,u);break;case"oneof":L(o,u);break;case"extensions":(o.extensions||(o.extensions=[])).push(O(o,u));break;case"reserved":(o.reserved||(o.reserved=[])).push(O(o,u));break;default:if(!Y||!i(e))throw b(e);Z(e),F(o,"optional")}}G(";",!0)}else G(";");t.add(o)}function F(t,e,r){var o=W();if("group"===s(o))return void B(t,e);if(!i(o))throw b(o,"type");var u=W();if(!n(u))throw b(u,"name");u=rt(u),G("=");var f=N(W()),a=C(new l(u,f,o,e,r));a.repeated&&a.setOption("packed",Y,!0),t.add(a)}function B(t,e){var r=W();if(!n(r))throw b(r,"name");var i=m.lcFirst(r);r===i&&(r=m.ucFirst(r)),G("=");var o=N(W()),u=new h(r);u.group=!0;var f=new l(i,o,r,e);for(G("{");"}"!==(tt=W());)switch(tt=s(tt)){case"option":V(u,tt),G(";");break;case"required":case"optional":case"repeated":F(u,tt);break;default:throw b(tt)}G(";",!0),t.add(u).add(f)}function J(t){G("<");var e=W();if(void 0===g.mapKey[e])throw b(e,"type");G(",");var r=W();if(!i(r))throw b(r,"type");G(">");var o=W();if(!n(o))throw b(o,"name");o=rt(o),G("=");var s=N(W()),u=C(new c(o,s,e,r));t.add(u)}function L(t,e){var r=W();if(!n(r))throw b(r,"name");r=rt(r);var i=new d(r);if(G("{",!0)){for(;"}"!==(e=W());)"option"===e?(V(i,e),G(";")):(Z(e),F(i,"optional"));G(";",!0)}else G(";");t.add(i)}function q(t,e){var r=W();if(!n(r))throw b(r,"name");var i={},o=new p(r,i);if(G("{",!0)){for(;"}"!==(e=W());)"option"===s(e)?(V(o,e),G(";")):$(o,e);G(";",!0)}else G(";");t.add(o)}function $(t,e){if(!n(e))throw b(e,"name");var r=e;G("=");var i=N(W(),!0);t.values[r]=i,C({})}function V(t,e){var r=G("(",!0),n=W();if(!i(n))throw b(n,"name");r&&(G(")"),n="("+n+")",e=X(),o(e)||(n+=e,W())),G("="),R(t,n)}function R(t,e){if(G("{",!0))for(;"}"!==(tt=W());){if(!n(tt))throw b(tt,"name");e=e+"."+tt,G(":",!0)?z(t,e,k(!0)):R(t,e)}else z(t,e,k(!0))}function z(t,e,r){t.setOption?t.setOption(e,r):t[e]=r}function C(t){if(G("[",!0)){do V(t,"option");while(G(",",!0));G("]")}return G(";"),t}function I(t,e){if(e=W(),!n(e))throw b(e,"service name");var r=e,i=new v(r);if(G("{",!0)){for(;"}"!==(e=W());){var o=s(e);switch(o){case"option":V(i,o),G(";");break;case"rpc":M(i,o);break;default:throw b(e)}}G(";",!0)}else G(";");t.add(i)}function M(t,e){var r=e,o=W();if(!n(o))throw b(o,"name");var u,f,a,h;G("(");var l;if(G(l="stream",!0)&&(f=!0),!i(e=W()))throw b(e);if(u=e,G(")"),G("returns"),G("("),G(l,!0)&&(h=!0),!i(e=W()))throw b(e);a=e,G(")");var c=new y(o,r,u,a,f,h);if(G("{",!0)){for(;"}"!==(e=W());){var d=s(e);switch(d){case"option":V(c,d),G(";");break;default:throw b(e)}}G(";",!0)}else G(";");t.add(c)}function U(t,e){var r=W();if(!i(r))throw b(r,"reference");if(G("{",!0)){for(;"}"!==(e=W());){var n=s(e);switch(n){case"required":case"repeated":case"optional":F(t,n,r);break;default:if(!Y||!i(e))throw b(e);Z(e),F(t,"optional",r)}}G(";",!0)}else G(";")}e instanceof a?r||(r={}):(e=new a,r=e||{});var D,P,_,H,K=f(t),W=K.next,Z=K.push,X=K.peek,G=K.skip,Q=!0,Y=!1;e||(e=new a);for(var tt,et=e,rt=r.keepCase?function(t){return t}:m.camelCase;null!==(tt=W());){var nt=s(tt);switch(nt){case"package":if(!Q)throw b(tt);A();break;case"import":if(!Q)throw b(tt);S();break;case"syntax":if(!Q)throw b(tt);j();break;case"option":if(!Q)throw b(tt);V(et,tt),G(";");break;default:if(T(et,tt)){Q=!1;continue}throw b(tt)}}return u.filename=null,{package:D,imports:P,weakImports:_,syntax:H,root:e}}e.exports=u;var f=t(30),a=t(26),h=t(31),l=t(17),c=t(18),d=t(23),p=t(16),v=t(29),y=t(20),g=t(32),m=t(33)},{16:16,17:17,18:18,20:20,23:23,26:26,29:29,30:30,31:31,32:32,33:33}],25:[function(t,e,r){"use strict";function n(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function i(t){this.buf=t,this.pos=0,this.len=t.length}function o(){var t=new N(0,0),e=0;if(this.len-this.pos>4){for(e=0;e<4;++e)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}else{for(e=0;e<4;++e){if(this.pos>=this.len)throw n(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t}if(this.pos>=this.len)throw n(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}if(this.len-this.pos>4){for(e=0;e<5;++e)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}else for(e=0;e<5;++e){if(this.pos>=this.len)throw n(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function s(){return o.call(this).toLong()}function u(){return o.call(this).toNumber()}function f(){return o.call(this).toLong(!0)}function a(){return o.call(this).toNumber(!0)}function h(){return o.call(this).zzDecode().toLong()}function l(){return o.call(this).zzDecode().toNumber()}function c(t,e){return t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24}function d(){if(this.pos+8>this.len)throw n(this,8);return new N(c(this.buf,this.pos+=4),c(this.buf,this.pos+=4))}function p(){return d.call(this).toLong(!0)}function v(){return d.call(this).toNumber(!0)}function y(){return d.call(this).zzDecode().toLong()}function g(){return d.call(this).zzDecode().toNumber()}function m(t){B&&B(),i.call(this,t)}function b(t,e,r){return t.utf8Slice(e,r)}function w(t,e,r){return t.toString("utf8",e,r)}function k(){O.Long?(j.int64=s, -j.uint64=f,j.sint64=h,j.fixed64=p,j.sfixed64=y):(j.int64=u,j.uint64=a,j.sint64=l,j.fixed64=v,j.sfixed64=g)}e.exports=i,i.BufferReader=m;var O=t(35),x=t(1),N=O.LongBits,A=O.utf8,S="undefined"!=typeof Uint8Array?Uint8Array:Array;i.create=function(t){return new(O.Buffer?m:i)(t)};var j=i.prototype;j.i=S.prototype.subarray||S.prototype.slice;var T=j.uint32=function(){var t=(127&this.buf[this.pos])>>>0;if(this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return t;if((this.pos+=5)>this.len)throw this.pos=this.len,n(this,10);return t};T.call({buf:[255,255,255,255,15],pos:0,len:5}),j.int32=function(){return 0|this.uint32()},j.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},j.bool=function(){return 0!==this.uint32()},j.fixed32=function(){if(this.pos+4>this.len)throw n(this,4);return c(this.buf,this.pos+=4)},j.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var E="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],t[0]}:function(r,n){return e[3]=r[n],e[2]=r[n+1],e[1]=r[n+2],e[0]=r[n+3],t[0]}}():function(t,e){return x.read(t,e,!1,23,4)};j.float=function(){if(this.pos+4>this.len)throw n(this,4);var t=E(this.buf,this.pos);return this.pos+=4,t};var F="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],e[4]=r[n+4],e[5]=r[n+5],e[6]=r[n+6],e[7]=r[n+7],t[0]}:function(r,n){return e[7]=r[n],e[6]=r[n+1],e[5]=r[n+2],e[4]=r[n+3],e[3]=r[n+4],e[2]=r[n+5],e[1]=r[n+6],e[0]=r[n+7],t[0]}}():function(t,e){return x.read(t,e,!1,52,8)};j.double=function(){if(this.pos+8>this.len)throw n(this,4);var t=F(this.buf,this.pos);return this.pos+=8,t},j.bytes=function(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw n(this,t);return this.pos+=t,e===r?new this.buf.constructor(0):this.i.call(this.buf,e,r)},j.string=function(){var t=this.bytes();return A.read(t,0,t.length)},j.skip=function(t){if(void 0===t){do if(this.pos>=this.len)throw n(this);while(128&this.buf[this.pos++])}else{if(this.pos+t>this.len)throw n(this,t);this.pos+=t}return this},j.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(t=7&this.uint32(),4===t)break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type: "+t)}return this},j.reset=function(t){return t?(this.buf=t,this.len=t.length):(this.buf=null,this.len=0),this.pos=0,this},j.finish=function(t){var e=this.pos?this.i.call(this.buf,this.pos):this.buf;return this.reset(t),e};var B=function(){var t=O.Buffer;if(!t)throw Error("Buffer is not supported");J.i=t.prototype.slice,L=t.prototype.utf8Slice?b:w,B=!1},J=m.prototype=Object.create(i.prototype);J.constructor=m,"undefined"==typeof Float32Array&&(J.float=function(){if(this.pos+4>this.len)throw n(this,4);var t=this.buf.readFloatLE(this.pos,!0);return this.pos+=4,t}),"undefined"==typeof Float64Array&&(J.double=function(){if(this.pos+8>this.len)throw n(this,8);var t=this.buf.readDoubleLE(this.pos,!0);return this.pos+=8,t});var L;J.string=function(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw n(this,t);return this.pos+=t,L(this.buf,e,r)},J.finish=function(t){var e=this.pos?this.buf.slice(this.pos):this.buf;return this.reset(t),e},i.j=k,k()},{1:1,35:35}],26:[function(t,e,r){"use strict";function n(t){s.call(this,"",t),this.deferred=[],this.files=[]}function i(){}function o(t){var e=t.parent.lookup(t.extend);if(e){var r=new a(t.getFullName(),t.id,t.type,t.rule,(void 0),t.options);return r.declaringField=t,t.extensionField=r,e.add(r),!0}return!1}e.exports=n;var s=t(21),u=s.extend(n);n.className="Root";var f,a=t(17),h=t(33),l=t(13);n.fromJSON=function(t,e){return e||(e=new n),e.setOptions(t.options).addJSON(t.nested)},u.resolvePath=h.path.resolve,u.load=function e(r,n,o){function s(t,e){if(o){var r=o;o=null,r(t,e)}}function u(t,e){try{if(h.isString(e)&&"{"===e.charAt(0)&&(e=JSON.parse(e)),h.isString(e)){f.filename=t;var r=f(e,c,n);r.imports&&r.imports.forEach(function(e){a(c.resolvePath(t,e))}),r.weakImports&&r.weakImports.forEach(function(e){a(c.resolvePath(t,e),!0)})}else c.setOptions(e.options).addJSON(e.nested)}catch(t){return void s(t)}d||p||s(null,c)}function a(t,e){var r=t.indexOf("google/protobuf/");if(r>-1){var n=t.substring(r);n in l&&(t=n)}if(!(c.files.indexOf(t)>-1)){if(c.files.push(t),t in l)return void(d?u(t,l[t]):(++p,setTimeout(function(){--p,u(t,l[t])})));if(d){var i;try{i=h.fs.readFileSync(t).toString("utf8")}catch(t){return void(e||s(t))}u(t,i)}else++p,h.fetch(t,function(r,n){if(--p,o)return r?void(e||s(r)):void u(t,n)})}}f||(f=t(24)),"function"==typeof n&&(o=n,n=void 0);var c=this;if(!o)return h.asPromise(e,c,r);var d=o===i,p=0;return h.isString(r)&&(r=[r]),r.forEach(function(t){a(c.resolvePath("",t))}),d?c:void(p||s(null,c))},u.loadSync=function(t){return this.load(t,i)},u.f=function(t){var e=this.deferred.slice();this.deferred=[];for(var r=0;r-1&&this.deferred.splice(e,1)}t.extensionField&&(t.extensionField.parent.remove(t.extensionField),t.extensionField=null)}else if(t instanceof s)for(var r=t.getNestedArray(),n=0;n0)return v.shift();if(y)return r();var n,s,u;do{if(c===d)return null;for(n=!1;/\s/.test(u=i(c));)if("\n"===u&&++p,++c===d)return null;if("/"===i(c)){if(++c===d)throw e("comment");if("/"===i(c)){for(;"\n"!==i(++c);)if(c===d)return null;++c,++p,n=!0}else{if("*"!==(u=i(c)))return"/";do{if("\n"===u&&++p,++c===d)return null;s=u,u=i(c)}while("*"!==s||"/"!==u);++c,n=!0}}}while(n);if(c===d)return null;var f=c;o.lastIndex=0;var a=o.test(i(f++));if(!a)for(;f]/g,s=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,u=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g},{}],31:[function(t,e,r){"use strict";function n(t,e){o.call(this,t,e),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this.l=null,this.h=null,this.m=null,this.n=null,this.o=null}function i(t){return t.l=t.h=t.n=t.o=null,delete t.encode,delete t.decode,delete t.verify,t}e.exports=n;var o=t(21),s=o.prototype,u=o.extend(n);n.className="Type";var f,a,h,l=t(16),c=t(23),d=t(17),p=t(29),v=t(12),y=t(19),g=t(25),m=t(37),b=t(33);b.props(u,{fieldsById:{get:function(){if(this.l)return this.l;this.l={};for(var t=Object.keys(this.fields),e=0;e>>0,i=(t-r)/4294967296>>>0;return e&&(i=~i>>>0,r=~r>>>0,++r>4294967295&&(r=0,++i>4294967295&&(i=0))),new n(r,i)},n.from=function(t){if("number"==typeof t)return n.fromNumber(t);if("string"==typeof t){if(!i.Long)return n.fromNumber(parseInt(t,10));t=i.Long.fromString(t)}return t.low||t.high?new n(t.low>>>0,t.high>>>0):s},o.toNumber=function(t){return!t&&this.hi>>>31?(this.lo=~this.lo+1>>>0,this.hi=~this.hi>>>0,this.lo||(this.hi=this.hi+1>>>0),-(this.lo+4294967296*this.hi)):this.lo+4294967296*this.hi},o.toLong=function(t){return i.Long?new i.Long(this.lo,this.hi,t):{low:this.lo,high:this.hi,unsigned:Boolean(t)}};var u=String.prototype.charCodeAt;n.fromHash=function(t){return new n((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},o.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24&255,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24&255)},o.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},o.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},o.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===e?t<16384?t<128?1:2:t<1<<21?3:4:e<16384?e<128?5:6:e<1<<21?7:8:r<128?9:10}},{35:35}],35:[function(t,e,r){(function(e){"use strict";var n=r;n.LongBits=t(34),n.base64=t(3),n.inquire=t(8),n.utf8=t(11),n.pool=t(10),n.isNode=Boolean(e.process&&e.process.versions&&e.process.versions.node),n.Buffer=(n.Buffer=n.inquire("buffer"))&&n.Buffer.Buffer||null,n.Long=e.dcodeIO&&e.dcodeIO.Long||n.inquire("long"),n.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},n.isString=function(t){return"string"==typeof t||t instanceof String},n.isObject=function(t){return Boolean(t&&"object"==typeof t)},n.longToHash=function(t){return t?n.LongBits.from(t).toHash():"\0\0\0\0\0\0\0\0"},n.longFromHash=function(t,e){var r=n.LongBits.fromHash(t);return n.Long?n.Long.fromBits(r.lo,r.hi,e):r.toNumber(Boolean(e))},n.longNeq=function(t,e){return"number"==typeof t?"number"==typeof e?t!==e:(t=n.LongBits.fromNumber(t)).lo!==e.low||t.hi!==e.high:"number"==typeof e?(e=n.LongBits.fromNumber(e)).lo!==t.low||e.hi!==t.high:t.low!==e.low||t.high!==e.high},n.longNe=function(t,e,r){if("object"==typeof t)return t.low!==e||t.high!==r;var i=n.LongBits.from(t);return i.lo!==e||i.hi!==r},n.props=function(t,e){Object.keys(e).forEach(function(r){n.prop(t,r,e[r])})},n.prop=function(t,e,r){var n=!-[1],i=e.substring(0,1).toUpperCase()+e.substring(1);r.get&&(t["get"+i]=r.get),r.set&&(t["set"+i]=n?function(t){r.set.call(this,t),this[e]=t}:r.set),n?void 0!==r.value&&(t[e]=r.value):Object.defineProperty(t,e,r)},n.emptyArray=Object.freeze([]),n.emptyObject=Object.freeze({})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{10:10,11:11,3:3,34:34,8:8}],36:[function(t,e,r){"use strict";function n(t,e){return"invalid value for field "+t.getFullName()+" ("+e+(t.repeated&&"array"!==e?"[]":t.map&&"object"!==e?"{k:"+t.keyType+"}":"")+" expected)"}function i(t,e,r,i){var o=e.type,s=e.resolvedType;if(!s&&/32/.test(o))t("if(!util.isInteger(%s))",i)("return%j",n(e,"integer"));else if(!s&&/64/.test(o))t("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",i,i,i,i)("return%j",n(e,"integer|Long"));else if("float"===o||"double"===o)t('if(typeof %s!=="number")',i)("return%j",n(e,"number"));else if("bool"===o)t('if(typeof %s!=="boolean")',i)("return%j",n(e,"boolean"));else if("string"===o)t("if(!util.isString(%s))",i)("return%j",n(e,"string"));else if("bytes"===o)t('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',i,i,i)("return%j",n(e,"buffer"));else if(e.resolvedType instanceof u){t("switch(%s){",i)("default:")("return%j",n(e,"enum value"));for(var h=a.toArray(e.resolvedType.values),l=0;l127;)e[r++]=127&t|128,t>>>=7;e[r]=t}function a(t,e,r){for(;t.hi;)e[r++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=127&t.lo|128,t.lo=t.lo>>>7;e[r++]=t.lo}function h(t,e,r){e[r++]=255&t,e[r++]=t>>>8&255,e[r++]=t>>>16&255,e[r]=t>>>24}function l(){s.call(this)}function c(t,e,r){e.writeFloatLE(t,r,!0)}function d(t,e,r){e.writeDoubleLE(t,r,!0)}function p(t,e,r){t.length&&t.copy(e,r,0,t.length)}e.exports=s,s.BufferWriter=l;var v=t(35),y=t(1),g=v.LongBits,m=v.base64,b=v.utf8,w="undefined"!=typeof Uint8Array?Uint8Array:Array;s.Op=n,s.State=o,s.create=function(){return new(v.Buffer?l:s)},s.alloc=function(t){return new w(t)},w!==Array&&(s.alloc=v.pool(s.alloc,w.prototype.subarray||w.prototype.slice));var k=s.prototype;k.push=function(t,e,r){return this.tail=this.tail.next=new n(t,e,r),this.len+=e,this},k.uint32=function(t){return t>>>=0,this.push(f,t<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)},k.int32=function(t){return t<0?this.push(a,10,g.fromNumber(t)):this.uint32(t)},k.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},k.uint64=function(t){var e=g.from(t);return this.push(a,e.length(),e)},k.int64=k.uint64,k.sint64=function(t){var e=g.from(t).zzEncode();return this.push(a,e.length(),e)},k.bool=function(t){return this.push(u,1,t?1:0)},k.fixed32=function(t){return this.push(h,4,t>>>0)},k.sfixed32=function(t){return this.push(h,4,t<<1^t>>31)},k.fixed64=function(t){var e=g.from(t);return this.push(h,4,e.lo).push(h,4,e.hi)},k.sfixed64=function(t){var e=g.from(t).zzEncode();return this.push(h,4,e.lo).push(h,4,e.hi)};var O="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n,i){t[0]=r,n[i++]=e[0],n[i++]=e[1],n[i++]=e[2],n[i]=e[3]}:function(r,n,i){t[0]=r,n[i++]=e[3],n[i++]=e[2],n[i++]=e[1],n[i]=e[0]}}():function(t,e,r){y.write(e,t,r,!1,23,4)};k.float=function(t){return this.push(O,4,t)};var x="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n,i){t[0]=r,n[i++]=e[0],n[i++]=e[1],n[i++]=e[2],n[i++]=e[3],n[i++]=e[4],n[i++]=e[5],n[i++]=e[6],n[i]=e[7]}:function(r,n,i){t[0]=r,n[i++]=e[7],n[i++]=e[6],n[i++]=e[5],n[i++]=e[4],n[i++]=e[3],n[i++]=e[2],n[i++]=e[1],n[i]=e[0]}}():function(t,e,r){y.write(e,t,r,!1,52,8)};k.double=function(t){return this.push(x,8,t)};var N=w.prototype.set?function(t,e,r){e.set(t,r)}:function(t,e,r){for(var n=0;n>>0;if("string"==typeof t&&e){var r=s.alloc(e=m.length(t));m.decode(t,r,0),t=r}return e?this.uint32(e).push(N,e,t):this.push(u,1,0)},k.string=function(t){var e=b.length(t);return e?this.uint32(e).push(b.write,e,t):this.push(u,1,0)},k.fork=function(){return this.states=new o(this),this.head=this.tail=new n(i,0,0),this.len=0,this},k.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new n(i,0,0),this.len=0),this},k.ldelim=function(t){var e=this.head,r=this.tail,n=this.len;return this.reset(),"number"==typeof t&&this.uint32((t<<3|2)>>>0),this.uint32(n),this.tail.next=e.next,this.tail=r,this.len+=n,this},k.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return this.head=this.tail=null,e},l.alloc=function(t){return l.alloc=v.Buffer.allocUnsafe?v.Buffer.allocUnsafe:function(t){return new v.Buffer(t)},l.alloc(t)};var A=l.prototype=Object.create(s.prototype);A.constructor=l,"undefined"==typeof Float32Array&&(A.float=function(t){return this.push(c,4,t)}),"undefined"==typeof Float64Array&&(A.double=function(t){return this.push(d,8,t)});var S=v.Buffer&&v.Buffer.from||function(t,e){return new v.Buffer(t,e)};A.bytes=function(t){"string"==typeof t&&(t=S(t,"base64"));var e=t.length>>>0;return e?this.uint32(e).push(p,e,t):this.push(u,1,0)};var j=function(){return v.Buffer&&v.Buffer.prototype.utf8Write?function(t,e,r){t.length<40?b.write(t,e,r):e.utf8Write(t,r)}:function(t,e,r){t.length<40?b.write(t,e,r):e.write(t,r)}}();A.string=function(t){var e=t.length<40?b.length(t):v.Buffer.byteLength(t);return e?this.uint32(e).push(j,e,t):this.push(u,1,0)}},{1:1,35:35}],38:[function(t,e,r){(function(e){"use strict";function n(t,e,r){return"function"==typeof e?(r=e,e=new s.Root):e||(e=new s.Root),e.load(t,r)}function i(t,e){return e||(e=new s.Root),e.loadSync(t)}function o(){s.Reader.j()}var s=e.protobuf=r;s.load=n,s.loadSync=i,s.roots={},s.tokenize=t(30),s.parse=t(24),s.BufferWriter=(s.Writer=t(37)).BufferWriter,s.BufferReader=(s.Reader=t(25)).BufferReader,s.encoder=t(15),s.decoder=t(14),s.verifier=t(36),s.ReflectionObject=t(22),s.Namespace=t(21),s.Root=t(26),s.Enum=t(16),s.Type=t(31),s.Field=t(17),s.OneOf=t(23),s.MapField=t(18),s.Service=t(29),s.Method=t(20),s.Class=t(12),s.Message=t(19),s.types=t(32),s.common=t(13),s.rpc=t(27),s.util=t(33),s.configure=o,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&(s.util.Long=t,o()),s})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,29:29,30:30,31:31,32:32,33:33,36:36,37:37}]},{},[38]); +!function t(e,r,n){function i(o,u){if(!r[o]){if(!e[o]){var f="function"==typeof require&&require;if(!u&&f)return f(o,!0);if(s)return s(o,!0);var a=new Error("Cannot find module '"+o+"'");throw a.code="MODULE_NOT_FOUND",a}var h=r[o]={exports:{}};e[o][0].call(h.exports,function(t){var r=e[o][1][t];return i(r?r:t)},h,h.exports,t,e,r,n)}return r[o].exports}for(var s="function"==typeof require&&require,o=0;o>1,h=-7,l=r?0:i-1,c=r?1:-1,d=t[e+l];for(l+=c,s=d&(1<<-h)-1,d>>=-h,h+=u;h>0;s=256*s+t[e+l],l+=c,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=n;h>0;o=256*o+t[e+l],l+=c,h-=8);if(0===s)s=1-a;else{if(s===f)return o?NaN:(d?-1:1)*(1/0);o+=Math.pow(2,n),s-=a}return(d?-1:1)*o*Math.pow(2,s-n)},r.write=function(t,e,r,n,i,s){var o,u,f,a=8*s-i-1,h=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?s-1:0,p=n?-1:1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),e+=o+l>=1?c/f:c*Math.pow(2,1-l),e*f>=2&&(o++,f/=2),o+l>=h?(u=0,o=h):o+l>=1?(u=(e*f-1)*Math.pow(2,i),o+=l):(u=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;t[r+d]=255&u,d+=p,u/=256,i-=8);for(o=o<0;t[r+d]=255&o,d+=p,o/=256,a-=8);t[r+d-p]|=128*v}},{}],2:[function(t,e,r){"use strict";function n(t,e){for(var r=[],n=2;n1&&"="===t.charAt(e);)++r;return Math.ceil(3*t.length)/4-r};for(var i=new Array(64),s=new Array(123),o=0;o<64;)s[i[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;n.encode=function(t,e,r){for(var n,s=[],o=0,u=0;e>2],n=(3&f)<<4,u=1;break;case 1:s[o++]=i[n|f>>4],n=(15&f)<<2,u=2;break;case 2:s[o++]=i[n|f>>6],s[o++]=i[63&f],u=0}}return u&&(s[o++]=i[n],s[o]=61,1===u&&(s[o+1]=61)),String.fromCharCode.apply(String,s)};var u="invalid encoding";n.decode=function(t,e,r){for(var n,i=r,o=0,f=0;f1)break;if(void 0===(a=s[a]))throw Error(u);switch(o){case 0:n=a,o=1;break;case 1:e[r++]=n<<2|(48&a)>>4,n=a,o=2;break;case 2:e[r++]=(15&n)<<4|(60&a)>>2,n=a,o=3;break;case 3:e[r++]=(3&n)<<6|a,o=0}}if(1===o)throw Error(u);return r-i}},{}],4:[function(t,e,r){"use strict";function n(){function t(){for(var e=[],r=0;r ").replace(/\t/g," "));var s=Object.keys(r||(r={}));return Function.apply(null,s.concat("return "+i)).apply(null,s.map(function(t){return r[t]}))}for(var h=[],l=[],c=1,d=!1,p=0;p0?e.splice(--s,2):r?e.splice(s,1):++s:"."===e[s]?e.splice(s,1):++s;return n+e.join("/")};n.resolve=function(t,e,r){return r||(e=s(e)),i(e)?e:(r||(t=s(t)),(t=t.replace(/(?:\/|^)[^\/]+$/,"")).length?s(t+"/"+e):e)}},{}],10:[function(t,e,r){"use strict";function n(t,e,r){var n=r||8192,i=n>>>1,s=null,o=n;return function(r){if(r<1||r>i)return t(r);o+r>n&&(s=t(n),o=0);var u=e.call(s,o,o+=r);return 7&o&&(o=(7|o)+1),u}}e.exports=n},{}],11:[function(t,e,r){"use strict";var n=r;n.length=function(t){for(var e=0,r=0,n=0;n191&&i<224?o[u++]=(31&i)<<6|63&t[e++]:i>239&&i<365?(i=((7&i)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,o[u++]=55296+(i>>10),o[u++]=56320+(1023&i)):o[u++]=(15&i)<<12|(63&t[e++])<<6|63&t[e++],u>8191&&(s.push(String.fromCharCode.apply(String,o)),u=0);return u&&s.push(String.fromCharCode.apply(String,o.slice(0,u))),s.join("")},n.write=function(t,e,r){for(var n,i,s=r,o=0;o>6|192,e[r++]=63&n|128):55296===(64512&n)&&56320===(64512&(i=t.charCodeAt(o+1)))?(n=65536+((1023&n)<<10)+(1023&i),++o,e[r++]=n>>18|240,e[r++]=n>>12&63|128,e[r++]=n>>6&63|128,e[r++]=63&n|128):(e[r++]=n>>12|224,e[r++]=n>>6&63|128,e[r++]=63&n|128);return r-s}},{}],12:[function(t,e,r){"use strict";function n(t){return i(t)}function i(e,r){if(s||(s=t(32)),!(e instanceof s))throw f("type","a Type");if(r){if("function"!=typeof r)throw f("ctor","a function")}else r=function(t){return function(e){t.call(this,e)}}(o);r.constructor=n;var i=r.prototype=new o;return i.constructor=r,u.merge(r,o,!0),r.$type=e,i.$type=e,e.getFieldsArray().forEach(function(t){i[t.name]=Array.isArray(t.resolve().defaultValue)?u.emptyArray:u.isObject(t.defaultValue)?u.emptyObject:t.defaultValue}),e.getOneofsArray().forEach(function(t){u.prop(i,t.resolve().name,{get:function(){for(var e=Object.keys(this),r=e.length-1;r>-1;--r)if(t.oneof.indexOf(e[r])>-1)return e[r]},set:function(e){for(var r=t.oneof,n=0;n>>3){");for(var n=0;n>>0,(e.id<<3|4)>>>0):i||e.required?t("types[%d].encode(%s,w.uint32(%d).fork()).ldelim()",r,n,(e.id<<3|2)>>>0):t("types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()",r,n,e.id)}function i(t){for(var e,r=t.getFieldsArray(),i=t.getOneofsArray(),a=u.codegen("m","w")("w||(w=Writer.create())"),e=0;e>>0,8|o.mapKey[p],p),void 0===c?a("types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()",e,d):a("w.uint32(%d).%s(m%s[ks[i]])",16|c,l,d),a("w.ldelim()")("}")("}")}else h.repeated?h.packed&&void 0!==o.packed[l]?a("if(m%s&&m%s.length){",d,d)("w.uint32(%d).fork()",(h.id<<3|2)>>>0)("for(var i=0;i>>0,l,d)):h.partOf||(h.required||(h.long?a("if(m%s!==undefined&&util.longNe(m%s,%d,%d))",d,d,h.defaultValue.low,h.defaultValue.high):a("if(m%s!==undefined&&m%s!==%j)",d,d,h.defaultValue)),void 0===c?n(a,h,e,"m"+d):a("w.uint32(%d).%s(m%s)",(h.id<<3|c)>>>0,l,d))}for(var e=0;e>>0,l,d),a("break;")}a("}")}return a("return w")}e.exports=i;var s=t(16),o=t(33),u=t(34),f=u.safeProp},{16:16,33:33,34:34}],16:[function(t,e,r){"use strict";function n(t,e,r){s.call(this,t,r),this.values=e||{},this.c=null}function i(t){return t.c=null,t}e.exports=n;var s=t(22),o=s.extend(n);n.className="Enum";var u=t(34),f=u.b;u.props(o,{valuesById:{get:function(){return this.c||(this.c={},Object.keys(this.values).forEach(function(t){var e=this.values[t];if(this.c[e])throw Error("duplicate id "+e+" in "+this);this.c[e]=t},this)),this.c}}}),n.testJSON=function(t){return Boolean(t&&t.values)},n.fromJSON=function(t,e){return new n(t,e.values,e.options)},o.toJSON=function(){return{options:this.options,values:this.values}},o.add=function(t,e){if(!u.isString(t))throw f("name");if(!u.isInteger(e)||e<0)throw f("id","a non-negative integer");if(void 0!==this.values[t])throw Error("duplicate name '"+t+"' in "+this);if(void 0!==this.getValuesById()[e])throw Error("duplicate id "+e+" in "+this);return this.values[t]=e,i(this)},o.remove=function(t){if(!u.isString(t))throw f("name");if(void 0===this.values[t])throw Error("'"+t+"' is not a name of "+this);return delete this.values[t],i(this)}},{22:22,34:34}],17:[function(t,e,r){"use strict";function n(t,e,r,n,s,o){if(l.isObject(n)?(o=n,n=s=void 0):l.isObject(s)&&(o=s,s=void 0),i.call(this,t,o),!l.isInteger(e)||e<0)throw c("id","a non-negative integer");if(!l.isString(r))throw c("type");if(void 0!==s&&!l.isString(s))throw c("extend");if(void 0!==n&&!/^required|optional|repeated$/.test(n=n.toString().toLowerCase()))throw c("rule","a valid rule string");this.rule=n&&"optional"!==n?n:void 0,this.type=r,this.id=e,this.extend=s||void 0,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.defaultValue=null,this.long=!!l.Long&&void 0!==h.long[r],this.bytes="bytes"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this.d=null}e.exports=n;var i=t(22),s=i.extend(n);n.className="Field";var o,u,f=t(19),a=t(16),h=t(33),l=t(34),c=l.b;l.props(s,{packed:{get:s.isPacked=function(){return null===this.d&&(this.d=this.getOption("packed")!==!1),this.d}}}),s.setOption=function(t,e,r){return"packed"===t&&(this.d=null),i.prototype.setOption.call(this,t,e,r)},n.testJSON=function(t){return Boolean(t&&void 0!==t.id)},n.fromJSON=function(e,r){return void 0!==r.keyType?(u||(u=t(18)),u.fromJSON(e,r)):new n(e,r.id,r.type,r.rule,r.extend,r.options)},s.toJSON=function(){return{rule:"optional"!==this.rule&&this.rule||void 0,type:this.type,id:this.id,extend:this.extend,options:this.options}},s.resolve=function(){if(this.resolved)return this;var e=h.defaults[this.type];if(void 0===e)if(o||(o=t(32)),this.resolvedType=this.parent.lookup(this.type,o))e=null;else{if(!(this.resolvedType=this.parent.lookup(this.type,a)))throw Error("unresolvable field type: "+this.type);e=0}var r;return this.map?this.defaultValue={}:this.repeated?this.defaultValue=[]:this.options&&void 0!==(r=this.options.default)?this.defaultValue=r:this.defaultValue=e,this.long&&(this.defaultValue=l.Long.fromValue(this.defaultValue)),i.prototype.resolve.call(this)},s.jsonConvert=function(t,e){if(e){if(t instanceof f)return t.asJSON(e);if(this.resolvedType instanceof a&&e.enum===String)return this.resolvedType.getValuesById()[t];if(e.long&&this.long)return e.long===Number?"number"==typeof t?t:l.LongBits.from(t).toNumber("u"===this.type.charAt(0)):l.Long.fromValue(t,"u"===this.type.charAt(0)).toString();if(e.bytes&&this.bytes){if(e.bytes===String)return l.base64.encode(t,0,t.length);if(e.bytes===Array)return Array.prototype.slice.call(t);if(e.bytes===l.Buffer&&!l.Buffer.isBuffer(t))return l.Buffer.from?l.Buffer.from(t):new l.Buffer(t)}}return t}},{16:16,18:18,19:19,22:22,32:32,33:33,34:34}],18:[function(t,e,r){"use strict";function n(t,e,r,n,s){if(i.call(this,t,e,n,s),!a.isString(r))throw a.b("keyType");this.keyType=r,this.resolvedKeyType=null,this.map=!0}e.exports=n;var i=t(17),s=i.prototype,o=i.extend(n);n.className="MapField";var u=t(16),f=t(33),a=t(34);n.testJSON=function(t){return i.testJSON(t)&&void 0!==t.keyType},n.fromJSON=function(t,e){return new n(t,e.id,e.keyType,e.type,e.options)},o.toJSON=function(){return{keyType:this.keyType,type:this.type,id:this.id,extend:this.extend,options:this.options}},o.resolve=function(){if(this.resolved)return this;if(void 0===f.mapKey[this.keyType]&&!(this.resolvedKeyType=this.parent.lookup(this.keyType,u)))throw Error("unresolvable key type: "+this.keyType);return s.resolve.call(this)}},{16:16,17:17,33:33,34:34}],19:[function(t,e,r){"use strict";function n(t){if(t)for(var e=Object.keys(t),r=0;r0;){var n=t.shift();if(r.nested&&r.nested[n]){if(r=r.nested[n],!(r instanceof i))throw Error("path conflicts with non-namespace objects")}else r.add(r=new i(n))}return e&&r.addJSON(e),r},f.resolveAll=function(){for(var t=this.getNestedArray(),e=0;e-1&&this.oneof.splice(e,1),t.parent&&t.parent.remove(t),t.partOf=null,this},o.onAdd=function(t){s.prototype.onAdd.call(this,t),i(this)},o.onRemove=function(t){this.h.forEach(function(t){t.parent&&t.parent.remove(t)}),s.prototype.onRemove.call(this,t)}},{17:17,22:22,34:34}],24:[function(t,e,r){"use strict";function n(t){return/^[a-zA-Z_][a-zA-Z_0-9]*$/.test(t)}function i(t){return/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(t)}function s(t){return/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(t)}function o(t){return null===t?null:t.toLowerCase()}function u(t,e,r){function w(t,e){var r=u.filename;return u.filename=null,Error("illegal "+(e||"token")+" '"+t+"' ("+(r?r+", ":"")+"line "+K.line()+")")}function b(){var t,e=[];do{if('"'!==(t=Z())&&"'"!==t)throw w(t);e.push(Z()),G(t),t=X()}while('"'===t||"'"===t);return e.join("")}function k(t){var e=Z();switch(o(e)){case"'":case'"':return W(e),b();case"true":return!0;case"false":return!1}try{return O(e)}catch(r){if(t&&i(e))return e;throw w(e,"value")}}function x(){var t=N(Z()),e=t;return G("to",!0)&&(e=N(Z())),G(";"),[t,e]}function O(t){var e=1;"-"===t.charAt(0)&&(e=-1,t=t.substring(1));var r=o(t);switch(r){case"inf":return e*(1/0);case"nan":return NaN;case"0":return 0}if(/^[1-9][0-9]*$/.test(t))return e*parseInt(t,10);if(/^0[x][0-9a-f]+$/.test(r))return e*parseInt(t,16);if(/^0[0-7]+$/.test(t))return e*parseInt(t,8);if(/^(?!e)[0-9]*(?:\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(r))return e*parseFloat(t);throw w(t,"number")}function N(t,e){var r=o(t);switch(r){case"max":return 536870911;case"0":return 0}if("-"===t.charAt(0)&&!e)throw w(t,"id");if(/^-?[1-9][0-9]*$/.test(t))return parseInt(t,10);if(/^-?0[x][0-9a-f]+$/.test(r))return parseInt(t,16);if(/^-?0[0-7]+$/.test(t))return parseInt(t,8);throw w(t,"id")}function A(){if(void 0!==D)throw w("package");if(D=Z(),!i(D))throw w(D,"name");et=et.define(D),G(";")}function S(){var t,e=X();switch(e){case"weak":t=_||(_=[]),Z();break;case"public":Z();default:t=P||(P=[])}e=b(),G(";"),t.push(e)}function j(){if(G("="),H=o(b()),Y="proto3"===H,!Y&&"proto2"!==H)throw w(H,"syntax");G(";")}function T(t,e){switch(e){case"option":return V(t,e),G(";"),!0;case"message":return E(t,e),!0;case"enum":return L(t,e),!0;case"service":return I(t,e),!0;case"extend":return U(t,e),!0}return!1}function E(t,e){var r=Z();if(!n(r))throw w(r,"type name");var s=new h(r);if(G("{",!0)){for(;"}"!==(e=Z());){var u=o(e);if(!T(s,e))switch(u){case"map":J(s,u);break;case"required":case"optional":case"repeated":B(s,u);break;case"oneof":q(s,u);break;case"extensions":(s.extensions||(s.extensions=[])).push(x(s,u));break;case"reserved":(s.reserved||(s.reserved=[])).push(x(s,u));break;default:if(!Y||!i(e))throw w(e);W(e),B(s,"optional")}}G(";",!0)}else G(";");t.add(s)}function B(t,e,r){var s=Z();if("group"===o(s))return void F(t,e);if(!i(s))throw w(s,"type");var u=Z();if(!n(u))throw w(u,"name");u=rt(u),G("=");var f=N(Z()),a=R(new l(u,f,s,e,r));a.repeated&&a.setOption("packed",Y,!0),t.add(a)}function F(t,e){var r=Z();if(!n(r))throw w(r,"name");var i=m.lcFirst(r);r===i&&(r=m.ucFirst(r)),G("=");var s=N(Z()),u=new h(r);u.group=!0;var f=new l(i,s,r,e);for(G("{");"}"!==(tt=Z());)switch(tt=o(tt)){case"option":V(u,tt),G(";");break;case"required":case"optional":case"repeated":B(u,tt);break;default:throw w(tt)}G(";",!0),t.add(u).add(f)}function J(t){G("<");var e=Z();if(void 0===g.mapKey[e])throw w(e,"type");G(",");var r=Z();if(!i(r))throw w(r,"type");G(">");var s=Z();if(!n(s))throw w(s,"name");s=rt(s),G("=");var o=N(Z()),u=R(new c(s,o,e,r));t.add(u)}function q(t,e){var r=Z();if(!n(r))throw w(r,"name");r=rt(r);var i=new d(r);if(G("{",!0)){for(;"}"!==(e=Z());)"option"===e?(V(i,e),G(";")):(W(e),B(i,"optional"));G(";",!0)}else G(";");t.add(i)}function L(t,e){var r=Z();if(!n(r))throw w(r,"name");var i={},s=new p(r,i);if(G("{",!0)){for(;"}"!==(e=Z());)"option"===o(e)?(V(s,e),G(";")):$(s,e);G(";",!0)}else G(";");t.add(s)}function $(t,e){if(!n(e))throw w(e,"name");var r=e;G("=");var i=N(Z(),!0);t.values[r]=i,R({})}function V(t,e){var r=G("(",!0),n=Z();if(!i(n))throw w(n,"name");r&&(G(")"),n="("+n+")",e=X(),s(e)||(n+=e,Z())),G("="),z(t,n)}function z(t,e){if(G("{",!0))for(;"}"!==(tt=Z());){if(!n(tt))throw w(tt,"name");e=e+"."+tt,G(":",!0)?C(t,e,k(!0)):z(t,e)}else C(t,e,k(!0))}function C(t,e,r){t.setOption?t.setOption(e,r):t[e]=r}function R(t){if(G("[",!0)){do V(t,"option");while(G(",",!0));G("]")}return G(";"),t}function I(t,e){if(e=Z(),!n(e))throw w(e,"service name");var r=e,i=new v(r);if(G("{",!0)){for(;"}"!==(e=Z());){var s=o(e);switch(s){case"option":V(i,s),G(";");break;case"rpc":M(i,s);break;default:throw w(e)}}G(";",!0)}else G(";");t.add(i)}function M(t,e){var r=e,s=Z();if(!n(s))throw w(s,"name");var u,f,a,h;G("(");var l;if(G(l="stream",!0)&&(f=!0),!i(e=Z()))throw w(e);if(u=e,G(")"),G("returns"),G("("),G(l,!0)&&(h=!0),!i(e=Z()))throw w(e);a=e,G(")");var c=new y(s,r,u,a,f,h);if(G("{",!0)){for(;"}"!==(e=Z());){var d=o(e);switch(d){case"option":V(c,d),G(";");break;default:throw w(e)}}G(";",!0)}else G(";");t.add(c)}function U(t,e){var r=Z();if(!i(r))throw w(r,"reference");if(G("{",!0)){for(;"}"!==(e=Z());){var n=o(e);switch(n){case"required":case"repeated":case"optional":B(t,n,r);break;default:if(!Y||!i(e))throw w(e);W(e),B(t,"optional",r)}}G(";",!0)}else G(";")}e instanceof a?r||(r={}):(e=new a,r=e||{});var D,P,_,H,K=f(t),Z=K.next,W=K.push,X=K.peek,G=K.skip,Q=!0,Y=!1;e||(e=new a);for(var tt,et=e,rt=r.keepCase?function(t){return t}:m.camelCase;null!==(tt=Z());){var nt=o(tt);switch(nt){case"package":if(!Q)throw w(tt);A();break;case"import":if(!Q)throw w(tt);S();break;case"syntax":if(!Q)throw w(tt);j();break;case"option":if(!Q)throw w(tt);V(et,tt),G(";");break;default:if(T(et,tt)){Q=!1;continue}throw w(tt)}}return u.filename=null,{package:D,imports:P,weakImports:_,syntax:H,root:e}}e.exports=u;var f=t(31),a=t(27),h=t(32),l=t(17),c=t(18),d=t(23),p=t(16),v=t(30),y=t(20),g=t(33),m=t(34)},{16:16,17:17,18:18,20:20,23:23,27:27,30:30,31:31,32:32,33:33,34:34}],25:[function(t,e,r){"use strict";function n(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function i(t){this.buf=t,this.pos=0,this.len=t.length}function s(){var t=new x(0,0),e=0;if(this.len-this.pos>4){for(e=0;e<4;++e)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}else{for(e=0;e<4;++e){if(this.pos>=this.len)throw n(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t}if(this.pos>=this.len)throw n(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}if(this.len-this.pos>4){for(e=0;e<5;++e)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}else for(e=0;e<5;++e){if(this.pos>=this.len)throw n(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function o(){return s.call(this).toLong()}function u(){return s.call(this).toNumber()}function f(){return s.call(this).toLong(!0)}function a(){return s.call(this).toNumber(!0)}function h(){return s.call(this).zzDecode().toLong()}function l(){return s.call(this).zzDecode().toNumber()}function c(t,e){return t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24}function d(){if(this.pos+8>this.len)throw n(this,8);return new x(c(this.buf,this.pos+=4),c(this.buf,this.pos+=4))}function p(){return d.call(this).toLong(!0)}function v(){return d.call(this).toNumber(!0)}function y(){return d.call(this).zzDecode().toLong()}function g(){return d.call(this).zzDecode().toNumber()}function m(){b.Long?(A.int64=o,A.uint64=f,A.sint64=h,A.fixed64=p,A.sfixed64=y):(A.int64=u,A.uint64=a,A.sint64=l,A.fixed64=v,A.sfixed64=g)}e.exports=i;var w,b=t(36),k=t(1),x=b.LongBits,O=b.utf8,N="undefined"!=typeof Uint8Array?Uint8Array:Array; +i.create=function(e){return b.Buffer?(w||(w=t(26)),new w(e)):new i(e)};var A=i.prototype;A.i=N.prototype.subarray||N.prototype.slice;var S=A.uint32=function(){var t=(127&this.buf[this.pos])>>>0;if(this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return t;if((this.pos+=5)>this.len)throw this.pos=this.len,n(this,10);return t};S.call({buf:[255,255,255,255,15],pos:0,len:5}),A.int32=function(){return 0|this.uint32()},A.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},A.bool=function(){return 0!==this.uint32()},A.fixed32=function(){if(this.pos+4>this.len)throw n(this,4);return c(this.buf,this.pos+=4)},A.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var j="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],t[0]}:function(r,n){return e[3]=r[n],e[2]=r[n+1],e[1]=r[n+2],e[0]=r[n+3],t[0]}}():function(t,e){return k.read(t,e,!1,23,4)};A.float=function(){if(this.pos+4>this.len)throw n(this,4);var t=j(this.buf,this.pos);return this.pos+=4,t};var T="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],e[4]=r[n+4],e[5]=r[n+5],e[6]=r[n+6],e[7]=r[n+7],t[0]}:function(r,n){return e[7]=r[n],e[6]=r[n+1],e[5]=r[n+2],e[4]=r[n+3],e[3]=r[n+4],e[2]=r[n+5],e[1]=r[n+6],e[0]=r[n+7],t[0]}}():function(t,e){return k.read(t,e,!1,52,8)};A.double=function(){if(this.pos+8>this.len)throw n(this,4);var t=T(this.buf,this.pos);return this.pos+=8,t},A.bytes=function(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw n(this,t);return this.pos+=t,e===r?new this.buf.constructor(0):this.i.call(this.buf,e,r)},A.string=function(){var t=this.bytes();return O.read(t,0,t.length)},A.skip=function(t){if(void 0===t){do if(this.pos>=this.len)throw n(this);while(128&this.buf[this.pos++])}else{if(this.pos+t>this.len)throw n(this,t);this.pos+=t}return this},A.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(t=7&this.uint32(),4===t)break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type: "+t)}return this},A.reset=function(t){return t?(this.buf=t,this.len=t.length):(this.buf=null,this.len=0),this.pos=0,this},A.finish=function(t){var e=this.pos?this.i.call(this.buf,this.pos):this.buf;return this.reset(t),e},i.j=m,m()},{1:1,26:26,36:36}],26:[function(t,e,r){"use strict";function n(t){h&&h(),o.call(this,t)}function i(t,e,r){return t.utf8Slice(e,r)}function s(t,e,r){return t.toString("utf8",e,r)}e.exports=n;var o=t(25),u=n.prototype=Object.create(o.prototype);u.constructor=n;var f,a=t(36),h=function(){if(!a.Buffer)throw Error("Buffer is not supported");u.i=a.Buffer.prototype.slice,f=a.Buffer.prototype.utf8Slice?i:s,h=!1};u.string=function(){var t=this.uint32();return f(this.buf,this.pos,this.pos=Math.min(this.pos+t,this.len))},u.finish=function(t){var e=this.pos?this.buf.slice(this.pos):this.buf;return this.reset(t),e}},{25:25,36:36}],27:[function(t,e,r){"use strict";function n(t){o.call(this,"",t),this.deferred=[],this.files=[]}function i(){}function s(t){var e=t.parent.lookup(t.extend);if(e){var r=new a(t.getFullName(),t.id,t.type,t.rule,(void 0),t.options);return r.declaringField=t,t.extensionField=r,e.add(r),!0}return!1}e.exports=n;var o=t(21),u=o.extend(n);n.className="Root";var f,a=t(17),h=t(34),l=t(13);n.fromJSON=function(t,e){return e||(e=new n),e.setOptions(t.options).addJSON(t.nested)},u.resolvePath=h.path.resolve,u.load=function e(r,n,s){function o(t,e){if(s){var r=s;s=null,r(t,e)}}function u(t,e){try{if(h.isString(e)&&"{"===e.charAt(0)&&(e=JSON.parse(e)),h.isString(e)){f.filename=t;var r=f(e,c,n);r.imports&&r.imports.forEach(function(e){a(c.resolvePath(t,e))}),r.weakImports&&r.weakImports.forEach(function(e){a(c.resolvePath(t,e),!0)})}else c.setOptions(e.options).addJSON(e.nested)}catch(t){return void o(t)}d||p||o(null,c)}function a(t,e){var r=t.indexOf("google/protobuf/");if(r>-1){var n=t.substring(r);n in l&&(t=n)}if(!(c.files.indexOf(t)>-1)){if(c.files.push(t),t in l)return void(d?u(t,l[t]):(++p,setTimeout(function(){--p,u(t,l[t])})));if(d){var i;try{i=h.fs.readFileSync(t).toString("utf8")}catch(t){return void(e||o(t))}u(t,i)}else++p,h.fetch(t,function(r,n){if(--p,s)return r?void(e||o(r)):void u(t,n)})}}f||(f=t(24)),"function"==typeof n&&(s=n,n=void 0);var c=this;if(!s)return h.asPromise(e,c,r);var d=s===i,p=0;return h.isString(r)&&(r=[r]),r.forEach(function(t){a(c.resolvePath("",t))}),d?c:void(p||o(null,c))},u.loadSync=function(t){return this.load(t,i)},u.f=function(t){var e=this.deferred.slice();this.deferred=[];for(var r=0;r-1&&this.deferred.splice(e,1)}t.extensionField&&(t.extensionField.parent.remove(t.extensionField),t.extensionField=null)}else if(t instanceof o)for(var r=t.getNestedArray(),n=0;n0)return v.shift();if(y)return r();var n,o,u;do{if(c===d)return null;for(n=!1;/\s/.test(u=i(c));)if("\n"===u&&++p,++c===d)return null;if("/"===i(c)){if(++c===d)throw e("comment");if("/"===i(c)){for(;"\n"!==i(++c);)if(c===d)return null;++c,++p,n=!0}else{if("*"!==(u=i(c)))return"/";do{if("\n"===u&&++p,++c===d)return null;o=u,u=i(c)}while("*"!==o||"/"!==u);++c,n=!0}}}while(n);if(c===d)return null;var f=c;s.lastIndex=0;var a=s.test(i(f++));if(!a)for(;f]/g,o=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,u=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g},{}],32:[function(t,e,r){"use strict";function n(t,e){s.call(this,t,e),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this.l=null,this.h=null,this.m=null,this.n=null,this.o=null}function i(t){return t.l=t.h=t.n=t.o=null,delete t.encode,delete t.decode,delete t.verify,t}e.exports=n;var s=t(21),o=s.prototype,u=s.extend(n);n.className="Type";var f,a,h,l=t(16),c=t(23),d=t(17),p=t(30),v=t(12),y=t(19),g=t(25),m=t(38),w=t(34);w.props(u,{fieldsById:{get:function(){if(this.l)return this.l;this.l={};for(var t=Object.keys(this.fields),e=0;e>>0,i=(t-r)/4294967296>>>0;return e&&(i=~i>>>0,r=~r>>>0,++r>4294967295&&(r=0,++i>4294967295&&(i=0))),new n(r,i)},n.from=function(t){if("number"==typeof t)return n.fromNumber(t);if("string"==typeof t){if(!i.Long)return n.fromNumber(parseInt(t,10));t=i.Long.fromString(t)}return t.low||t.high?new n(t.low>>>0,t.high>>>0):o},s.toNumber=function(t){return!t&&this.hi>>>31?(this.lo=~this.lo+1>>>0,this.hi=~this.hi>>>0,this.lo||(this.hi=this.hi+1>>>0),-(this.lo+4294967296*this.hi)):this.lo+4294967296*this.hi},s.toLong=function(t){return i.Long?new i.Long(this.lo,this.hi,t):{low:this.lo,high:this.hi,unsigned:Boolean(t)}};var u=String.prototype.charCodeAt;n.fromHash=function(t){return new n((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},s.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24&255,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24&255)},s.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},s.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},s.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===e?t<16384?t<128?1:2:t<1<<21?3:4:e<16384?e<128?5:6:e<1<<21?7:8:r<128?9:10}},{36:36}],36:[function(t,e,r){(function(e){"use strict";var n=r;n.LongBits=t(35),n.base64=t(3),n.inquire=t(8),n.utf8=t(11),n.pool=t(10),n.isNode=Boolean(e.process&&e.process.versions&&e.process.versions.node),n.Buffer=(n.Buffer=n.inquire("buffer"))&&n.Buffer.Buffer||null,n.Long=e.dcodeIO&&e.dcodeIO.Long||n.inquire("long"),n.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},n.isString=function(t){return"string"==typeof t||t instanceof String},n.isObject=function(t){return Boolean(t&&"object"==typeof t)},n.longToHash=function(t){return t?n.LongBits.from(t).toHash():"\0\0\0\0\0\0\0\0"},n.longFromHash=function(t,e){var r=n.LongBits.fromHash(t);return n.Long?n.Long.fromBits(r.lo,r.hi,e):r.toNumber(Boolean(e))},n.longNeq=function(t,e){return"number"==typeof t?"number"==typeof e?t!==e:(t=n.LongBits.fromNumber(t)).lo!==e.low||t.hi!==e.high:"number"==typeof e?(e=n.LongBits.fromNumber(e)).lo!==t.low||e.hi!==t.high:t.low!==e.low||t.high!==e.high},n.longNe=function(t,e,r){if("object"==typeof t)return t.low!==e||t.high!==r;var i=n.LongBits.from(t);return i.lo!==e||i.hi!==r},n.props=function(t,e){Object.keys(e).forEach(function(r){n.prop(t,r,e[r])})},n.prop=function(t,e,r){var n=!-[1],i=e.substring(0,1).toUpperCase()+e.substring(1);r.get&&(t["get"+i]=r.get),r.set&&(t["set"+i]=n?function(t){r.set.call(this,t),this[e]=t}:r.set),n?void 0!==r.value&&(t[e]=r.value):Object.defineProperty(t,e,r)},n.emptyArray=Object.freeze([]),n.emptyObject=Object.freeze({})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{10:10,11:11,3:3,35:35,8:8}],37:[function(t,e,r){"use strict";function n(t,e){return"invalid value for field "+t.getFullName()+" ("+e+(t.repeated&&"array"!==e?"[]":t.map&&"object"!==e?"{k:"+t.keyType+"}":"")+" expected)"}function i(t,e,r,i){var s=e.type,o=e.resolvedType;if(!o&&/32/.test(s))t("if(!util.isInteger(%s))",i)("return%j",n(e,"integer"));else if(!o&&/64/.test(s))t("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",i,i,i,i)("return%j",n(e,"integer|Long"));else if("float"===s||"double"===s)t('if(typeof %s!=="number")',i)("return%j",n(e,"number"));else if("bool"===s)t('if(typeof %s!=="boolean")',i)("return%j",n(e,"boolean"));else if("string"===s)t("if(!util.isString(%s))",i)("return%j",n(e,"string"));else if("bytes"===s)t('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',i,i,i)("return%j",n(e,"buffer"));else if(e.resolvedType instanceof u){t("switch(%s){",i)("default:")("return%j",n(e,"enum value"));for(var h=a.toArray(e.resolvedType.values),l=0;l127;)e[r++]=127&t|128,t>>>=7;e[r]=t}function a(t,e,r){for(;t.hi;)e[r++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=127&t.lo|128,t.lo=t.lo>>>7;e[r++]=t.lo}function h(t,e,r){e[r++]=255&t,e[r++]=t>>>8&255,e[r++]=t>>>16&255,e[r]=t>>>24}e.exports=o;var l,c=t(36),d=t(1),p=c.LongBits,v=c.base64,y=c.utf8,g="undefined"!=typeof Uint8Array?Uint8Array:Array;o.Op=n,o.State=s,o.create=function(){return c.Buffer?(l||(l=t(39)),new l):new o},o.alloc=function(t){return new g(t)},g!==Array&&(o.alloc=c.pool(o.alloc,g.prototype.subarray||g.prototype.slice));var m=o.prototype;m.push=function(t,e,r){return this.tail=this.tail.next=new n(t,e,r),this.len+=e,this},m.uint32=function(t){return t>>>=0,this.push(f,t<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)},m.int32=function(t){return t<0?this.push(a,10,p.fromNumber(t)):this.uint32(t)},m.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},m.uint64=function(t){var e=p.from(t);return this.push(a,e.length(),e)},m.int64=m.uint64,m.sint64=function(t){var e=p.from(t).zzEncode();return this.push(a,e.length(),e)},m.bool=function(t){return this.push(u,1,t?1:0)},m.fixed32=function(t){return this.push(h,4,t>>>0)},m.sfixed32=function(t){return this.push(h,4,t<<1^t>>31)},m.fixed64=function(t){var e=p.from(t);return this.push(h,4,e.lo).push(h,4,e.hi)},m.sfixed64=function(t){var e=p.from(t).zzEncode();return this.push(h,4,e.lo).push(h,4,e.hi)};var w="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n,i){t[0]=r,n[i++]=e[0],n[i++]=e[1],n[i++]=e[2],n[i]=e[3]}:function(r,n,i){t[0]=r,n[i++]=e[3],n[i++]=e[2],n[i++]=e[1],n[i]=e[0]}}():function(t,e,r){d.write(e,t,r,!1,23,4)};m.float=function(t){return this.push(w,4,t)};var b="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n,i){t[0]=r,n[i++]=e[0],n[i++]=e[1],n[i++]=e[2],n[i++]=e[3],n[i++]=e[4],n[i++]=e[5],n[i++]=e[6],n[i]=e[7]}:function(r,n,i){t[0]=r,n[i++]=e[7],n[i++]=e[6],n[i++]=e[5],n[i++]=e[4],n[i++]=e[3],n[i++]=e[2],n[i++]=e[1],n[i]=e[0]}}():function(t,e,r){d.write(e,t,r,!1,52,8)};m.double=function(t){return this.push(b,8,t)};var k=g.prototype.set?function(t,e,r){e.set(t,r)}:function(t,e,r){for(var n=0;n>>0;if("string"==typeof t&&e){var r=o.alloc(e=v.length(t));v.decode(t,r,0),t=r}return e?this.uint32(e).push(k,e,t):this.push(u,1,0)},m.string=function(t){var e=y.length(t);return e?this.uint32(e).push(y.write,e,t):this.push(u,1,0)},m.fork=function(){return this.states=new s(this),this.head=this.tail=new n(i,0,0),this.len=0,this},m.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new n(i,0,0),this.len=0),this},m.ldelim=function(t){var e=this.head,r=this.tail,n=this.len;return this.reset(),"number"==typeof t&&this.uint32((t<<3|2)>>>0),this.uint32(n),this.tail.next=e.next,this.tail=r,this.len+=n,this},m.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return this.head=this.tail=null,e}},{1:1,36:36,39:39}],39:[function(t,e,r){"use strict";function n(){s.call(this)}function i(t,e,r){t.copy(e,r,0,t.length)}e.exports=n;var s=t(38),o=n.prototype=Object.create(s.prototype);o.constructor=n;var u=t(36),f=u.utf8;n.alloc=function(t){return n.alloc=u.Buffer.allocUnsafe?u.Buffer.allocUnsafe:function(t){return new u.Buffer(t)},n.alloc(t)};var a=u.Buffer&&u.Buffer.from||function(t,e){return new u.Buffer(t,e)};o.bytes=function(t){"string"==typeof t&&(t=a(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this.push(i,e,t),this};var h=function(){return u.Buffer&&u.Buffer.prototype.utf8Write?function(t,e,r){t.length<40?f.write(t,e,r):e.utf8Write(t,r)}:function(t,e,r){t.length<40?f.write(t,e,r):e.write(t,r)}}();o.string=function(t){var e=t.length<40?f.length(t):u.Buffer.byteLength(t);return this.uint32(e),e&&this.push(h,e,t),this}},{36:36,38:38}],40:[function(t,e,r){(function(e){"use strict";function n(t,e,r){return"function"==typeof e?(r=e,e=new o.Root):e||(e=new o.Root),e.load(t,r)}function i(t,e){return e||(e=new o.Root),e.loadSync(t)}function s(){o.Reader.j()}var o=e.protobuf=r;o.load=n,o.loadSync=i,o.roots={},o.tokenize=t(31),o.parse=t(24),o.Writer=t(38),o.BufferWriter=t(39),o.Reader=t(25),o.BufferReader=t(26),o.encoder=t(15),o.decoder=t(14),o.verifier=t(37),o.ReflectionObject=t(22),o.Namespace=t(21),o.Root=t(27),o.Enum=t(16),o.Type=t(32),o.Field=t(17),o.OneOf=t(23),o.MapField=t(18),o.Service=t(30),o.Method=t(20),o.Class=t(12),o.Message=t(19),o.types=t(33),o.common=t(13),o.rpc=t(28),o.util=t(34),o.configure=s,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&(o.util.Long=t,s()),o})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,30:30,31:31,32:32,33:33,34:34,37:37,38:38,39:39}]},{},[40]); //# sourceMappingURL=protobuf.min.js.map diff --git a/dist/protobuf.min.js.gz b/dist/protobuf.min.js.gz index 5e036c9fae0f73185614dfba24e23b541cbe9022..69476bf29d9be7449573bfa1e1ef392e6c796b4b 100644 GIT binary patch literal 17947 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�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 diff --git a/dist/protobuf.min.js.map b/dist/protobuf.min.js.map index 12ada14d3..0a7a5f544 100644 --- a/dist/protobuf.min.js.map +++ b/dist/protobuf.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/runtime.js","src/verifier.js","src/writer.js","src/index.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","read","buffer","offset","isBE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","ceil","b64","Array","s64","encode","start","end","j","b","String","fromCharCode","invalidEncoding","decode","charCodeAt","undefined","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","test","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","keys","Object","Function","concat","map","key","format","$0","$1","arg","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","extend","ctor","create","constructor","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","chunk","c1","c2","Class","type","Type","TypeError","MessageCtor","properties","Message","util","merge","$type","getFieldsArray","forEach","field","isArray","defaultValue","emptyArray","isObject","emptyObject","getOneofsArray","oneof","prop","get","indexOf","set","setCtor","_TypeError","common","json","nested","google","protobuf","Any","fields","type_url","id","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","decoder","mtype","group","resolvedType","Enum","safeProp","resolvedKeyType","types","basic","repeated","packed","genEncodeType","fieldIndex","ref","alwaysRequired","required","encoder","wireType","mapKey","partOf","long","low","high","oneofFields","options","ReflectionObject","_valuesById","clearCache","enm","EnumPrototype","className","props","valuesById","testJSON","Boolean","fromJSON","toJSON","add","isString","isInteger","getValuesById","remove","Field","toString","toLowerCase","optional","message","Long","bytes","extensionField","declaringField","_packed","FieldPrototype","MapField","isPacked","getOption","setOption","ifNotSet","resolved","typeDefault","defaults","parent","lookup","optionDefault","fromValue","jsonConvert","asJSON","Number","LongBits","from","toNumber","Buffer","isBuffer","MapFieldPrototype","keyWireType","MessagePrototype","array","fieldsOnly","writer","encodeDelimited","readerOrBuffer","decodeDelimited","verify","Method","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","MethodPrototype","initNested","Service","nestedTypes","Namespace","nestedError","_nestedArray","namespace","arrayToJSON","obj","NamespacePrototype","nestedArray","toArray","methods","addJSON","getNestedArray","nestedJson","ns","nestedName","object","setOptions","onAdd","onRemove","define","ptr","part","resolveAll","filterType","parentAlreadyChecked","getRoot","found","lookupType","lookupService","lookupEnum","Root","ReflectionObjectPrototype","root","fullName","getFullName","unshift","_handleAdd","_handleRemove","OneOf","fieldNames","ucName","substring","toUpperCase","_fieldsArray","addFieldsToParent","OneOfPrototype","index","isName","token","isTypeRef","isFqTypeRef","lower","parse","illegal","filename","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","tokenLower","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","parseInlineOptions","fieldName","lcFirst","ucFirst","valueType","parseEnumField","custom","parseOptionValue","service","parseMethod","st","method","reference","tokenize","head","keepCase","camelCase","package","indexOutOfRange","reader","writeLength","RangeError","pos","Reader","readLongVarint","bits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","BufferReader","initBufferReader","readStringBuffer_utf8Slice","utf8Slice","readStringBuffer_toString","configure","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","ieee754","ArrayImpl","Uint8Array","_slice","subarray","read_uint32","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","float","readDouble","Float64Array","f64","double","skipType","reset","finish","remain","BufferReaderPrototype","readStringBuffer","readFloatLE","readDoubleLE","_configure","deferred","files","SYNC","handleExtension","extendedType","sisterField","RootPrototype","resolvePath","load","cb","process","parsed","self","sync","queued","weak","idx","altname","setTimeout","readFileSync","loadSync","newDeferred","rpc","rpcImpl","$rpc","ServicePrototype","endedByRPC","_methodsArray","methodsArray","methodName","inherited","getMethodsArray","requestDelimited","responseDelimited","rpcService","request","requestData","setImmediate","responseData","response","err2","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","stack","repeat","curr","delimRe","delim","expected","actual","equals","_fieldsById","_repeatedFieldsArray","_oneofsArray","_ctor","TypePrototype","verifier","Writer","fieldsById","names","fieldsArray","repeatedFieldsArray","filter","oneofsArray","oneOfName","getFieldsById","getCtor","setup","fld","fork","ldelim","bake","description","dst","underScore","newBuffer","allocUnsafe","LongBitsPrototype","zero","zzEncode","fromNumber","fromString","unsigned","fromHash","hash","toHash","mask","part0","part1","part2","isNode","global","versions","node","dcodeIO","isFinite","longToHash","longFromHash","fromBits","longNeq","longNe","val","target","descriptors","descriptor","ie8","ucKey","defineProperty","freeze","invalid","genVerifyValue","rtype","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","writeVarint64","writeFixed32","BufferWriter","writeFloatBuffer","writeFloatLE","writeDoubleBuffer","writeDoubleLE","writeBytesBuffer","copy","WriterPrototype","writeFloat","writeDouble","writeBytes","BufferWriterPrototype","Buffer_from","encoding","writeStringBuffer","utf8Write","byteLength","roots","amd"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {function(?Error, ...*)} fn Function to call\r\n * @param {Object} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue);?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n \r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function \" + (name ? name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\", \") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n return format.replace(/%([djs])/g, function($0, $1) {\r\n var arg = args[i++];\r\n switch ($1) {\r\n case \"j\":\r\n return JSON.stringify(arg);\r\n default:\r\n return String(arg);\r\n }\r\n });\r\n}\r\n\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {Object} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(2),\r\n inquire = require(8);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted \r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(19),\r\n util = require(33);\r\n\r\nvar Type; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a class instance, which is also a message prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(31);\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type\", \"a Type\");\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor\", \"a function\");\r\n } else\r\n ctor = (function(MessageCtor) { // eslint-disable-line wrap-iife\r\n return function Message(properties) {\r\n MessageCtor.call(this, properties);\r\n };\r\n })(Message);\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n \r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa.\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.getFieldsArray().forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue)\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.getOneofsArray().forEach(function(oneof) {\r\n util.prop(prototype, oneof.resolve().name, {\r\n get: function getVirtual() {\r\n // > If the parser encounters multiple members of the same oneof on the wire, only the last member seen is used in the parsed message.\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (oneof.oneof.indexOf(keys[i]) > -1)\r\n return keys[i];\r\n return undefined;\r\n },\r\n set: function setVirtual(value) {\r\n for (var keys = oneof.oneof, i = 0; i < keys.length; ++i)\r\n if (keys[i] !== value)\r\n delete this[keys[i]];\r\n }\r\n });\r\n });\r\n\r\n // Register\r\n type.setCtor(ctor);\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa.\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\n\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object} google/protobuf/any.proto Any\r\n * @property {Object} google/protobuf/duration.proto Duration\r\n * @property {Object} google/protobuf/empty.proto Empty\r\n * @property {Object} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object} google/protobuf/timestamp.proto Timestamp\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n// - google/protobuf/descriptor.proto\r\n// - google/protobuf/field_mask.proto\r\n// - google/protobuf/source_context.proto\r\n// - google/protobuf/type.proto\r\n// - google/protobuf/wrappers.proto\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [ \"nullValue\", \"numberValue\", \"stringValue\", \"boolValue\", \"structValue\", \"listValue\" ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\nmodule.exports = decoder;\r\n\r\nvar Enum = require(16),\r\n types = require(32),\r\n util = require(33);\r\n\r\n/**\r\n * Generates a decoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction decoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray(); \r\n var gen = util.codegen(\"r\", \"l\")\r\n\r\n (\"r instanceof Reader||(r=Reader.create(r))\")\r\n (\"var c=l===undefined?r.len:r.pos+l,m=new(this.getCtor())\")\r\n (\"while(r.pos>>3){\");\r\n \r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n prop = util.safeProp(field.name);\r\n gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) {\r\n\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"r.skip().pos++\")\r\n (\"if(m%s===util.emptyObject)\", prop)\r\n (\"m%s={}\", prop)\r\n (\"var k=r.%s()\", keyType)\r\n (\"if(typeof k===\\\"object\\\")\")\r\n (\"k=util.longToHash(k)\")\r\n (\"r.pos++\");\r\n if (types.basic[type] === undefined) gen\r\n (\"m%s[k]=types[%d].decode(r,r.uint32())\", prop, i); // can't be groups\r\n else gen\r\n (\"m%s[k]=r.%s()\", prop, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"m%s&&m%s.length?m%s:m%s=[]\", prop, prop, prop, prop);\r\n\r\n // Packed\r\n if (field.packed && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var e=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0);\r\n return alwaysRequired || field.required\r\n ? gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()\", fieldIndex, ref, field.id);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.getFieldsArray();\r\n var oneofs = mtype.getOneofsArray();\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"w||(w=Writer.create())\");\r\n\r\n var i;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"if(m%s&&m%s!==util.emptyObject){\", prop, prop)\r\n (\"for(var ks=Object.keys(m%s),i=0;i>> 0, 8 | types.mapKey[keyType], keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()\", i, prop); // can't be groups\r\n else gen\r\n (\"w.uint32(%d).%s(m%s[ks[i]])\", 16 | wireType, type, prop);\r\n gen\r\n (\"w.ldelim()\")\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(m%s&&m%s.length){\", prop, prop)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i>> 0, type, prop);\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else if (!field.partOf) {\r\n if (!field.required) {\r\n\r\n if (field.long) {\r\n gen\r\n (\"if(m%s!==undefined&&util.longNe(m%s,%d,%d))\", prop, prop, field.defaultValue.low, field.defaultValue.high);\r\n } else gen\r\n (\"if(m%s!==undefined&&m%s!==%j)\", prop, prop, field.defaultValue);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, i, \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n }\r\n }\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i],\r\n prop = safeProp(oneof.name);\r\n gen\r\n (\"switch(m%s){\", prop);\r\n var oneofFields = oneof.getFieldsArray();\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n gen\r\n (\"case%j:\", field.name);\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, fields.indexOf(field), \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n gen\r\n (\"break;\");\r\n\r\n } gen\r\n (\"}\"); \r\n }\r\n\r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(33);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = values || {}; // toJSON, marker\r\n\r\n /**\r\n * Cached values by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._valuesById = null;\r\n}\r\n\r\nutil.props(EnumPrototype, {\r\n\r\n /**\r\n * Enum values by id.\r\n * @name Enum#valuesById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n valuesById: {\r\n get: function getValuesById() {\r\n if (!this._valuesById) {\r\n this._valuesById = {};\r\n Object.keys(this.values).forEach(function(name) {\r\n var id = this.values[name];\r\n if (this._valuesById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._valuesById[id] = name;\r\n }, this);\r\n }\r\n return this._valuesById;\r\n }\r\n }\r\n\r\n /**\r\n * Gets this enum's values by id. This is an alias of {@link Enum#valuesById}'s getter for use within non-ES5 environments.\r\n * @name Enum#getValuesById\r\n * @function\r\n * @returns {Object.}\r\n */\r\n});\r\n\r\nfunction clearCache(enm) {\r\n enm._valuesById = null;\r\n return enm;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\r\n if (this.getValuesById()[id] !== undefined)\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this.values[name] = id;\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (this.values[name] === undefined)\r\n throw Error(\"'\" + name + \"' is not a name of \" + this);\r\n delete this.values[name];\r\n return clearCache(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Message = require(19),\r\n Enum = require(16),\r\n types = require(32),\r\n util = require(33);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object} [rule=\"optional\"] Field rule\r\n * @param {string|Object} [extend] Extended type if different from parent\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (!util.isString(type))\r\n throw TypeError(\"type\");\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend\");\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule\", \"a valid rule string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field's default value. Only relevant when working with proto2.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\nutil.props(FieldPrototype, {\r\n\r\n /**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\n packed: {\r\n get: FieldPrototype.isPacked = function() {\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether this field is packed. This is an alias of {@link Field#packed}'s getter for use within non-ES5 environments.\r\n * @name Field#isPacked\r\n * @function\r\n * @returns {boolean}\r\n */\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(18);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n var typeDefault = types.defaults[this.type];\r\n\r\n // if not a basic type, resolve it\r\n if (typeDefault === undefined) {\r\n if (!Type)\r\n Type = require(31);\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n typeDefault = 0;\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // when everything is resolved determine the default value\r\n var optionDefault;\r\n if (this.map)\r\n this.defaultValue = {};\r\n else if (this.repeated)\r\n this.defaultValue = [];\r\n else if (this.options && (optionDefault = this.options[\"default\"]) !== undefined) // eslint-disable-line dot-notation\r\n this.defaultValue = optionDefault;\r\n else\r\n this.defaultValue = typeDefault;\r\n\r\n if (this.long)\r\n this.defaultValue = util.Long.fromValue(this.defaultValue);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Converts a field value to JSON using the specified options. Note that this method does not account for repeated fields and must be called once for each repeated element instead.\r\n * @param {*} value Field value\r\n * @param {Object.} [options] Conversion options\r\n * @returns {*} Converted value\r\n * @see {@link Message#asJSON}\r\n */\r\nFieldPrototype.jsonConvert = function(value, options) {\r\n if (options) {\r\n if (value instanceof Message)\r\n return value.asJSON(options);\r\n if (this.resolvedType instanceof Enum && options[\"enum\"] === String) // eslint-disable-line dot-notation\r\n return this.resolvedType.getValuesById()[value];\r\n if (options.long && this.long)\r\n return options.long === Number\r\n ? typeof value === \"number\"\r\n ? value\r\n : util.LongBits.from(value).toNumber(this.type.charAt(0) === \"u\")\r\n : util.Long.fromValue(value, this.type.charAt(0) === \"u\").toString();\r\n if (options.bytes && this.bytes) {\r\n if (options.bytes === String)\r\n return util.base64.encode(value, 0, value.length);\r\n if (options.bytes === Array)\r\n return Array.prototype.slice.call(value);\r\n if (options.bytes === util.Buffer && !util.Buffer.isBuffer(value))\r\n return util.Buffer.from ? util.Buffer.from(value) : new util.Buffer(value);\r\n }\r\n }\r\n return value;\r\n};\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar Enum = require(16),\r\n types = require(32),\r\n util = require(33);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n if (!util.isString(keyType))\r\n throw util._TypeError(\"keyType\");\r\n \r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n \r\n // Besides a value type, map fields have a key type to resolve\r\n var keyWireType = types.mapKey[this.keyType];\r\n if (keyWireType === undefined) {\r\n var resolved = this.parent.lookup(this.keyType);\r\n if (!(resolved instanceof Enum))\r\n throw Error(\"unresolvable key type: \" + this.keyType);\r\n this.resolvedKeyType = resolved;\r\n }\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This method should be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @extends {Object}\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @abstract\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/** @alias Message.prototype */\r\nvar MessagePrototype = Message.prototype;\r\n\r\n/**\r\n * Converts this message to a JSON object.\r\n * @param {Object.} [options] Conversion options\r\n * @param {boolean} [options.fieldsOnly=false] Converts only properties that reference a field\r\n * @param {*} [options.long] Long conversion type. Only relevant with a long library.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to a possibly unsafe number without, and a `Long` with a long library.\r\n * @param {*} [options.enum=Number] Enum value conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to the numeric ids.\r\n * @param {*} [options.bytes] Bytes value conversion type.\r\n * Valid values are `Array` and `String` (the global types).\r\n * Defaults to return the underlying buffer type.\r\n * @param {boolean} [options.defaults=false] Also sets default values on the resulting object\r\n * @returns {Object.} JSON object\r\n */\r\nMessagePrototype.asJSON = function asJSON(options) {\r\n if (!options)\r\n options = {};\r\n var fields = this.$type.fields,\r\n json = {};\r\n var keys;\r\n if (options.defaults) {\r\n keys = Object.keys(fields);\r\n } else\r\n keys = Object.keys(this);\r\n for (var i = 0, key; i < keys.length; ++i) {\r\n var field = fields[key = keys[i]],\r\n value = this[key];\r\n if (field) {\r\n if (field.repeated) {\r\n if (value && (value.length || options.defaults)) {\r\n var array = new Array(value.length);\r\n for (var j = 0, l = value.length; j < l; ++j)\r\n array[j] = field.jsonConvert(value[j], options);\r\n json[key] = array;\r\n }\r\n } else\r\n json[key] = field.jsonConvert(value, options);\r\n } else if (!options.fieldsOnly)\r\n json[key] = value;\r\n }\r\n return json;\r\n};\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(readerOrBuffer) {\r\n return this.$type.decode(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n return this.$type.decodeDelimited(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(31),\r\n util = require(33);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object} [responseStream] Whether the response is streamed\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type\");\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType\");\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {Object} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream || undefined,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream || undefined,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(33);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\nfunction initNested() {\r\n if (!Type)\r\n Type = require(31);\r\n if (!Service)\r\n Service = require(29);\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @classdesc Reflected namespace and base class of all reflection objects containing nested objects.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\nutil.props(NamespacePrototype, {\r\n\r\n /**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name Namespace#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\n nestedArray: {\r\n get: function getNestedArray() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @param {string} name Namespace name\r\n * @param {Object} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.getNestedArray())\r\n };\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n throw TypeError(\"nested.\" + nestedName, \"JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n if (!nestedTypes)\r\n initNested();\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object\", nestedError);\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object\", \"an extension field when not part of a type\");\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n if (!Type)\r\n Type = require(31);\r\n if (!Service)\r\n Service = require(29);\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object\", \"a ReflectionObject\");\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path)) {\r\n json = path;\r\n path = undefined;\r\n }\r\n var ptr = this;\r\n if (path)\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolve() {\r\n var nested = this.getNestedArray(), i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n if (util.isString(path) && path.length)\r\n path = path.split(\".\");\r\n else if (!path.length)\r\n return null;\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.getRoot().lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found && path.length === 1 && (!filterType || found instanceof filterType) || found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name Namespace#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n if (!Type)\r\n Type = require(31);\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n if (!Service)\r\n Service = require(29);\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up enum\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(33);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options\", \"an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nutil.props(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function getRoot() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: ReflectionObjectPrototype.getFullName = function getFullName() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(26);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(26);\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n var root = this.getRoot();\r\n if (!Root)\r\n Root = require(26);\r\n if (root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className;\r\n var fullName = this.getFullName();\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17),\r\n util = require(33);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames\", \"an Array\");\r\n\r\n /**\r\n * Upper cased name for getter/setter calls.\r\n * @type {string}\r\n */\r\n this.ucName = this.name.substring(0, 1).toUpperCase() + this.name.substring(1);\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nutil.prop(OneOfPrototype, \"fieldsArray\", {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n if (field.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n var index = this._fieldsArray.indexOf(field);\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n if (index > -1)\r\n this.oneof.splice(index, 1);\r\n if (field.parent)\r\n field.parent.remove(field);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nvar tokenize = require(30),\r\n Root = require(26),\r\n Type = require(31),\r\n Field = require(17),\r\n MapField = require(18),\r\n OneOf = require(23),\r\n Enum = require(16),\r\n Service = require(29),\r\n Method = require(20),\r\n types = require(32),\r\n util = require(33);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n root = new Root();\r\n options = root || {};\r\n } else if (!options)\r\n options = {};\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n if (!root)\r\n root = new Root();\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\r\n\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 0x1FFFFFFF;\r\n case \"0\": return 0;\r\n }\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n \r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (lower(type) === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new Field(name, id, type, rule, extend));\r\n if (field.repeated)\r\n field.setOption(\"packed\", isProto3, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new MapField(name, id, keyType, valueType));\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n var oneof = new OneOf(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var values = {};\r\n var enm = new Enum(name, values);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumField(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumField(parent, token) {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true);\r\n parent.values[name] = value;\r\n parseInlineOptions({}); // skips enum value options\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (!isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n name = name + \".\" + token;\r\n if (skip(\":\", true))\r\n setOption(parent, name, readValue(true));\r\n else\r\n parseOptionValue(parent, name);\r\n }\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n else\r\n parent[name] = value;\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n var name = token;\r\n var service = new Service(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n var st;\r\n if (skip(st = \"stream\", true))\r\n requestStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(st, true))\r\n responseStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nReader.BufferReader = BufferReader;\r\n\r\nvar util = require(35),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n return new (util.Buffer ? BufferReader : Reader)(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n var Buffer = util.Buffer;\r\n if (!Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = Buffer.prototype.slice;\r\n readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\n\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.float = function read_float_buffer() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = this.buf.readFloatLE(this.pos, true);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.double = function read_double_buffer() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n var value = this.buf.readDoubleLE(this.pos, true);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return readStringBuffer(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n util = require(33),\r\n common = require(13);\r\n\r\nvar parse; // cyclic\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {Object} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files. \r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {*} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (!parse)\r\n parse = require(24);\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n cb(err, root);\r\n }\r\n\r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n return;\r\n }\r\n if (!sync && !queued)\r\n finish(null, self);\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.indexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename) {\r\n return this.load(filename, SYNC);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.getFullName(), field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field && object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n }\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n }\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\nrpc.Service = require(28);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(33);\r\nvar EventEmitter = util.EventEmitter;\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @memberof rpc\r\n * @extends util.EventEmitter\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n */\r\nfunction Service(rpcImpl) {\r\n EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.$rpc = rpcImpl;\r\n}\r\n\r\n/** @alias rpc.Service.prototype */\r\nvar ServicePrototype = Service.prototype = Object.create(EventEmitter.prototype);\r\nServicePrototype.constructor = Service;\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nServicePrototype.end = function end(endedByRPC) {\r\n if (this.$rpc) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.$rpc(null, null, null);\r\n this.$rpc = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(20),\r\n util = require(33),\r\n rpc = require(27);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\nutil.props(ServicePrototype, {\r\n\r\n /**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\n methodsArray: {\r\n get: function getMethodsArray() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n }\r\n\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.getMethodsArray()) || {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolve() {\r\n var methods = this.getMethodsArray();\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method} method Reflected method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Uint8Array} [responseData] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {function(Method, Uint8Array, function)} rpcImpl RPC implementation ({@link RPCImpl|see})\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} Runtime RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl);\r\n this.getMethodsArray().forEach(function(method) {\r\n rpcService[util.lcFirst(method.name)] = function callVirtual(request, /* optional */ callback) {\r\n if (!rpcService.$rpc) // already ended?\r\n return;\r\n if (!request)\r\n throw util._TypeError(\"request\", \"not null\");\r\n method.resolve();\r\n var requestData;\r\n try {\r\n requestData = (requestDelimited ? method.resolvedRequestType.encodeDelimited(request) : method.resolvedRequestType.encode(request)).finish();\r\n } catch (err) {\r\n (typeof setImmediate === \"function\" ? setImmediate : setTimeout)(function() { callback(err); });\r\n return;\r\n }\r\n // Calls the custom RPC implementation with the reflected method and binary request data\r\n // and expects the rpc implementation to call its callback with the binary response data.\r\n rpcImpl(method, requestData, function(err, responseData) {\r\n if (err) {\r\n rpcService.emit(\"error\", err, method);\r\n return callback ? callback(err) : undefined;\r\n }\r\n if (responseData === null) {\r\n rpcService.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n var response;\r\n try {\r\n response = responseDelimited ? method.resolvedResponseType.decodeDelimited(responseData) : method.resolvedResponseType.decode(responseData);\r\n } catch (err2) {\r\n rpcService.emit(\"error\", err2, method);\r\n return callback ? callback(\"error\", err2) : undefined;\r\n }\r\n rpcService.emit(\"data\", response, method);\r\n return callback ? callback(null, response) : undefined;\r\n });\r\n };\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n case \"0\":\r\n return \"\\u0000\";\r\n default:\r\n return $1;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n */\r\n/**/\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n \r\n var offset = 0,\r\n length = source.length,\r\n line = 1;\r\n \r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n if (offset === length)\r\n return null;\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n line: function() { return line; },\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type; \r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(23),\r\n Field = require(17),\r\n Service = require(29),\r\n Class = require(12),\r\n Message = require(19),\r\n Reader = require(25),\r\n Writer = require(37),\r\n util = require(33);\r\n\r\nvar encoder, // might become cyclic\r\n decoder, // might become cyclic\r\n verifier; // cyclic\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached repeated fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._repeatedFieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nutil.props(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function getFieldsById() {\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Repeated fields of this message as an array for iteration.\r\n * @name Type#repeatedFieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n repeatedFieldsArray: {\r\n get: function getRepeatedFieldsArray() {\r\n return this._repeatedFieldsArray || (this._repeatedFieldsArray = this.getFieldsArray().filter(function(field) { return field.repeated; }));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function getOneofsArray() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function getCtor() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function setCtor(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw util._TypeError(\"ctor\", \"a Message constructor\");\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n if (json.fields)\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.getOneofsArray()),\r\n fields : Namespace.arrayToJSON(this.getFieldsArray().filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolve() {\r\n var fields = this.getFieldsArray(), i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.getOneofsArray(); i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n if (this.getFieldsById()[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n if (this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.message = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object|*} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new (this.getCtor())(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode}, {@link Type#decode} and {@link Type#verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n if (!encoder) {\r\n encoder = require(15);\r\n decoder = require(14);\r\n verifier = require(36);\r\n }\r\n this.encode = encoder(this).eof(this.getFullName() + \"$encode\", {\r\n Writer : Writer,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(this.getFullName() + \"$decode\", {\r\n Reader : Reader,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(this.getFullName() + \"$verify\", {\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(readerOrBuffer, length) {\r\n return this.setup().decode(readerOrBuffer, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n readerOrBuffer = readerOrBuffer instanceof Reader ? readerOrBuffer : Reader.create(readerOrBuffer);\r\n return this.decode(readerOrBuffer, readerOrBuffer.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(33);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\", // 14\r\n \"message\" // 15\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(35);\r\n\r\nutil.asPromise = require(2);\r\nutil.codegen = require(4);\r\nutil.EventEmitter = require(5);\r\nutil.extend = require(6);\r\nutil.fetch = require(7);\r\nutil.path = require(9);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n if (!object)\r\n return [];\r\n var names = Object.keys(object),\r\n length = names.length;\r\n var array = new Array(length);\r\n for (var i = 0; i < length; ++i)\r\n array[i] = object[names[i]];\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a type error.\r\n * @param {string} name Argument name\r\n * @param {string} [description=\"a string\"] Expected argument descripotion\r\n * @returns {TypeError} Created type error\r\n * @private\r\n */\r\nutil._TypeError = function(name, description) {\r\n return TypeError(name + \" must be \" + (description || \"a string\"));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object} dst Destination object\r\n * @param {Object} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) {\r\n if (src) {\r\n var keys = Object.keys(src);\r\n for (var i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n }\r\n return dst;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts a string to camel case notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.camelCase = function camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n};\r\n\r\n/**\r\n * Converts a string to underscore notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.underScore = function underScore(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return \"_\" + $1.toLowerCase(); });\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Converts the second character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number} [size=0] Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(size) {\r\n size = size || 0;\r\n return util.Buffer\r\n ? util.Buffer.allocUnsafe ? util.Buffer.allocUnsafe(size) : new util.Buffer(size)\r\n : new (typeof Uint8Array !== \"undefined\" ? Uint8Array : Array)(size);\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(35);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n Type = require(31),\r\n util = require(33);\r\n\r\nfunction invalid(field, expected) {\r\n return \"invalid value for field \" + field.getFullName() + \" (\" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected)\";\r\n}\r\n\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var type = field.type,\r\n rtype = field.resolvedType;\r\n if (!rtype && /32/.test(type)) gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n else if (!rtype && /64/.test(type)) gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n else if (type === \"float\" || type === \"double\") gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n else if (type === \"bool\") gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n else if (type === \"string\") gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n else if (type === \"bytes\") gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n else if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else if (field.resolvedType instanceof Type) gen\r\n (\"var r;\")\r\n (\"if(r=types[%d].verify(%s))\", fieldIndex, ref)\r\n (\"return r\");\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var keyType = field.keyType,\r\n rtype = field.resolvedKeyType;\r\n if (!rtype && /32/.test(keyType)) gen\r\n (\"if(!/^-?(?:0|[1-9]\\\\d*)$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n else if (!rtype && /64/.test(keyType)) gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9]\\\\d*))$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n else if (keyType === \"bool\") gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray();\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(m%s!==undefined){\", prop)\r\n (\"if(!util.isObject(m%s))\", prop)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(m%s)\", prop)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @exports BufferWriter\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nfunction writeFloatBuffer(val, buf, pos) {\r\n buf.writeFloatLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.float = function write_float_buffer(value) {\r\n return this.push(writeFloatBuffer, 4, value);\r\n};\r\n\r\nfunction writeDoubleBuffer(val, buf, pos) {\r\n buf.writeDoubleLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.double = function write_double_buffer(value) {\r\n return this.push(writeDoubleBuffer, 8, value);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n if (val.length)\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n return len\r\n ? this.uint32(len).push(writeBytesBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n return len\r\n ? this.uint32(len).push(writeStringBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n// function load(filename:string, root:Root, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n/**\r\n * Named roots.\r\n * @name roots\r\n * @type {Object.}\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Parser\r\nprotobuf.tokenize = require(\"./tokenize\");\r\nprotobuf.parse = require(\"./parse\");\r\n\r\n// Serialization\r\nprotobuf.BufferWriter = (\r\nprotobuf.Writer = require(\"./writer\")).BufferWriter;\r\nprotobuf.BufferReader = (\r\nprotobuf.Reader = require(\"./reader\")).BufferReader;\r\nprotobuf.encoder = require(\"./encoder\");\r\nprotobuf.decoder = require(\"./decoder\");\r\nprotobuf.verifier = require(\"./verifier\");\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(\"./object\");\r\nprotobuf.Namespace = require(\"./namespace\");\r\nprotobuf.Root = require(\"./root\");\r\nprotobuf.Enum = require(\"./enum\");\r\nprotobuf.Type = require(\"./type\");\r\nprotobuf.Field = require(\"./field\");\r\nprotobuf.OneOf = require(\"./oneof\");\r\nprotobuf.MapField = require(\"./mapfield\");\r\nprotobuf.Service = require(\"./service\");\r\nprotobuf.Method = require(\"./method\");\r\n\r\n// Runtime\r\nprotobuf.Class = require(\"./class\");\r\nprotobuf.Message = require(\"./message\");\r\n\r\n// Utility\r\nprotobuf.types = require(\"./types\");\r\nprotobuf.common = require(\"./common\");\r\nprotobuf.rpc = require(\"./rpc\");\r\nprotobuf.util = require(\"./util\");\r\nprotobuf.configure = configure;\r\n\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/runtime.js","src/verifier.js","src/writer.js","src/writer_buffer.js","src/index.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","read","buffer","offset","isBE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","ceil","b64","Array","s64","encode","start","end","j","b","String","fromCharCode","invalidEncoding","decode","charCodeAt","undefined","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","test","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","keys","Object","Function","concat","map","key","format","$0","$1","arg","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","extend","ctor","create","constructor","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","chunk","c1","c2","Class","type","Type","TypeError","MessageCtor","properties","Message","util","merge","$type","getFieldsArray","forEach","field","isArray","defaultValue","emptyArray","isObject","emptyObject","getOneofsArray","oneof","prop","get","indexOf","set","setCtor","_TypeError","common","json","nested","google","protobuf","Any","fields","type_url","id","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","decoder","mtype","group","resolvedType","Enum","safeProp","resolvedKeyType","types","basic","repeated","packed","genEncodeType","fieldIndex","ref","alwaysRequired","required","encoder","wireType","mapKey","partOf","long","low","high","oneofFields","options","ReflectionObject","_valuesById","clearCache","enm","EnumPrototype","className","props","valuesById","testJSON","Boolean","fromJSON","toJSON","add","isString","isInteger","getValuesById","remove","Field","toString","toLowerCase","optional","message","Long","bytes","extensionField","declaringField","_packed","FieldPrototype","MapField","isPacked","getOption","setOption","ifNotSet","resolved","typeDefault","defaults","parent","lookup","optionDefault","fromValue","jsonConvert","asJSON","Number","LongBits","from","toNumber","Buffer","isBuffer","MapFieldPrototype","MessagePrototype","array","fieldsOnly","writer","encodeDelimited","readerOrBuffer","decodeDelimited","verify","Method","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","MethodPrototype","initNested","Service","nestedTypes","Namespace","nestedError","_nestedArray","namespace","arrayToJSON","obj","NamespacePrototype","nestedArray","toArray","methods","addJSON","getNestedArray","nestedJson","ns","nestedName","object","setOptions","onAdd","onRemove","define","ptr","part","resolveAll","filterType","parentAlreadyChecked","getRoot","found","lookupType","lookupService","lookupEnum","Root","ReflectionObjectPrototype","root","fullName","getFullName","unshift","_handleAdd","_handleRemove","OneOf","fieldNames","ucName","substring","toUpperCase","_fieldsArray","addFieldsToParent","OneOfPrototype","index","isName","token","isTypeRef","isFqTypeRef","lower","parse","illegal","filename","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","tokenLower","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","parseInlineOptions","fieldName","lcFirst","ucFirst","valueType","parseEnumField","custom","parseOptionValue","service","parseMethod","st","method","reference","tokenize","head","keepCase","camelCase","package","indexOutOfRange","reader","writeLength","RangeError","pos","Reader","readLongVarint","bits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","configure","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","BufferReader","ieee754","ArrayImpl","Uint8Array","_slice","subarray","read_uint32","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","float","readDouble","Float64Array","f64","double","skipType","reset","finish","remain","_configure","initBufferReader","readStringBuffer_utf8Slice","utf8Slice","readStringBuffer_toString","BufferReaderPrototype","readStringBuffer","min","deferred","files","SYNC","handleExtension","extendedType","sisterField","RootPrototype","resolvePath","load","cb","process","parsed","self","sync","queued","weak","idx","altname","setTimeout","readFileSync","loadSync","newDeferred","rpc","rpcImpl","$rpc","ServicePrototype","endedByRPC","_methodsArray","methodsArray","methodName","inherited","getMethodsArray","requestDelimited","responseDelimited","rpcService","request","requestData","setImmediate","responseData","response","err2","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","stack","repeat","curr","delimRe","delim","expected","actual","equals","_fieldsById","_repeatedFieldsArray","_oneofsArray","_ctor","TypePrototype","verifier","Writer","fieldsById","names","fieldsArray","repeatedFieldsArray","filter","oneofsArray","oneOfName","getFieldsById","getCtor","setup","fld","fork","ldelim","bake","description","dst","underScore","newBuffer","allocUnsafe","LongBitsPrototype","zero","zzEncode","fromNumber","fromString","unsigned","fromHash","hash","toHash","mask","part0","part1","part2","isNode","global","versions","node","dcodeIO","isFinite","longToHash","longFromHash","fromBits","longNeq","longNe","val","target","descriptors","descriptor","ie8","ucKey","defineProperty","freeze","invalid","genVerifyValue","rtype","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","writeVarint64","writeFixed32","BufferWriter","WriterPrototype","writeFloat","writeDouble","writeBytes","writeBytesBuffer","copy","BufferWriterPrototype","Buffer_from","encoding","writeStringBuffer","utf8Write","byteLength","roots","amd"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {function(?Error, ...*)} fn Function to call\r\n * @param {Object} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue);?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n \r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function \" + (name ? name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\", \") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n return format.replace(/%([djs])/g, function($0, $1) {\r\n var arg = args[i++];\r\n switch ($1) {\r\n case \"j\":\r\n return JSON.stringify(arg);\r\n default:\r\n return String(arg);\r\n }\r\n });\r\n}\r\n\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {Object} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(2),\r\n inquire = require(8);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted \r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(19),\r\n util = require(34);\r\n\r\nvar Type; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a class instance, which is also a message prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(32);\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type\", \"a Type\");\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor\", \"a function\");\r\n } else\r\n ctor = (function(MessageCtor) { // eslint-disable-line wrap-iife\r\n return function Message(properties) {\r\n MessageCtor.call(this, properties);\r\n };\r\n })(Message);\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n \r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa.\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.getFieldsArray().forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue)\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.getOneofsArray().forEach(function(oneof) {\r\n util.prop(prototype, oneof.resolve().name, {\r\n get: function getVirtual() {\r\n // > If the parser encounters multiple members of the same oneof on the wire, only the last member seen is used in the parsed message.\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (oneof.oneof.indexOf(keys[i]) > -1)\r\n return keys[i];\r\n return undefined;\r\n },\r\n set: function setVirtual(value) {\r\n for (var keys = oneof.oneof, i = 0; i < keys.length; ++i)\r\n if (keys[i] !== value)\r\n delete this[keys[i]];\r\n }\r\n });\r\n });\r\n\r\n // Register\r\n type.setCtor(ctor);\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa.\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\n\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object} google/protobuf/any.proto Any\r\n * @property {Object} google/protobuf/duration.proto Duration\r\n * @property {Object} google/protobuf/empty.proto Empty\r\n * @property {Object} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object} google/protobuf/timestamp.proto Timestamp\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n// - google/protobuf/descriptor.proto\r\n// - google/protobuf/field_mask.proto\r\n// - google/protobuf/source_context.proto\r\n// - google/protobuf/type.proto\r\n// - google/protobuf/wrappers.proto\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [ \"nullValue\", \"numberValue\", \"stringValue\", \"boolValue\", \"structValue\", \"listValue\" ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\nmodule.exports = decoder;\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\n/**\r\n * Generates a decoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction decoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray(); \r\n var gen = util.codegen(\"r\", \"l\")\r\n\r\n (\"r instanceof Reader||(r=Reader.create(r))\")\r\n (\"var c=l===undefined?r.len:r.pos+l,m=new(this.getCtor())\")\r\n (\"while(r.pos>>3){\");\r\n \r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n prop = util.safeProp(field.name);\r\n gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) {\r\n\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"r.skip().pos++\")\r\n (\"if(m%s===util.emptyObject)\", prop)\r\n (\"m%s={}\", prop)\r\n (\"var k=r.%s()\", keyType)\r\n (\"if(typeof k===\\\"object\\\")\")\r\n (\"k=util.longToHash(k)\")\r\n (\"r.pos++\");\r\n if (types.basic[type] === undefined) gen\r\n (\"m%s[k]=types[%d].decode(r,r.uint32())\", prop, i); // can't be groups\r\n else gen\r\n (\"m%s[k]=r.%s()\", prop, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"m%s&&m%s.length?m%s:m%s=[]\", prop, prop, prop, prop);\r\n\r\n // Packed\r\n if (field.packed && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var e=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0);\r\n return alwaysRequired || field.required\r\n ? gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()\", fieldIndex, ref, field.id);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.getFieldsArray();\r\n var oneofs = mtype.getOneofsArray();\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"w||(w=Writer.create())\");\r\n\r\n var i;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"if(m%s&&m%s!==util.emptyObject){\", prop, prop)\r\n (\"for(var ks=Object.keys(m%s),i=0;i>> 0, 8 | types.mapKey[keyType], keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()\", i, prop); // can't be groups\r\n else gen\r\n (\"w.uint32(%d).%s(m%s[ks[i]])\", 16 | wireType, type, prop);\r\n gen\r\n (\"w.ldelim()\")\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(m%s&&m%s.length){\", prop, prop)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i>> 0, type, prop);\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else if (!field.partOf) {\r\n if (!field.required) {\r\n\r\n if (field.long) {\r\n gen\r\n (\"if(m%s!==undefined&&util.longNe(m%s,%d,%d))\", prop, prop, field.defaultValue.low, field.defaultValue.high);\r\n } else gen\r\n (\"if(m%s!==undefined&&m%s!==%j)\", prop, prop, field.defaultValue);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, i, \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n }\r\n }\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i],\r\n prop = safeProp(oneof.name);\r\n gen\r\n (\"switch(m%s){\", prop);\r\n var oneofFields = oneof.getFieldsArray();\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n gen\r\n (\"case%j:\", field.name);\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, fields.indexOf(field), \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n gen\r\n (\"break;\");\r\n\r\n } gen\r\n (\"}\"); \r\n }\r\n\r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = values || {}; // toJSON, marker\r\n\r\n /**\r\n * Cached values by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._valuesById = null;\r\n}\r\n\r\nutil.props(EnumPrototype, {\r\n\r\n /**\r\n * Enum values by id.\r\n * @name Enum#valuesById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n valuesById: {\r\n get: function getValuesById() {\r\n if (!this._valuesById) {\r\n this._valuesById = {};\r\n Object.keys(this.values).forEach(function(name) {\r\n var id = this.values[name];\r\n if (this._valuesById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._valuesById[id] = name;\r\n }, this);\r\n }\r\n return this._valuesById;\r\n }\r\n }\r\n\r\n /**\r\n * Gets this enum's values by id. This is an alias of {@link Enum#valuesById}'s getter for use within non-ES5 environments.\r\n * @name Enum#getValuesById\r\n * @function\r\n * @returns {Object.}\r\n */\r\n});\r\n\r\nfunction clearCache(enm) {\r\n enm._valuesById = null;\r\n return enm;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\r\n if (this.getValuesById()[id] !== undefined)\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this.values[name] = id;\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (this.values[name] === undefined)\r\n throw Error(\"'\" + name + \"' is not a name of \" + this);\r\n delete this.values[name];\r\n return clearCache(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Message = require(19),\r\n Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object} [rule=\"optional\"] Field rule\r\n * @param {string|Object} [extend] Extended type if different from parent\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n if (!util.isString(type))\r\n throw TypeError(\"type\");\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend\");\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule\", \"a valid rule string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field's default value. Only relevant when working with proto2.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\nutil.props(FieldPrototype, {\r\n\r\n /**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\n packed: {\r\n get: FieldPrototype.isPacked = function() {\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether this field is packed. This is an alias of {@link Field#packed}'s getter for use within non-ES5 environments.\r\n * @name Field#isPacked\r\n * @function\r\n * @returns {boolean}\r\n */\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(18);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n var typeDefault = types.defaults[this.type];\r\n\r\n // if not a basic type, resolve it\r\n if (typeDefault === undefined) {\r\n if (!Type)\r\n Type = require(32);\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n typeDefault = 0;\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // when everything is resolved determine the default value\r\n var optionDefault;\r\n if (this.map)\r\n this.defaultValue = {};\r\n else if (this.repeated)\r\n this.defaultValue = [];\r\n else if (this.options && (optionDefault = this.options[\"default\"]) !== undefined) // eslint-disable-line dot-notation\r\n this.defaultValue = optionDefault;\r\n else\r\n this.defaultValue = typeDefault;\r\n\r\n if (this.long)\r\n this.defaultValue = util.Long.fromValue(this.defaultValue);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Converts a field value to JSON using the specified options. Note that this method does not account for repeated fields and must be called once for each repeated element instead.\r\n * @param {*} value Field value\r\n * @param {Object.} [options] Conversion options\r\n * @returns {*} Converted value\r\n * @see {@link Message#asJSON}\r\n */\r\nFieldPrototype.jsonConvert = function(value, options) {\r\n if (options) {\r\n if (value instanceof Message)\r\n return value.asJSON(options);\r\n if (this.resolvedType instanceof Enum && options[\"enum\"] === String) // eslint-disable-line dot-notation\r\n return this.resolvedType.getValuesById()[value];\r\n if (options.long && this.long)\r\n return options.long === Number\r\n ? typeof value === \"number\"\r\n ? value\r\n : util.LongBits.from(value).toNumber(this.type.charAt(0) === \"u\")\r\n : util.Long.fromValue(value, this.type.charAt(0) === \"u\").toString();\r\n if (options.bytes && this.bytes) {\r\n if (options.bytes === String)\r\n return util.base64.encode(value, 0, value.length);\r\n if (options.bytes === Array)\r\n return Array.prototype.slice.call(value);\r\n if (options.bytes === util.Buffer && !util.Buffer.isBuffer(value))\r\n return util.Buffer.from ? util.Buffer.from(value) : new util.Buffer(value);\r\n }\r\n }\r\n return value;\r\n};\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n if (!util.isString(keyType))\r\n throw util._TypeError(\"keyType\");\r\n \r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n \r\n // Besides a value type, map fields possibily have an enum as its key type to resolve\r\n if (types.mapKey[this.keyType] === undefined && !(this.resolvedKeyType = this.parent.lookup(this.keyType, Enum)))\r\n throw Error(\"unresolvable key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This method should be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @extends {Object}\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @abstract\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/** @alias Message.prototype */\r\nvar MessagePrototype = Message.prototype;\r\n\r\n/**\r\n * Converts this message to a JSON object.\r\n * @param {Object.} [options] Conversion options\r\n * @param {boolean} [options.fieldsOnly=false] Converts only properties that reference a field\r\n * @param {*} [options.long] Long conversion type. Only relevant with a long library.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to a possibly unsafe number without, and a `Long` with a long library.\r\n * @param {*} [options.enum=Number] Enum value conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to the numeric ids.\r\n * @param {*} [options.bytes] Bytes value conversion type.\r\n * Valid values are `Array` and `String` (the global types).\r\n * Defaults to return the underlying buffer type.\r\n * @param {boolean} [options.defaults=false] Also sets default values on the resulting object\r\n * @returns {Object.} JSON object\r\n */\r\nMessagePrototype.asJSON = function asJSON(options) {\r\n if (!options)\r\n options = {};\r\n var fields = this.$type.fields,\r\n json = {};\r\n var keys;\r\n if (options.defaults) {\r\n keys = Object.keys(fields);\r\n } else\r\n keys = Object.keys(this);\r\n for (var i = 0, key; i < keys.length; ++i) {\r\n var field = fields[key = keys[i]],\r\n value = this[key];\r\n if (field) {\r\n if (field.repeated) {\r\n if (value && (value.length || options.defaults)) {\r\n var array = new Array(value.length);\r\n for (var j = 0, l = value.length; j < l; ++j)\r\n array[j] = field.jsonConvert(value[j], options);\r\n json[key] = array;\r\n }\r\n } else\r\n json[key] = field.jsonConvert(value, options);\r\n } else if (!options.fieldsOnly)\r\n json[key] = value;\r\n }\r\n return json;\r\n};\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(readerOrBuffer) {\r\n return this.$type.decode(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n return this.$type.decodeDelimited(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(32),\r\n util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object} [responseStream] Whether the response is streamed\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type\");\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType\");\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {Object} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream || undefined,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream || undefined,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\nfunction initNested() {\r\n if (!Type)\r\n Type = require(32);\r\n if (!Service)\r\n Service = require(30);\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @classdesc Reflected namespace and base class of all reflection objects containing nested objects.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\nutil.props(NamespacePrototype, {\r\n\r\n /**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name Namespace#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\n nestedArray: {\r\n get: function getNestedArray() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @param {string} name Namespace name\r\n * @param {Object} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.getNestedArray())\r\n };\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n throw TypeError(\"nested.\" + nestedName, \"JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n if (!nestedTypes)\r\n initNested();\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object\", nestedError);\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object\", \"an extension field when not part of a type\");\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n if (!Type)\r\n Type = require(32);\r\n if (!Service)\r\n Service = require(30);\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object\", \"a ReflectionObject\");\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path)) {\r\n json = path;\r\n path = undefined;\r\n }\r\n var ptr = this;\r\n if (path)\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolve() {\r\n var nested = this.getNestedArray(), i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n if (util.isString(path) && path.length)\r\n path = path.split(\".\");\r\n else if (!path.length)\r\n return null;\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.getRoot().lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found && path.length === 1 && (!filterType || found instanceof filterType) || found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name Namespace#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n if (!Type)\r\n Type = require(32);\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n if (!Service)\r\n Service = require(30);\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up enum\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(34);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options\", \"an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nutil.props(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function getRoot() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: ReflectionObjectPrototype.getFullName = function getFullName() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n var root = this.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className;\r\n var fullName = this.getFullName();\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17),\r\n util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames\", \"an Array\");\r\n\r\n /**\r\n * Upper cased name for getter/setter calls.\r\n * @type {string}\r\n */\r\n this.ucName = this.name.substring(0, 1).toUpperCase() + this.name.substring(1);\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nutil.prop(OneOfPrototype, \"fieldsArray\", {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n if (field.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n var index = this._fieldsArray.indexOf(field);\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n if (index > -1)\r\n this.oneof.splice(index, 1);\r\n if (field.parent)\r\n field.parent.remove(field);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nvar tokenize = require(31),\r\n Root = require(27),\r\n Type = require(32),\r\n Field = require(17),\r\n MapField = require(18),\r\n OneOf = require(23),\r\n Enum = require(16),\r\n Service = require(30),\r\n Method = require(20),\r\n types = require(33),\r\n util = require(34);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n root = new Root();\r\n options = root || {};\r\n } else if (!options)\r\n options = {};\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n if (!root)\r\n root = new Root();\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\r\n\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 0x1FFFFFFF;\r\n case \"0\": return 0;\r\n }\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n \r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (lower(type) === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new Field(name, id, type, rule, extend));\r\n if (field.repeated)\r\n field.setOption(\"packed\", isProto3, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new MapField(name, id, keyType, valueType));\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n var oneof = new OneOf(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var values = {};\r\n var enm = new Enum(name, values);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumField(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumField(parent, token) {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true);\r\n parent.values[name] = value;\r\n parseInlineOptions({}); // skips enum value options\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (!isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n name = name + \".\" + token;\r\n if (skip(\":\", true))\r\n setOption(parent, name, readValue(true));\r\n else\r\n parseOptionValue(parent, name);\r\n }\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n else\r\n parent[name] = value;\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n var name = token;\r\n var service = new Service(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n var st;\r\n if (skip(st = \"stream\", true))\r\n requestStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(st, true))\r\n responseStream = true;\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(36),\r\n ieee754 = require(1);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n if (util.Buffer) {\r\n if (!BufferReader)\r\n BufferReader = require(26);\r\n return new BufferReader(buffer);\r\n }\r\n return new Reader(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\nvar Reader = require(25);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(36);\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n if (!util.Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n util = require(34),\r\n common = require(13);\r\n\r\nvar parse; // cyclic\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {Object} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files. \r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {*} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (!parse)\r\n parse = require(24);\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n cb(err, root);\r\n }\r\n\r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n return;\r\n }\r\n if (!sync && !queued)\r\n finish(null, self);\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.indexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename) {\r\n return this.load(filename, SYNC);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.getFullName(), field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field && object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n }\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n }\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\nrpc.Service = require(29);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(34);\r\nvar EventEmitter = util.EventEmitter;\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @memberof rpc\r\n * @extends util.EventEmitter\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n */\r\nfunction Service(rpcImpl) {\r\n EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.$rpc = rpcImpl;\r\n}\r\n\r\n/** @alias rpc.Service.prototype */\r\nvar ServicePrototype = Service.prototype = Object.create(EventEmitter.prototype);\r\nServicePrototype.constructor = Service;\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nServicePrototype.end = function end(endedByRPC) {\r\n if (this.$rpc) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.$rpc(null, null, null);\r\n this.$rpc = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(20),\r\n util = require(34),\r\n rpc = require(28);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\nutil.props(ServicePrototype, {\r\n\r\n /**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\n methodsArray: {\r\n get: function getMethodsArray() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n }\r\n\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.getMethodsArray()) || {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolve() {\r\n var methods = this.getMethodsArray();\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method} method Reflected method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Uint8Array} [responseData] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {function(Method, Uint8Array, function)} rpcImpl RPC implementation ({@link RPCImpl|see})\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} Runtime RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl);\r\n this.getMethodsArray().forEach(function(method) {\r\n rpcService[util.lcFirst(method.name)] = function callVirtual(request, /* optional */ callback) {\r\n if (!rpcService.$rpc) // already ended?\r\n return;\r\n if (!request)\r\n throw util._TypeError(\"request\", \"not null\");\r\n method.resolve();\r\n var requestData;\r\n try {\r\n requestData = (requestDelimited ? method.resolvedRequestType.encodeDelimited(request) : method.resolvedRequestType.encode(request)).finish();\r\n } catch (err) {\r\n (typeof setImmediate === \"function\" ? setImmediate : setTimeout)(function() { callback(err); });\r\n return;\r\n }\r\n // Calls the custom RPC implementation with the reflected method and binary request data\r\n // and expects the rpc implementation to call its callback with the binary response data.\r\n rpcImpl(method, requestData, function(err, responseData) {\r\n if (err) {\r\n rpcService.emit(\"error\", err, method);\r\n return callback ? callback(err) : undefined;\r\n }\r\n if (responseData === null) {\r\n rpcService.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n var response;\r\n try {\r\n response = responseDelimited ? method.resolvedResponseType.decodeDelimited(responseData) : method.resolvedResponseType.decode(responseData);\r\n } catch (err2) {\r\n rpcService.emit(\"error\", err2, method);\r\n return callback ? callback(\"error\", err2) : undefined;\r\n }\r\n rpcService.emit(\"data\", response, method);\r\n return callback ? callback(null, response) : undefined;\r\n });\r\n };\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n case \"0\":\r\n return \"\\u0000\";\r\n default:\r\n return $1;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n */\r\n/**/\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n \r\n var offset = 0,\r\n length = source.length,\r\n line = 1;\r\n \r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n if (offset === length)\r\n return null;\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n line: function() { return line; },\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type; \r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(23),\r\n Field = require(17),\r\n Service = require(30),\r\n Class = require(12),\r\n Message = require(19),\r\n Reader = require(25),\r\n Writer = require(38),\r\n util = require(34);\r\n\r\nvar encoder, // might become cyclic\r\n decoder, // might become cyclic\r\n verifier; // cyclic\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached repeated fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._repeatedFieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nutil.props(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function getFieldsById() {\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Repeated fields of this message as an array for iteration.\r\n * @name Type#repeatedFieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n repeatedFieldsArray: {\r\n get: function getRepeatedFieldsArray() {\r\n return this._repeatedFieldsArray || (this._repeatedFieldsArray = this.getFieldsArray().filter(function(field) { return field.repeated; }));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function getOneofsArray() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function getCtor() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function setCtor(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw util._TypeError(\"ctor\", \"a Message constructor\");\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n if (json.fields)\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.getOneofsArray()),\r\n fields : Namespace.arrayToJSON(this.getFieldsArray().filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolve() {\r\n var fields = this.getFieldsArray(), i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.getOneofsArray(); i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n if (this.getFieldsById()[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n if (this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.message = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object|*} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new (this.getCtor())(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode}, {@link Type#decode} and {@link Type#verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n if (!encoder) {\r\n encoder = require(15);\r\n decoder = require(14);\r\n verifier = require(37);\r\n }\r\n this.encode = encoder(this).eof(this.getFullName() + \"$encode\", {\r\n Writer : Writer,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(this.getFullName() + \"$decode\", {\r\n Reader : Reader,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(this.getFullName() + \"$verify\", {\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(readerOrBuffer, length) {\r\n return this.setup().decode(readerOrBuffer, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n readerOrBuffer = readerOrBuffer instanceof Reader ? readerOrBuffer : Reader.create(readerOrBuffer);\r\n return this.decode(readerOrBuffer, readerOrBuffer.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(34);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\", // 14\r\n \"message\" // 15\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(36);\r\n\r\nutil.asPromise = require(2);\r\nutil.codegen = require(4);\r\nutil.EventEmitter = require(5);\r\nutil.extend = require(6);\r\nutil.fetch = require(7);\r\nutil.path = require(9);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n if (!object)\r\n return [];\r\n var names = Object.keys(object),\r\n length = names.length;\r\n var array = new Array(length);\r\n for (var i = 0; i < length; ++i)\r\n array[i] = object[names[i]];\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a type error.\r\n * @param {string} name Argument name\r\n * @param {string} [description=\"a string\"] Expected argument descripotion\r\n * @returns {TypeError} Created type error\r\n * @private\r\n */\r\nutil._TypeError = function(name, description) {\r\n return TypeError(name + \" must be \" + (description || \"a string\"));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object} dst Destination object\r\n * @param {Object} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) {\r\n if (src) {\r\n var keys = Object.keys(src);\r\n for (var i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n }\r\n return dst;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts a string to camel case notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.camelCase = function camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n};\r\n\r\n/**\r\n * Converts a string to underscore notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.underScore = function underScore(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return \"_\" + $1.toLowerCase(); });\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Converts the second character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number} [size=0] Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(size) {\r\n size = size || 0;\r\n return util.Buffer\r\n ? util.Buffer.allocUnsafe ? util.Buffer.allocUnsafe(size) : new util.Buffer(size)\r\n : new (typeof Uint8Array !== \"undefined\" ? Uint8Array : Array)(size);\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n Type = require(32),\r\n util = require(34);\r\n\r\nfunction invalid(field, expected) {\r\n return \"invalid value for field \" + field.getFullName() + \" (\" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected)\";\r\n}\r\n\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var type = field.type,\r\n rtype = field.resolvedType;\r\n if (!rtype && /32/.test(type)) gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n else if (!rtype && /64/.test(type)) gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n else if (type === \"float\" || type === \"double\") gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n else if (type === \"bool\") gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n else if (type === \"string\") gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n else if (type === \"bytes\") gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n else if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else if (field.resolvedType instanceof Type) gen\r\n (\"var r;\")\r\n (\"if(r=types[%d].verify(%s))\", fieldIndex, ref)\r\n (\"return r\");\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var keyType = field.keyType,\r\n rtype = field.resolvedKeyType;\r\n if (!rtype && /32/.test(keyType)) gen\r\n (\"if(!/^-?(?:0|[1-9]\\\\d*)$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n else if (!rtype && /64/.test(keyType)) gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9]\\\\d*))$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n else if (keyType === \"bool\") gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray();\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(m%s!==undefined){\", prop)\r\n (\"if(!util.isObject(m%s))\", prop)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(m%s)\", prop)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n /* istanbul ignore next */\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n /* istanbul ignore next */\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n /* istanbul ignore next */\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\nvar Writer = require(38);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(36);\r\n\r\nvar utf8 = util.utf8;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n// function load(filename:string, root:Root, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n/**\r\n * Named roots.\r\n * @name roots\r\n * @type {Object.}\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Parser\r\nprotobuf.tokenize = require(\"./tokenize\");\r\nprotobuf.parse = require(\"./parse\");\r\n\r\n// Serialization\r\nprotobuf.Writer = require(\"./writer\");\r\nprotobuf.BufferWriter = require(\"./writer_buffer\");\r\nprotobuf.Reader = require(\"./reader\");\r\nprotobuf.BufferReader = require(\"./reader_buffer\");\r\nprotobuf.encoder = require(\"./encoder\");\r\nprotobuf.decoder = require(\"./decoder\");\r\nprotobuf.verifier = require(\"./verifier\");\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(\"./object\");\r\nprotobuf.Namespace = require(\"./namespace\");\r\nprotobuf.Root = require(\"./root\");\r\nprotobuf.Enum = require(\"./enum\");\r\nprotobuf.Type = require(\"./type\");\r\nprotobuf.Field = require(\"./field\");\r\nprotobuf.OneOf = require(\"./oneof\");\r\nprotobuf.MapField = require(\"./mapfield\");\r\nprotobuf.Service = require(\"./service\");\r\nprotobuf.Method = require(\"./method\");\r\n\r\n// Runtime\r\nprotobuf.Class = require(\"./class\");\r\nprotobuf.Message = require(\"./message\");\r\n\r\n// Utility\r\nprotobuf.types = require(\"./types\");\r\nprotobuf.common = require(\"./common\");\r\nprotobuf.rpc = require(\"./rpc\");\r\nprotobuf.util = require(\"./util\");\r\nprotobuf.configure = configure;\r\n\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/dist/runtime/protobuf.js b/dist/runtime/protobuf.js index c9221b422..fceb0b4df 100644 --- a/dist/runtime/protobuf.js +++ b/dist/runtime/protobuf.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.3.0 (c) 2016 Daniel Wirtz - * Compiled Sun, 18 Dec 2016 17:54:03 UTC + * Compiled Sun, 18 Dec 2016 19:23:21 UTC * Licensed under the Apache License, Version 2.0 * see: https://github.com/dcodeIO/protobuf.js for details */ @@ -424,11 +424,11 @@ utf8.write = function(string, buffer, offset) { // Can be used as a drop-in replacement for the full library as it has the same general structure. var protobuf = exports; -var Writer = protobuf.Writer = require(10); +var Writer = protobuf.Writer = require(11); protobuf.BufferWriter = Writer.BufferWriter; var Reader = protobuf.Reader = require(7); protobuf.BufferReader = Reader.BufferReader; -protobuf.util = require(9); +protobuf.util = require(10); protobuf.roots = {}; protobuf.configure = configure; @@ -446,16 +446,19 @@ if (typeof define === "function" && define.amd) return protobuf; }); -},{"10":10,"7":7,"9":9}],7:[function(require,module,exports){ +},{"10":10,"11":11,"7":7}],7:[function(require,module,exports){ "use strict"; module.exports = Reader; -Reader.BufferReader = BufferReader; - -var util = require(9), +var util = require(10), ieee754 = require(1); + +var BufferReader; // cyclic + var LongBits = util.LongBits, utf8 = util.utf8; + +/* istanbul ignore next */ var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; function indexOutOfRange(reader, writeLength) { @@ -495,7 +498,12 @@ function Reader(buffer) { * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} */ Reader.create = function create(buffer) { - return new (util.Buffer ? BufferReader : Reader)(buffer); + if (util.Buffer) { + if (!BufferReader) + BufferReader = require(8); + return new BufferReader(buffer); + } + return new Reader(buffer); }; /** @alias Reader.prototype */ @@ -914,13 +922,43 @@ ReaderPrototype.finish = function finish(buffer) { return remain; }; +function configure() { + if (util.Long) { + ReaderPrototype.int64 = read_int64_long; + ReaderPrototype.uint64 = read_uint64_long; + ReaderPrototype.sint64 = read_sint64_long; + ReaderPrototype.fixed64 = read_fixed64_long; + ReaderPrototype.sfixed64 = read_sfixed64_long; + } else { + ReaderPrototype.int64 = read_int64_number; + ReaderPrototype.uint64 = read_uint64_number; + ReaderPrototype.sint64 = read_sint64_number; + ReaderPrototype.fixed64 = read_fixed64_number; + ReaderPrototype.sfixed64 = read_sfixed64_number; + } +} + +Reader._configure = configure; + +configure(); + +},{"1":1,"10":10,"8":8}],8:[function(require,module,exports){ +"use strict"; +module.exports = BufferReader; + +var Reader = require(7); +/** @alias BufferReader.prototype */ +var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); +BufferReaderPrototype.constructor = BufferReader; + +var util = require(10); + // One time function to initialize BufferReader with the now-known buffer implementation's slice method var initBufferReader = function() { - var Buffer = util.Buffer; - if (!Buffer) + if (!util.Buffer) throw Error("Buffer is not supported"); - BufferReaderPrototype._slice = Buffer.prototype.slice; - readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer + BufferReaderPrototype._slice = util.Buffer.prototype.slice; + readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer ? readStringBuffer_utf8Slice : readStringBuffer_toString; initBufferReader = false; @@ -939,35 +977,6 @@ function BufferReader(buffer) { Reader.call(this, buffer); } -/** @alias BufferReader.prototype */ -var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); - -BufferReaderPrototype.constructor = BufferReader; - -if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) -/** - * @override - */ -BufferReaderPrototype.float = function read_float_buffer() { - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - var value = this.buf.readFloatLE(this.pos, true); - this.pos += 4; - return value; -}; - -if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) -/** - * @override - */ -BufferReaderPrototype.double = function read_double_buffer() { - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - var value = this.buf.readDoubleLE(this.pos, true); - this.pos += 8; - return value; -}; - var readStringBuffer; function readStringBuffer_utf8Slice(buf, start, end) { @@ -982,13 +991,8 @@ function readStringBuffer_toString(buf, start, end) { * @override */ BufferReaderPrototype.string = function read_string_buffer() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - if (end > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - return readStringBuffer(this.buf, start, end); + var len = this.uint32(); // modifies pos + return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len)); }; /** @@ -1000,32 +1004,12 @@ BufferReaderPrototype.finish = function finish_buffer(buffer) { return remain; }; -function configure() { - if (util.Long) { - ReaderPrototype.int64 = read_int64_long; - ReaderPrototype.uint64 = read_uint64_long; - ReaderPrototype.sint64 = read_sint64_long; - ReaderPrototype.fixed64 = read_fixed64_long; - ReaderPrototype.sfixed64 = read_sfixed64_long; - } else { - ReaderPrototype.int64 = read_int64_number; - ReaderPrototype.uint64 = read_uint64_number; - ReaderPrototype.sint64 = read_sint64_number; - ReaderPrototype.fixed64 = read_fixed64_number; - ReaderPrototype.sfixed64 = read_sfixed64_number; - } -} - -Reader._configure = configure; - -configure(); - -},{"1":1,"9":9}],8:[function(require,module,exports){ +},{"10":10,"7":7}],9:[function(require,module,exports){ "use strict"; module.exports = LongBits; -var util = require(9); +var util = require(10); /** * Any compatible Long instance. @@ -1221,13 +1205,13 @@ LongBitsPrototype.length = function length() { return part2 < 1 << 7 ? 9 : 10; }; -},{"9":9}],9:[function(require,module,exports){ +},{"10":10}],10:[function(require,module,exports){ (function (global){ "use strict"; var util = exports; -util.LongBits = require(8); +util.LongBits = require(9); util.base64 = require(2); util.inquire = require(3); util.utf8 = require(5); @@ -1389,17 +1373,20 @@ util.emptyObject = Object.freeze({}); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"2":2,"3":3,"4":4,"5":5,"8":8}],10:[function(require,module,exports){ +},{"2":2,"3":3,"4":4,"5":5,"9":9}],11:[function(require,module,exports){ "use strict"; module.exports = Writer; -Writer.BufferWriter = BufferWriter; - -var util = require(9), +var util = require(10), ieee754 = require(1); + +var BufferWriter; // cyclic + var LongBits = util.LongBits, base64 = util.base64, utf8 = util.utf8; + +/* istanbul ignore next */ var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; /** @@ -1442,6 +1429,7 @@ function Op(fn, len, val) { Writer.Op = Op; +/* istanbul ignore next */ function noop() {} // eslint-disable-line no-empty-function /** @@ -1525,7 +1513,12 @@ function Writer() { * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} */ Writer.create = function create() { - return new (util.Buffer ? BufferWriter : Writer); + if (util.Buffer) { + if (!BufferWriter) + BufferWriter = require(12); + return new BufferWriter(); + } + return new Writer(); }; /** @@ -1539,6 +1532,7 @@ Writer.alloc = function alloc(size) { // Use Uint8Array buffer pool in the browser, just like node does with buffers if (ArrayImpl !== Array) + /* istanbul ignore next */ Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice); /** @alias Writer.prototype */ @@ -1712,6 +1706,7 @@ var writeFloat = typeof Float32Array !== "undefined" f8b = new Uint8Array(f32.buffer); f32[0] = -0; return f8b[3] // already le? + /* istanbul ignore next */ ? function writeFloat_f32(val, buf, pos) { f32[0] = val; buf[pos++] = f8b[0]; @@ -1727,6 +1722,7 @@ var writeFloat = typeof Float32Array !== "undefined" buf[pos ] = f8b[0]; }; })() + /* istanbul ignore next */ : function writeFloat_ieee754(val, buf, pos) { ieee754.write(buf, val, pos, false, 23, 4); }; @@ -1747,6 +1743,7 @@ var writeDouble = typeof Float64Array !== "undefined" f8b = new Uint8Array(f64.buffer); f64[0] = -0; return f8b[7] // already le? + /* istanbul ignore next */ ? function writeDouble_f64(val, buf, pos) { f64[0] = val; buf[pos++] = f8b[0]; @@ -1770,6 +1767,7 @@ var writeDouble = typeof Float64Array !== "undefined" buf[pos ] = f8b[0]; }; })() + /* istanbul ignore next */ : function writeDouble_ieee754(val, buf, pos) { ieee754.write(buf, val, pos, false, 52, 8); }; @@ -1788,6 +1786,7 @@ var writeBytes = ArrayImpl.prototype.set ? function writeBytes_set(val, buf, pos) { buf.set(val, pos); } + /* istanbul ignore next */ : function writeBytes_for(val, buf, pos) { for (var i = 0; i < val.length; ++i) buf[pos + i] = val[i]; @@ -1819,6 +1818,7 @@ WriterPrototype.string = function write_string(value) { var len = utf8.length(value); return len ? this.uint32(len).push(utf8.write, len, value) + /* istanbul ignore next */ : this.push(writeByte, 1, 0); }; @@ -1887,10 +1887,22 @@ WriterPrototype.finish = function finish() { return buf; }; +},{"1":1,"10":10,"12":12}],12:[function(require,module,exports){ +"use strict"; +module.exports = BufferWriter; + +var Writer = require(11); +/** @alias BufferWriter.prototype */ +var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); +BufferWriterPrototype.constructor = BufferWriter; + +var util = require(10); + +var utf8 = util.utf8; + /** * Constructs a new buffer writer instance. * @classdesc Wire format writer using node buffers. - * @exports BufferWriter * @extends Writer * @constructor */ @@ -1910,37 +1922,8 @@ BufferWriter.alloc = function alloc_buffer(size) { return BufferWriter.alloc(size); }; -/** @alias BufferWriter.prototype */ -var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); -BufferWriterPrototype.constructor = BufferWriter; - -function writeFloatBuffer(val, buf, pos) { - buf.writeFloatLE(val, pos, true); -} - -if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) -/** - * @override - */ -BufferWriterPrototype.float = function write_float_buffer(value) { - return this.push(writeFloatBuffer, 4, value); -}; - -function writeDoubleBuffer(val, buf, pos) { - buf.writeDoubleLE(val, pos, true); -} - -if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) -/** - * @override - */ -BufferWriterPrototype.double = function write_double_buffer(value) { - return this.push(writeDoubleBuffer, 8, value); -}; - function writeBytesBuffer(val, buf, pos) { - if (val.length) - val.copy(buf, pos, 0, val.length); + val.copy(buf, pos, 0, val.length); } var Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); }; @@ -1952,9 +1935,10 @@ BufferWriterPrototype.bytes = function write_bytes_buffer(value) { if (typeof value === "string") value = Buffer_from(value, "base64"); var len = value.length >>> 0; - return len - ? this.uint32(len).push(writeBytesBuffer, len, value) - : this.push(writeByte, 1, 0); + this.uint32(len); + if (len) + this.push(writeBytesBuffer, len, value); + return this; }; var writeStringBuffer = (function() { // eslint-disable-line wrap-iife @@ -1983,12 +1967,13 @@ BufferWriterPrototype.string = function write_string_buffer(value) { var len = value.length < 40 ? utf8.length(value) : util.Buffer.byteLength(value); - return len - ? this.uint32(len).push(writeStringBuffer, len, value) - : this.push(writeByte, 1, 0); + this.uint32(len); + if (len) + this.push(writeStringBuffer, len, value); + return this; }; -},{"1":1,"9":9}]},{},[6]) +},{"10":10,"11":11}]},{},[6]) //# sourceMappingURL=protobuf.js.map diff --git a/dist/runtime/protobuf.js.map b/dist/runtime/protobuf.js.map index b893d7b7e..04370bd55 100644 --- a/dist/runtime/protobuf.js.map +++ b/dist/runtime/protobuf.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","runtime","src/reader.js","src/util/longbits.js","src/util/runtime.js","src/writer.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// This file exports just the bare minimum required to work with statically generated code.\r\n// Can be used as a drop-in replacement for the full library as it has the same general structure.\r\nvar protobuf = exports;\r\n\r\nvar Writer = protobuf.Writer = require(10);\r\nprotobuf.BufferWriter = Writer.BufferWriter;\r\nvar Reader = protobuf.Reader = require(7);\r\nprotobuf.BufferReader = Reader.BufferReader;\r\nprotobuf.util = require(9);\r\nprotobuf.roots = {};\r\nprotobuf.configure = configure;\r\n\r\nfunction configure() {\r\n Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nReader.BufferReader = BufferReader;\r\n\r\nvar util = require(9),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n return new (util.Buffer ? BufferReader : Reader)(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n var Buffer = util.Buffer;\r\n if (!Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = Buffer.prototype.slice;\r\n readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\n\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.float = function read_float_buffer() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = this.buf.readFloatLE(this.pos, true);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.double = function read_double_buffer() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n var value = this.buf.readDoubleLE(this.pos, true);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return readStringBuffer(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(9);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nWriter.BufferWriter = BufferWriter;\r\n\r\nvar util = require(9),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {*} val Value to write\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, len, val) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {Writer.Op|undefined}\r\n */\r\n // this.next = undefined;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val; // type varies\r\n}\r\n\r\nWriter.Op = Op;\r\n\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = writer.states;\r\n}\r\n\r\nWriter.State = State;\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = function create() {\r\n return new (util.Buffer ? BufferWriter : Writer);\r\n};\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nWriter.alloc = function alloc(size) {\r\n return new ArrayImpl(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (ArrayImpl !== Array)\r\n Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n this.tail = this.tail.next = new Op(fn, len, val);\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @exports BufferWriter\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nfunction writeFloatBuffer(val, buf, pos) {\r\n buf.writeFloatLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.float = function write_float_buffer(value) {\r\n return this.push(writeFloatBuffer, 4, value);\r\n};\r\n\r\nfunction writeDoubleBuffer(val, buf, pos) {\r\n buf.writeDoubleLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.double = function write_double_buffer(value) {\r\n return this.push(writeDoubleBuffer, 8, value);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n if (val.length)\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n return len\r\n ? this.uint32(len).push(writeBytesBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n return len\r\n ? this.uint32(len).push(writeStringBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","runtime","src/reader.js","src/reader_buffer.js","src/util/longbits.js","src/util/runtime.js","src/writer.js","src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// This file exports just the bare minimum required to work with statically generated code.\r\n// Can be used as a drop-in replacement for the full library as it has the same general structure.\r\nvar protobuf = exports;\r\n\r\nvar Writer = protobuf.Writer = require(11);\r\nprotobuf.BufferWriter = Writer.BufferWriter;\r\nvar Reader = protobuf.Reader = require(7);\r\nprotobuf.BufferReader = Reader.BufferReader;\r\nprotobuf.util = require(10);\r\nprotobuf.roots = {};\r\nprotobuf.configure = configure;\r\n\r\nfunction configure() {\r\n Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(10),\r\n ieee754 = require(1);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n if (util.Buffer) {\r\n if (!BufferReader)\r\n BufferReader = require(8);\r\n return new BufferReader(buffer);\r\n }\r\n return new Reader(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\nvar Reader = require(7);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(10);\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n if (!util.Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(10);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nvar util = require(10),\r\n ieee754 = require(1);\r\n\r\nvar BufferWriter; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {*} val Value to write\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, len, val) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {Writer.Op|undefined}\r\n */\r\n // this.next = undefined;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val; // type varies\r\n}\r\n\r\nWriter.Op = Op;\r\n\r\n/* istanbul ignore next */\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = writer.states;\r\n}\r\n\r\nWriter.State = State;\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = function create() {\r\n if (util.Buffer) {\r\n if (!BufferWriter)\r\n BufferWriter = require(12);\r\n return new BufferWriter();\r\n }\r\n return new Writer();\r\n};\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nWriter.alloc = function alloc(size) {\r\n return new ArrayImpl(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (ArrayImpl !== Array)\r\n /* istanbul ignore next */\r\n Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n this.tail = this.tail.next = new Op(fn, len, val);\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n /* istanbul ignore next */\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n /* istanbul ignore next */\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n /* istanbul ignore next */\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\nvar Writer = require(11);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(10);\r\n\r\nvar utf8 = util.utf8;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/dist/runtime/protobuf.min.js b/dist/runtime/protobuf.min.js index d5512ddcb..a15311702 100644 --- a/dist/runtime/protobuf.min.js +++ b/dist/runtime/protobuf.min.js @@ -1,8 +1,8 @@ /*! * protobuf.js v6.3.0 (c) 2016 Daniel Wirtz - * Compiled Sun, 18 Dec 2016 17:54:03 UTC + * Compiled Sun, 18 Dec 2016 19:23:21 UTC * Licensed under the Apache License, Version 2.0 * see: https://github.com/dcodeIO/protobuf.js for details */ -!function t(i,n,r){function e(s,u){if(!n[s]){if(!i[s]){var h="function"==typeof require&&require;if(!u&&h)return h(s,!0);if(o)return o(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var a=n[s]={exports:{}};i[s][0].call(a.exports,function(t){var n=i[s][1][t];return e(n?n:t)},a,a.exports,t,i,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s>1,a=-7,l=n?0:e-1,c=n?1:-1,p=t[i+l];for(l+=c,o=p&(1<<-a)-1,p>>=-a,a+=u;a>0;o=256*o+t[i+l],l+=c,a-=8);for(s=o&(1<<-a)-1,o>>=-a,a+=r;a>0;s=256*s+t[i+l],l+=c,a-=8);if(0===o)o=1-f;else{if(o===h)return s?NaN:(p?-1:1)*(1/0);s+=Math.pow(2,r),o-=f}return(p?-1:1)*s*Math.pow(2,o-r)},n.write=function(t,i,n,r,e,o){var s,u,h,f=8*o-e-1,a=(1<>1,c=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?o-1:0,d=r?-1:1,b=i<0||0===i&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(u=isNaN(i)?1:0,s=a):(s=Math.floor(Math.log(i)/Math.LN2),i*(h=Math.pow(2,-s))<1&&(s--,h*=2),i+=s+l>=1?c/h:c*Math.pow(2,1-l),i*h>=2&&(s++,h/=2),s+l>=a?(u=0,s=a):s+l>=1?(u=(i*h-1)*Math.pow(2,e),s+=l):(u=i*Math.pow(2,l-1)*Math.pow(2,e),s=0));e>=8;t[n+p]=255&u,p+=d,u/=256,e-=8);for(s=s<0;t[n+p]=255&s,p+=d,s/=256,f-=8);t[n+p-d]|=128*b}},{}],2:[function(t,i,n){"use strict";var r=n;r.length=function(t){var i=t.length;if(!i)return 0;for(var n=0;--i%4>1&&"="===t.charAt(i);)++n;return Math.ceil(3*t.length)/4-n};for(var e=new Array(64),o=new Array(123),s=0;s<64;)o[e[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;r.encode=function(t,i,n){for(var r,o=[],s=0,u=0;i>2],r=(3&h)<<4,u=1;break;case 1:o[s++]=e[r|h>>4],r=(15&h)<<2,u=2;break;case 2:o[s++]=e[r|h>>6],o[s++]=e[63&h],u=0}}return u&&(o[s++]=e[r],o[s]=61,1===u&&(o[s+1]=61)),String.fromCharCode.apply(String,o)};var u="invalid encoding";r.decode=function(t,i,n){for(var r,e=n,s=0,h=0;h1)break;if(void 0===(f=o[f]))throw Error(u);switch(s){case 0:r=f,s=1;break;case 1:i[n++]=r<<2|(48&f)>>4,r=f,s=2;break;case 2:i[n++]=(15&r)<<4|(60&f)>>2,r=f,s=3;break;case 3:i[n++]=(3&r)<<6|f,s=0}}if(1===s)throw Error(u);return n-e}},{}],3:[function(require,module,exports){"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}module.exports=inquire},{}],4:[function(t,i,n){"use strict";function r(t,i,n){var r=n||8192,e=r>>>1,o=null,s=r;return function(n){if(n<1||n>e)return t(n);s+n>r&&(o=t(r),s=0);var u=i.call(o,s,s+=n);return 7&s&&(s=(7|s)+1),u}}i.exports=r},{}],5:[function(t,i,n){"use strict";var r=n;r.length=function(t){for(var i=0,n=0,r=0;r191&&e<224?s[u++]=(31&e)<<6|63&t[i++]:e>239&&e<365?(e=((7&e)<<18|(63&t[i++])<<12|(63&t[i++])<<6|63&t[i++])-65536,s[u++]=55296+(e>>10),s[u++]=56320+(1023&e)):s[u++]=(15&e)<<12|(63&t[i++])<<6|63&t[i++],u>8191&&(o.push(String.fromCharCode.apply(String,s)),u=0);return u&&o.push(String.fromCharCode.apply(String,s.slice(0,u))),o.join("")},r.write=function(t,i,n){for(var r,e,o=n,s=0;s>6|192,i[n++]=63&r|128):55296===(64512&r)&&56320===(64512&(e=t.charCodeAt(s+1)))?(r=65536+((1023&r)<<10)+(1023&e),++s,i[n++]=r>>18|240,i[n++]=r>>12&63|128,i[n++]=r>>6&63|128,i[n++]=63&r|128):(i[n++]=r>>12|224,i[n++]=r>>6&63|128,i[n++]=63&r|128);return n-o}},{}],6:[function(t,i,n){function r(){s.a()}var e=n,o=e.Writer=t(10);e.BufferWriter=o.BufferWriter;var s=e.Reader=t(7);e.BufferReader=s.BufferReader,e.util=t(9),e.roots={},e.configure=r,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&(e.util.Long=t,r()),e})},{10:10,7:7,9:9}],7:[function(t,i,n){"use strict";function r(t,i){return RangeError("index out of range: "+t.pos+" + "+(i||1)+" > "+t.len)}function e(t){this.buf=t,this.pos=0,this.len=t.length}function o(){var t=new x(0,0),i=0;if(this.len-this.pos>4){for(i=0;i<4;++i)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}else{for(i=0;i<4;++i){if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t}if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}if(this.len-this.pos>4){for(i=0;i<5;++i)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*i+3)>>>0,this.buf[this.pos++]<128)return t}else for(i=0;i<5;++i){if(this.pos>=this.len)throw r(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*i+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function s(){return o.call(this).toLong()}function u(){return o.call(this).toNumber()}function h(){return o.call(this).toLong(!0)}function f(){return o.call(this).toNumber(!0)}function a(){return o.call(this).zzDecode().toLong()}function l(){return o.call(this).zzDecode().toNumber()}function c(t,i){return t[i-4]|t[i-3]<<8|t[i-2]<<16|t[i-1]<<24}function p(){if(this.pos+8>this.len)throw r(this,8);return new x(c(this.buf,this.pos+=4),c(this.buf,this.pos+=4))}function d(){return p.call(this).toLong(!0)}function b(){return p.call(this).toNumber(!0)}function g(){return p.call(this).zzDecode().toLong()}function v(){return p.call(this).zzDecode().toNumber()}function y(t){C&&C(),e.call(this,t)}function w(t,i,n){return t.utf8Slice(i,n)}function m(t,i,n){return t.toString("utf8",i,n)}function B(){A.Long?(k.int64=s,k.uint64=h,k.sint64=a,k.fixed64=d,k.sfixed64=g):(k.int64=u,k.uint64=f,k.sint64=l,k.fixed64=b,k.sfixed64=v)}i.exports=e,e.BufferReader=y;var A=t(9),L=t(1),x=A.LongBits,N=A.utf8,z="undefined"!=typeof Uint8Array?Uint8Array:Array;e.create=function(t){return new(A.Buffer?y:e)(t)};var k=e.prototype;k.b=z.prototype.subarray||z.prototype.slice;var E=k.uint32=function(){var t=(127&this.buf[this.pos])>>>0;if(this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return t;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return t};E.call({buf:[255,255,255,255,15],pos:0,len:5}),k.int32=function(){return 0|this.uint32()},k.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},k.bool=function(){return 0!==this.uint32()},k.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return c(this.buf,this.pos+=4)},k.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var F="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[3]?function(n,r){return i[0]=n[r],i[1]=n[r+1],i[2]=n[r+2],i[3]=n[r+3],t[0]}:function(n,r){return i[3]=n[r],i[2]=n[r+1],i[1]=n[r+2],i[0]=n[r+3],t[0]}}():function(t,i){return L.read(t,i,!1,23,4)};k.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=F(this.buf,this.pos);return this.pos+=4,t};var M="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[7]?function(n,r){return i[0]=n[r],i[1]=n[r+1],i[2]=n[r+2],i[3]=n[r+3],i[4]=n[r+4],i[5]=n[r+5],i[6]=n[r+6],i[7]=n[r+7],t[0]}:function(n,r){return i[7]=n[r],i[6]=n[r+1],i[5]=n[r+2],i[4]=n[r+3],i[3]=n[r+4],i[2]=n[r+5],i[1]=n[r+6],i[0]=n[r+7],t[0]}}():function(t,i){return L.read(t,i,!1,52,8)};k.double=function(){if(this.pos+8>this.len)throw r(this,4);var t=M(this.buf,this.pos);return this.pos+=8,t},k.bytes=function(){var t=this.uint32(),i=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,i===n?new this.buf.constructor(0):this.b.call(this.buf,i,n)},k.string=function(){var t=this.bytes();return N.read(t,0,t.length)},k.skip=function(t){if(void 0===t){do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++])}else{if(this.pos+t>this.len)throw r(this,t);this.pos+=t}return this},k.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(t=7&this.uint32(),4===t)break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type: "+t)}return this},k.reset=function(t){return t?(this.buf=t,this.len=t.length):(this.buf=null,this.len=0),this.pos=0,this},k.finish=function(t){var i=this.pos?this.b.call(this.buf,this.pos):this.buf;return this.reset(t),i};var C=function(){var t=A.Buffer;if(!t)throw Error("Buffer is not supported");O.b=t.prototype.slice,S=t.prototype.utf8Slice?w:m,C=!1},O=y.prototype=Object.create(e.prototype);O.constructor=y,"undefined"==typeof Float32Array&&(O.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=this.buf.readFloatLE(this.pos,!0);return this.pos+=4,t}),"undefined"==typeof Float64Array&&(O.double=function(){if(this.pos+8>this.len)throw r(this,8);var t=this.buf.readDoubleLE(this.pos,!0);return this.pos+=8,t});var S;O.string=function(){var t=this.uint32(),i=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,S(this.buf,i,n)},O.finish=function(t){var i=this.pos?this.buf.slice(this.pos):this.buf;return this.reset(t),i},e.a=B,B()},{1:1,9:9}],8:[function(t,i,n){"use strict";function r(t,i){this.lo=t,this.hi=i}i.exports=r;var e=t(9),o=r.prototype,s=r.zero=new r(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1},r.fromNumber=function(t){if(0===t)return s;var i=t<0;t=Math.abs(t);var n=t>>>0,e=(t-n)/4294967296>>>0;return i&&(e=~e>>>0,n=~n>>>0,++n>4294967295&&(n=0,++e>4294967295&&(e=0))),new r(n,e)},r.from=function(t){if("number"==typeof t)return r.fromNumber(t);if("string"==typeof t){if(!e.Long)return r.fromNumber(parseInt(t,10));t=e.Long.fromString(t)}return t.low||t.high?new r(t.low>>>0,t.high>>>0):s},o.toNumber=function(t){return!t&&this.hi>>>31?(this.lo=~this.lo+1>>>0,this.hi=~this.hi>>>0,this.lo||(this.hi=this.hi+1>>>0),-(this.lo+4294967296*this.hi)):this.lo+4294967296*this.hi},o.toLong=function(t){return e.Long?new e.Long(this.lo,this.hi,t):{low:this.lo,high:this.hi,unsigned:Boolean(t)}};var u=String.prototype.charCodeAt;r.fromHash=function(t){return new r((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},o.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24&255,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24&255)},o.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},o.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},o.length=function(){var t=this.lo,i=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===i?t<16384?t<128?1:2:t<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:n<128?9:10}},{9:9}],9:[function(t,i,n){(function(i){"use strict";var r=n;r.LongBits=t(8),r.base64=t(2),r.inquire=t(3),r.utf8=t(5),r.pool=t(4),r.isNode=Boolean(i.process&&i.process.versions&&i.process.versions.node),r.Buffer=(r.Buffer=r.inquire("buffer"))&&r.Buffer.Buffer||null,r.Long=i.dcodeIO&&i.dcodeIO.Long||r.inquire("long"),r.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},r.isString=function(t){return"string"==typeof t||t instanceof String},r.isObject=function(t){return Boolean(t&&"object"==typeof t)},r.longToHash=function(t){return t?r.LongBits.from(t).toHash():"\0\0\0\0\0\0\0\0"},r.longFromHash=function(t,i){var n=r.LongBits.fromHash(t);return r.Long?r.Long.fromBits(n.lo,n.hi,i):n.toNumber(Boolean(i))},r.longNeq=function(t,i){return"number"==typeof t?"number"==typeof i?t!==i:(t=r.LongBits.fromNumber(t)).lo!==i.low||t.hi!==i.high:"number"==typeof i?(i=r.LongBits.fromNumber(i)).lo!==t.low||i.hi!==t.high:t.low!==i.low||t.high!==i.high},r.longNe=function(t,i,n){if("object"==typeof t)return t.low!==i||t.high!==n;var e=r.LongBits.from(t);return e.lo!==i||e.hi!==n},r.props=function(t,i){Object.keys(i).forEach(function(n){r.prop(t,n,i[n])})},r.prop=function(t,i,n){var r=!-[1],e=i.substring(0,1).toUpperCase()+i.substring(1);n.get&&(t["get"+e]=n.get),n.set&&(t["set"+e]=r?function(t){n.set.call(this,t),this[i]=t}:n.set),r?void 0!==n.value&&(t[i]=n.value):Object.defineProperty(t,i,n)},r.emptyArray=Object.freeze([]),r.emptyObject=Object.freeze({})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2,3:3,4:4,5:5,8:8}],10:[function(t,i,n){"use strict";function r(t,i,n){this.fn=t,this.len=i,this.val=n}function e(){}function o(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function s(){this.len=0,this.head=new r(e,0,0),this.tail=this.head,this.states=null}function u(t,i,n){i[n]=255&t}function h(t,i,n){for(;t>127;)i[n++]=127&t|128,t>>>=7;i[n]=t}function f(t,i,n){for(;t.hi;)i[n++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)i[n++]=127&t.lo|128,t.lo=t.lo>>>7;i[n++]=t.lo}function a(t,i,n){i[n++]=255&t,i[n++]=t>>>8&255,i[n++]=t>>>16&255,i[n]=t>>>24}function l(){s.call(this)}function c(t,i,n){i.writeFloatLE(t,n,!0)}function p(t,i,n){i.writeDoubleLE(t,n,!0)}function d(t,i,n){t.length&&t.copy(i,n,0,t.length)}i.exports=s,s.BufferWriter=l;var b=t(9),g=t(1),v=b.LongBits,y=b.base64,w=b.utf8,m="undefined"!=typeof Uint8Array?Uint8Array:Array;s.Op=r,s.State=o,s.create=function(){return new(b.Buffer?l:s)},s.alloc=function(t){return new m(t)},m!==Array&&(s.alloc=b.pool(s.alloc,m.prototype.subarray||m.prototype.slice));var B=s.prototype;B.push=function(t,i,n){return this.tail=this.tail.next=new r(t,i,n),this.len+=i,this},B.uint32=function(t){return t>>>=0,this.push(h,t<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)},B.int32=function(t){return t<0?this.push(f,10,v.fromNumber(t)):this.uint32(t)},B.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},B.uint64=function(t){var i=v.from(t);return this.push(f,i.length(),i)},B.int64=B.uint64,B.sint64=function(t){var i=v.from(t).zzEncode();return this.push(f,i.length(),i)},B.bool=function(t){return this.push(u,1,t?1:0)},B.fixed32=function(t){return this.push(a,4,t>>>0)},B.sfixed32=function(t){return this.push(a,4,t<<1^t>>31)},B.fixed64=function(t){var i=v.from(t);return this.push(a,4,i.lo).push(a,4,i.hi)},B.sfixed64=function(t){var i=v.from(t).zzEncode();return this.push(a,4,i.lo).push(a,4,i.hi)};var A="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[3]?function(n,r,e){t[0]=n,r[e++]=i[0],r[e++]=i[1],r[e++]=i[2],r[e]=i[3]}:function(n,r,e){t[0]=n,r[e++]=i[3],r[e++]=i[2],r[e++]=i[1],r[e]=i[0]}}():function(t,i,n){g.write(i,t,n,!1,23,4)};B.float=function(t){return this.push(A,4,t)};var L="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[7]?function(n,r,e){t[0]=n,r[e++]=i[0],r[e++]=i[1],r[e++]=i[2],r[e++]=i[3],r[e++]=i[4],r[e++]=i[5],r[e++]=i[6],r[e]=i[7]}:function(n,r,e){t[0]=n,r[e++]=i[7],r[e++]=i[6],r[e++]=i[5],r[e++]=i[4],r[e++]=i[3],r[e++]=i[2],r[e++]=i[1],r[e]=i[0]}}():function(t,i,n){g.write(i,t,n,!1,52,8)};B.double=function(t){return this.push(L,8,t)};var x=m.prototype.set?function(t,i,n){i.set(t,n)}:function(t,i,n){for(var r=0;r>>0;if("string"==typeof t&&i){var n=s.alloc(i=y.length(t));y.decode(t,n,0),t=n}return i?this.uint32(i).push(x,i,t):this.push(u,1,0)},B.string=function(t){var i=w.length(t);return i?this.uint32(i).push(w.write,i,t):this.push(u,1,0)},B.fork=function(){return this.states=new o(this),this.head=this.tail=new r(e,0,0),this.len=0,this},B.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(e,0,0),this.len=0),this},B.ldelim=function(t){var i=this.head,n=this.tail,r=this.len;return this.reset(),"number"==typeof t&&this.uint32((t<<3|2)>>>0),this.uint32(r),this.tail.next=i.next,this.tail=n,this.len+=r,this},B.finish=function(){for(var t=this.head.next,i=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,i,n),n+=t.len,t=t.next;return this.head=this.tail=null,i},l.alloc=function(t){return l.alloc=b.Buffer.allocUnsafe?b.Buffer.allocUnsafe:function(t){return new b.Buffer(t)},l.alloc(t)};var N=l.prototype=Object.create(s.prototype);N.constructor=l,"undefined"==typeof Float32Array&&(N.float=function(t){return this.push(c,4,t)}),"undefined"==typeof Float64Array&&(N.double=function(t){return this.push(p,8,t)});var z=b.Buffer&&b.Buffer.from||function(t,i){return new b.Buffer(t,i)};N.bytes=function(t){"string"==typeof t&&(t=z(t,"base64"));var i=t.length>>>0;return i?this.uint32(i).push(d,i,t):this.push(u,1,0)};var k=function(){return b.Buffer&&b.Buffer.prototype.utf8Write?function(t,i,n){t.length<40?w.write(t,i,n):i.utf8Write(t,n)}:function(t,i,n){t.length<40?w.write(t,i,n):i.write(t,n)}}();N.string=function(t){var i=t.length<40?w.length(t):b.Buffer.byteLength(t);return i?this.uint32(i).push(k,i,t):this.push(u,1,0)}},{1:1,9:9}]},{},[6]); +!function t(i,n,r){function e(s,u){if(!n[s]){if(!i[s]){var h="function"==typeof require&&require;if(!u&&h)return h(s,!0);if(o)return o(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var a=n[s]={exports:{}};i[s][0].call(a.exports,function(t){var n=i[s][1][t];return e(n?n:t)},a,a.exports,t,i,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s>1,a=-7,l=n?0:e-1,c=n?1:-1,p=t[i+l];for(l+=c,o=p&(1<<-a)-1,p>>=-a,a+=u;a>0;o=256*o+t[i+l],l+=c,a-=8);for(s=o&(1<<-a)-1,o>>=-a,a+=r;a>0;s=256*s+t[i+l],l+=c,a-=8);if(0===o)o=1-f;else{if(o===h)return s?NaN:(p?-1:1)*(1/0);s+=Math.pow(2,r),o-=f}return(p?-1:1)*s*Math.pow(2,o-r)},n.write=function(t,i,n,r,e,o){var s,u,h,f=8*o-e-1,a=(1<>1,c=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?o-1:0,b=r?-1:1,d=i<0||0===i&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(u=isNaN(i)?1:0,s=a):(s=Math.floor(Math.log(i)/Math.LN2),i*(h=Math.pow(2,-s))<1&&(s--,h*=2),i+=s+l>=1?c/h:c*Math.pow(2,1-l),i*h>=2&&(s++,h/=2),s+l>=a?(u=0,s=a):s+l>=1?(u=(i*h-1)*Math.pow(2,e),s+=l):(u=i*Math.pow(2,l-1)*Math.pow(2,e),s=0));e>=8;t[n+p]=255&u,p+=b,u/=256,e-=8);for(s=s<0;t[n+p]=255&s,p+=b,s/=256,f-=8);t[n+p-b]|=128*d}},{}],2:[function(t,i,n){"use strict";var r=n;r.length=function(t){var i=t.length;if(!i)return 0;for(var n=0;--i%4>1&&"="===t.charAt(i);)++n;return Math.ceil(3*t.length)/4-n};for(var e=new Array(64),o=new Array(123),s=0;s<64;)o[e[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;r.encode=function(t,i,n){for(var r,o=[],s=0,u=0;i>2],r=(3&h)<<4,u=1;break;case 1:o[s++]=e[r|h>>4],r=(15&h)<<2,u=2;break;case 2:o[s++]=e[r|h>>6],o[s++]=e[63&h],u=0}}return u&&(o[s++]=e[r],o[s]=61,1===u&&(o[s+1]=61)),String.fromCharCode.apply(String,o)};var u="invalid encoding";r.decode=function(t,i,n){for(var r,e=n,s=0,h=0;h1)break;if(void 0===(f=o[f]))throw Error(u);switch(s){case 0:r=f,s=1;break;case 1:i[n++]=r<<2|(48&f)>>4,r=f,s=2;break;case 2:i[n++]=(15&r)<<4|(60&f)>>2,r=f,s=3;break;case 3:i[n++]=(3&r)<<6|f,s=0}}if(1===s)throw Error(u);return n-e}},{}],3:[function(require,module,exports){"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}module.exports=inquire},{}],4:[function(t,i,n){"use strict";function r(t,i,n){var r=n||8192,e=r>>>1,o=null,s=r;return function(n){if(n<1||n>e)return t(n);s+n>r&&(o=t(r),s=0);var u=i.call(o,s,s+=n);return 7&s&&(s=(7|s)+1),u}}i.exports=r},{}],5:[function(t,i,n){"use strict";var r=n;r.length=function(t){for(var i=0,n=0,r=0;r191&&e<224?s[u++]=(31&e)<<6|63&t[i++]:e>239&&e<365?(e=((7&e)<<18|(63&t[i++])<<12|(63&t[i++])<<6|63&t[i++])-65536,s[u++]=55296+(e>>10),s[u++]=56320+(1023&e)):s[u++]=(15&e)<<12|(63&t[i++])<<6|63&t[i++],u>8191&&(o.push(String.fromCharCode.apply(String,s)),u=0);return u&&o.push(String.fromCharCode.apply(String,s.slice(0,u))),o.join("")},r.write=function(t,i,n){for(var r,e,o=n,s=0;s>6|192,i[n++]=63&r|128):55296===(64512&r)&&56320===(64512&(e=t.charCodeAt(s+1)))?(r=65536+((1023&r)<<10)+(1023&e),++s,i[n++]=r>>18|240,i[n++]=r>>12&63|128,i[n++]=r>>6&63|128,i[n++]=63&r|128):(i[n++]=r>>12|224,i[n++]=r>>6&63|128,i[n++]=63&r|128);return n-o}},{}],6:[function(t,i,n){function r(){s.a()}var e=n,o=e.Writer=t(11);e.BufferWriter=o.BufferWriter;var s=e.Reader=t(7);e.BufferReader=s.BufferReader,e.util=t(10),e.roots={},e.configure=r,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&(e.util.Long=t,r()),e})},{10:10,11:11,7:7}],7:[function(t,i,n){"use strict";function r(t,i){return RangeError("index out of range: "+t.pos+" + "+(i||1)+" > "+t.len)}function e(t){this.buf=t,this.pos=0,this.len=t.length}function o(){var t=new x(0,0),i=0;if(this.len-this.pos>4){for(i=0;i<4;++i)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}else{for(i=0;i<4;++i){if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*i)>>>0,this.buf[this.pos++]<128)return t}if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t}if(this.len-this.pos>4){for(i=0;i<5;++i)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*i+3)>>>0,this.buf[this.pos++]<128)return t}else for(i=0;i<5;++i){if(this.pos>=this.len)throw r(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*i+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function s(){return o.call(this).toLong()}function u(){return o.call(this).toNumber()}function h(){return o.call(this).toLong(!0)}function f(){return o.call(this).toNumber(!0)}function a(){return o.call(this).zzDecode().toLong()}function l(){return o.call(this).zzDecode().toNumber()}function c(t,i){return t[i-4]|t[i-3]<<8|t[i-2]<<16|t[i-1]<<24}function p(){if(this.pos+8>this.len)throw r(this,8);return new x(c(this.buf,this.pos+=4),c(this.buf,this.pos+=4))}function b(){return p.call(this).toLong(!0)}function d(){return p.call(this).toNumber(!0)}function g(){return p.call(this).zzDecode().toLong()}function v(){return p.call(this).zzDecode().toNumber()}function w(){m.Long?(L.int64=s,L.uint64=h,L.sint64=a,L.fixed64=b,L.sfixed64=g):(L.int64=u,L.uint64=f,L.sint64=l,L.fixed64=d,L.sfixed64=v)}i.exports=e;var y,m=t(10),B=t(1),x=m.LongBits,A=m.utf8,N="undefined"!=typeof Uint8Array?Uint8Array:Array;e.create=function(i){return m.Buffer?(y||(y=t(8)),new y(i)):new e(i)};var L=e.prototype;L.b=N.prototype.subarray||N.prototype.slice;var z=L.uint32=function(){var t=(127&this.buf[this.pos])>>>0;if(this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return t;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return t};z.call({buf:[255,255,255,255,15],pos:0,len:5}),L.int32=function(){return 0|this.uint32()},L.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},L.bool=function(){return 0!==this.uint32()},L.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return c(this.buf,this.pos+=4)},L.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var k="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[3]?function(n,r){return i[0]=n[r],i[1]=n[r+1],i[2]=n[r+2],i[3]=n[r+3],t[0]}:function(n,r){return i[3]=n[r],i[2]=n[r+1],i[1]=n[r+2],i[0]=n[r+3],t[0]}}():function(t,i){return B.read(t,i,!1,23,4)};L.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=k(this.buf,this.pos);return this.pos+=4,t};var M="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[7]?function(n,r){return i[0]=n[r],i[1]=n[r+1],i[2]=n[r+2],i[3]=n[r+3],i[4]=n[r+4],i[5]=n[r+5],i[6]=n[r+6],i[7]=n[r+7],t[0]}:function(n,r){return i[7]=n[r],i[6]=n[r+1],i[5]=n[r+2],i[4]=n[r+3],i[3]=n[r+4],i[2]=n[r+5],i[1]=n[r+6],i[0]=n[r+7],t[0]}}():function(t,i){return B.read(t,i,!1,52,8)};L.double=function(){if(this.pos+8>this.len)throw r(this,4);var t=M(this.buf,this.pos);return this.pos+=8,t},L.bytes=function(){var t=this.uint32(),i=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,i===n?new this.buf.constructor(0):this.b.call(this.buf,i,n)},L.string=function(){var t=this.bytes();return A.read(t,0,t.length)},L.skip=function(t){if(void 0===t){do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++])}else{if(this.pos+t>this.len)throw r(this,t);this.pos+=t}return this},L.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(t=7&this.uint32(),4===t)break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type: "+t)}return this},L.reset=function(t){return t?(this.buf=t,this.len=t.length):(this.buf=null,this.len=0),this.pos=0,this},L.finish=function(t){var i=this.pos?this.b.call(this.buf,this.pos):this.buf;return this.reset(t),i},e.a=w,w()},{1:1,10:10,8:8}],8:[function(t,i,n){"use strict";function r(t){a&&a(),s.call(this,t)}function e(t,i,n){return t.utf8Slice(i,n)}function o(t,i,n){return t.toString("utf8",i,n)}i.exports=r;var s=t(7),u=r.prototype=Object.create(s.prototype);u.constructor=r;var h,f=t(10),a=function(){if(!f.Buffer)throw Error("Buffer is not supported");u.b=f.Buffer.prototype.slice,h=f.Buffer.prototype.utf8Slice?e:o,a=!1};u.string=function(){var t=this.uint32();return h(this.buf,this.pos,this.pos=Math.min(this.pos+t,this.len))},u.finish=function(t){var i=this.pos?this.buf.slice(this.pos):this.buf;return this.reset(t),i}},{10:10,7:7}],9:[function(t,i,n){"use strict";function r(t,i){this.lo=t,this.hi=i}i.exports=r;var e=t(10),o=r.prototype,s=r.zero=new r(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1},r.fromNumber=function(t){if(0===t)return s;var i=t<0;t=Math.abs(t);var n=t>>>0,e=(t-n)/4294967296>>>0;return i&&(e=~e>>>0,n=~n>>>0,++n>4294967295&&(n=0,++e>4294967295&&(e=0))),new r(n,e)},r.from=function(t){if("number"==typeof t)return r.fromNumber(t);if("string"==typeof t){if(!e.Long)return r.fromNumber(parseInt(t,10));t=e.Long.fromString(t)}return t.low||t.high?new r(t.low>>>0,t.high>>>0):s},o.toNumber=function(t){return!t&&this.hi>>>31?(this.lo=~this.lo+1>>>0,this.hi=~this.hi>>>0,this.lo||(this.hi=this.hi+1>>>0),-(this.lo+4294967296*this.hi)):this.lo+4294967296*this.hi},o.toLong=function(t){return e.Long?new e.Long(this.lo,this.hi,t):{low:this.lo,high:this.hi,unsigned:Boolean(t)}};var u=String.prototype.charCodeAt;r.fromHash=function(t){return new r((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},o.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24&255,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24&255)},o.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},o.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},o.length=function(){var t=this.lo,i=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===i?t<16384?t<128?1:2:t<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:n<128?9:10}},{10:10}],10:[function(t,i,n){(function(i){"use strict";var r=n;r.LongBits=t(9),r.base64=t(2),r.inquire=t(3),r.utf8=t(5),r.pool=t(4),r.isNode=Boolean(i.process&&i.process.versions&&i.process.versions.node),r.Buffer=(r.Buffer=r.inquire("buffer"))&&r.Buffer.Buffer||null,r.Long=i.dcodeIO&&i.dcodeIO.Long||r.inquire("long"),r.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},r.isString=function(t){return"string"==typeof t||t instanceof String},r.isObject=function(t){return Boolean(t&&"object"==typeof t)},r.longToHash=function(t){return t?r.LongBits.from(t).toHash():"\0\0\0\0\0\0\0\0"},r.longFromHash=function(t,i){var n=r.LongBits.fromHash(t);return r.Long?r.Long.fromBits(n.lo,n.hi,i):n.toNumber(Boolean(i))},r.longNeq=function(t,i){return"number"==typeof t?"number"==typeof i?t!==i:(t=r.LongBits.fromNumber(t)).lo!==i.low||t.hi!==i.high:"number"==typeof i?(i=r.LongBits.fromNumber(i)).lo!==t.low||i.hi!==t.high:t.low!==i.low||t.high!==i.high},r.longNe=function(t,i,n){if("object"==typeof t)return t.low!==i||t.high!==n;var e=r.LongBits.from(t);return e.lo!==i||e.hi!==n},r.props=function(t,i){Object.keys(i).forEach(function(n){r.prop(t,n,i[n])})},r.prop=function(t,i,n){var r=!-[1],e=i.substring(0,1).toUpperCase()+i.substring(1);n.get&&(t["get"+e]=n.get),n.set&&(t["set"+e]=r?function(t){n.set.call(this,t),this[i]=t}:n.set),r?void 0!==n.value&&(t[i]=n.value):Object.defineProperty(t,i,n)},r.emptyArray=Object.freeze([]),r.emptyObject=Object.freeze({})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2,3:3,4:4,5:5,9:9}],11:[function(t,i,n){"use strict";function r(t,i,n){this.fn=t,this.len=i,this.val=n}function e(){}function o(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function s(){this.len=0,this.head=new r(e,0,0),this.tail=this.head,this.states=null}function u(t,i,n){i[n]=255&t}function h(t,i,n){for(;t>127;)i[n++]=127&t|128,t>>>=7;i[n]=t}function f(t,i,n){for(;t.hi;)i[n++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)i[n++]=127&t.lo|128,t.lo=t.lo>>>7;i[n++]=t.lo}function a(t,i,n){i[n++]=255&t,i[n++]=t>>>8&255,i[n++]=t>>>16&255,i[n]=t>>>24}i.exports=s;var l,c=t(10),p=t(1),b=c.LongBits,d=c.base64,g=c.utf8,v="undefined"!=typeof Uint8Array?Uint8Array:Array;s.Op=r,s.State=o,s.create=function(){return c.Buffer?(l||(l=t(12)),new l):new s},s.alloc=function(t){return new v(t)},v!==Array&&(s.alloc=c.pool(s.alloc,v.prototype.subarray||v.prototype.slice));var w=s.prototype;w.push=function(t,i,n){return this.tail=this.tail.next=new r(t,i,n),this.len+=i,this},w.uint32=function(t){return t>>>=0,this.push(h,t<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)},w.int32=function(t){return t<0?this.push(f,10,b.fromNumber(t)):this.uint32(t)},w.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},w.uint64=function(t){var i=b.from(t);return this.push(f,i.length(),i)},w.int64=w.uint64,w.sint64=function(t){var i=b.from(t).zzEncode();return this.push(f,i.length(),i)},w.bool=function(t){return this.push(u,1,t?1:0)},w.fixed32=function(t){return this.push(a,4,t>>>0)},w.sfixed32=function(t){return this.push(a,4,t<<1^t>>31)},w.fixed64=function(t){var i=b.from(t);return this.push(a,4,i.lo).push(a,4,i.hi)},w.sfixed64=function(t){var i=b.from(t).zzEncode();return this.push(a,4,i.lo).push(a,4,i.hi)};var y="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[3]?function(n,r,e){t[0]=n,r[e++]=i[0],r[e++]=i[1],r[e++]=i[2],r[e]=i[3]}:function(n,r,e){t[0]=n,r[e++]=i[3],r[e++]=i[2],r[e++]=i[1],r[e]=i[0]}}():function(t,i,n){p.write(i,t,n,!1,23,4)};w.float=function(t){return this.push(y,4,t)};var m="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[7]?function(n,r,e){t[0]=n,r[e++]=i[0],r[e++]=i[1],r[e++]=i[2],r[e++]=i[3],r[e++]=i[4],r[e++]=i[5],r[e++]=i[6],r[e]=i[7]}:function(n,r,e){t[0]=n,r[e++]=i[7],r[e++]=i[6],r[e++]=i[5],r[e++]=i[4],r[e++]=i[3],r[e++]=i[2],r[e++]=i[1],r[e]=i[0]}}():function(t,i,n){p.write(i,t,n,!1,52,8)};w.double=function(t){return this.push(m,8,t)};var B=v.prototype.set?function(t,i,n){i.set(t,n)}:function(t,i,n){for(var r=0;r>>0;if("string"==typeof t&&i){var n=s.alloc(i=d.length(t));d.decode(t,n,0),t=n}return i?this.uint32(i).push(B,i,t):this.push(u,1,0)},w.string=function(t){var i=g.length(t);return i?this.uint32(i).push(g.write,i,t):this.push(u,1,0)},w.fork=function(){return this.states=new o(this),this.head=this.tail=new r(e,0,0),this.len=0,this},w.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(e,0,0),this.len=0),this},w.ldelim=function(t){var i=this.head,n=this.tail,r=this.len;return this.reset(),"number"==typeof t&&this.uint32((t<<3|2)>>>0),this.uint32(r),this.tail.next=i.next,this.tail=n,this.len+=r,this},w.finish=function(){for(var t=this.head.next,i=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,i,n),n+=t.len,t=t.next;return this.head=this.tail=null,i}},{1:1,10:10,12:12}],12:[function(t,i,n){"use strict";function r(){o.call(this)}function e(t,i,n){t.copy(i,n,0,t.length)}i.exports=r;var o=t(11),s=r.prototype=Object.create(o.prototype);s.constructor=r;var u=t(10),h=u.utf8;r.alloc=function(t){return r.alloc=u.Buffer.allocUnsafe?u.Buffer.allocUnsafe:function(t){return new u.Buffer(t)},r.alloc(t)};var f=u.Buffer&&u.Buffer.from||function(t,i){return new u.Buffer(t,i)};s.bytes=function(t){"string"==typeof t&&(t=f(t,"base64"));var i=t.length>>>0;return this.uint32(i),i&&this.push(e,i,t),this};var a=function(){return u.Buffer&&u.Buffer.prototype.utf8Write?function(t,i,n){t.length<40?h.write(t,i,n):i.utf8Write(t,n)}:function(t,i,n){t.length<40?h.write(t,i,n):i.write(t,n)}}();s.string=function(t){var i=t.length<40?h.length(t):u.Buffer.byteLength(t);return this.uint32(i),i&&this.push(a,i,t),this}},{10:10,11:11}]},{},[6]); //# sourceMappingURL=protobuf.min.js.map diff --git a/dist/runtime/protobuf.min.js.gz b/dist/runtime/protobuf.min.js.gz index 7c4fa07ce33c5618861fbc57dc690665c4d65c97..eb116ab276eddb122bf439021c847b9f8a46f1f7 100644 GIT binary patch literal 5637 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 literal 5655 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 diff --git a/dist/runtime/protobuf.min.js.map b/dist/runtime/protobuf.min.js.map index 4ec657953..225c4207a 100644 --- a/dist/runtime/protobuf.min.js.map +++ b/dist/runtime/protobuf.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","runtime","src/reader.js","src/util/longbits.js","src/util/runtime.js","src/writer.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","read","buffer","offset","isBE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","base64","string","p","charAt","ceil","b64","Array","s64","encode","start","end","j","b","String","fromCharCode","apply","invalidEncoding","decode","charCodeAt","undefined","inquire","moduleName","mod","eval","replace","Object","keys","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","parts","chunk","push","join","c1","c2","configure","Reader","_configure","protobuf","Writer","BufferWriter","BufferReader","util","roots","define","amd","Long","indexOutOfRange","reader","writeLength","RangeError","pos","this","readLongVarint","bits","LongBits","lo","hi","read_int64_long","toLong","read_int64_number","toNumber","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","initBufferReader","readStringBuffer_utf8Slice","utf8Slice","readStringBuffer_toString","toString","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","ieee754","ArrayImpl","Uint8Array","create","Buffer","prototype","_slice","subarray","read_uint32","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","float","readDouble","Float64Array","f64","double","bytes","constructor","skip","skipType","wireType","reset","finish","remain","BufferReaderPrototype","readStringBuffer","readFloatLE","readDoubleLE","LongBitsPrototype","zero","zzEncode","fromNumber","sign","from","parseInt","fromString","low","high","unsigned","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","isNode","global","process","versions","node","dcodeIO","isInteger","Number","isFinite","isString","isObject","longToHash","longFromHash","fromBits","longNeq","longNe","val","props","target","descriptors","forEach","key","prop","descriptor","ie8","ucKey","substring","toUpperCase","get","set","defineProperty","emptyArray","freeze","emptyObject","Op","fn","noop","State","writer","head","tail","next","states","writeByte","writeVarint32","writeVarint64","writeFixed32","writeFloatBuffer","writeFloatLE","writeDoubleBuffer","writeDoubleLE","writeBytesBuffer","copy","WriterPrototype","writeFloat","writeDouble","writeBytes","fork","ldelim","id","allocUnsafe","BufferWriterPrototype","Buffer_from","encoding","writeStringBuffer","utf8Write","byteLength"],"mappings":";;;;;;CAAA,QAAAA,GAAAC,EAAAC,EAAAC,GAAA,QAAAC,GAAAC,EAAAC,GAAA,IAAAJ,EAAAG,GAAA,CAAA,IAAAJ,EAAAI,GAAA,CAAA,GAAAE,GAAA,kBAAAC,UAAAA,OAAA,KAAAF,GAAAC,EAAA,MAAAA,GAAAF,GAAA,EAAA,IAAAI,EAAA,MAAAA,GAAAJ,GAAA,EAAA,IAAAK,GAAA,GAAAC,OAAA,uBAAAN,EAAA,IAAA,MAAAK,GAAAE,KAAA,mBAAAF,EAAA,GAAAG,GAAAX,EAAAG,IAAAS,WAAAb,GAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,GAAAE,GAAAD,EAAAI,GAAA,GAAAL,EAAA,OAAAI,GAAAF,EAAAA,EAAAF,IAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,GAAA,MAAAD,GAAAG,GAAAS,QAAA,IAAA,GAAAL,GAAA,kBAAAD,UAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,IAAAD,EAAAD,EAAAE,GAAA,OAAAD,KAAAa,GAAA,SAAAT,EAAAU,EAAAJ,GCkCAA,EAAAK,KAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAxB,GAAAyB,EACAC,EAAA,EAAAF,EAAAD,EAAA,EACAI,GAAA,GAAAD,GAAA,EACAE,EAAAD,GAAA,EACAE,GAAA,EACApB,EAAAa,EAAA,EAAAE,EAAA,EACAM,EAAAR,EAAA,GAAA,EACAlB,EAAAgB,EAAAC,EAAAZ,EAOA,KALAA,GAAAqB,EAEA9B,EAAAI,GAAA,IAAAyB,GAAA,EACAzB,KAAAyB,EACAA,GAAAH,EACAG,EAAA,EAAA7B,EAAA,IAAAA,EAAAoB,EAAAC,EAAAZ,GAAAA,GAAAqB,EAAAD,GAAA,GAKA,IAHAJ,EAAAzB,GAAA,IAAA6B,GAAA,EACA7B,KAAA6B,EACAA,GAAAN,EACAM,EAAA,EAAAJ,EAAA,IAAAA,EAAAL,EAAAC,EAAAZ,GAAAA,GAAAqB,EAAAD,GAAA,GAEA,GAAA,IAAA7B,EACAA,EAAA,EAAA4B,MACA,CAAA,GAAA5B,IAAA2B,EACA,MAAAF,GAAAM,KAAA3B,GAAA,EAAA,IAAA4B,EAAAA,EAEAP,IAAAQ,KAAAC,IAAA,EAAAX,GACAvB,GAAA4B,EAEA,OAAAxB,GAAA,EAAA,GAAAqB,EAAAQ,KAAAC,IAAA,EAAAlC,EAAAuB,IAGAT,EAAAqB,MAAA,SAAAf,EAAAgB,EAAAf,EAAAC,EAAAC,EAAAC,GACA,GAAAxB,GAAAyB,EAAAY,EACAX,EAAA,EAAAF,EAAAD,EAAA,EACAI,GAAA,GAAAD,GAAA,EACAE,EAAAD,GAAA,EACAW,EAAA,KAAAf,EAAAU,KAAAC,IAAA,GAAA,IAAAD,KAAAC,IAAA,GAAA,IAAA,EACAzB,EAAAa,EAAAE,EAAA,EAAA,EACAM,EAAAR,GAAA,EAAA,EACAlB,EAAAgC,EAAA,GAAA,IAAAA,GAAA,EAAAA,EAAA,EAAA,EAAA,CAmCA,KAjCAA,EAAAH,KAAAM,IAAAH,GAEAI,MAAAJ,IAAAA,IAAAJ,EAAAA,GACAP,EAAAe,MAAAJ,GAAA,EAAA,EACApC,EAAA2B,IAEA3B,EAAAiC,KAAAQ,MAAAR,KAAAS,IAAAN,GAAAH,KAAAU,KACAP,GAAAC,EAAAJ,KAAAC,IAAA,GAAAlC,IAAA,IACAA,IACAqC,GAAA,GAGAD,GADApC,EAAA4B,GAAA,EACAU,EAAAD,EAEAC,EAAAL,KAAAC,IAAA,EAAA,EAAAN,GAEAQ,EAAAC,GAAA,IACArC,IACAqC,GAAA,GAGArC,EAAA4B,GAAAD,GACAF,EAAA,EACAzB,EAAA2B,GACA3B,EAAA4B,GAAA,GACAH,GAAAW,EAAAC,EAAA,GAAAJ,KAAAC,IAAA,EAAAX,GACAvB,GAAA4B,IAEAH,EAAAW,EAAAH,KAAAC,IAAA,EAAAN,EAAA,GAAAK,KAAAC,IAAA,EAAAX,GACAvB,EAAA,IAIAuB,GAAA,EAAAH,EAAAC,EAAAZ,GAAA,IAAAgB,EAAAhB,GAAAqB,EAAAL,GAAA,IAAAF,GAAA,GAIA,IAFAvB,EAAAA,GAAAuB,EAAAE,EACAC,GAAAH,EACAG,EAAA,EAAAN,EAAAC,EAAAZ,GAAA,IAAAT,EAAAS,GAAAqB,EAAA9B,GAAA,IAAA0B,GAAA,GAEAN,EAAAC,EAAAZ,EAAAqB,IAAA,IAAA1B,2BCpHA,YAOA,IAAAwC,GAAA9B,CAOA8B,GAAA5B,OAAA,SAAA6B,GACA,GAAAC,GAAAD,EAAA7B,MACA,KAAA8B,EACA,MAAA,EAEA,KADA,GAAA5C,GAAA,IACA4C,EAAA,EAAA,GAAA,MAAAD,EAAAE,OAAAD,MACA5C,CACA,OAAA+B,MAAAe,KAAA,EAAAH,EAAA7B,QAAA,EAAAd,EAUA,KAAA,GANA+C,GAAA,GAAAC,OAAA,IAGAC,EAAA,GAAAD,OAAA,KAGAzC,EAAA,EAAAA,EAAA,IACA0C,EAAAF,EAAAxC,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EAAAA,EAAA,GAAA,IAAAA,GASAmC,GAAAQ,OAAA,SAAAhC,EAAAiC,EAAAC,GAKA,IAJA,GAGArD,GAHA4C,KACApC,EAAA,EACA8C,EAAA,EAEAF,EAAAC,GAAA,CACA,GAAAE,GAAApC,EAAAiC,IACA,QAAAE,GACA,IAAA,GACAV,EAAApC,KAAAwC,EAAAO,GAAA,GACAvD,GAAA,EAAAuD,IAAA,EACAD,EAAA,CACA,MACA,KAAA,GACAV,EAAApC,KAAAwC,EAAAhD,EAAAuD,GAAA,GACAvD,GAAA,GAAAuD,IAAA,EACAD,EAAA,CACA,MACA,KAAA,GACAV,EAAApC,KAAAwC,EAAAhD,EAAAuD,GAAA,GACAX,EAAApC,KAAAwC,EAAA,GAAAO,GACAD,EAAA,GAUA,MANAA,KACAV,EAAApC,KAAAwC,EAAAhD,GACA4C,EAAApC,GAAA,GACA,IAAA8C,IACAV,EAAApC,EAAA,GAAA,KAEAgD,OAAAC,aAAAC,MAAAF,OAAAZ,GAGA,IAAAe,GAAA,kBAUAhB,GAAAiB,OAAA,SAAAhB,EAAAzB,EAAAC,GAIA,IAAA,GADApB,GAFAoD,EAAAhC,EACAkC,EAAA,EAEA9C,EAAA,EAAAA,EAAAoC,EAAA7B,QAAA,CACA,GAAAqB,GAAAQ,EAAAiB,WAAArD,IACA,IAAA,KAAA4B,GAAAkB,EAAA,EACA,KACA,IAAAQ,UAAA1B,EAAAc,EAAAd,IACA,KAAA1B,OAAAiD,EACA,QAAAL,GACA,IAAA,GACAtD,EAAAoC,EACAkB,EAAA,CACA,MACA,KAAA,GACAnC,EAAAC,KAAApB,GAAA,GAAA,GAAAoC,IAAA,EACApC,EAAAoC,EACAkB,EAAA,CACA,MACA,KAAA,GACAnC,EAAAC,MAAA,GAAApB,IAAA,GAAA,GAAAoC,IAAA,EACApC,EAAAoC,EACAkB,EAAA,CACA,MACA,KAAA,GACAnC,EAAAC,MAAA,EAAApB,IAAA,EAAAoC,EACAkB,EAAA,GAIA,GAAA,IAAAA,EACA,KAAA5C,OAAAiD,EACA,OAAAvC,GAAAgC,4CCtHA,YASA,SAAAW,SAAAC,YACA,IACA,GAAAC,KAAAC,KAAA,QAAAC,QAAA,IAAA,OAAAH,WACA,IAAAC,MAAAA,IAAAlD,QAAAqD,OAAAC,KAAAJ,KAAAlD,QACA,MAAAkD,KACA,MAAAlE,IACA,MAAA,MAdAkB,OAAAJ,QAAAkD,gCCDA,YA8BA,SAAAO,GAAAC,EAAAC,EAAAC,GACA,GAAAC,GAAAD,GAAA,KACAE,EAAAD,IAAA,EACAE,EAAA,KACAxD,EAAAsD,CACA,OAAA,UAAAD,GACA,GAAAA,EAAA,GAAAA,EAAAE,EACA,MAAAJ,GAAAE,EACArD,GAAAqD,EAAAC,IACAE,EAAAL,EAAAG,GACAtD,EAAA,EAEA,IAAAyD,GAAAL,EAAA1D,KAAA8D,EAAAxD,EAAAA,GAAAqD,EAGA,OAFA,GAAArD,IACAA,GAAA,EAAAA,GAAA,GACAyD,GA5CA5D,EAAAJ,QAAAyD,0BCDA,YAOA,IAAAQ,GAAAjE,CAOAiE,GAAA/D,OAAA,SAAA6B,GAGA,IAAA,GAFAmC,GAAA,EACA3C,EAAA,EACA5B,EAAA,EAAAA,EAAAoC,EAAA7B,SAAAP,EACA4B,EAAAQ,EAAAiB,WAAArD,GACA4B,EAAA,IACA2C,GAAA,EACA3C,EAAA,KACA2C,GAAA,EACA,SAAA,MAAA3C,IAAA,SAAA,MAAAQ,EAAAiB,WAAArD,EAAA,OACAA,EACAuE,GAAA,GAEAA,GAAA,CAEA,OAAAA,IAUAD,EAAA5D,KAAA,SAAAC,EAAAiC,EAAAC,GACA,GAAA0B,GAAA1B,EAAAD,CACA,IAAA2B,EAAA,EACA,MAAA,EAKA,KAJA,GAGA/E,GAHAgF,KACAC,KACAzE,EAAA,EAEA4C,EAAAC,GACArD,EAAAmB,EAAAiC,KACApD,EAAA,IACAiF,EAAAzE,KAAAR,EACAA,EAAA,KAAAA,EAAA,IACAiF,EAAAzE,MAAA,GAAAR,IAAA,EAAA,GAAAmB,EAAAiC,KACApD,EAAA,KAAAA,EAAA,KACAA,IAAA,EAAAA,IAAA,IAAA,GAAAmB,EAAAiC,OAAA,IAAA,GAAAjC,EAAAiC,OAAA,EAAA,GAAAjC,EAAAiC,MAAA,MACA6B,EAAAzE,KAAA,OAAAR,GAAA,IACAiF,EAAAzE,KAAA,OAAA,KAAAR,IAEAiF,EAAAzE,MAAA,GAAAR,IAAA,IAAA,GAAAmB,EAAAiC,OAAA,EAAA,GAAAjC,EAAAiC,KACA5C,EAAA,OACAwE,EAAAE,KAAA1B,OAAAC,aAAAC,MAAAF,OAAAyB,IACAzE,EAAA,EAKA,OAFAA,IACAwE,EAAAE,KAAA1B,OAAAC,aAAAC,MAAAF,OAAAyB,EAAAT,MAAA,EAAAhE,KACAwE,EAAAG,KAAA,KAUAL,EAAA5C,MAAA,SAAAU,EAAAzB,EAAAC,GAIA,IAAA,GAFAgE,GACAC,EAFAjC,EAAAhC,EAGAZ,EAAA,EAAAA,EAAAoC,EAAA7B,SAAAP,EACA4E,EAAAxC,EAAAiB,WAAArD,GACA4E,EAAA,IACAjE,EAAAC,KAAAgE,EACAA,EAAA,MACAjE,EAAAC,KAAAgE,GAAA,EAAA,IACAjE,EAAAC,KAAA,GAAAgE,EAAA,KACA,SAAA,MAAAA,IAAA,SAAA,OAAAC,EAAAzC,EAAAiB,WAAArD,EAAA,MACA4E,EAAA,QAAA,KAAAA,IAAA,KAAA,KAAAC,KACA7E,EACAW,EAAAC,KAAAgE,GAAA,GAAA,IACAjE,EAAAC,KAAAgE,GAAA,GAAA,GAAA,IACAjE,EAAAC,KAAAgE,GAAA,EAAA,GAAA,IACAjE,EAAAC,KAAA,GAAAgE,EAAA,MAEAjE,EAAAC,KAAAgE,GAAA,GAAA,IACAjE,EAAAC,KAAAgE,GAAA,EAAA,GAAA,IACAjE,EAAAC,KAAA,GAAAgE,EAAA,IAGA,OAAAhE,GAAAgC,2BCxFA,QAAAkC,KACAC,EAAAC,IAXA,GAAAC,GAAA5E,EAEA6E,EAAAD,EAAAC,OAAAnF,EAAA,GACAkF,GAAAE,aAAAD,EAAAC,YACA,IAAAJ,GAAAE,EAAAF,OAAAhF,EAAA,EACAkF,GAAAG,aAAAL,EAAAK,aACAH,EAAAI,KAAAtF,EAAA,GACAkF,EAAAK,SACAL,EAAAH,UAAAA,EAOA,kBAAAS,SAAAA,OAAAC,KACAD,QAAA,QAAA,SAAAE,GAKA,MAJAA,KACAR,EAAAI,KAAAI,KAAAA,EACAX,KAEAG,yCCvBA,YAWA,SAAAS,GAAAC,EAAAC,GACA,MAAAC,YAAA,uBAAAF,EAAAG,IAAA,OAAAF,GAAA,GAAA,MAAAD,EAAApB,KASA,QAAAQ,GAAApE,GAMAoF,KAAA1B,IAAA1D,EAMAoF,KAAAD,IAAA,EAMAC,KAAAxB,IAAA5D,EAAAJ,OA+DA,QAAAyF,KAEA,GAAAC,GAAA,GAAAC,GAAA,EAAA,GACAlG,EAAA,CACA,IAAA+F,KAAAxB,IAAAwB,KAAAD,IAAA,EAAA,CACA,IAAA9F,EAAA,EAAAA,EAAA,IAAAA,EAGA,GADAiG,EAAAE,IAAAF,EAAAE,IAAA,IAAAJ,KAAA1B,IAAA0B,KAAAD,OAAA,EAAA9F,KAAA,EACA+F,KAAA1B,IAAA0B,KAAAD,OAAA,IACA,MAAAG,EAKA,IAFAA,EAAAE,IAAAF,EAAAE,IAAA,IAAAJ,KAAA1B,IAAA0B,KAAAD,OAAA,MAAA,EACAG,EAAAG,IAAAH,EAAAG,IAAA,IAAAL,KAAA1B,IAAA0B,KAAAD,OAAA,KAAA,EACAC,KAAA1B,IAAA0B,KAAAD,OAAA,IACA,MAAAG,OACA,CACA,IAAAjG,EAAA,EAAAA,EAAA,IAAAA,EAAA,CACA,GAAA+F,KAAAD,KAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAGA,IADAE,EAAAE,IAAAF,EAAAE,IAAA,IAAAJ,KAAA1B,IAAA0B,KAAAD,OAAA,EAAA9F,KAAA,EACA+F,KAAA1B,IAAA0B,KAAAD,OAAA,IACA,MAAAG,GAEA,GAAAF,KAAAD,KAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAIA,IAFAE,EAAAE,IAAAF,EAAAE,IAAA,IAAAJ,KAAA1B,IAAA0B,KAAAD,OAAA,MAAA,EACAG,EAAAG,IAAAH,EAAAG,IAAA,IAAAL,KAAA1B,IAAA0B,KAAAD,OAAA,KAAA,EACAC,KAAA1B,IAAA0B,KAAAD,OAAA,IACA,MAAAG,GAEA,GAAAF,KAAAxB,IAAAwB,KAAAD,IAAA,GACA,IAAA9F,EAAA,EAAAA,EAAA,IAAAA,EAGA,GADAiG,EAAAG,IAAAH,EAAAG,IAAA,IAAAL,KAAA1B,IAAA0B,KAAAD,OAAA,EAAA9F,EAAA,KAAA,EACA+F,KAAA1B,IAAA0B,KAAAD,OAAA,IACA,MAAAG,OAGA,KAAAjG,EAAA,EAAAA,EAAA,IAAAA,EAAA,CACA,GAAA+F,KAAAD,KAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAGA,IADAE,EAAAG,IAAAH,EAAAG,IAAA,IAAAL,KAAA1B,IAAA0B,KAAAD,OAAA,EAAA9F,EAAA,KAAA,EACA+F,KAAA1B,IAAA0B,KAAAD,OAAA,IACA,MAAAG,GAGA,KAAA/F,OAAA,2BAGA,QAAAmG,KACA,MAAAL,GAAA1F,KAAAyF,MAAAO,SAGA,QAAAC,KACA,MAAAP,GAAA1F,KAAAyF,MAAAS,WAGA,QAAAC,KACA,MAAAT,GAAA1F,KAAAyF,MAAAO,QAAA,GAGA,QAAAI,KACA,MAAAV,GAAA1F,KAAAyF,MAAAS,UAAA,GAGA,QAAAG,KACA,MAAAX,GAAA1F,KAAAyF,MAAAa,WAAAN,SAGA,QAAAO,KACA,MAAAb,GAAA1F,KAAAyF,MAAAa,WAAAJ,WAkCA,QAAAM,GAAAzC,EAAAxB,GACA,MAAAwB,GAAAxB,EAAA,GACAwB,EAAAxB,EAAA,IAAA,EACAwB,EAAAxB,EAAA,IAAA,GACAwB,EAAAxB,EAAA,IAAA,GAwBA,QAAAkE,KACA,GAAAhB,KAAAD,IAAA,EAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAAA,EACA,OAAA,IAAAG,GAAAY,EAAAf,KAAA1B,IAAA0B,KAAAD,KAAA,GAAAgB,EAAAf,KAAA1B,IAAA0B,KAAAD,KAAA,IAGA,QAAAkB,KACA,MAAAD,GAAAzG,KAAAyF,MAAAO,QAAA,GAGA,QAAAW,KACA,MAAAF,GAAAzG,KAAAyF,MAAAS,UAAA,GAGA,QAAAU,KACA,MAAAH,GAAAzG,KAAAyF,MAAAa,WAAAN,SAGA,QAAAa,KACA,MAAAJ,GAAAzG,KAAAyF,MAAAa,WAAAJ,WAqOA,QAAApB,GAAAzE,GACAyG,GACAA,IACArC,EAAAzE,KAAAyF,KAAApF,GAkCA,QAAA0G,GAAAhD,EAAAzB,EAAAC,GACA,MAAAwB,GAAAiD,UAAA1E,EAAAC,GAGA,QAAA0E,GAAAlD,EAAAzB,EAAAC,GACA,MAAAwB,GAAAmD,SAAA,OAAA5E,EAAAC,GAyBA,QAAAiC,KACAO,EAAAI,MACAgC,EAAAC,MAAArB,EACAoB,EAAAE,OAAAlB,EACAgB,EAAAG,OAAAjB,EACAc,EAAAI,QAAAb,EACAS,EAAAK,SAAAZ,IAEAO,EAAAC,MAAAnB,EACAkB,EAAAE,OAAAjB,EACAe,EAAAG,OAAAf,EACAY,EAAAI,QAAAZ,EACAQ,EAAAK,SAAAX,GApjBA1G,EAAAJ,QAAA0E,EAEAA,EAAAK,aAAAA,CAEA,IAAAC,GAAAtF,EAAA,GACAgI,EAAAhI,EAAA,GACAmG,EAAAb,EAAAa,SACA5B,EAAAe,EAAAf,KACA0D,EAAA,mBAAAC,YAAAA,WAAAxF,KAsCAsC,GAAAmD,OAAA,SAAAvH,GACA,MAAA,KAAA0E,EAAA8C,OAAA/C,EAAAL,GAAApE,GAIA,IAAA8G,GAAA1C,EAAAqD,SAEAX,GAAAY,EAAAL,EAAAI,UAAAE,UAAAN,EAAAI,UAAApE,KAEA,IAAAuE,GAKAd,EAAAe,OAAA,WAGA,GAAA7G,IAAA,IAAAoE,KAAA1B,IAAA0B,KAAAD,QAAA,CAAA,IAAAC,KAAA1B,IAAA0B,KAAAD,OAAA,IAAA,MAAAnE,EACA,IAAAA,GAAAA,GAAA,IAAAoE,KAAA1B,IAAA0B,KAAAD,OAAA,KAAA,EAAAC,KAAA1B,IAAA0B,KAAAD,OAAA,IAAA,MAAAnE,EACA,IAAAA,GAAAA,GAAA,IAAAoE,KAAA1B,IAAA0B,KAAAD,OAAA,MAAA,EAAAC,KAAA1B,IAAA0B,KAAAD,OAAA,IAAA,MAAAnE,EACA,IAAAA,GAAAA,GAAA,IAAAoE,KAAA1B,IAAA0B,KAAAD,OAAA,MAAA,EAAAC,KAAA1B,IAAA0B,KAAAD,OAAA,IAAA,MAAAnE,EACA,IAAAA,GAAAA,GAAA,GAAAoE,KAAA1B,IAAA0B,KAAAD,OAAA,MAAA,EAAAC,KAAA1B,IAAA0B,KAAAD,OAAA,IAAA,MAAAnE,EACA,KAAAoE,KAAAD,KAAA,GAAAC,KAAAxB,IAEA,KADAwB,MAAAD,IAAAC,KAAAxB,IACAmB,EAAAK,KAAA,GAEA,OAAApE,GAIA4G,GAAAjI,MACA+D,KAAA,IAAA,IAAA,IAAA,IAAA,IACAyB,IAAA,EACAvB,IAAA,IAOAkD,EAAAgB,MAAA,WACA,MAAA,GAAA1C,KAAAyC,UAOAf,EAAAiB,OAAA,WACA,GAAA/G,GAAAoE,KAAAyC,QACA,OAAA7G,KAAA,IAAA,EAAAA,GAAA,GA6GA8F,EAAAkB,KAAA,WACA,MAAA,KAAA5C,KAAAyC,UAcAf,EAAAmB,QAAA,WACA,GAAA7C,KAAAD,IAAA,EAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAAA,EACA,OAAAe,GAAAf,KAAA1B,IAAA0B,KAAAD,KAAA,IAOA2B,EAAAoB,SAAA,WACA,GAAAlH,GAAAoE,KAAA6C,SACA,OAAAjH,KAAA,IAAA,EAAAA,GA2CA,IAAAmH,GAAA,mBAAAC,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAE,EAAA,GAAAhB,YAAAe,EAAArI,OAEA,OADAqI,GAAA,IAAA,EACAC,EAAA,GACA,SAAA5E,EAAAyB,GAKA,MAJAmD,GAAA,GAAA5E,EAAAyB,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAkD,EAAA,IAEA,SAAA3E,EAAAyB,GAKA,MAJAmD,GAAA,GAAA5E,EAAAyB,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAkD,EAAA,OAGA,SAAA3E,EAAAyB,GACA,MAAAiC,GAAArH,KAAA2D,EAAAyB,GAAA,EAAA,GAAA,GAQA2B,GAAAyB,MAAA,WACA,GAAAnD,KAAAD,IAAA,EAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAAA,EACA,IAAApE,GAAAmH,EAAA/C,KAAA1B,IAAA0B,KAAAD,IAEA,OADAC,MAAAD,KAAA,EACAnE,EAGA,IAAAwH,GAAA,mBAAAC,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAH,EAAA,GAAAhB,YAAAoB,EAAA1I,OAEA,OADA0I,GAAA,IAAA,EACAJ,EAAA,GACA,SAAA5E,EAAAyB,GASA,MARAmD,GAAA,GAAA5E,EAAAyB,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAuD,EAAA,IAEA,SAAAhF,EAAAyB,GASA,MARAmD,GAAA,GAAA5E,EAAAyB,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAmD,EAAA,GAAA5E,EAAAyB,EAAA,GACAuD,EAAA,OAGA,SAAAhF,EAAAyB,GACA,MAAAiC,GAAArH,KAAA2D,EAAAyB,GAAA,EAAA,GAAA,GAQA2B,GAAA6B,OAAA,WACA,GAAAvD,KAAAD,IAAA,EAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAAA,EACA,IAAApE,GAAAwH,EAAApD,KAAA1B,IAAA0B,KAAAD,IAEA,OADAC,MAAAD,KAAA,EACAnE,GAOA8F,EAAA8B,MAAA,WACA,GAAAhJ,GAAAwF,KAAAyC,SACA5F,EAAAmD,KAAAD,IACAjD,EAAAkD,KAAAD,IAAAvF,CACA,IAAAsC,EAAAkD,KAAAxB,IACA,KAAAmB,GAAAK,KAAAxF,EAEA,OADAwF,MAAAD,KAAAvF,EACAqC,IAAAC,EACA,GAAAkD,MAAA1B,IAAAmF,YAAA,GACAzD,KAAAsC,EAAA/H,KAAAyF,KAAA1B,IAAAzB,EAAAC,IAOA4E,EAAArF,OAAA,WACA,GAAAmH,GAAAxD,KAAAwD,OACA,OAAAjF,GAAA5D,KAAA6I,EAAA,EAAAA,EAAAhJ,SAQAkH,EAAAgC,KAAA,SAAAlJ,GACA,GAAA+C,SAAA/C,GACA,EACA,IAAAwF,KAAAD,KAAAC,KAAAxB,IACA,KAAAmB,GAAAK,YACA,IAAAA,KAAA1B,IAAA0B,KAAAD,YACA,CACA,GAAAC,KAAAD,IAAAvF,EAAAwF,KAAAxB,IACA,KAAAmB,GAAAK,KAAAxF,EACAwF,MAAAD,KAAAvF,EAEA,MAAAwF,OAQA0B,EAAAiC,SAAA,SAAAC,GACA,OAAAA,GACA,IAAA,GACA5D,KAAA0D,MACA,MACA,KAAA,GACA1D,KAAA0D,KAAA,EACA,MACA,KAAA,GACA1D,KAAA0D,KAAA1D,KAAAyC,SACA,MACA,KAAA,GACA,OAAA,CAEA,GADAmB,EAAA,EAAA5D,KAAAyC,SACA,IAAAmB,EACA,KACA5D,MAAA2D,SAAAC,GAEA,KACA,KAAA,GACA5D,KAAA0D,KAAA,EACA,MACA,SACA,KAAAvJ,OAAA,sBAAAyJ,GAEA,MAAA5D,OAQA0B,EAAAmC,MAAA,SAAAjJ,GASA,MARAA,IACAoF,KAAA1B,IAAA1D,EACAoF,KAAAxB,IAAA5D,EAAAJ,SAEAwF,KAAA1B,IAAA,KACA0B,KAAAxB,IAAA,GAEAwB,KAAAD,IAAA,EACAC,MAQA0B,EAAAoC,OAAA,SAAAlJ,GACA,GAAAmJ,GAAA/D,KAAAD,IACAC,KAAAsC,EAAA/H,KAAAyF,KAAA1B,IAAA0B,KAAAD,KACAC,KAAA1B,GAEA,OADA0B,MAAA6D,MAAAjJ,GACAmJ,EAIA,IAAA1C,GAAA,WACA,GAAAe,GAAA9C,EAAA8C,MACA,KAAAA,EACA,KAAAjI,OAAA,0BACA6J,GAAA1B,EAAAF,EAAAC,UAAApE,MACAgG,EAAA7B,EAAAC,UAAAd,UACAD,EACAE,EACAH,GAAA,GAiBA2C,EAAA3E,EAAAgD,UAAAxE,OAAAsE,OAAAnD,EAAAqD,UAEA2B,GAAAP,YAAApE,EAEA,mBAAA2D,gBAIAgB,EAAAb,MAAA,WACA,GAAAnD,KAAAD,IAAA,EAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAAA,EACA,IAAApE,GAAAoE,KAAA1B,IAAA4F,YAAAlE,KAAAD,KAAA,EAEA,OADAC,MAAAD,KAAA,EACAnE,IAGA,mBAAAyH,gBAIAW,EAAAT,OAAA,WACA,GAAAvD,KAAAD,IAAA,EAAAC,KAAAxB,IACA,KAAAmB,GAAAK,KAAA,EACA,IAAApE,GAAAoE,KAAA1B,IAAA6F,aAAAnE,KAAAD,KAAA,EAEA,OADAC,MAAAD,KAAA,EACAnE,GAGA,IAAAqI,EAaAD,GAAA3H,OAAA,WACA,GAAA7B,GAAAwF,KAAAyC,SACA5F,EAAAmD,KAAAD,IACAjD,EAAAkD,KAAAD,IAAAvF,CACA,IAAAsC,EAAAkD,KAAAxB,IACA,KAAAmB,GAAAK,KAAAxF,EAEA,OADAwF,MAAAD,KAAAvF,EACAyJ,EAAAjE,KAAA1B,IAAAzB,EAAAC,IAMAkH,EAAAF,OAAA,SAAAlJ,GACA,GAAAmJ,GAAA/D,KAAAD,IAAAC,KAAA1B,IAAAL,MAAA+B,KAAAD,KAAAC,KAAA1B,GAEA,OADA0B,MAAA6D,MAAAjJ,GACAmJ,GAmBA/E,EAAAC,EAAAF,EAEAA,mCC3jBA,YAuBA,SAAAoB,GAAAC,EAAAC,GAMAL,KAAAI,GAAAA,EAMAJ,KAAAK,GAAAA,EAjCA3F,EAAAJ,QAAA6F,CAEA,IAAAb,GAAAtF,EAAA,GAmCAoK,EAAAjE,EAAAkC,UAOAgC,EAAAlE,EAAAkE,KAAA,GAAAlE,GAAA,EAAA,EAEAkE,GAAA5D,SAAA,WAAA,MAAA,IACA4D,EAAAC,SAAAD,EAAAxD,SAAA,WAAA,MAAAb,OACAqE,EAAA7J,OAAA,WAAA,MAAA,IAOA2F,EAAAoE,WAAA,SAAA3I,GACA,GAAA,IAAAA,EACA,MAAAyI,EACA,IAAAG,GAAA5I,EAAA,CACAA,GAAAH,KAAAM,IAAAH,EACA,IAAAwE,GAAAxE,IAAA,EACAyE,GAAAzE,EAAAwE,GAAA,aAAA,CAUA,OATAoE,KACAnE,GAAAA,IAAA,EACAD,GAAAA,IAAA,IACAA,EAAA,aACAA,EAAA,IACAC,EAAA,aACAA,EAAA,KAGA,GAAAF,GAAAC,EAAAC,IAQAF,EAAAsE,KAAA,SAAA7I,GACA,GAAA,gBAAAA,GACA,MAAAuE,GAAAoE,WAAA3I,EACA,IAAA,gBAAAA,GAAA,CACA,IAAA0D,EAAAI,KAGA,MAAAS,GAAAoE,WAAAG,SAAA9I,EAAA,IAFAA,GAAA0D,EAAAI,KAAAiF,WAAA/I,GAIA,MAAAA,GAAAgJ,KAAAhJ,EAAAiJ,KAAA,GAAA1E,GAAAvE,EAAAgJ,MAAA,EAAAhJ,EAAAiJ,OAAA,GAAAR,GAQAD,EAAA3D,SAAA,SAAAqE,GACA,OAAAA,GAAA9E,KAAAK,KAAA,IACAL,KAAAI,IAAAJ,KAAAI,GAAA,IAAA,EACAJ,KAAAK,IAAAL,KAAAK,KAAA,EACAL,KAAAI,KACAJ,KAAAK,GAAAL,KAAAK,GAAA,IAAA,KACAL,KAAAI,GAAA,WAAAJ,KAAAK,KAEAL,KAAAI,GAAA,WAAAJ,KAAAK,IAQA+D,EAAA7D,OAAA,SAAAuE,GACA,MAAAxF,GAAAI,KACA,GAAAJ,GAAAI,KAAAM,KAAAI,GAAAJ,KAAAK,GAAAyE,IACAF,IAAA5E,KAAAI,GAAAyE,KAAA7E,KAAAK,GAAAyE,SAAAC,QAAAD,IAGA,IAAAxH,GAAAL,OAAAoF,UAAA/E,UAOA6C,GAAA6E,SAAA,SAAAC,GACA,MAAA,IAAA9E,IACA7C,EAAA/C,KAAA0K,EAAA,GACA3H,EAAA/C,KAAA0K,EAAA,IAAA,EACA3H,EAAA/C,KAAA0K,EAAA,IAAA,GACA3H,EAAA/C,KAAA0K,EAAA,IAAA,MAAA,GAEA3H,EAAA/C,KAAA0K,EAAA,GACA3H,EAAA/C,KAAA0K,EAAA,IAAA,EACA3H,EAAA/C,KAAA0K,EAAA,IAAA,GACA3H,EAAA/C,KAAA0K,EAAA,IAAA,MAAA,IAQAb,EAAAc,OAAA,WACA,MAAAjI,QAAAC,aACA,IAAA8C,KAAAI,GACAJ,KAAAI,KAAA,EAAA,IACAJ,KAAAI,KAAA,GAAA,IACAJ,KAAAI,KAAA,GAAA,IACA,IAAAJ,KAAAK,GACAL,KAAAK,KAAA,EAAA,IACAL,KAAAK,KAAA,GAAA,IACAL,KAAAK,KAAA,GAAA,MAQA+D,EAAAE,SAAA,WACA,GAAAa,GAAAnF,KAAAK,IAAA,EAGA,OAFAL,MAAAK,KAAAL,KAAAK,IAAA,EAAAL,KAAAI,KAAA,IAAA+E,KAAA,EACAnF,KAAAI,IAAAJ,KAAAI,IAAA,EAAA+E,KAAA,EACAnF,MAOAoE,EAAAvD,SAAA,WACA,GAAAsE,KAAA,EAAAnF,KAAAI,GAGA,OAFAJ,MAAAI,KAAAJ,KAAAI,KAAA,EAAAJ,KAAAK,IAAA,IAAA8E,KAAA,EACAnF,KAAAK,IAAAL,KAAAK,KAAA,EAAA8E,KAAA,EACAnF,MAOAoE,EAAA5J,OAAA,WACA,GAAA4K,GAAApF,KAAAI,GACAiF,GAAArF,KAAAI,KAAA,GAAAJ,KAAAK,IAAA,KAAA,EACAiF,EAAAtF,KAAAK,KAAA,EACA,OAAA,KAAAiF,EACA,IAAAD,EACAD,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,GAAA,GAAA,EAAA,EACAC,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,GAAA,GAAA,EAAA,EAEAC,EAAA,IAAA,EAAA,4CCrMA,YAEA,IAAAhG,GAAAhF,CAEAgF,GAAAa,SAAAnG,EAAA,GACAsF,EAAAlD,OAAApC,EAAA,GACAsF,EAAA9B,QAAAxD,EAAA,GACAsF,EAAAf,KAAAvE,EAAA,GACAsF,EAAAvB,KAAA/D,EAAA,GAOAsF,EAAAiG,OAAAR,QAAAS,EAAAC,SAAAD,EAAAC,QAAAC,UAAAF,EAAAC,QAAAC,SAAAC,MAMArG,EAAA8C,QAAA9C,EAAA8C,OAAA9C,EAAA9B,QAAA,YAAA8B,EAAA8C,OAAAA,QAAA,KAMA9C,EAAAI,KAAA8F,EAAAI,SAAAJ,EAAAI,QAAAlG,MAAAJ,EAAA9B,QAAA,QAQA8B,EAAAuG,UAAAC,OAAAD,WAAA,SAAAjK,GACA,MAAA,gBAAAA,IAAAmK,SAAAnK,IAAAH,KAAAQ,MAAAL,KAAAA,GAQA0D,EAAA0G,SAAA,SAAApK,GACA,MAAA,gBAAAA,IAAAA,YAAAqB,SAQAqC,EAAA2G,SAAA,SAAArK,GACA,MAAAmJ,SAAAnJ,GAAA,gBAAAA,KAQA0D,EAAA4G,WAAA,SAAAtK,GACA,MAAAA,GACA0D,EAAAa,SAAAsE,KAAA7I,GAAAsJ,SACA,oBASA5F,EAAA6G,aAAA,SAAAlB,EAAAH,GACA,GAAA5E,GAAAZ,EAAAa,SAAA6E,SAAAC,EACA,OAAA3F,GAAAI,KACAJ,EAAAI,KAAA0G,SAAAlG,EAAAE,GAAAF,EAAAG,GAAAyE,GACA5E,EAAAO,SAAAsE,QAAAD,KAWAxF,EAAA+G,QAAA,SAAAtM,EAAAiD,GACA,MAAA,gBAAAjD,GACA,gBAAAiD,GACAjD,IAAAiD,GACAjD,EAAAuF,EAAAa,SAAAoE,WAAAxK,IAAAqG,KAAApD,EAAA4H,KAAA7K,EAAAsG,KAAArD,EAAA6H,KACA,gBAAA7H,IACAA,EAAAsC,EAAAa,SAAAoE,WAAAvH,IAAAoD,KAAArG,EAAA6K,KAAA5H,EAAAqD,KAAAtG,EAAA8K,KACA9K,EAAA6K,MAAA5H,EAAA4H,KAAA7K,EAAA8K,OAAA7H,EAAA6H,MAUAvF,EAAAgH,OAAA,SAAAC,EAAAnG,EAAAC,GACA,GAAA,gBAAAkG,GACA,MAAAA,GAAA3B,MAAAxE,GAAAmG,EAAA1B,OAAAxE,CACA,IAAAH,GAAAZ,EAAAa,SAAAsE,KAAA8B,EACA,OAAArG,GAAAE,KAAAA,GAAAF,EAAAG,KAAAA,GASAf,EAAAkH,MAAA,SAAAC,EAAAC,GACA7I,OAAAC,KAAA4I,GAAAC,QAAA,SAAAC,GACAtH,EAAAuH,KAAAJ,EAAAG,EAAAF,EAAAE,OAWAtH,EAAAuH,KAAA,SAAAJ,EAAAG,EAAAE,GACA,GAAAC,MAAA,GACAC,EAAAJ,EAAAK,UAAA,EAAA,GAAAC,cAAAN,EAAAK,UAAA,EACAH,GAAAK,MACAV,EAAA,MAAAO,GAAAF,EAAAK,KACAL,EAAAM,MACAX,EAAA,MAAAO,GAAAD,EACA,SAAAnL,GACAkL,EAAAM,IAAA7M,KAAAyF,KAAApE,GACAoE,KAAA4G,GAAAhL,GAEAkL,EAAAM,KACAL,EACAxJ,SAAAuJ,EAAAlL,QACA6K,EAAAG,GAAAE,EAAAlL,OAEAiC,OAAAwJ,eAAAZ,EAAAG,EAAAE,IAQAxH,EAAAgI,WAAAzJ,OAAA0J,WAMAjI,EAAAkI,YAAA3J,OAAA0J,yKClKA,YAuBA,SAAAE,GAAAC,EAAAlJ,EAAA+H,GAMAvG,KAAA0H,GAAAA,EAMA1H,KAAAxB,IAAAA,EAYAwB,KAAAuG,IAAAA,EAKA,QAAAoB,MAWA,QAAAC,GAAAC,GAMA7H,KAAA8H,KAAAD,EAAAC,KAMA9H,KAAA+H,KAAAF,EAAAE,KAMA/H,KAAAxB,IAAAqJ,EAAArJ,IAMAwB,KAAAgI,KAAAH,EAAAI,OAUA,QAAA9I,KAMAa,KAAAxB,IAAA,EAMAwB,KAAA8H,KAAA,GAAAL,GAAAE,EAAA,EAAA,GAMA3H,KAAA+H,KAAA/H,KAAA8H,KAMA9H,KAAAiI,OAAA,KA8CA,QAAAC,GAAA3B,EAAAjI,EAAAyB,GACAzB,EAAAyB,GAAA,IAAAwG,EAGA,QAAA4B,GAAA5B,EAAAjI,EAAAyB,GACA,KAAAwG,EAAA,KACAjI,EAAAyB,KAAA,IAAAwG,EAAA,IACAA,KAAA,CAEAjI,GAAAyB,GAAAwG,EAwCA,QAAA6B,GAAA7B,EAAAjI,EAAAyB,GACA,KAAAwG,EAAAlG,IACA/B,EAAAyB,KAAA,IAAAwG,EAAAnG,GAAA,IACAmG,EAAAnG,IAAAmG,EAAAnG,KAAA,EAAAmG,EAAAlG,IAAA,MAAA,EACAkG,EAAAlG,MAAA,CAEA,MAAAkG,EAAAnG,GAAA,KACA9B,EAAAyB,KAAA,IAAAwG,EAAAnG,GAAA,IACAmG,EAAAnG,GAAAmG,EAAAnG,KAAA,CAEA9B,GAAAyB,KAAAwG,EAAAnG,GA2CA,QAAAiI,GAAA9B,EAAAjI,EAAAyB,GACAzB,EAAAyB,KAAA,IAAAwG,EACAjI,EAAAyB,KAAAwG,IAAA,EAAA,IACAjI,EAAAyB,KAAAwG,IAAA,GAAA,IACAjI,EAAAyB,GAAAwG,IAAA,GAuOA,QAAAnH,KACAD,EAAA5E,KAAAyF,MAmBA,QAAAsI,GAAA/B,EAAAjI,EAAAyB,GACAzB,EAAAiK,aAAAhC,EAAAxG,GAAA,GAWA,QAAAyI,GAAAjC,EAAAjI,EAAAyB,GACAzB,EAAAmK,cAAAlC,EAAAxG,GAAA,GAWA,QAAA2I,GAAAnC,EAAAjI,EAAAyB,GACAwG,EAAA/L,QACA+L,EAAAoC,KAAArK,EAAAyB,EAAA,EAAAwG,EAAA/L,QAriBAE,EAAAJ,QAAA6E,EAEAA,EAAAC,aAAAA,CAEA,IAAAE,GAAAtF,EAAA,GACAgI,EAAAhI,EAAA,GACAmG,EAAAb,EAAAa,SACA/D,EAAAkD,EAAAlD,OACAmC,EAAAe,EAAAf,KACA0D,EAAA,mBAAAC,YAAAA,WAAAxF,KAwCAyC,GAAAsI,GAAAA,EAwCAtI,EAAAyI,MAAAA,EA4CAzI,EAAAgD,OAAA,WACA,MAAA,KAAA7C,EAAA8C,OAAAhD,EAAAD,IAQAA,EAAAnB,MAAA,SAAAE,GACA,MAAA,IAAA+D,GAAA/D,IAIA+D,IAAAvF,QACAyC,EAAAnB,MAAAsB,EAAAvB,KAAAoB,EAAAnB,MAAAiE,EAAAI,UAAAE,UAAAN,EAAAI,UAAApE,OAGA,IAAA2K,GAAAzJ,EAAAkD,SASAuG,GAAAjK,KAAA,SAAA+I,EAAAlJ,EAAA+H,GAGA,MAFAvG,MAAA+H,KAAA/H,KAAA+H,KAAAC,KAAA,GAAAP,GAAAC,EAAAlJ,EAAA+H,GACAvG,KAAAxB,KAAAA,EACAwB,MAoBA4I,EAAAnG,OAAA,SAAA7G,GAEA,MADAA,MAAA,EACAoE,KAAArB,KAAAwJ,EACAvM,EAAA,IAAA,EACAA,EAAA,MAAA,EACAA,EAAA,QAAA,EACAA,EAAA,UAAA,EACA,EACAA,IASAgN,EAAAlG,MAAA,SAAA9G,GACA,MAAAA,GAAA,EACAoE,KAAArB,KAAAyJ,EAAA,GAAAjI,EAAAoE,WAAA3I,IACAoE,KAAAyC,OAAA7G,IAQAgN,EAAAjG,OAAA,SAAA/G,GACA,MAAAoE,MAAAyC,QAAA7G,GAAA,EAAAA,GAAA,MAAA,IAsBAgN,EAAAhH,OAAA,SAAAhG,GACA,GAAAsE,GAAAC,EAAAsE,KAAA7I,EACA,OAAAoE,MAAArB,KAAAyJ,EAAAlI,EAAA1F,SAAA0F,IAUA0I,EAAAjH,MAAAiH,EAAAhH,OAQAgH,EAAA/G,OAAA,SAAAjG,GACA,GAAAsE,GAAAC,EAAAsE,KAAA7I,GAAA0I,UACA,OAAAtE,MAAArB,KAAAyJ,EAAAlI,EAAA1F,SAAA0F,IAQA0I,EAAAhG,KAAA,SAAAhH,GACA,MAAAoE,MAAArB,KAAAuJ,EAAA,EAAAtM,EAAA,EAAA,IAeAgN,EAAA/F,QAAA,SAAAjH,GACA,MAAAoE,MAAArB,KAAA0J,EAAA,EAAAzM,IAAA,IAQAgN,EAAA9F,SAAA,SAAAlH,GACA,MAAAoE,MAAArB,KAAA0J,EAAA,EAAAzM,GAAA,EAAAA,GAAA,KASAgN,EAAA9G,QAAA,SAAAlG,GACA,GAAAsE,GAAAC,EAAAsE,KAAA7I,EACA,OAAAoE,MAAArB,KAAA0J,EAAA,EAAAnI,EAAAE,IAAAzB,KAAA0J,EAAA,EAAAnI,EAAAG,KASAuI,EAAA7G,SAAA,SAAAnG,GACA,GAAAsE,GAAAC,EAAAsE,KAAA7I,GAAA0I,UACA,OAAAtE,MAAArB,KAAA0J,EAAA,EAAAnI,EAAAE,IAAAzB,KAAA0J,EAAA,EAAAnI,EAAAG,IAGA,IAAAwI,GAAA,mBAAA7F,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAE,EAAA,GAAAhB,YAAAe,EAAArI,OAEA,OADAqI,GAAA,IAAA,EACAC,EAAA,GACA,SAAAqD,EAAAjI,EAAAyB,GACAkD,EAAA,GAAAsD,EACAjI,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,GAAAmD,EAAA,IAEA,SAAAqD,EAAAjI,EAAAyB,GACAkD,EAAA,GAAAsD,EACAjI,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,GAAAmD,EAAA,OAGA,SAAAqD,EAAAjI,EAAAyB,GACAiC,EAAArG,MAAA2C,EAAAiI,EAAAxG,GAAA,EAAA,GAAA,GASA6I,GAAAzF,MAAA,SAAAvH,GACA,MAAAoE,MAAArB,KAAAkK,EAAA,EAAAjN,GAGA,IAAAkN,GAAA,mBAAAzF,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAH,EAAA,GAAAhB,YAAAoB,EAAA1I,OAEA,OADA0I,GAAA,IAAA,EACAJ,EAAA,GACA,SAAAqD,EAAAjI,EAAAyB,GACAuD,EAAA,GAAAiD,EACAjI,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,GAAAmD,EAAA,IAEA,SAAAqD,EAAAjI,EAAAyB,GACAuD,EAAA,GAAAiD,EACAjI,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,KAAAmD,EAAA,GACA5E,EAAAyB,GAAAmD,EAAA,OAGA,SAAAqD,EAAAjI,EAAAyB,GACAiC,EAAArG,MAAA2C,EAAAiI,EAAAxG,GAAA,EAAA,GAAA,GASA6I,GAAArF,OAAA,SAAA3H,GACA,MAAAoE,MAAArB,KAAAmK,EAAA,EAAAlN,GAGA,IAAAmN,GAAA9G,EAAAI,UAAA+E,IACA,SAAAb,EAAAjI,EAAAyB,GACAzB,EAAA8I,IAAAb,EAAAxG,IAEA,SAAAwG,EAAAjI,EAAAyB,GACA,IAAA,GAAA9F,GAAA,EAAAA,EAAAsM,EAAA/L,SAAAP,EACAqE,EAAAyB,EAAA9F,GAAAsM,EAAAtM,GAQA2O,GAAApF,MAAA,SAAA5H,GACA,GAAA4C,GAAA5C,EAAApB,SAAA,CACA,IAAA,gBAAAoB,IAAA4C,EAAA,CACA,GAAAF,GAAAa,EAAAnB,MAAAQ,EAAApC,EAAA5B,OAAAoB,GACAQ,GAAAiB,OAAAzB,EAAA0C,EAAA,GACA1C,EAAA0C,EAEA,MAAAE,GACAwB,KAAAyC,OAAAjE,GAAAG,KAAAoK,EAAAvK,EAAA5C,GACAoE,KAAArB,KAAAuJ,EAAA,EAAA,IAQAU,EAAAvM,OAAA,SAAAT,GACA,GAAA4C,GAAAD,EAAA/D,OAAAoB,EACA,OAAA4C,GACAwB,KAAAyC,OAAAjE,GAAAG,KAAAJ,EAAA5C,MAAA6C,EAAA5C,GACAoE,KAAArB,KAAAuJ,EAAA,EAAA,IAQAU,EAAAI,KAAA,WAIA,MAHAhJ,MAAAiI,OAAA,GAAAL,GAAA5H,MACAA,KAAA8H,KAAA9H,KAAA+H,KAAA,GAAAN,GAAAE,EAAA,EAAA,GACA3H,KAAAxB,IAAA,EACAwB,MAOA4I,EAAA/E,MAAA,WAUA,MATA7D,MAAAiI,QACAjI,KAAA8H,KAAA9H,KAAAiI,OAAAH,KACA9H,KAAA+H,KAAA/H,KAAAiI,OAAAF,KACA/H,KAAAxB,IAAAwB,KAAAiI,OAAAzJ,IACAwB,KAAAiI,OAAAjI,KAAAiI,OAAAD,OAEAhI,KAAA8H,KAAA9H,KAAA+H,KAAA,GAAAN,GAAAE,EAAA,EAAA,GACA3H,KAAAxB,IAAA,GAEAwB,MAQA4I,EAAAK,OAAA,SAAAC,GACA,GAAApB,GAAA9H,KAAA8H,KACAC,EAAA/H,KAAA+H,KACAvJ,EAAAwB,KAAAxB,GAQA,OAPAwB,MAAA6D,QACA,gBAAAqF,IACAlJ,KAAAyC,QAAAyG,GAAA,EAAA,KAAA,GACAlJ,KAAAyC,OAAAjE,GACAwB,KAAA+H,KAAAC,KAAAF,EAAAE,KACAhI,KAAA+H,KAAAA,EACA/H,KAAAxB,KAAAA,EACAwB,MAOA4I,EAAA9E,OAAA,WAIA,IAHA,GAAAgE,GAAA9H,KAAA8H,KAAAE,KACA1J,EAAA0B,KAAAyD,YAAAzF,MAAAgC,KAAAxB,KACAuB,EAAA,EACA+H,GACAA,EAAAJ,GAAAI,EAAAvB,IAAAjI,EAAAyB,GACAA,GAAA+H,EAAAtJ,IACAsJ,EAAAA,EAAAE,IAGA,OADAhI,MAAA8H,KAAA9H,KAAA+H,KAAA,KACAzJ,GAmBAc,EAAApB,MAAA,SAAAE,GAIA,MAHAkB,GAAApB,MAAAsB,EAAA8C,OAAA+G,YACA7J,EAAA8C,OAAA+G,YACA,SAAAjL,GAAA,MAAA,IAAAoB,GAAA8C,OAAAlE,IACAkB,EAAApB,MAAAE,GAIA,IAAAkL,GAAAhK,EAAAiD,UAAAxE,OAAAsE,OAAAhD,EAAAkD,UACA+G,GAAA3F,YAAArE,EAMA,mBAAA4D,gBAIAoG,EAAAjG,MAAA,SAAAvH,GACA,MAAAoE,MAAArB,KAAA2J,EAAA,EAAA1M,KAOA,mBAAAyH,gBAIA+F,EAAA7F,OAAA,SAAA3H,GACA,MAAAoE,MAAArB,KAAA6J,EAAA,EAAA5M,IAQA,IAAAyN,GAAA/J,EAAA8C,QAAA9C,EAAA8C,OAAAqC,MAAA,SAAA7I,EAAA0N,GAAA,MAAA,IAAAhK,GAAA8C,OAAAxG,EAAA0N,GAKAF,GAAA5F,MAAA,SAAA5H,GACA,gBAAAA,KACAA,EAAAyN,EAAAzN,EAAA,UACA,IAAA4C,GAAA5C,EAAApB,SAAA,CACA,OAAAgE,GACAwB,KAAAyC,OAAAjE,GAAAG,KAAA+J,EAAAlK,EAAA5C,GACAoE,KAAArB,KAAAuJ,EAAA,EAAA,GAGA,IAAAqB,GAAA,WACA,MAAAjK,GAAA8C,QAAA9C,EAAA8C,OAAAC,UAAAmH,UACA,SAAAjD,EAAAjI,EAAAyB,GACAwG,EAAA/L,OAAA,GACA+D,EAAA5C,MAAA4K,EAAAjI,EAAAyB,GAEAzB,EAAAkL,UAAAjD,EAAAxG,IAEA,SAAAwG,EAAAjI,EAAAyB,GACAwG,EAAA/L,OAAA,GACA+D,EAAA5C,MAAA4K,EAAAjI,EAAAyB,GAEAzB,EAAA3C,MAAA4K,EAAAxG,MAUAqJ,GAAA/M,OAAA,SAAAT,GACA,GAAA4C,GAAA5C,EAAApB,OAAA,GACA+D,EAAA/D,OAAAoB,GACA0D,EAAA8C,OAAAqH,WAAA7N,EACA,OAAA4C,GACAwB,KAAAyC,OAAAjE,GAAAG,KAAA4K,EAAA/K,EAAA5C,GACAoE,KAAArB,KAAAuJ,EAAA,EAAA","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// This file exports just the bare minimum required to work with statically generated code.\r\n// Can be used as a drop-in replacement for the full library as it has the same general structure.\r\nvar protobuf = exports;\r\n\r\nvar Writer = protobuf.Writer = require(10);\r\nprotobuf.BufferWriter = Writer.BufferWriter;\r\nvar Reader = protobuf.Reader = require(7);\r\nprotobuf.BufferReader = Reader.BufferReader;\r\nprotobuf.util = require(9);\r\nprotobuf.roots = {};\r\nprotobuf.configure = configure;\r\n\r\nfunction configure() {\r\n Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nReader.BufferReader = BufferReader;\r\n\r\nvar util = require(9),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n return new (util.Buffer ? BufferReader : Reader)(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n var Buffer = util.Buffer;\r\n if (!Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = Buffer.prototype.slice;\r\n readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\n\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.float = function read_float_buffer() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = this.buf.readFloatLE(this.pos, true);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.double = function read_double_buffer() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n var value = this.buf.readDoubleLE(this.pos, true);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return readStringBuffer(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(9);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nWriter.BufferWriter = BufferWriter;\r\n\r\nvar util = require(9),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {*} val Value to write\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, len, val) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {Writer.Op|undefined}\r\n */\r\n // this.next = undefined;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val; // type varies\r\n}\r\n\r\nWriter.Op = Op;\r\n\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = writer.states;\r\n}\r\n\r\nWriter.State = State;\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = function create() {\r\n return new (util.Buffer ? BufferWriter : Writer);\r\n};\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nWriter.alloc = function alloc(size) {\r\n return new ArrayImpl(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (ArrayImpl !== Array)\r\n Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n this.tail = this.tail.next = new Op(fn, len, val);\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @exports BufferWriter\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nfunction writeFloatBuffer(val, buf, pos) {\r\n buf.writeFloatLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.float = function write_float_buffer(value) {\r\n return this.push(writeFloatBuffer, 4, value);\r\n};\r\n\r\nfunction writeDoubleBuffer(val, buf, pos) {\r\n buf.writeDoubleLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.double = function write_double_buffer(value) {\r\n return this.push(writeDoubleBuffer, 8, value);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n if (val.length)\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n return len\r\n ? this.uint32(len).push(writeBytesBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n return len\r\n ? this.uint32(len).push(writeStringBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","runtime","src/reader.js","src/reader_buffer.js","src/util/longbits.js","src/util/runtime.js","src/writer.js","src/writer_buffer.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","read","buffer","offset","isBE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","base64","string","p","charAt","ceil","b64","Array","s64","encode","start","end","j","b","String","fromCharCode","apply","invalidEncoding","decode","charCodeAt","undefined","inquire","moduleName","mod","eval","replace","Object","keys","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","parts","chunk","push","join","c1","c2","configure","Reader","_configure","protobuf","Writer","BufferWriter","BufferReader","util","roots","define","amd","Long","indexOutOfRange","reader","writeLength","RangeError","pos","this","readLongVarint","bits","LongBits","lo","hi","read_int64_long","toLong","read_int64_number","toNumber","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","ieee754","ArrayImpl","Uint8Array","create","Buffer","prototype","_slice","subarray","read_uint32","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","float","readDouble","Float64Array","f64","double","bytes","constructor","skip","skipType","wireType","reset","finish","remain","initBufferReader","readStringBuffer_utf8Slice","utf8Slice","readStringBuffer_toString","toString","BufferReaderPrototype","readStringBuffer","min","LongBitsPrototype","zero","zzEncode","fromNumber","sign","from","parseInt","fromString","low","high","unsigned","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","isNode","global","process","versions","node","dcodeIO","isInteger","Number","isFinite","isString","isObject","longToHash","longFromHash","fromBits","longNeq","longNe","val","props","target","descriptors","forEach","key","prop","descriptor","ie8","ucKey","substring","toUpperCase","get","set","defineProperty","emptyArray","freeze","emptyObject","Op","fn","noop","State","writer","head","tail","next","states","writeByte","writeVarint32","writeVarint64","writeFixed32","WriterPrototype","writeFloat","writeDouble","writeBytes","fork","ldelim","id","writeBytesBuffer","copy","BufferWriterPrototype","allocUnsafe","Buffer_from","encoding","writeStringBuffer","utf8Write","byteLength"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// This file exports just the bare minimum required to work with statically generated code.\r\n// Can be used as a drop-in replacement for the full library as it has the same general structure.\r\nvar protobuf = exports;\r\n\r\nvar Writer = protobuf.Writer = require(11);\r\nprotobuf.BufferWriter = Writer.BufferWriter;\r\nvar Reader = protobuf.Reader = require(7);\r\nprotobuf.BufferReader = Reader.BufferReader;\r\nprotobuf.util = require(10);\r\nprotobuf.roots = {};\r\nprotobuf.configure = configure;\r\n\r\nfunction configure() {\r\n Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(10),\r\n ieee754 = require(1);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = function create(buffer) {\r\n if (util.Buffer) {\r\n if (!BufferReader)\r\n BufferReader = require(8);\r\n return new BufferReader(buffer);\r\n }\r\n return new Reader(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\nvar read_uint32 = \r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n // FIXME: tends to soft-deopt with \"Insufficient type feedback for generic named access\", which\r\n // is not a problem, but with --trace-deopt, node v4-v7 always crashes when the above happens.\r\n var value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n};\r\n\r\n// See comment above. While unnecessary code, this prevents crashing with --trace-deopt (node 6.9.1).\r\nread_uint32.call({\r\n buf: [255,255,255,255,15],\r\n pos: 0,\r\n len: 5\r\n});\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0, 0),\r\n i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n wireType = this.uint32() & 7;\r\n if (wireType === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\nvar Reader = require(7);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(10);\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n if (!util.Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(10);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return Boolean(value && typeof value === \"object\");\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated\r\n * @see Use {@link util.longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nvar util = require(10),\r\n ieee754 = require(1);\r\n\r\nvar BufferWriter; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {*} val Value to write\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, len, val) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {Writer.Op|undefined}\r\n */\r\n // this.next = undefined;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val; // type varies\r\n}\r\n\r\nWriter.Op = Op;\r\n\r\n/* istanbul ignore next */\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = writer.states;\r\n}\r\n\r\nWriter.State = State;\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = function create() {\r\n if (util.Buffer) {\r\n if (!BufferWriter)\r\n BufferWriter = require(12);\r\n return new BufferWriter();\r\n }\r\n return new Writer();\r\n};\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nWriter.alloc = function alloc(size) {\r\n return new ArrayImpl(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (ArrayImpl !== Array)\r\n /* istanbul ignore next */\r\n Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n this.tail = this.tail.next = new Op(fn, len, val);\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n /* istanbul ignore next */\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n /* istanbul ignore next */\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n /* istanbul ignore next */\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset} or {@link Writer#ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n this.head = this.tail = null; // gc\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\nvar Writer = require(11);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(10);\r\n\r\nvar utf8 = util.utf8;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\nvar Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer_from(value, \"base64\");\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/package.json b/package.json index a994edb6f..ddba92ae8 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "test": "tape tests/*.js | tap-spec", "types": "node bin/pbts --name protobufjs --out types/protobuf.js.d.ts src && tsc types/test.ts --lib es2015 --noEmit", "zuul": "zuul --ui tape --no-coverage --concurrency 4 -- tests/*.js", - "zuul-local": "zuul --ui tape --no-coverage --concurrency 1 --local 8080 --disable-tunnel -- tests/*.js" + "zuul-local": "zuul --ui tape --concurrency 1 --local 8080 --disable-tunnel -- tests/*.js" }, "dependencies": { "@protobufjs/aspromise": "^1.0.3", diff --git a/src/index.js b/src/index.js index 370b4ccfe..6b6bc5e5f 100644 --- a/src/index.js +++ b/src/index.js @@ -78,10 +78,10 @@ protobuf.tokenize = require("./tokenize"); protobuf.parse = require("./parse"); // Serialization -protobuf.BufferWriter = ( -protobuf.Writer = require("./writer")).BufferWriter; -protobuf.BufferReader = ( -protobuf.Reader = require("./reader")).BufferReader; +protobuf.Writer = require("./writer"); +protobuf.BufferWriter = require("./writer_buffer"); +protobuf.Reader = require("./reader"); +protobuf.BufferReader = require("./reader_buffer"); protobuf.encoder = require("./encoder"); protobuf.decoder = require("./decoder"); protobuf.verifier = require("./verifier"); diff --git a/src/mapfield.js b/src/mapfield.js index 9388aa661..f3979e58d 100644 --- a/src/mapfield.js +++ b/src/mapfield.js @@ -85,14 +85,9 @@ MapFieldPrototype.resolve = function resolve() { if (this.resolved) return this; - // Besides a value type, map fields have a key type to resolve - var keyWireType = types.mapKey[this.keyType]; - if (keyWireType === undefined) { - var resolved = this.parent.lookup(this.keyType); - if (!(resolved instanceof Enum)) - throw Error("unresolvable key type: " + this.keyType); - this.resolvedKeyType = resolved; - } + // Besides a value type, map fields possibily have an enum as its key type to resolve + if (types.mapKey[this.keyType] === undefined && !(this.resolvedKeyType = this.parent.lookup(this.keyType, Enum))) + throw Error("unresolvable key type: " + this.keyType); return FieldPrototype.resolve.call(this); }; diff --git a/src/reader.js b/src/reader.js index 95a26d5fb..45c8baa3a 100644 --- a/src/reader.js +++ b/src/reader.js @@ -1,12 +1,15 @@ "use strict"; module.exports = Reader; -Reader.BufferReader = BufferReader; - var util = require("./util/runtime"), ieee754 = require("../lib/ieee754"); + +var BufferReader; // cyclic + var LongBits = util.LongBits, utf8 = util.utf8; + +/* istanbul ignore next */ var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; function indexOutOfRange(reader, writeLength) { @@ -46,7 +49,12 @@ function Reader(buffer) { * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} */ Reader.create = function create(buffer) { - return new (util.Buffer ? BufferReader : Reader)(buffer); + if (util.Buffer) { + if (!BufferReader) + BufferReader = require("./reader_buffer"); + return new BufferReader(buffer); + } + return new Reader(buffer); }; /** @alias Reader.prototype */ @@ -465,92 +473,6 @@ ReaderPrototype.finish = function finish(buffer) { return remain; }; -// One time function to initialize BufferReader with the now-known buffer implementation's slice method -var initBufferReader = function() { - var Buffer = util.Buffer; - if (!Buffer) - throw Error("Buffer is not supported"); - BufferReaderPrototype._slice = Buffer.prototype.slice; - readStringBuffer = Buffer.prototype.utf8Slice // around forever, but not present in browser buffer - ? readStringBuffer_utf8Slice - : readStringBuffer_toString; - initBufferReader = false; -}; - -/** - * Constructs a new buffer reader instance. - * @classdesc Wire format reader using node buffers. - * @extends Reader - * @constructor - * @param {Buffer} buffer Buffer to read from - */ -function BufferReader(buffer) { - if (initBufferReader) - initBufferReader(); - Reader.call(this, buffer); -} - -/** @alias BufferReader.prototype */ -var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); - -BufferReaderPrototype.constructor = BufferReader; - -if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) -/** - * @override - */ -BufferReaderPrototype.float = function read_float_buffer() { - if (this.pos + 4 > this.len) - throw indexOutOfRange(this, 4); - var value = this.buf.readFloatLE(this.pos, true); - this.pos += 4; - return value; -}; - -if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) -/** - * @override - */ -BufferReaderPrototype.double = function read_double_buffer() { - if (this.pos + 8 > this.len) - throw indexOutOfRange(this, 8); - var value = this.buf.readDoubleLE(this.pos, true); - this.pos += 8; - return value; -}; - -var readStringBuffer; - -function readStringBuffer_utf8Slice(buf, start, end) { - return buf.utf8Slice(start, end); // fastest -} - -function readStringBuffer_toString(buf, start, end) { - return buf.toString("utf8", start, end); // 2nd, again assertions -} - -/** - * @override - */ -BufferReaderPrototype.string = function read_string_buffer() { - var length = this.uint32(), - start = this.pos, - end = this.pos + length; - if (end > this.len) - throw indexOutOfRange(this, length); - this.pos += length; - return readStringBuffer(this.buf, start, end); -}; - -/** - * @override - */ -BufferReaderPrototype.finish = function finish_buffer(buffer) { - var remain = this.pos ? this.buf.slice(this.pos) : this.buf; - this.reset(buffer); - return remain; -}; - function configure() { if (util.Long) { ReaderPrototype.int64 = read_int64_long; diff --git a/src/reader_buffer.js b/src/reader_buffer.js new file mode 100644 index 000000000..ebb52b096 --- /dev/null +++ b/src/reader_buffer.js @@ -0,0 +1,60 @@ +"use strict"; +module.exports = BufferReader; + +var Reader = require("./reader"); +/** @alias BufferReader.prototype */ +var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); +BufferReaderPrototype.constructor = BufferReader; + +var util = require("./util/runtime"); + +// One time function to initialize BufferReader with the now-known buffer implementation's slice method +var initBufferReader = function() { + if (!util.Buffer) + throw Error("Buffer is not supported"); + BufferReaderPrototype._slice = util.Buffer.prototype.slice; + readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer + ? readStringBuffer_utf8Slice + : readStringBuffer_toString; + initBufferReader = false; +}; + +/** + * Constructs a new buffer reader instance. + * @classdesc Wire format reader using node buffers. + * @extends Reader + * @constructor + * @param {Buffer} buffer Buffer to read from + */ +function BufferReader(buffer) { + if (initBufferReader) + initBufferReader(); + Reader.call(this, buffer); +} + +var readStringBuffer; + +function readStringBuffer_utf8Slice(buf, start, end) { + return buf.utf8Slice(start, end); // fastest +} + +function readStringBuffer_toString(buf, start, end) { + return buf.toString("utf8", start, end); // 2nd, again assertions +} + +/** + * @override + */ +BufferReaderPrototype.string = function read_string_buffer() { + var len = this.uint32(); // modifies pos + return readStringBuffer(this.buf, this.pos, this.pos = Math.min(this.pos + len, this.len)); +}; + +/** + * @override + */ +BufferReaderPrototype.finish = function finish_buffer(buffer) { + var remain = this.pos ? this.buf.slice(this.pos) : this.buf; + this.reset(buffer); + return remain; +}; diff --git a/src/writer.js b/src/writer.js index 7e2900312..0b0706cd1 100644 --- a/src/writer.js +++ b/src/writer.js @@ -1,13 +1,16 @@ "use strict"; module.exports = Writer; -Writer.BufferWriter = BufferWriter; - var util = require("./util/runtime"), ieee754 = require("../lib/ieee754"); + +var BufferWriter; // cyclic + var LongBits = util.LongBits, base64 = util.base64, utf8 = util.utf8; + +/* istanbul ignore next */ var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; /** @@ -50,6 +53,7 @@ function Op(fn, len, val) { Writer.Op = Op; +/* istanbul ignore next */ function noop() {} // eslint-disable-line no-empty-function /** @@ -133,7 +137,12 @@ function Writer() { * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} */ Writer.create = function create() { - return new (util.Buffer ? BufferWriter : Writer); + if (util.Buffer) { + if (!BufferWriter) + BufferWriter = require("./writer_buffer"); + return new BufferWriter(); + } + return new Writer(); }; /** @@ -147,6 +156,7 @@ Writer.alloc = function alloc(size) { // Use Uint8Array buffer pool in the browser, just like node does with buffers if (ArrayImpl !== Array) + /* istanbul ignore next */ Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice); /** @alias Writer.prototype */ @@ -320,6 +330,7 @@ var writeFloat = typeof Float32Array !== "undefined" f8b = new Uint8Array(f32.buffer); f32[0] = -0; return f8b[3] // already le? + /* istanbul ignore next */ ? function writeFloat_f32(val, buf, pos) { f32[0] = val; buf[pos++] = f8b[0]; @@ -335,6 +346,7 @@ var writeFloat = typeof Float32Array !== "undefined" buf[pos ] = f8b[0]; }; })() + /* istanbul ignore next */ : function writeFloat_ieee754(val, buf, pos) { ieee754.write(buf, val, pos, false, 23, 4); }; @@ -355,6 +367,7 @@ var writeDouble = typeof Float64Array !== "undefined" f8b = new Uint8Array(f64.buffer); f64[0] = -0; return f8b[7] // already le? + /* istanbul ignore next */ ? function writeDouble_f64(val, buf, pos) { f64[0] = val; buf[pos++] = f8b[0]; @@ -378,6 +391,7 @@ var writeDouble = typeof Float64Array !== "undefined" buf[pos ] = f8b[0]; }; })() + /* istanbul ignore next */ : function writeDouble_ieee754(val, buf, pos) { ieee754.write(buf, val, pos, false, 52, 8); }; @@ -396,6 +410,7 @@ var writeBytes = ArrayImpl.prototype.set ? function writeBytes_set(val, buf, pos) { buf.set(val, pos); } + /* istanbul ignore next */ : function writeBytes_for(val, buf, pos) { for (var i = 0; i < val.length; ++i) buf[pos + i] = val[i]; @@ -427,6 +442,7 @@ WriterPrototype.string = function write_string(value) { var len = utf8.length(value); return len ? this.uint32(len).push(utf8.write, len, value) + /* istanbul ignore next */ : this.push(writeByte, 1, 0); }; @@ -494,104 +510,3 @@ WriterPrototype.finish = function finish() { this.head = this.tail = null; // gc return buf; }; - -/** - * Constructs a new buffer writer instance. - * @classdesc Wire format writer using node buffers. - * @exports BufferWriter - * @extends Writer - * @constructor - */ -function BufferWriter() { - Writer.call(this); -} - -/** - * Allocates a buffer of the specified size. - * @param {number} size Buffer size - * @returns {Uint8Array} Buffer - */ -BufferWriter.alloc = function alloc_buffer(size) { - BufferWriter.alloc = util.Buffer.allocUnsafe - ? util.Buffer.allocUnsafe - : function allocUnsafeNew(size) { return new util.Buffer(size); }; - return BufferWriter.alloc(size); -}; - -/** @alias BufferWriter.prototype */ -var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); -BufferWriterPrototype.constructor = BufferWriter; - -function writeFloatBuffer(val, buf, pos) { - buf.writeFloatLE(val, pos, true); -} - -if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) -/** - * @override - */ -BufferWriterPrototype.float = function write_float_buffer(value) { - return this.push(writeFloatBuffer, 4, value); -}; - -function writeDoubleBuffer(val, buf, pos) { - buf.writeDoubleLE(val, pos, true); -} - -if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) -/** - * @override - */ -BufferWriterPrototype.double = function write_double_buffer(value) { - return this.push(writeDoubleBuffer, 8, value); -}; - -function writeBytesBuffer(val, buf, pos) { - if (val.length) - val.copy(buf, pos, 0, val.length); -} - -var Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); }; - -/** - * @override - */ -BufferWriterPrototype.bytes = function write_bytes_buffer(value) { - if (typeof value === "string") - value = Buffer_from(value, "base64"); - var len = value.length >>> 0; - return len - ? this.uint32(len).push(writeBytesBuffer, len, value) - : this.push(writeByte, 1, 0); -}; - -var writeStringBuffer = (function() { // eslint-disable-line wrap-iife - return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer - ? function writeString_buffer_utf8Write(val, buf, pos) { - if (val.length < 40) - utf8.write(val, buf, pos); - else - buf.utf8Write(val, pos); - } - : function writeString_buffer_write(val, buf, pos) { - if (val.length < 40) - utf8.write(val, buf, pos); - else - buf.write(val, pos); - }; - // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions. - // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters. - // Unfortunately, this does not translate 1:1 to real use cases, hence the common "good enough" limit of 40. -})(); - -/** - * @override - */ -BufferWriterPrototype.string = function write_string_buffer(value) { - var len = value.length < 40 - ? utf8.length(value) - : util.Buffer.byteLength(value); - return len - ? this.uint32(len).push(writeStringBuffer, len, value) - : this.push(writeByte, 1, 0); -}; diff --git a/src/writer_buffer.js b/src/writer_buffer.js new file mode 100644 index 000000000..4315da380 --- /dev/null +++ b/src/writer_buffer.js @@ -0,0 +1,84 @@ +"use strict"; +module.exports = BufferWriter; + +var Writer = require("./writer"); +/** @alias BufferWriter.prototype */ +var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); +BufferWriterPrototype.constructor = BufferWriter; + +var util = require("./util/runtime"); + +var utf8 = util.utf8; + +/** + * Constructs a new buffer writer instance. + * @classdesc Wire format writer using node buffers. + * @extends Writer + * @constructor + */ +function BufferWriter() { + Writer.call(this); +} + +/** + * Allocates a buffer of the specified size. + * @param {number} size Buffer size + * @returns {Uint8Array} Buffer + */ +BufferWriter.alloc = function alloc_buffer(size) { + BufferWriter.alloc = util.Buffer.allocUnsafe + ? util.Buffer.allocUnsafe + : function allocUnsafeNew(size) { return new util.Buffer(size); }; + return BufferWriter.alloc(size); +}; + +function writeBytesBuffer(val, buf, pos) { + val.copy(buf, pos, 0, val.length); +} + +var Buffer_from = util.Buffer && util.Buffer.from || function(value, encoding) { return new util.Buffer(value, encoding); }; + +/** + * @override + */ +BufferWriterPrototype.bytes = function write_bytes_buffer(value) { + if (typeof value === "string") + value = Buffer_from(value, "base64"); + var len = value.length >>> 0; + this.uint32(len); + if (len) + this.push(writeBytesBuffer, len, value); + return this; +}; + +var writeStringBuffer = (function() { // eslint-disable-line wrap-iife + return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer + ? function writeString_buffer_utf8Write(val, buf, pos) { + if (val.length < 40) + utf8.write(val, buf, pos); + else + buf.utf8Write(val, pos); + } + : function writeString_buffer_write(val, buf, pos) { + if (val.length < 40) + utf8.write(val, buf, pos); + else + buf.write(val, pos); + }; + // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions. + // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters. + // Unfortunately, this does not translate 1:1 to real use cases, hence the common "good enough" limit of 40. +})(); + +/** + * @override + */ +BufferWriterPrototype.string = function write_string_buffer(value) { + var len = value.length < 40 + ? utf8.length(value) + : util.Buffer.byteLength(value); + this.uint32(len); + if (len) + this.push(writeStringBuffer, len, value); + return this; +}; diff --git a/types/protobuf.js.d.ts b/types/protobuf.js.d.ts index 6fdd553a9..6537def11 100644 --- a/types/protobuf.js.d.ts +++ b/types/protobuf.js.d.ts @@ -1,5 +1,5 @@ // $> pbts --name protobufjs --out types/protobuf.js.d.ts src -// Generated Sun, 18 Dec 2016 17:32:42 UTC +// Generated Sun, 18 Dec 2016 19:24:12 UTC declare module "protobufjs" { /** @@ -2526,7 +2526,6 @@ declare module "protobufjs" { /** * Constructs a new buffer writer instance. * @classdesc Wire format writer using node buffers. - * @exports BufferWriter * @extends Writer * @constructor */ @@ -2535,7 +2534,6 @@ declare module "protobufjs" { /** * Constructs a new buffer writer instance. * @classdesc Wire format writer using node buffers. - * @exports BufferWriter * @extends Writer * @constructor */