Files
autoAiWorkSys/_doc/js/mqtt.js
张成 7ee92b8905 1
2025-12-25 22:11:34 +08:00

5782 lines
209 KiB
JavaScript

!function(t, i) {
"function" == typeof define && define.amd ? define([], function() {
(t.dcodeIO = t.dcodeIO || {}).Long = i()
}) : "function" == typeof require && "object" == typeof module && module && module.exports ? module.exports = i() : (t.dcodeIO = t.dcodeIO || {}).Long = i()
}(this, function() {
"use strict";
function e(t, i, r) {
this.low = 0 | t,
this.high = 0 | i,
this.unsigned = !!r
}
function c(t) {
return !0 === (t && t.t)
}
Object.defineProperty(e.prototype, "t", {
value: !0,
enumerable: !1,
configurable: !1
}),
e.isLong = c;
var s = {}
, o = {};
function t(t, i) {
var r, e, n;
return i ? (n = 0 <= (t >>>= 0) && t < 256) && (e = o[t]) ? e : (r = w(t, (0 | t) < 0 ? -1 : 0, !0),
n && (o[t] = r),
r) : (n = -128 <= (t |= 0) && t < 128) && (e = s[t]) ? e : (r = w(t, t < 0 ? -1 : 0, !1),
n && (s[t] = r),
r)
}
function g(t, i) {
if (isNaN(t) || !isFinite(t))
return i ? f : d;
if (i) {
if (t < 0)
return f;
if (n <= t)
return m
} else {
if (t <= -h)
return I;
if (h <= t + 1)
return b
}
return t < 0 ? g(-t, i).neg() : w(t % r | 0, t / r | 0, i)
}
function w(t, i, r) {
return new e(t,i,r)
}
e.fromInt = t,
e.fromNumber = g,
e.fromBits = w;
var a = Math.pow;
function u(t, i, r) {
if (0 === t.length)
throw Error("empty string");
if ("NaN" === t || "Infinity" === t || "+Infinity" === t || "-Infinity" === t)
return d;
if (i = "number" == typeof i ? (r = i,
!1) : !!i,
(r = r || 10) < 2 || 36 < r)
throw RangeError("radix");
var e;
if (0 < (e = t.indexOf("-")))
throw Error("interior hyphen");
if (0 === e)
return u(t.substring(1), i, r).neg();
for (var n = g(a(r, 8)), s = d, o = 0; o < t.length; o += 8)
var h = Math.min(8, t.length - o)
, f = parseInt(t.substring(o, o + h), r)
, s = (h < 8 ? (h = g(a(r, h)),
s.mul(h)) : s = s.mul(n)).add(g(f));
return s.unsigned = i,
s
}
function p(t) {
return t instanceof e ? t : "number" == typeof t ? g(t) : "string" == typeof t ? u(t) : w(t.low, t.high, t.unsigned)
}
e.fromString = u,
e.fromValue = p;
var r = 4294967296
, n = r * r
, h = n / 2
, v = t(1 << 24)
, d = t(0)
, f = (e.ZERO = d,
t(0, !0))
, l = (e.UZERO = f,
t(1))
, y = (e.ONE = l,
t(1, !0))
, E = (e.UONE = y,
t(-1))
, b = (e.NEG_ONE = E,
w(-1, 2147483647, !1))
, m = (e.MAX_VALUE = b,
w(-1, -1, !0))
, I = (e.MAX_UNSIGNED_VALUE = m,
w(0, -2147483648, !1))
, i = (e.MIN_VALUE = I,
e.prototype);
return i.toInt = function() {
return this.unsigned ? this.low >>> 0 : this.low
}
,
i.toNumber = function() {
return this.unsigned ? (this.high >>> 0) * r + (this.low >>> 0) : this.high * r + (this.low >>> 0)
}
,
i.toString = function(t) {
if ((t = t || 10) < 2 || 36 < t)
throw RangeError("radix");
if (this.isZero())
return "0";
var i, r;
if (this.isNegative())
return this.eq(I) ? (r = g(t),
r = (i = this.div(r)).mul(r).sub(this),
i.toString(t) + r.toInt().toString(t)) : "-" + this.neg().toString(t);
for (var e = g(a(t, 6), this.unsigned), n = this, s = ""; ; ) {
var o = n.div(e)
, h = (n.sub(o.mul(e)).toInt() >>> 0).toString(t);
if ((n = o).isZero())
return h + s;
for (; h.length < 6; )
h = "0" + h;
s = "" + h + s
}
}
,
i.getHighBits = function() {
return this.high
}
,
i.getHighBitsUnsigned = function() {
return this.high >>> 0
}
,
i.getLowBits = function() {
return this.low
}
,
i.getLowBitsUnsigned = function() {
return this.low >>> 0
}
,
i.getNumBitsAbs = function() {
if (this.isNegative())
return this.eq(I) ? 64 : this.neg().getNumBitsAbs();
for (var t = 0 != this.high ? this.high : this.low, i = 31; 0 < i && 0 == (t & 1 << i); i--)
;
return 0 != this.high ? i + 33 : i + 1
}
,
i.isZero = function() {
return 0 === this.high && 0 === this.low
}
,
i.isNegative = function() {
return !this.unsigned && this.high < 0
}
,
i.isPositive = function() {
return this.unsigned || 0 <= this.high
}
,
i.isOdd = function() {
return 1 == (1 & this.low)
}
,
i.isEven = function() {
return 0 == (1 & this.low)
}
,
i.equals = function(t) {
return c(t) || (t = p(t)),
(this.unsigned === t.unsigned || this.high >>> 31 != 1 || t.high >>> 31 != 1) && this.high === t.high && this.low === t.low
}
,
i.eq = i.equals,
i.notEquals = function(t) {
return !this.eq(t)
}
,
i.neq = i.notEquals,
i.lessThan = function(t) {
return this.comp(t) < 0
}
,
i.lt = i.lessThan,
i.lessThanOrEqual = function(t) {
return this.comp(t) <= 0
}
,
i.lte = i.lessThanOrEqual,
i.greaterThan = function(t) {
return 0 < this.comp(t)
}
,
i.gt = i.greaterThan,
i.greaterThanOrEqual = function(t) {
return 0 <= this.comp(t)
}
,
i.gte = i.greaterThanOrEqual,
i.compare = function(t) {
var i, r;
return c(t) || (t = p(t)),
this.eq(t) ? 0 : (i = this.isNegative(),
r = t.isNegative(),
i && !r ? -1 : !i && r ? 1 : this.unsigned ? t.high >>> 0 > this.high >>> 0 || t.high === this.high && t.low >>> 0 > this.low >>> 0 ? -1 : 1 : this.sub(t).isNegative() ? -1 : 1)
}
,
i.comp = i.compare,
i.negate = function() {
return !this.unsigned && this.eq(I) ? I : this.not().add(l)
}
,
i.neg = i.negate,
i.add = function(t) {
c(t) || (t = p(t));
var i = this.high >>> 16
, r = 65535 & this.high
, e = this.low >>> 16
, n = 65535 & this.low
, s = t.high >>> 16
, o = 65535 & t.high
, h = t.low >>> 16
, f = 0
, a = 0
, u = 0;
return a += (n = ((u += n + (65535 & t.low)) >>> 16) + (e + h)) >>> 16,
w((n &= 65535) << 16 | (u &= 65535), ((f += (a += r + o) >>> 16) + (i + s) & 65535) << 16 | (a &= 65535), this.unsigned)
}
,
i.subtract = function(t) {
return c(t) || (t = p(t)),
this.add(t.neg())
}
,
i.sub = i.subtract,
i.multiply = function(t) {
var i, r, e, n, s, o, h, f, a, u, l;
return this.isZero() || (t = c(t) ? t : p(t)).isZero() ? d : this.eq(I) ? t.isOdd() ? I : d : t.eq(I) ? this.isOdd() ? I : d : this.isNegative() ? t.isNegative() ? this.neg().mul(t.neg()) : this.neg().mul(t).neg() : t.isNegative() ? this.mul(t.neg()).neg() : this.lt(v) && t.lt(v) ? g(this.toNumber() * t.toNumber(), this.unsigned) : (i = this.high >>> 16,
r = 65535 & this.high,
e = this.low >>> 16,
n = 65535 & this.low,
s = t.high >>> 16,
o = 65535 & t.high,
h = t.low >>> 16,
l = (u = f = 0) + ((a = ((u += n * (t = 65535 & t.low)) >>> 16) + e * t) >>> 16) + ((a = (65535 & a) + n * h) >>> 16),
w((a &= 65535) << 16 | (u &= 65535), ((f += (l += r * t) >>> 16) + ((l = (65535 & l) + e * h) >>> 16) + ((l = (65535 & l) + n * o) >>> 16) + (i * t + r * h + e * o + n * s) & 65535) << 16 | (l &= 65535), this.unsigned))
}
,
i.mul = i.multiply,
i.divide = function(t) {
if ((t = c(t) ? t : p(t)).isZero())
throw Error("division by zero");
if (this.isZero())
return this.unsigned ? f : d;
var i, r;
if (this.unsigned) {
if ((t = t.unsigned ? t : t.toUnsigned()).gt(this))
return f;
if (t.gt(this.shru(1)))
return y;
r = f
} else {
if (this.eq(I))
return t.eq(l) || t.eq(E) ? I : t.eq(I) ? l : (e = this.shr(1).div(t).shl(1)).eq(d) ? t.isNegative() ? l : E : (i = this.sub(t.mul(e)),
e.add(i.div(t)));
if (t.eq(I))
return this.unsigned ? f : d;
if (this.isNegative())
return t.isNegative() ? this.neg().div(t.neg()) : this.neg().div(t).neg();
if (t.isNegative())
return this.div(t.neg()).neg();
r = d
}
for (i = this; i.gte(t); ) {
for (var e = Math.max(1, Math.floor(i.toNumber() / t.toNumber())), n = Math.ceil(Math.log(e) / Math.LN2), s = n <= 48 ? 1 : a(2, n - 48), o = g(e), h = o.mul(t); h.isNegative() || h.gt(i); )
h = (o = g(e -= s, this.unsigned)).mul(t);
o.isZero() && (o = l),
r = r.add(o),
i = i.sub(h)
}
return r
}
,
i.div = i.divide,
i.modulo = function(t) {
return c(t) || (t = p(t)),
this.sub(this.div(t).mul(t))
}
,
i.mod = i.modulo,
i.not = function() {
return w(~this.low, ~this.high, this.unsigned)
}
,
i.and = function(t) {
return c(t) || (t = p(t)),
w(this.low & t.low, this.high & t.high, this.unsigned)
}
,
i.or = function(t) {
return c(t) || (t = p(t)),
w(this.low | t.low, this.high | t.high, this.unsigned)
}
,
i.xor = function(t) {
return c(t) || (t = p(t)),
w(this.low ^ t.low, this.high ^ t.high, this.unsigned)
}
,
i.shiftLeft = function(t) {
return c(t) && (t = t.toInt()),
0 == (t &= 63) ? this : t < 32 ? w(this.low << t, this.high << t | this.low >>> 32 - t, this.unsigned) : w(0, this.low << t - 32, this.unsigned)
}
,
i.shl = i.shiftLeft,
i.shiftRight = function(t) {
return c(t) && (t = t.toInt()),
0 == (t &= 63) ? this : t < 32 ? w(this.low >>> t | this.high << 32 - t, this.high >> t, this.unsigned) : w(this.high >> t - 32, 0 <= this.high ? 0 : -1, this.unsigned)
}
,
i.shr = i.shiftRight,
i.shiftRightUnsigned = function(t) {
var i;
return c(t) && (t = t.toInt()),
0 == (t &= 63) ? this : (i = this.high,
t < 32 ? w(this.low >>> t | i << 32 - t, i >>> t, this.unsigned) : w(32 === t ? i : i >>> t - 32, 0, this.unsigned))
}
,
i.shru = i.shiftRightUnsigned,
i.toSigned = function() {
return this.unsigned ? w(this.low, this.high, !1) : this
}
,
i.toUnsigned = function() {
return this.unsigned ? this : w(this.low, this.high, !0)
}
,
i.toBytes = function(t) {
return t ? this.toBytesLE() : this.toBytesBE()
}
,
i.toBytesLE = function() {
var t = this.high
, i = this.low;
return [255 & i, i >>> 8 & 255, i >>> 16 & 255, i >>> 24 & 255, 255 & t, t >>> 8 & 255, t >>> 16 & 255, t >>> 24 & 255]
}
,
i.toBytesBE = function() {
var t = this.high
, i = this.low;
return [t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t, i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, 255 & i]
}
,
e
}),
(Paho = "undefined" == typeof Paho ? {} : Paho).MQTT = function(o) {
function u(t, i) {
for (var r in t)
if (t.hasOwnProperty(r)) {
if (!i.hasOwnProperty(r)) {
var e = "Unknown property, " + r + ". Valid properties are:";
for (r in i)
i.hasOwnProperty(r) && (e = e + " " + r);
throw new Error(e)
}
if (typeof t[r] !== i[r])
throw new Error(p(c.INVALID_TYPE, [typeof t[r], r]))
}
}
function r(t, i) {
return function() {
return t.apply(i, arguments)
}
}
function w(t, i) {
for (var r in this.type = t,
i)
i.hasOwnProperty(r) && (this[r] = i[r])
}
var c = {
OK: {
code: 0,
text: "AMQJSC0000I OK."
},
CONNECT_TIMEOUT: {
code: 1,
text: "AMQJSC0001E Connect timed out."
},
SUBSCRIBE_TIMEOUT: {
code: 2,
text: "AMQJS0002E Subscribe timed out."
},
UNSUBSCRIBE_TIMEOUT: {
code: 3,
text: "AMQJS0003E Unsubscribe timed out."
},
PING_TIMEOUT: {
code: 4,
text: "AMQJS0004E Ping timed out."
},
INTERNAL_ERROR: {
code: 5,
text: "AMQJS0005E Internal error. Error Message: {0}, Stack trace: {1}"
},
CONNACK_RETURNCODE: {
code: 6,
text: "AMQJS0006E Bad Connack return code:{0} {1}."
},
SOCKET_ERROR: {
code: 7,
text: "AMQJS0007E Socket error:{0}."
},
SOCKET_CLOSE: {
code: 8,
text: "AMQJS0008I Socket closed."
},
MALFORMED_UTF: {
code: 9,
text: "AMQJS0009E Malformed UTF data:{0} {1} {2}."
},
UNSUPPORTED: {
code: 10,
text: "AMQJS0010E {0} is not supported by this browser."
},
INVALID_STATE: {
code: 11,
text: "AMQJS0011E Invalid state {0}."
},
INVALID_TYPE: {
code: 12,
text: "AMQJS0012E Invalid type {0} for {1}."
},
INVALID_ARGUMENT: {
code: 13,
text: "AMQJS0013E Invalid argument {0} for {1}."
},
UNSUPPORTED_OPERATION: {
code: 14,
text: "AMQJS0014E Unsupported operation."
},
INVALID_STORED_DATA: {
code: 15,
text: "AMQJS0015E Invalid data in local storage key={0} value={1}."
},
INVALID_MQTT_MESSAGE_TYPE: {
code: 16,
text: "AMQJS0016E Invalid MQTT message type {0}."
},
MALFORMED_UNICODE: {
code: 17,
text: "AMQJS0017E Malformed Unicode string:{0} {1}."
}
}
, g = {
0: "Connection Accepted",
1: "Connection Refused: unacceptable protocol version",
2: "Connection Refused: identifier rejected",
3: "Connection Refused: server unavailable",
4: "Connection Refused: bad user name or password",
5: "Connection Refused: not authorized"
}
, p = function(t, i) {
var r = t.text;
if (i)
for (var e, n, s, o = 0; o < i.length; o++)
0 < (s = r.indexOf(n = "{" + o + "}")) && (e = r.substring(0, s),
s = r.substring(s + n.length),
r = e + i[o] + s);
return r
}
, l = [0, 6, 77, 81, 73, 115, 100, 112, 3]
, v = [0, 4, 77, 81, 84, 84, 4];
function d(t, i, r) {
return i[r++] = t >> 8,
i[r++] = t % 256,
r
}
function y(t, i, r, e) {
return h(t, r, e = d(i, r, e)),
e + i
}
function E(t, i) {
return 256 * t[i] + t[i + 1]
}
function b(i, r) {
let e = 0;
for (let t = 0; t < 8; t++)
e = (e *= 256) + i[r + t];
return e
}
function m(t) {
for (var i = 0, r = 0; r < t.length; r++) {
var e = t.charCodeAt(r);
2047 < e ? (55296 <= e && e <= 56319 && (r++,
i++),
i += 3) : 127 < e ? i += 2 : i++
}
return i
}
function h(t, i, r) {
for (var e = r, n = 0; n < t.length; n++) {
var s = t.charCodeAt(n);
if (55296 <= s && s <= 56319) {
var o = t.charCodeAt(++n);
if (isNaN(o))
throw new Error(p(c.MALFORMED_UNICODE, [s, o]));
s = o - 56320 + (s - 55296 << 10) + 65536
}
s <= 127 ? i[e++] = s : (s <= 2047 ? i[e++] = s >> 6 & 31 | 192 : (s <= 65535 ? i[e++] = s >> 12 & 15 | 224 : (i[e++] = s >> 18 & 7 | 240,
i[e++] = s >> 12 & 63 | 128),
i[e++] = s >> 6 & 63 | 128),
i[e++] = 63 & s | 128)
}
}
function I(t, i, r) {
for (var e, n = "", s = i; s < i + r; ) {
var o = t[s++];
if (o < 128)
e = o;
else {
var h = t[s++] - 128;
if (h < 0)
throw new Error(p(c.MALFORMED_UTF, [o.toString(16), h.toString(16), ""]));
if (o < 224)
e = 64 * (o - 192) + h;
else {
var f = t[s++] - 128;
if (f < 0)
throw new Error(p(c.MALFORMED_UTF, [o.toString(16), h.toString(16), f.toString(16)]));
if (o < 240)
e = 4096 * (o - 224) + 64 * h + f;
else {
var a = t[s++] - 128;
if (a < 0)
throw new Error(p(c.MALFORMED_UTF, [o.toString(16), h.toString(16), f.toString(16), a.toString(16)]));
if (!(o < 248))
throw new Error(p(c.MALFORMED_UTF, [o.toString(16), h.toString(16), f.toString(16), a.toString(16)]));
e = 262144 * (o - 240) + 4096 * h + 64 * f + a
}
}
}
65535 < e && (e -= 65536,
n += String.fromCharCode(55296 + (e >> 10)),
e = 56320 + (1023 & e)),
n += String.fromCharCode(e)
}
return n
}
function e(t, i, r) {
this.i = t,
this.o = i,
this.h = 1e3 * r,
this.isReset = !1;
var e = new w(12).encode()
, n = function(t) {
return function() {
return s.apply(t)
}
}
, s = function() {
this.isReset ? (this.isReset = !1,
this.i.u("Pinger.doPing", "send PINGREQ"),
this.i.socket.send(e),
this.timeout = this.o.setTimeout(n(this), this.h)) : (this.i.u("Pinger.doPing", "Timed out"),
this.i.l(c.PING_TIMEOUT.code, p(c.PING_TIMEOUT)))
};
this.reset = function() {
this.isReset = !0,
this.o.clearTimeout(this.timeout),
0 < this.h && (this.timeout = setTimeout(n(this), this.h))
}
,
this.cancel = function() {
this.o.clearTimeout(this.timeout)
}
}
function n(t, i, r, e, n) {
var s, o, h;
this.o = i,
r = r || 30,
this.timeout = setTimeout((s = e,
o = t,
h = n,
function() {
return s.apply(o, h)
}
), 1e3 * r),
this.cancel = function() {
this.o.clearTimeout(this.timeout)
}
}
function T(t, i, r, e, n) {
if (!("WebSocket"in o && null !== o.WebSocket))
throw new Error(p(c.UNSUPPORTED, ["WebSocket"]));
if (!("localStorage"in o && null !== o.localStorage))
throw new Error(p(c.UNSUPPORTED, ["localStorage"]));
if (!("ArrayBuffer"in o && null !== o.ArrayBuffer))
throw new Error(p(c.UNSUPPORTED, ["ArrayBuffer"]));
for (var s in this.u("Paho.MQTT.Client", t, i, r, e, n),
this.host = i,
this.port = r,
this.path = e,
this.uri = t,
this.clientId = n,
this.g = i + ":" + r + ("/mqtt" != e ? ":" + e : "") + ":" + n + ":",
this.p = [],
this.v = {},
this.m = {},
this.I = {},
this.A = 1,
this.k = 0,
localStorage)
0 != s.indexOf("Sent:" + this.g) && 0 != s.indexOf("Received:" + this.g) || this.restore(s)
}
function t(t, i, o, r) {
if ("string" != typeof t)
throw new Error(p(c.INVALID_TYPE, [typeof t, "host"]));
if (2 == arguments.length) {
r = i;
var e = (h = t).match(/^(wss?):\/\/((\[(.+)\])|([^\/]+?))(:(\d+))?(\/.*)$/);
if (!e)
throw new Error(p(c.INVALID_ARGUMENT, [t, "host"]));
t = e[4] || e[2],
i = parseInt(e[7]),
o = e[8]
} else {
if (3 == arguments.length && (r = o,
o = "/mqtt"),
"number" != typeof i || i < 0)
throw new Error(p(c.INVALID_TYPE, [typeof i, "port"]));
if ("string" != typeof o)
throw new Error(p(c.INVALID_TYPE, [typeof o, "path"]));
var h = "ws://" + (-1 != t.indexOf(":") && "[" != t.slice(0, 1) && "]" != t.slice(-1) ? "[" + t + "]" : t) + ":" + i + o
}
for (var n = 0, s = 0; s < r.length; s++) {
var f = r.charCodeAt(s);
55296 <= f && f <= 56319 && s++,
n++
}
if ("string" != typeof r || 65535 < n)
throw new Error(p(c.INVALID_ARGUMENT, [r, "clientId"]));
var a = new T(h,t,i,o,r);
this.R = function() {
return t
}
,
this.O = function() {
throw new Error(p(c.UNSUPPORTED_OPERATION))
}
,
this.N = function() {
return i
}
,
this.M = function() {
throw new Error(p(c.UNSUPPORTED_OPERATION))
}
,
this.S = function() {
return o
}
,
this.j = function() {
throw new Error(p(c.UNSUPPORTED_OPERATION))
}
,
this.U = function() {
return h
}
,
this.C = function() {
throw new Error(p(c.UNSUPPORTED_OPERATION))
}
,
this._ = function() {
return a.clientId
}
,
this.B = function() {
throw new Error(p(c.UNSUPPORTED_OPERATION))
}
,
this.F = function() {
return a.onConnectionLost
}
,
this.L = function(t) {
if ("function" != typeof t)
throw new Error(p(c.INVALID_TYPE, [typeof t, "onConnectionLost"]));
a.onConnectionLost = t
}
,
this.P = function() {
return a.onMessageDelivered
}
,
this.$ = function(t) {
if ("function" != typeof t)
throw new Error(p(c.INVALID_TYPE, [typeof t, "onMessageDelivered"]));
a.onMessageDelivered = t
}
,
this.q = function() {
return a.onMessageArrived
}
,
this.J = function(t) {
if ("function" != typeof t)
throw new Error(p(c.INVALID_TYPE, [typeof t, "onMessageArrived"]));
a.onMessageArrived = t
}
,
this.V = function() {
return a.traceFunction
}
,
this.D = function(t) {
if ("function" != typeof t)
throw new Error(p(c.INVALID_TYPE, [typeof t, "onTrace"]));
a.traceFunction = t
}
,
this.connect = function(t) {
if (u(t = t || {}, {
timeout: "number",
userName: "string",
password: "string",
willMessage: "object",
keepAliveInterval: "number",
cleanSession: "boolean",
useSSL: "boolean",
invocationContext: "object",
onSuccess: "function",
onFailure: "function",
hosts: "object",
ports: "object",
mqttVersion: "number",
token: "string"
}),
void 0 === t.keepAliveInterval && (t.keepAliveInterval = 60),
4 < t.mqttVersion || t.mqttVersion < 3)
throw new Error(p(c.INVALID_ARGUMENT, [t.mqttVersion, "connectOptions.mqttVersion"]));
if (void 0 === t.mqttVersion ? (t.mqttVersionExplicit = !1,
t.mqttVersion = 4) : t.mqttVersionExplicit = !0,
void 0 === t.password && void 0 !== t.userName)
throw new Error(p(c.INVALID_ARGUMENT, [t.password, "connectOptions.password"]));
if (t.willMessage) {
if (!(t.willMessage instanceof A))
throw new Error(p(c.INVALID_TYPE, [t.willMessage, "connectOptions.willMessage"]));
if (t.willMessage.stringPayload,
void 0 === t.willMessage.destinationName)
throw new Error(p(c.INVALID_TYPE, [typeof t.willMessage.destinationName, "connectOptions.willMessage.destinationName"]))
}
if (void 0 === t.cleanSession && (t.cleanSession = !0),
t.hosts) {
if (!(t.hosts instanceof Array))
throw new Error(p(c.INVALID_ARGUMENT, [t.hosts, "connectOptions.hosts"]));
if (t.hosts.length < 1)
throw new Error(p(c.INVALID_ARGUMENT, [t.hosts, "connectOptions.hosts"]));
for (var i = !1, r = 0; r < t.hosts.length; r++) {
if ("string" != typeof t.hosts[r])
throw new Error(p(c.INVALID_TYPE, [typeof t.hosts[r], "connectOptions.hosts[" + r + "]"]));
if (/^(wss?):\/\/((\[(.+)\])|([^\/]+?))(:(\d+))?(\/.*)$/.test(t.hosts[r])) {
if (0 == r)
i = !0;
else if (!i)
throw new Error(p(c.INVALID_ARGUMENT, [t.hosts[r], "connectOptions.hosts[" + r + "]"]))
} else if (i)
throw new Error(p(c.INVALID_ARGUMENT, [t.hosts[r], "connectOptions.hosts[" + r + "]"]))
}
if (i)
t.uris = t.hosts;
else {
if (!t.ports)
throw new Error(p(c.INVALID_ARGUMENT, [t.ports, "connectOptions.ports"]));
if (!(t.ports instanceof Array))
throw new Error(p(c.INVALID_ARGUMENT, [t.ports, "connectOptions.ports"]));
if (t.hosts.length != t.ports.length)
throw new Error(p(c.INVALID_ARGUMENT, [t.ports, "connectOptions.ports"]));
for (t.uris = [],
r = 0; r < t.hosts.length; r++) {
if ("number" != typeof t.ports[r] || t.ports[r] < 0)
throw new Error(p(c.INVALID_TYPE, [typeof t.ports[r], "connectOptions.ports[" + r + "]"]));
var e = t.hosts[r]
, n = t.ports[r]
, s = -1 != e.indexOf(":");
h = "ws://" + (s ? "[" + e + "]" : e) + ":" + n + o,
t.uris.push(h)
}
}
}
a.connect(t)
}
,
this.subscribe = function(t, i) {
if ("string" != typeof t)
throw new Error("Invalid argument:" + t);
if (u(i = i || {}, {
qos: "number",
invocationContext: "object",
onSuccess: "function",
onFailure: "function",
timeout: "number"
}),
i.timeout && !i.onFailure)
throw new Error("subscribeOptions.timeout specified with no onFailure callback.");
if (void 0 !== i.qos && 0 !== i.qos && 1 !== i.qos && 2 !== i.qos)
throw new Error(p(c.INVALID_ARGUMENT, [i.qos, "subscribeOptions.qos"]));
a.subscribe(t, i)
}
,
this.unsubscribe = function(t, i) {
if ("string" != typeof t)
throw new Error("Invalid argument:" + t);
if (u(i = i || {}, {
invocationContext: "object",
onSuccess: "function",
onFailure: "function",
timeout: "number"
}),
i.timeout && !i.onFailure)
throw new Error("unsubscribeOptions.timeout specified with no onFailure callback.");
a.unsubscribe(t, i)
}
,
this.send = function(t, i, r, e) {
var n;
if (0 == arguments.length)
throw new Error("Invalid argument.length");
if (1 == arguments.length) {
if (!(t instanceof A) && "string" != typeof t)
throw new Error("Invalid argument:" + typeof t);
if (void 0 === (n = t).destinationName)
throw new Error(p(c.INVALID_ARGUMENT, [n.destinationName, "Message.destinationName"]))
} else
(n = new A(i)).destinationName = t,
3 <= arguments.length && (n.qos = r),
4 <= arguments.length && (n.retained = e);
a.send(n)
}
,
this.disconnect = function() {
a.disconnect()
}
,
this.getTraceLog = function() {
return a.getTraceLog()
}
,
this.startTrace = function() {
a.startTrace()
}
,
this.stopTrace = function() {
a.stopTrace()
}
,
this.isConnected = function() {
return a.connected
}
}
T.prototype.connected = !(w.prototype.encode = function() {
var t, i = (15 & this.type) << 4, r = 0, e = new Array, n = 0;
switch (null != this.messageIdentifier && (r += 2),
this.type) {
case 1:
switch (this.mqttVersion) {
case 3:
r += l.length + 3;
break;
case 4:
r += v.length + 3
}
r += m(this.clientId) + 2,
null != this.willMessage && (r = (r += m(this.willMessage.destinationName) + 2) + ((t = (t = this.willMessage.payloadBytes)instanceof Uint8Array ? t : new Uint8Array(o)).byteLength + 2)),
null != this.userName && (r += m(this.userName) + 2),
null != this.password && (r += m(this.password) + 2);
break;
case 8:
i |= 2;
for (var s = 0; s < this.topics.length; s++)
e[s] = m(this.topics[s]),
r += e[s] + 2;
r += this.requestedQos.length;
break;
case 10:
for (i |= 2,
s = 0; s < this.topics.length; s++)
e[s] = m(this.topics[s]),
r += e[s] + 2;
break;
case 6:
i |= 2;
break;
case 3:
this.payloadMessage.duplicate && (i |= 8),
i |= this.payloadMessage.qos << 1,
this.payloadMessage.retained && (i |= 1);
var n = m(this.payloadMessage.destinationName)
, o = this.payloadMessage.payloadBytes
, r = r + (n + 2) + o.byteLength;
o instanceof ArrayBuffer ? o = new Uint8Array(o) : o instanceof Uint8Array || (o = new Uint8Array(o.buffer))
}
var h = function(t) {
var i = new Array(1)
, r = 0;
do {
var e = t % 128
} while (0 < (t >>= 7) && (e |= 128),
i[r++] = e,
0 < t && r < 4);
return i
}(r)
, f = h.length + 1
, a = new ArrayBuffer(r + f)
, u = new Uint8Array(a);
if (u[0] = i,
u.set(h, 1),
3 == this.type)
f = y(this.payloadMessage.destinationName, n, u, f);
else if (1 == this.type) {
switch (this.mqttVersion) {
case 3:
u.set(l, f),
f += l.length;
break;
case 4:
u.set(v, f),
f += v.length
}
h = 0;
this.cleanSession && (h = 2),
null != this.willMessage && (h = 4 | h | this.willMessage.qos << 3,
this.willMessage.retained) && (h |= 32),
null != this.userName && (h |= 128),
null != this.password && (h |= 64),
u[f++] = h,
f = d(this.keepAliveInterval, u, f)
}
switch (null != this.messageIdentifier && (f = d(this.messageIdentifier, u, f)),
this.type) {
case 1:
f = y(this.clientId, m(this.clientId), u, f),
null != this.willMessage && (f = y(this.willMessage.destinationName, m(this.willMessage.destinationName), u, f),
f = d(t.byteLength, u, f),
u.set(t, f),
f += t.byteLength),
null != this.userName && (f = y(this.userName, m(this.userName), u, f)),
null != this.password && (f = y(this.password, m(this.password), u, f));
break;
case 3:
u.set(o, f);
break;
case 8:
for (s = 0; s < this.topics.length; s++)
f = y(this.topics[s], e[s], u, f),
u[f++] = this.requestedQos[s];
break;
case 10:
for (s = 0; s < this.topics.length; s++)
f = y(this.topics[s], e[s], u, f)
}
return a
}
),
T.prototype.maxMessageIdentifier = 65536,
T.prototype.p = null,
T.prototype.sendPinger = null,
T.prototype.receivePinger = null,
T.prototype.receiveBuffer = null,
T.prototype.Z = null,
T.prototype.X = 100,
T.prototype.connect = function(t) {
var i = this.G(t, "password");
this.u("Client.connect", i, this.socket, this.connected),
(this.connectOptions = t).uris ? (this.hostIndex = 0,
this.H(t.uris[0])) : this.H(this.uri)
}
,
T.prototype.subscribe = function(t, i) {
if (this.u("Client.subscribe", t, i),
!this.connected)
throw new Error(p(c.INVALID_STATE, ["not connected"]));
var r = new w(8);
r.topics = [t],
null != i.qos ? r.requestedQos = [i.qos] : r.requestedQos = [0],
i.onSuccess && (r.onSuccess = function(t) {
i.onSuccess({
invocationContext: i.invocationContext,
grantedQos: t
})
}
),
i.onFailure && (r.onFailure = function(t) {
i.onFailure({
invocationContext: i.invocationContext,
errorCode: t
})
}
),
i.timeout && (r.timeOut = new n(this,window,i.timeout,i.onFailure,[{
invocationContext: i.invocationContext,
errorCode: c.SUBSCRIBE_TIMEOUT.code,
errorMessage: p(c.SUBSCRIBE_TIMEOUT)
}])),
this.Y(r),
this.K(r)
}
,
T.prototype.unsubscribe = function(t, i) {
if (this.u("Client.unsubscribe", t, i),
!this.connected)
throw new Error(p(c.INVALID_STATE, ["not connected"]));
var r = new w(10);
r.topics = [t],
i.onSuccess && (r.callback = function() {
i.onSuccess({
invocationContext: i.invocationContext
})
}
),
i.timeout && (r.timeOut = new n(this,window,i.timeout,i.onFailure,[{
invocationContext: i.invocationContext,
errorCode: c.UNSUBSCRIBE_TIMEOUT.code,
errorMessage: p(c.UNSUBSCRIBE_TIMEOUT)
}])),
this.Y(r),
this.K(r)
}
,
T.prototype.send = function(t) {
if (this.u("Client.send", t),
!this.connected)
throw new Error(p(c.INVALID_STATE, ["not connected"]));
0 < ((wireMessage = new w(3)).payloadMessage = t).qos ? this.Y(wireMessage) : this.onMessageDelivered && (this.I[wireMessage] = this.onMessageDelivered(wireMessage.payloadMessage)),
this.K(wireMessage)
}
,
T.prototype.disconnect = function() {
if (this.u("Client.disconnect"),
!this.socket)
throw new Error(p(c.INVALID_STATE, ["not connecting or connected"]));
wireMessage = new w(14),
this.I[wireMessage] = r(this.l, this),
this.K(wireMessage)
}
,
T.prototype.getTraceLog = function() {
if (null !== this.Z) {
for (var t in this.u("Client.getTraceLog", new Date),
this.u("Client.getTraceLog in flight messages", this.v.length),
this.v)
this.u("_sentMessages ", t, this.v[t]);
for (var t in this.m)
this.u("_receivedMessages ", t, this.m[t]);
return this.Z
}
}
,
T.prototype.startTrace = function() {
null === this.Z && (this.Z = []),
this.u("Client.startTrace", new Date, "@VERSION@")
}
,
T.prototype.stopTrace = function() {
delete this.Z
}
,
T.prototype.H = function(t) {
var i;
this.connectOptions.useSSL && ((i = t.split(":"))[0] = "wss",
t = i.join(":")),
this.connected = !1,
this.connectOptions.token ? (this.connectOptions.mqttVersion,
this.socket = new WebSocket(t,[this.connectOptions.token])) : (this.connectOptions.mqttVersion,
this.socket = new WebSocket(t)),
this.socket.binaryType = "arraybuffer",
this.socket.onopen = r(this.W, this),
this.socket.onmessage = r(this.tt, this),
this.socket.onerror = r(this.it, this),
this.socket.onclose = r(this.rt, this),
this.sendPinger = new e(this,window,this.connectOptions.keepAliveInterval),
this.receivePinger = new e(this,window,this.connectOptions.keepAliveInterval),
this.et = new n(this,window,this.connectOptions.timeout,this.l,[c.CONNECT_TIMEOUT.code, p(c.CONNECT_TIMEOUT)])
}
,
T.prototype.K = function(t) {
this.p.push(t),
this.connected && this.nt()
}
,
T.prototype.store = function(t, i) {
var r = {
type: i.type,
messageIdentifier: i.messageIdentifier,
version: 1
};
if (3 !== i.type)
throw Error(p(c.INVALID_STORED_DATA, [key, r]));
i.pubRecReceived && (r.pubRecReceived = !0),
r.payloadMessage = {};
for (var e = "", n = i.payloadMessage.payloadBytes, s = 0; s < n.length; s++)
n[s] <= 15 ? e = e + "0" + n[s].toString(16) : e += n[s].toString(16);
r.payloadMessage.payloadHex = e,
r.payloadMessage.qos = i.payloadMessage.qos,
r.payloadMessage.destinationName = i.payloadMessage.destinationName,
i.payloadMessage.duplicate && (r.payloadMessage.duplicate = !0),
i.payloadMessage.retained && (r.payloadMessage.retained = !0),
0 == t.indexOf("Sent:") && (void 0 === i.sequence && (i.sequence = ++this.k),
r.sequence = i.sequence),
localStorage.setItem(t + this.g + i.messageIdentifier, JSON.stringify(r))
}
,
T.prototype.restore = function(t) {
var i = localStorage.getItem(t)
, r = JSON.parse(i)
, e = new w(r.type,r);
if (3 !== r.type)
throw Error(p(c.INVALID_STORED_DATA, [t, i]));
for (var n = r.payloadMessage.payloadHex, i = new ArrayBuffer(n.length / 2), s = new Uint8Array(i), o = 0; 2 <= n.length; ) {
var h = parseInt(n.substring(0, 2), 16)
, n = n.substring(2, n.length);
s[o++] = h
}
i = new Paho.MQTT.Message(s);
i.qos = r.payloadMessage.qos,
i.destinationName = r.payloadMessage.destinationName,
r.payloadMessage.duplicate && (i.duplicate = !0),
r.payloadMessage.retained && (i.retained = !0),
e.payloadMessage = i,
0 == t.indexOf("Sent:" + this.g) ? (e.payloadMessage.duplicate = !0,
this.v[e.messageIdentifier] = e) : 0 == t.indexOf("Received:" + this.g) && (this.m[e.messageIdentifier] = e)
}
,
T.prototype.nt = function() {
for (var t, i = this.p.reverse(); t = i.pop(); )
this.st(t),
this.I[t] && (this.I[t](),
delete this.I[t])
}
,
T.prototype.Y = function(t) {
var i = Object.keys(this.v).length;
if (i > this.maxMessageIdentifier)
throw Error("Too many messages:" + i);
for (; void 0 !== this.v[this.A]; )
this.A++;
t.messageIdentifier = this.A,
3 === (this.v[t.messageIdentifier] = t).type && this.store("Sent:", t),
this.A === this.maxMessageIdentifier && (this.A = 1)
}
,
T.prototype.W = function() {
var t = new w(1,this.connectOptions);
t.clientId = this.clientId,
this.st(t)
}
,
T.prototype.tt = function(t) {
this.u("Client._on_socket_message", t.data),
this.receivePinger.reset();
for (var i = this.ot(t.data), r = 0; r < i.length; r += 1)
this.ht(i[r])
}
,
T.prototype.ot = function(t) {
var i = new Uint8Array(t);
this.receiveBuffer && ((t = new Uint8Array(this.receiveBuffer.length + i.length)).set(this.receiveBuffer),
t.set(i, this.receiveBuffer.length),
i = t,
delete this.receiveBuffer);
try {
for (var r = 0, e = []; r < i.length; ) {
var n = function(t, i) {
var r, e = i, n = t[i], s = n >> 4, o = n &= 15, h = (i += 1,
0), f = 1;
do {
if (i == t.length)
return [null, e]
} while (h += (127 & (r = t[i++])) * f,
f *= 128,
0 != (128 & r));
var a = i + h;
if (a > t.length)
return [null, e];
var u = new w(s);
switch (s) {
case 2:
1 & t[i++] && (u.sessionPresent = !0),
u.returnCode = t[i++];
break;
case 3:
var l = o >> 1 & 3
, c = E(t, i)
, g = I(t, i += 2, c)
, c = (i += c,
0 < l && (u.messageIdentifier = E(t, i),
i += 2),
new Paho.MQTT.Message(t.subarray(i, a)));
1 == (1 & o) && (c.retained = !0),
8 == (8 & o) && (c.duplicate = !0),
c.qos = l,
c.destinationName = g,
u.payloadMessage = c;
break;
case 4:
u.messageIdentifier = E(t, i),
i += 2,
18 == h && (u.cmid = b(t, i),
u.mid = b(t, i += 8),
i += 8);
break;
case 5:
case 6:
case 7:
case 11:
u.messageIdentifier = E(t, i);
break;
case 9:
u.messageIdentifier = E(t, i),
u.returnCode = t.subarray(i += 2, a)
}
return [u, a]
}(i, r)
, s = n[0]
, r = n[1];
if (null === s)
break;
e.push(s)
}
r < i.length && (this.receiveBuffer = i.subarray(r))
} catch (t) {
return void this.l(c.INTERNAL_ERROR.code, p(c.INTERNAL_ERROR, [t.message, t.stack.toString()]))
}
return e
}
,
T.prototype.ht = function(t) {
this.u("Client._handleMessage", t);
try {
switch (t.type) {
case 2:
if (this.et.cancel(),
this.connectOptions.cleanSession) {
for (var i in this.v) {
var r = this.v[i];
localStorage.removeItem("Sent:" + this.g + r.messageIdentifier)
}
for (var i in this.v = {},
this.m) {
var e = this.m[i];
localStorage.removeItem("Received:" + this.g + e.messageIdentifier)
}
this.m = {}
}
if (0 !== t.returnCode)
this.l(c.CONNACK_RETURNCODE.code, p(c.CONNACK_RETURNCODE, [t.returnCode, g[t.returnCode]]));
else {
this.connected = !0,
this.connectOptions.uris && (this.hostIndex = this.connectOptions.uris.length);
var n, s = new Array;
for (n in this.v)
this.v.hasOwnProperty(n) && s.push(this.v[n]);
for (var s = s.sort(function(t, i) {
return t.sequence - i.sequence
}), o = 0, h = s.length; o < h; o++)
3 == (r = s[o]).type && r.pubRecReceived ? (u = new w(6,{
messageIdentifier: r.messageIdentifier
}),
this.K(u)) : this.K(r);
this.connectOptions.onSuccess && this.connectOptions.onSuccess({
invocationContext: this.connectOptions.invocationContext
}),
this.nt()
}
break;
case 3:
this.ft(t);
break;
case 4:
var f, a;
(r = this.v[t.messageIdentifier]) && (delete this.v[t.messageIdentifier],
localStorage.removeItem("Sent:" + this.g + t.messageIdentifier),
this.onMessageDelivered) && (f = t.mid,
a = t.cmid,
f && a ? this.onMessageDelivered(r.payloadMessage, {
mid: f,
cmid: a
}) : this.onMessageDelivered(r.payloadMessage));
break;
case 5:
var u;
(r = this.v[t.messageIdentifier]) && (r.pubRecReceived = !0,
u = new w(6,{
messageIdentifier: t.messageIdentifier
}),
this.store("Sent:", r),
this.K(u));
break;
case 6:
var e = this.m[t.messageIdentifier]
, l = (localStorage.removeItem("Received:" + this.g + t.messageIdentifier),
e && (this.ut(e),
delete this.m[t.messageIdentifier]),
new w(7,{
messageIdentifier: t.messageIdentifier
}));
this.K(l);
break;
case 7:
r = this.v[t.messageIdentifier],
delete this.v[t.messageIdentifier],
localStorage.removeItem("Sent:" + this.g + t.messageIdentifier),
this.onMessageDelivered && this.onMessageDelivered(r.payloadMessage);
break;
case 9:
(r = this.v[t.messageIdentifier]) && (r.timeOut && r.timeOut.cancel(),
128 === t.returnCode[0] ? r.onFailure && r.onFailure(t.returnCode) : r.onSuccess && r.onSuccess(t.returnCode),
delete this.v[t.messageIdentifier]);
break;
case 11:
(r = this.v[t.messageIdentifier]) && (r.timeOut && r.timeOut.cancel(),
r.callback && r.callback(),
delete this.v[t.messageIdentifier]);
break;
case 13:
this.sendPinger.reset();
break;
default:
this.l(c.INVALID_MQTT_MESSAGE_TYPE.code, p(c.INVALID_MQTT_MESSAGE_TYPE, [t.type]))
}
} catch (t) {
this.l(c.INTERNAL_ERROR.code, p(c.INTERNAL_ERROR, [t.message, t.stack.toString()]))
}
}
,
T.prototype.it = function(t) {
this.l(c.SOCKET_ERROR.code, p(c.SOCKET_ERROR, [t.data]))
}
,
T.prototype.rt = function() {
this.l(c.SOCKET_CLOSE.code, p(c.SOCKET_CLOSE))
}
,
T.prototype.st = function(t) {
var i;
1 == t.type ? (i = this.G(t, "password"),
this.u("Client._socket_send", i)) : this.u("Client._socket_send", t),
this.socket.send(t.encode()),
this.sendPinger.reset()
}
,
T.prototype.ft = function(t) {
switch (t.payloadMessage.qos) {
case "undefined":
case 0:
this.ut(t);
break;
case 1:
var i = new w(4,{
messageIdentifier: t.messageIdentifier
});
this.K(i),
this.ut(t);
break;
case 2:
this.m[t.messageIdentifier] = t,
this.store("Received:", t);
i = new w(5,{
messageIdentifier: t.messageIdentifier
});
this.K(i);
break;
default:
throw Error("Invaild qos=" + wireMmessage.payloadMessage.qos)
}
}
,
T.prototype.ut = function(t) {
this.onMessageArrived && this.onMessageArrived(t.payloadMessage)
}
,
T.prototype.l = function(t, i) {
this.u("Client._disconnected", t, i),
this.sendPinger.cancel(),
this.receivePinger.cancel(),
this.et && this.et.cancel(),
this.p = [],
this.I = {},
this.socket && (this.socket.onopen = null,
this.socket.onmessage = null,
this.socket.onerror = null,
this.socket.onclose = null,
1 === this.socket.readyState && this.socket.close(),
delete this.socket),
this.connectOptions.uris && this.hostIndex < this.connectOptions.uris.length - 1 ? (this.hostIndex++,
this.H(this.connectOptions.uris[this.hostIndex])) : (void 0 === t && (t = c.OK.code,
i = p(c.OK)),
this.connected ? (this.connected = !1,
this.onConnectionLost && this.onConnectionLost({
errorCode: t,
errorMessage: i
})) : 4 === this.connectOptions.mqttVersion && !1 === this.connectOptions.mqttVersionExplicit ? (this.u("Failed to connect V4, dropping back to V3"),
this.connectOptions.mqttVersion = 3,
this.connectOptions.uris ? (this.hostIndex = 0,
this.H(this.connectOptions.uris[0])) : this.H(this.uri)) : this.connectOptions.onFailure && this.connectOptions.onFailure({
invocationContext: this.connectOptions.invocationContext,
errorCode: t,
errorMessage: i
}))
}
,
T.prototype.u = function() {
if (this.traceFunction) {
for (var t in arguments)
void 0 !== arguments[t] && (arguments[t] = JSON.stringify(arguments[t]));
var i = Array.prototype.slice.call(arguments).join("");
this.traceFunction({
severity: "Debug",
message: i
})
}
if (null !== this.Z)
for (var t = 0, r = arguments.length; t < r; t++)
this.Z.length == this.X && this.Z.shift(),
0 === t || void 0 === arguments[t] ? this.Z.push(arguments[t]) : this.Z.push(" " + JSON.stringify(arguments[t]))
}
,
T.prototype.G = function(t, i) {
var r, e = {};
for (r in t)
t.hasOwnProperty(r) && (e[r] = r == i ? "******" : t[r]);
return e
}
,
t.prototype = {
get host() {
return this.R()
},
set host(t) {
this.O(t)
},
get port() {
return this.N()
},
set port(t) {
this.M(t)
},
get path() {
return this.S()
},
set path(t) {
this.j(t)
},
get clientId() {
return this._()
},
set clientId(t) {
this.B(t)
},
get onConnectionLost() {
return this.F()
},
set onConnectionLost(t) {
this.L(t)
},
get onMessageDelivered() {
return this.P()
},
set onMessageDelivered(t) {
this.$(t)
},
get onMessageArrived() {
return this.q()
},
set onMessageArrived(t) {
this.J(t)
},
get trace() {
return this.V()
},
set trace(t) {
this.D(t)
}
};
var A = function(t) {
var i;
if (!("string" == typeof t || t instanceof ArrayBuffer || t instanceof Int8Array || t instanceof Uint8Array || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array))
throw p(c.INVALID_ARGUMENT, [t, "newPayload"]);
i = t,
this.ct = function() {
return "string" == typeof i ? i : I(i, 0, i.length)
}
,
this.wt = function() {
var t;
return "string" == typeof i ? (t = new ArrayBuffer(m(i)),
t = new Uint8Array(t),
h(i, t, 0),
t) : i
}
;
var r = void 0
, e = (this.vt = function() {
return r
}
,
this.dt = function(t) {
if ("string" != typeof t)
throw new Error(p(c.INVALID_ARGUMENT, [t, "newDestinationName"]));
r = t
}
,
0)
, n = (this.yt = function() {
return e
}
,
!(this.Et = function(t) {
if (0 !== t && 1 !== t && 2 !== t)
throw new Error("Invalid argument:" + t);
e = t
}
))
, s = (this.bt = function() {
return n
}
,
!(this.It = function(t) {
if ("boolean" != typeof t)
throw new Error(p(c.INVALID_ARGUMENT, [t, "newRetained"]));
n = t
}
));
this.Tt = function() {
return s
}
,
this.At = function(t) {
s = t
}
};
return A.prototype = {
get payloadString() {
return this.ct()
},
get payloadBytes() {
return this.wt()
},
get destinationName() {
return this.vt()
},
set destinationName(t) {
this.dt(t)
},
get qos() {
return this.yt()
},
set qos(t) {
this.Et(t)
},
get retained() {
return this.bt()
},
set retained(t) {
this.It(t)
},
get duplicate() {
return this.Tt()
},
set duplicate(t) {
this.At(t)
}
},
{
Client: t,
Message: A,
ClientImpl: T
}
}(window),
function(t, i) {
"function" == typeof define && define.amd || "function" != typeof require || "object" != typeof module || !module || !module.exports ? (t.dcodeIO = t.dcodeIO || {}).ByteBuffer = i(t.dcodeIO.Long) : module.exports = function() {
var t;
try {
t = require("long")
} catch (t) {}
return i(t)
}()
}(this, function(h) {
"use strict";
function w(t, i, r) {
if (void 0 === t && (t = w.DEFAULT_CAPACITY),
void 0 === i && (i = w.DEFAULT_ENDIAN),
!(r = void 0 === r ? w.DEFAULT_NOASSERT : r)) {
if ((t |= 0) < 0)
throw RangeError("Illegal capacity");
i = !!i,
r = !!r
}
this.buffer = 0 === t ? s : new ArrayBuffer(t),
this.view = 0 === t ? null : new Uint8Array(this.buffer),
this.offset = 0,
this.markedOffset = -1,
this.limit = t,
this.littleEndian = i,
this.noAssert = r
}
w.VERSION = "5.0.1",
w.LITTLE_ENDIAN = !0,
w.BIG_ENDIAN = !1,
w.DEFAULT_CAPACITY = 16,
w.DEFAULT_ENDIAN = w.BIG_ENDIAN,
w.DEFAULT_NOASSERT = !1,
w.Long = h || null;
var o = w.prototype
, s = (o.kt,
Object.defineProperty(o, "kt", {
value: !0,
enumerable: !1,
configurable: !1
}),
new ArrayBuffer(0))
, r = String.fromCharCode;
function f(t) {
var i = 0;
return function() {
return i < t.length ? t.charCodeAt(i++) : null
}
}
function a() {
var t = []
, i = [];
return function() {
if (0 === arguments.length)
return i.join("") + r.apply(String, t);
1024 < t.length + arguments.length && (i.push(r.apply(String, t)),
t.length = 0),
Array.prototype.push.apply(t, arguments)
}
}
function e(t, i, r, e, n) {
var s, o, h = 8 * n - e - 1, f = (1 << h) - 1, a = f >> 1, u = -7, l = r ? n - 1 : 0, c = r ? -1 : 1, n = t[i + l];
for (l += c,
s = n & (1 << -u) - 1,
n >>= -u,
u += h; 0 < u; s = 256 * s + t[i + l],
l += c,
u -= 8)
;
for (o = s & (1 << -u) - 1,
s >>= -u,
u += e; 0 < u; o = 256 * o + t[i + l],
l += c,
u -= 8)
;
if (0 === s)
s = 1 - a;
else {
if (s === f)
return o ? NaN : 1 / 0 * (n ? -1 : 1);
o += Math.pow(2, e),
s -= a
}
return (n ? -1 : 1) * o * Math.pow(2, s - e)
}
function n(t, i, r, e, n, s) {
var o, h, f = 8 * s - n - 1, a = (1 << f) - 1, u = a >> 1, l = 23 === n ? Math.pow(2, -24) - Math.pow(2, -77) : 0, c = e ? 0 : s - 1, g = e ? 1 : -1, s = i < 0 || 0 === i && 1 / i < 0 ? 1 : 0;
for (i = Math.abs(i),
isNaN(i) || i === 1 / 0 ? (h = isNaN(i) ? 1 : 0,
o = a) : (o = Math.floor(Math.log(i) / Math.LN2),
i * (e = Math.pow(2, -o)) < 1 && (o--,
e *= 2),
2 <= (i += 1 <= o + u ? l / e : l * Math.pow(2, 1 - u)) * e && (o++,
e /= 2),
a <= o + u ? (h = 0,
o = a) : 1 <= o + u ? (h = (i * e - 1) * Math.pow(2, n),
o += u) : (h = i * Math.pow(2, u - 1) * Math.pow(2, n),
o = 0)); 8 <= n; t[r + c] = 255 & h,
c += g,
h /= 256,
n -= 8)
;
for (o = o << n | h,
f += n; 0 < f; t[r + c] = 255 & o,
c += g,
o /= 256,
f -= 8)
;
t[r + c - g] |= 128 * s
}
w.accessor = function() {
return Uint8Array
}
,
w.allocate = function(t, i, r) {
return new w(t,i,r)
}
,
w.concat = function(t, i, r, e) {
"boolean" != typeof i && "string" == typeof i || (e = r,
r = i,
i = void 0);
for (var n, s = 0, o = 0, h = t.length; o < h; ++o)
w.isByteBuffer(t[o]) || (t[o] = w.wrap(t[o], i)),
0 < (n = t[o].limit - t[o].offset) && (s += n);
if (0 === s)
return new w(0,r,e);
for (var f, a = new w(s,r,e), o = 0; o < h; )
(n = (f = t[o++]).limit - f.offset) <= 0 || (a.view.set(f.view.subarray(f.offset, f.limit), a.offset),
a.offset += n);
return a.limit = a.offset,
a.offset = 0,
a
}
,
w.isByteBuffer = function(t) {
return !0 === (t && t.kt)
}
,
w.type = function() {
return ArrayBuffer
}
,
w.wrap = function(t, i, r, e) {
if ("string" != typeof i && (e = r,
r = i,
i = void 0),
"string" == typeof t)
switch (i = void 0 === i ? "utf8" : i) {
case "base64":
return w.fromBase64(t, r);
case "hex":
return w.fromHex(t, r);
case "binary":
return w.fromBinary(t, r);
case "utf8":
return w.fromUTF8(t, r);
case "debug":
return w.fromDebug(t, r);
default:
throw Error("Unsupported encoding: " + i)
}
if (null === t || "object" != typeof t)
throw TypeError("Illegal buffer");
var n;
if (w.isByteBuffer(t))
(n = o.clone.call(t)).markedOffset = -1;
else if (t instanceof Uint8Array)
n = new w(0,r,e),
0 < t.length && (n.buffer = t.buffer,
n.offset = t.byteOffset,
n.limit = t.byteOffset + t.byteLength,
n.view = new Uint8Array(t.buffer));
else if (t instanceof ArrayBuffer)
n = new w(0,r,e),
0 < t.byteLength && (n.buffer = t,
n.offset = 0,
n.limit = t.byteLength,
n.view = 0 < t.byteLength ? new Uint8Array(t) : null);
else {
if ("[object Array]" !== Object.prototype.toString.call(t))
throw TypeError("Illegal buffer");
(n = new w(t.length,r,e)).limit = t.length;
for (var s = 0; s < t.length; ++s)
n.view[s] = t[s]
}
return n
}
,
o.writeBitSet = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if (!(t instanceof Array))
throw TypeError("Illegal BitSet: Not an array");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = i
, n = t.length
, s = n >> 3
, o = 0;
for (i += this.writeVarint32(n, i); s--; )
f = 1 & !!t[o++] | (1 & !!t[o++]) << 1 | (1 & !!t[o++]) << 2 | (1 & !!t[o++]) << 3 | (1 & !!t[o++]) << 4 | (1 & !!t[o++]) << 5 | (1 & !!t[o++]) << 6 | (1 & !!t[o++]) << 7,
this.writeByte(f, i++);
if (o < n) {
for (var h = 0, f = 0; o < n; )
f |= (1 & !!t[o++]) << h++;
this.writeByte(f, i++)
}
return r ? (this.offset = i,
this) : i - e
}
,
o.readBitSet = function(t) {
var i = void 0 === t
, r = (i && (t = this.offset),
this.readVarint32(t))
, e = r.value
, n = e >> 3
, s = 0
, o = [];
for (t += r.length; n--; )
f = this.readByte(t++),
o[s++] = !!(1 & f),
o[s++] = !!(2 & f),
o[s++] = !!(4 & f),
o[s++] = !!(8 & f),
o[s++] = !!(16 & f),
o[s++] = !!(32 & f),
o[s++] = !!(64 & f),
o[s++] = !!(128 & f);
if (s < e)
for (var h = 0, f = this.readByte(t++); s < e; )
o[s++] = !!(f >> h++ & 1);
return i && (this.offset = t),
o
}
,
o.readBytes = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + t > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+" + t + ") <= " + this.buffer.byteLength)
}
i = this.slice(i, i + t);
return r && (this.offset += t),
i
}
,
o.writeBytes = o.append,
o.writeInt8 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t |= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 1) && this.resize((e *= 2) > i ? e : i),
this.view[--i] = t,
r && (this.offset += 1),
this
}
,
o.writeByte = o.writeInt8,
o.readInt8 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength)
}
t = this.view[t];
return 128 == (128 & t) && (t = -(255 - t + 1)),
i && (this.offset += 1),
t
}
,
o.readByte = o.readInt8,
o.writeUint8 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 1) && this.resize((e *= 2) > i ? e : i),
this.view[--i] = t,
r && (this.offset += 1),
this
}
,
o.writeUInt8 = o.writeUint8,
o.readUint8 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength)
}
t = this.view[t];
return i && (this.offset += 1),
t
}
,
o.readUInt8 = o.readUint8,
o.writeInt16 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t |= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 2) && this.resize((e *= 2) > i ? e : i),
i -= 2,
this.littleEndian ? (this.view[i + 1] = (65280 & t) >>> 8,
this.view[i] = 255 & t) : (this.view[i] = (65280 & t) >>> 8,
this.view[i + 1] = 255 & t),
r && (this.offset += 2),
this
}
,
o.writeShort = o.writeInt16,
o.readInt16 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 2 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+2) <= " + this.buffer.byteLength)
}
var r = 0;
return this.littleEndian ? (r = this.view[t],
r |= this.view[t + 1] << 8) : (r = this.view[t] << 8,
r |= this.view[t + 1]),
32768 == (32768 & r) && (r = -(65535 - r + 1)),
i && (this.offset += 2),
r
}
,
o.readShort = o.readInt16,
o.writeUint16 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 2) && this.resize((e *= 2) > i ? e : i),
i -= 2,
this.littleEndian ? (this.view[i + 1] = (65280 & t) >>> 8,
this.view[i] = 255 & t) : (this.view[i] = (65280 & t) >>> 8,
this.view[i + 1] = 255 & t),
r && (this.offset += 2),
this
}
,
o.writeUInt16 = o.writeUint16,
o.readUint16 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 2 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+2) <= " + this.buffer.byteLength)
}
var r = 0;
return this.littleEndian ? (r = this.view[t],
r |= this.view[t + 1] << 8) : (r = this.view[t] << 8,
r |= this.view[t + 1]),
i && (this.offset += 2),
r
}
,
o.readUInt16 = o.readUint16,
o.writeInt32 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t |= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 4) && this.resize((e *= 2) > i ? e : i),
i -= 4,
this.littleEndian ? (this.view[i + 3] = t >>> 24 & 255,
this.view[i + 2] = t >>> 16 & 255,
this.view[i + 1] = t >>> 8 & 255,
this.view[i] = 255 & t) : (this.view[i] = t >>> 24 & 255,
this.view[i + 1] = t >>> 16 & 255,
this.view[i + 2] = t >>> 8 & 255,
this.view[i + 3] = 255 & t),
r && (this.offset += 4),
this
}
,
o.writeInt = o.writeInt32,
o.readInt32 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+4) <= " + this.buffer.byteLength)
}
var r = 0
, r = this.littleEndian ? (r = this.view[t + 2] << 16,
(r = (r |= this.view[t + 1] << 8) | this.view[t]) + (this.view[t + 3] << 24 >>> 0)) : (r = this.view[t + 1] << 16,
(r = (r |= this.view[t + 2] << 8) | this.view[t + 3]) + (this.view[t] << 24 >>> 0));
return r |= 0,
i && (this.offset += 4),
r
}
,
o.readInt = o.readInt32,
o.writeUint32 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 4) && this.resize((e *= 2) > i ? e : i),
i -= 4,
this.littleEndian ? (this.view[i + 3] = t >>> 24 & 255,
this.view[i + 2] = t >>> 16 & 255,
this.view[i + 1] = t >>> 8 & 255,
this.view[i] = 255 & t) : (this.view[i] = t >>> 24 & 255,
this.view[i + 1] = t >>> 16 & 255,
this.view[i + 2] = t >>> 8 & 255,
this.view[i + 3] = 255 & t),
r && (this.offset += 4),
this
}
,
o.writeUInt32 = o.writeUint32,
o.readUint32 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+4) <= " + this.buffer.byteLength)
}
var r = 0
, r = this.littleEndian ? (r = this.view[t + 2] << 16,
(r = (r |= this.view[t + 1] << 8) | this.view[t]) + (this.view[t + 3] << 24 >>> 0)) : (r = this.view[t + 1] << 16,
(r = (r |= this.view[t + 2] << 8) | this.view[t + 3]) + (this.view[t] << 24 >>> 0));
return i && (this.offset += 4),
r
}
,
o.readUInt32 = o.readUint32,
h && (o.writeInt64 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" == typeof t)
t = h.fromNumber(t);
else if ("string" == typeof t)
t = h.fromString(t);
else if (!(t && t instanceof h))
throw TypeError("Illegal value: " + t + " (not an integer or Long)");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
"number" == typeof t ? t = h.fromNumber(t) : "string" == typeof t && (t = h.fromString(t));
var e = this.buffer.byteLength
, e = (e < (i += 8) && this.resize((e *= 2) > i ? e : i),
i -= 8,
t.low)
, t = t.high;
return this.littleEndian ? (this.view[i + 3] = e >>> 24 & 255,
this.view[i + 2] = e >>> 16 & 255,
this.view[i + 1] = e >>> 8 & 255,
this.view[i] = 255 & e,
this.view[(i += 4) + 3] = t >>> 24 & 255,
this.view[i + 2] = t >>> 16 & 255,
this.view[i + 1] = t >>> 8 & 255,
this.view[i] = 255 & t) : (this.view[i] = t >>> 24 & 255,
this.view[i + 1] = t >>> 16 & 255,
this.view[i + 2] = t >>> 8 & 255,
this.view[i + 3] = 255 & t,
this.view[i += 4] = e >>> 24 & 255,
this.view[i + 1] = e >>> 16 & 255,
this.view[i + 2] = e >>> 8 & 255,
this.view[i + 3] = 255 & e),
r && (this.offset += 8),
this
}
,
o.writeLong = o.writeInt64,
o.readInt64 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 8 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+8) <= " + this.buffer.byteLength)
}
var r = 0
, e = 0
, t = (this.littleEndian ? (r = this.view[t + 2] << 16,
r = (r = (r |= this.view[t + 1] << 8) | this.view[t]) + (this.view[t + 3] << 24 >>> 0),
e = this.view[(t += 4) + 2] << 16,
e = (e = (e |= this.view[t + 1] << 8) | this.view[t]) + (this.view[t + 3] << 24 >>> 0)) : (e = this.view[t + 1] << 16,
e = (e = (e |= this.view[t + 2] << 8) | this.view[t + 3]) + (this.view[t] << 24 >>> 0),
r = this.view[(t += 4) + 1] << 16,
r = (r = (r |= this.view[t + 2] << 8) | this.view[t + 3]) + (this.view[t] << 24 >>> 0)),
new h(r,e,!1));
return i && (this.offset += 8),
t
}
,
o.readLong = o.readInt64,
o.writeUint64 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" == typeof t)
t = h.fromNumber(t);
else if ("string" == typeof t)
t = h.fromString(t);
else if (!(t && t instanceof h))
throw TypeError("Illegal value: " + t + " (not an integer or Long)");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
"number" == typeof t ? t = h.fromNumber(t) : "string" == typeof t && (t = h.fromString(t));
var e = this.buffer.byteLength
, e = (e < (i += 8) && this.resize((e *= 2) > i ? e : i),
i -= 8,
t.low)
, t = t.high;
return this.littleEndian ? (this.view[i + 3] = e >>> 24 & 255,
this.view[i + 2] = e >>> 16 & 255,
this.view[i + 1] = e >>> 8 & 255,
this.view[i] = 255 & e,
this.view[(i += 4) + 3] = t >>> 24 & 255,
this.view[i + 2] = t >>> 16 & 255,
this.view[i + 1] = t >>> 8 & 255,
this.view[i] = 255 & t) : (this.view[i] = t >>> 24 & 255,
this.view[i + 1] = t >>> 16 & 255,
this.view[i + 2] = t >>> 8 & 255,
this.view[i + 3] = 255 & t,
this.view[i += 4] = e >>> 24 & 255,
this.view[i + 1] = e >>> 16 & 255,
this.view[i + 2] = e >>> 8 & 255,
this.view[i + 3] = 255 & e),
r && (this.offset += 8),
this
}
,
o.writeUInt64 = o.writeUint64,
o.readUint64 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 8 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+8) <= " + this.buffer.byteLength)
}
var r = 0
, e = 0
, t = (this.littleEndian ? (r = this.view[t + 2] << 16,
r = (r = (r |= this.view[t + 1] << 8) | this.view[t]) + (this.view[t + 3] << 24 >>> 0),
e = this.view[(t += 4) + 2] << 16,
e = (e = (e |= this.view[t + 1] << 8) | this.view[t]) + (this.view[t + 3] << 24 >>> 0)) : (e = this.view[t + 1] << 16,
e = (e = (e |= this.view[t + 2] << 8) | this.view[t + 3]) + (this.view[t] << 24 >>> 0),
r = this.view[(t += 4) + 1] << 16,
r = (r = (r |= this.view[t + 2] << 8) | this.view[t + 3]) + (this.view[t] << 24 >>> 0)),
new h(r,e,!0));
return i && (this.offset += 8),
t
}
,
o.readUInt64 = o.readUint64),
o.writeFloat32 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t)
throw TypeError("Illegal value: " + t + " (not a number)");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 4) && this.resize((e *= 2) > i ? e : i),
n(this.view, t, i -= 4, this.littleEndian, 23, 4),
r && (this.offset += 4),
this
}
,
o.writeFloat = o.writeFloat32,
o.readFloat32 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+4) <= " + this.buffer.byteLength)
}
t = e(this.view, t, this.littleEndian, 23, 4);
return i && (this.offset += 4),
t
}
,
o.readFloat = o.readFloat32,
o.writeFloat64 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t)
throw TypeError("Illegal value: " + t + " (not a number)");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = this.buffer.byteLength;
return e < (i += 8) && this.resize((e *= 2) > i ? e : i),
n(this.view, t, i -= 8, this.littleEndian, 52, 8),
r && (this.offset += 8),
this
}
,
o.writeDouble = o.writeFloat64,
o.readFloat64 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 8 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+8) <= " + this.buffer.byteLength)
}
t = e(this.view, t, this.littleEndian, 52, 8);
return i && (this.offset += 8),
t
}
,
o.readDouble = o.readFloat64,
w.MAX_VARINT32_BYTES = 5,
w.calculateVarint32 = function(t) {
return (t >>>= 0) < 128 ? 1 : t < 16384 ? 2 : t < 1 << 21 ? 3 : t < 1 << 28 ? 4 : 5
}
,
w.zigZagEncode32 = function(t) {
return ((t |= 0) << 1 ^ t >> 31) >>> 0
}
,
w.zigZagDecode32 = function(t) {
return t >>> 1 ^ -(1 & t) | 0
}
,
o.writeVarint32 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t |= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = w.calculateVarint32(t)
, n = this.buffer.byteLength;
for (n < (i += e) && this.resize((n *= 2) > i ? n : i),
i -= e,
t >>>= 0; 128 <= t; )
this.view[i++] = 127 & t | 128,
t >>>= 7;
return this.view[i++] = t,
r ? (this.offset = i,
this) : e
}
,
o.writeVarint32ZigZag = function(t, i) {
return this.writeVarint32(w.zigZagEncode32(t), i)
}
,
o.readVarint32 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength)
}
var r, e = 0, n = 0;
do {
if (!this.noAssert && t > this.limit)
throw (r = Error("Truncated")).truncated = !0,
r
} while (r = this.view[t++],
e < 5 && (n |= (127 & r) << 7 * e),
++e,
0 != (128 & r));
return n |= 0,
i ? (this.offset = t,
n) : {
value: n,
length: e
}
}
,
o.readVarint32ZigZag = function(t) {
t = this.readVarint32(t);
return "object" == typeof t ? t.value = w.zigZagDecode32(t.value) : t = w.zigZagDecode32(t),
t
}
,
h && (w.MAX_VARINT64_BYTES = 10,
w.calculateVarint64 = function(t) {
"number" == typeof t ? t = h.fromNumber(t) : "string" == typeof t && (t = h.fromString(t));
var i = t.toInt() >>> 0
, r = t.shiftRightUnsigned(28).toInt() >>> 0
, t = t.shiftRightUnsigned(56).toInt() >>> 0;
return 0 == t ? 0 == r ? i < 16384 ? i < 128 ? 1 : 2 : i < 1 << 21 ? 3 : 4 : r < 16384 ? r < 128 ? 5 : 6 : r < 1 << 21 ? 7 : 8 : t < 128 ? 9 : 10
}
,
w.zigZagEncode64 = function(t) {
return "number" == typeof t ? t = h.fromNumber(t, !1) : "string" == typeof t ? t = h.fromString(t, !1) : !1 !== t.unsigned && (t = t.toSigned()),
t.shiftLeft(1).xor(t.shiftRight(63)).toUnsigned()
}
,
w.zigZagDecode64 = function(t) {
return "number" == typeof t ? t = h.fromNumber(t, !1) : "string" == typeof t ? t = h.fromString(t, !1) : !1 !== t.unsigned && (t = t.toSigned()),
t.shiftRightUnsigned(1).xor(t.and(h.ONE).toSigned().negate()).toSigned()
}
,
o.writeVarint64 = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" == typeof t)
t = h.fromNumber(t);
else if ("string" == typeof t)
t = h.fromString(t);
else if (!(t && t instanceof h))
throw TypeError("Illegal value: " + t + " (not an integer or Long)");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
"number" == typeof t ? t = h.fromNumber(t, !1) : "string" == typeof t ? t = h.fromString(t, !1) : !1 !== t.unsigned && (t = t.toSigned());
var e = w.calculateVarint64(t)
, n = t.toInt() >>> 0
, s = t.shiftRightUnsigned(28).toInt() >>> 0
, o = t.shiftRightUnsigned(56).toInt() >>> 0
, t = this.buffer.byteLength;
switch (t < (i += e) && this.resize((t *= 2) > i ? t : i),
i -= e,
e) {
case 10:
this.view[i + 9] = o >>> 7 & 1;
case 9:
this.view[i + 8] = 9 !== e ? 128 | o : 127 & o;
case 8:
this.view[i + 7] = 8 !== e ? s >>> 21 | 128 : s >>> 21 & 127;
case 7:
this.view[i + 6] = 7 !== e ? s >>> 14 | 128 : s >>> 14 & 127;
case 6:
this.view[i + 5] = 6 !== e ? s >>> 7 | 128 : s >>> 7 & 127;
case 5:
this.view[i + 4] = 5 !== e ? 128 | s : 127 & s;
case 4:
this.view[i + 3] = 4 !== e ? n >>> 21 | 128 : n >>> 21 & 127;
case 3:
this.view[i + 2] = 3 !== e ? n >>> 14 | 128 : n >>> 14 & 127;
case 2:
this.view[i + 1] = 2 !== e ? n >>> 7 | 128 : n >>> 7 & 127;
case 1:
this.view[i] = 1 !== e ? 128 | n : 127 & n
}
return r ? (this.offset += e,
this) : e
}
,
o.writeVarint64ZigZag = function(t, i) {
return this.writeVarint64(w.zigZagEncode64(t), i)
}
,
o.readVarint64 = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength)
}
var r = t
, e = 0
, n = 0
, s = 0
, e = 127 & (o = this.view[t++]);
if (128 & o && (e |= (127 & (o = this.view[t++])) << 7,
128 & o || this.noAssert && void 0 === o) && (e |= (127 & (o = this.view[t++])) << 14,
128 & o || this.noAssert && void 0 === o) && (e |= (127 & (o = this.view[t++])) << 21,
128 & o || this.noAssert && void 0 === o) && (n = 127 & (o = this.view[t++]),
128 & o || this.noAssert && void 0 === o) && (n |= (127 & (o = this.view[t++])) << 7,
128 & o || this.noAssert && void 0 === o) && (n |= (127 & (o = this.view[t++])) << 14,
128 & o || this.noAssert && void 0 === o) && (n |= (127 & (o = this.view[t++])) << 21,
128 & o || this.noAssert && void 0 === o) && (s = 127 & (o = this.view[t++]),
128 & o || this.noAssert && void 0 === o) && (s |= (127 & (o = this.view[t++])) << 7,
128 & o || this.noAssert && void 0 === o))
throw Error("Buffer overrun");
var o = h.fromBits(e | n << 28, n >>> 4 | s << 24, !1);
return i ? (this.offset = t,
o) : {
value: o,
length: t - r
}
}
,
o.readVarint64ZigZag = function(t) {
t = this.readVarint64(t);
return t && t.value instanceof h ? t.value = w.zigZagDecode64(t.value) : t = w.zigZagDecode64(t),
t
}
),
o.writeCString = function(t, i) {
var r = void 0 === i;
r && (i = this.offset);
var e, n = t.length;
if (!this.noAssert) {
if ("string" != typeof t)
throw TypeError("Illegal str: Not a string");
for (e = 0; e < n; ++e)
if (0 === t.charCodeAt(e))
throw RangeError("Illegal str: Contains NULL-characters");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
n = c.calculateUTF16asUTF8(f(t))[1],
i += n + 1;
var s = this.buffer.byteLength;
return s < i && this.resize((s *= 2) > i ? s : i),
i -= n + 1,
c.encodeUTF16toUTF8(f(t), function(t) {
this.view[i++] = t
}
.bind(this)),
this.view[i++] = 0,
r ? (this.offset = i,
this) : n
}
,
o.readCString = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength)
}
var r, e = t, n = -1;
return c.decodeUTF8toUTF16(function() {
if (0 === n)
return null;
if (t >= this.limit)
throw RangeError("Illegal range: Truncated data, " + t + " < " + this.limit);
return 0 === (n = this.view[t++]) ? null : n
}
.bind(this), r = a(), !0),
i ? (this.offset = t,
r()) : {
string: r(),
length: t - e
}
}
,
o.writeIString = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("string" != typeof t)
throw TypeError("Illegal str: Not a string");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = i
, n = c.calculateUTF16asUTF8(f(t), this.noAssert)[1]
, s = (i += 4 + n,
this.buffer.byteLength);
if (s < i && this.resize((s *= 2) > i ? s : i),
i -= 4 + n,
this.littleEndian ? (this.view[i + 3] = n >>> 24 & 255,
this.view[i + 2] = n >>> 16 & 255,
this.view[i + 1] = n >>> 8 & 255,
this.view[i] = 255 & n) : (this.view[i] = n >>> 24 & 255,
this.view[i + 1] = n >>> 16 & 255,
this.view[i + 2] = n >>> 8 & 255,
this.view[i + 3] = 255 & n),
i += 4,
c.encodeUTF16toUTF8(f(t), function(t) {
this.view[i++] = t
}
.bind(this)),
i !== e + 4 + n)
throw RangeError("Illegal range: Truncated data, " + i + " == " + (i + 4 + n));
return r ? (this.offset = i,
this) : i - e
}
,
o.readIString = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 4 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+4) <= " + this.buffer.byteLength)
}
var r = t
, e = this.readUint32(t)
, e = this.readUTF8String(e, w.METRICS_BYTES, t += 4);
return t += e.length,
i ? (this.offset = t,
e.string) : {
string: e.string,
length: t - r
}
}
,
w.METRICS_CHARS = "c",
w.METRICS_BYTES = "b",
o.writeUTF8String = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = i
, n = c.calculateUTF16asUTF8(f(t))[1]
, s = (i += n,
this.buffer.byteLength);
return s < i && this.resize((s *= 2) > i ? s : i),
i -= n,
c.encodeUTF16toUTF8(f(t), function(t) {
this.view[i++] = t
}
.bind(this)),
r ? (this.offset = i,
this) : i - e
}
,
o.writeString = o.writeUTF8String,
w.calculateUTF8Chars = function(t) {
return c.calculateUTF16asUTF8(f(t))[0]
}
,
w.calculateString = w.calculateUTF8Bytes = function(t) {
return c.calculateUTF16asUTF8(f(t))[1]
}
,
o.readUTF8String = function(t, i, r) {
"number" == typeof i && (r = i,
i = void 0);
var e = void 0 === r;
if (e && (r = this.offset),
void 0 === i && (i = w.METRICS_CHARS),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal length: " + t + " (not an integer)");
if (t |= 0,
"number" != typeof r || r % 1 != 0)
throw TypeError("Illegal offset: " + r + " (not an integer)");
if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength)
}
var n, s = 0, o = r;
if (i === w.METRICS_CHARS) {
if (n = a(),
c.decodeUTF8(function() {
return s < t && r < this.limit ? this.view[r++] : null
}
.bind(this), function(t) {
++s,
c.UTF8toUTF16(t, n)
}),
s !== t)
throw RangeError("Illegal range: Truncated data, " + s + " == " + t)
} else {
if (i !== w.METRICS_BYTES)
throw TypeError("Unsupported metrics: " + i);
if (!this.noAssert) {
if ("number" != typeof r || r % 1 != 0)
throw TypeError("Illegal offset: " + r + " (not an integer)");
if ((r >>>= 0) < 0 || r + t > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + r + " (+" + t + ") <= " + this.buffer.byteLength)
}
var h = r + t;
if (c.decodeUTF8toUTF16(function() {
return r < h ? this.view[r++] : null
}
.bind(this), n = a(), this.noAssert),
r !== h)
throw RangeError("Illegal range: Truncated data, " + r + " == " + h)
}
return e ? (this.offset = r,
n()) : {
string: n(),
length: r - o
}
}
,
o.readString = o.readUTF8String,
o.writeVString = function(t, i) {
var r = void 0 === i;
if (r && (i = this.offset),
!this.noAssert) {
if ("string" != typeof t)
throw TypeError("Illegal str: Not a string");
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: " + i + " (not an integer)");
if ((i >>>= 0) < 0 || i + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + i + " (+0) <= " + this.buffer.byteLength)
}
var e = i
, n = c.calculateUTF16asUTF8(f(t), this.noAssert)[1]
, s = w.calculateVarint32(n)
, o = (i += s + n,
this.buffer.byteLength);
if (o < i && this.resize((o *= 2) > i ? o : i),
i = (i -= s + n) + this.writeVarint32(n, i),
c.encodeUTF16toUTF8(f(t), function(t) {
this.view[i++] = t
}
.bind(this)),
i !== e + n + s)
throw RangeError("Illegal range: Truncated data, " + i + " == " + (i + n + s));
return r ? (this.offset = i,
this) : i - e
}
,
o.readVString = function(t) {
var i = void 0 === t;
if (i && (t = this.offset),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 1 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+1) <= " + this.buffer.byteLength)
}
var r = t
, e = this.readVarint32(t)
, e = this.readUTF8String(e.value, w.METRICS_BYTES, t += e.length);
return t += e.length,
i ? (this.offset = t,
e.string) : {
string: e.string,
length: t - r
}
}
,
o.append = function(t, i, r) {
"number" != typeof i && "string" == typeof i || (r = i,
i = void 0);
var e = void 0 === r;
if (e && (r = this.offset),
!this.noAssert) {
if ("number" != typeof r || r % 1 != 0)
throw TypeError("Illegal offset: " + r + " (not an integer)");
if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength)
}
var n, i = (t = t instanceof w ? t : w.wrap(t, i)).limit - t.offset;
return i <= 0 || ((n = this.buffer.byteLength) < (r += i) && this.resize((n *= 2) > r ? n : r),
r -= i,
this.view.set(t.view.subarray(t.offset, t.limit), r),
t.offset += i,
e && (this.offset += i)),
this
}
,
o.appendTo = function(t, i) {
return t.append(this, i),
this
}
,
o.assert = function(t) {
return this.noAssert = !t,
this
}
,
o.capacity = function() {
return this.buffer.byteLength
}
,
o.clear = function() {
return this.offset = 0,
this.limit = this.buffer.byteLength,
this.markedOffset = -1,
this
}
,
o.clone = function(t) {
var i = new w(0,this.littleEndian,this.noAssert);
return t ? (i.buffer = new ArrayBuffer(this.buffer.byteLength),
i.view = new Uint8Array(i.buffer)) : (i.buffer = this.buffer,
i.view = this.view),
i.offset = this.offset,
i.markedOffset = this.markedOffset,
i.limit = this.limit,
i
}
,
o.compact = function(t, i) {
if (void 0 === t && (t = this.offset),
void 0 === i && (i = this.limit),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (i >>>= 0,
t < 0 || i < t || i > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength)
}
var r, e, n;
return 0 === t && i === this.buffer.byteLength || (0 == (r = i - t) ? (this.buffer = s,
this.view = null,
0 <= this.markedOffset && (this.markedOffset -= t),
this.offset = 0,
this.limit = 0) : (e = new ArrayBuffer(r),
(n = new Uint8Array(e)).set(this.view.subarray(t, i)),
this.buffer = e,
this.view = n,
0 <= this.markedOffset && (this.markedOffset -= t),
this.offset = 0,
this.limit = r)),
this
}
,
o.copy = function(t, i) {
if (void 0 === t && (t = this.offset),
void 0 === i && (i = this.limit),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (i >>>= 0,
t < 0 || i < t || i > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength)
}
var r, e;
return t === i ? new w(0,this.littleEndian,this.noAssert) : ((e = new w(r = i - t,this.littleEndian,this.noAssert)).offset = 0,
e.limit = r,
0 <= e.markedOffset && (e.markedOffset -= t),
this.copyTo(e, 0, t, i),
e)
}
,
o.copyTo = function(t, i, r, e) {
var n, s;
if (!this.noAssert && !w.isByteBuffer(t))
throw TypeError("Illegal target: Not a ByteBuffer");
if (i = (s = void 0 === i) ? t.offset : 0 | i,
r = (n = void 0 === r) ? this.offset : 0 | r,
e = void 0 === e ? this.limit : 0 | e,
i < 0 || i > t.buffer.byteLength)
throw RangeError("Illegal target range: 0 <= " + i + " <= " + t.buffer.byteLength);
if (r < 0 || e > this.buffer.byteLength)
throw RangeError("Illegal source range: 0 <= " + r + " <= " + this.buffer.byteLength);
var o = e - r;
return 0 == o ? t : (t.ensureCapacity(i + o),
t.view.set(this.view.subarray(r, e), i),
n && (this.offset += o),
s && (t.offset += o),
this)
}
,
o.ensureCapacity = function(t) {
var i = this.buffer.byteLength;
return i < t ? this.resize((i *= 2) > t ? i : t) : this
}
,
o.fill = function(t, i, r) {
var e = void 0 === i;
if (e && (i = this.offset),
"string" == typeof t && 0 < t.length && (t = t.charCodeAt(0)),
void 0 === i && (i = this.offset),
void 0 === r && (r = this.limit),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal value: " + t + " (not an integer)");
if (t |= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (i >>>= 0,
"number" != typeof r || r % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (r >>>= 0,
i < 0 || r < i || r > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + i + " <= " + r + " <= " + this.buffer.byteLength)
}
if (!(r <= i)) {
for (; i < r; )
this.view[i++] = t;
e && (this.offset = i)
}
return this
}
,
o.flip = function() {
return this.limit = this.offset,
this.offset = 0,
this
}
,
o.mark = function(t) {
if (t = void 0 === t ? this.offset : t,
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal offset: " + t + " (not an integer)");
if ((t >>>= 0) < 0 || t + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + t + " (+0) <= " + this.buffer.byteLength)
}
return this.markedOffset = t,
this
}
,
o.order = function(t) {
if (this.noAssert || "boolean" == typeof t)
return this.littleEndian = !!t,
this;
throw TypeError("Illegal littleEndian: Not a boolean")
}
,
o.LE = function(t) {
return this.littleEndian = void 0 === t || !!t,
this
}
,
o.BE = function(t) {
return this.littleEndian = void 0 !== t && !t,
this
}
,
o.prepend = function(t, i, r) {
"number" != typeof i && "string" == typeof i || (r = i,
i = void 0);
var e = void 0 === r;
if (e && (r = this.offset),
!this.noAssert) {
if ("number" != typeof r || r % 1 != 0)
throw TypeError("Illegal offset: " + r + " (not an integer)");
if ((r >>>= 0) < 0 || r + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= " + r + " (+0) <= " + this.buffer.byteLength)
}
var n, s, o, i = (t = t instanceof w ? t : w.wrap(t, i)).limit - t.offset;
return i <= 0 || (0 < (n = i - r) ? (s = new ArrayBuffer(this.buffer.byteLength + n),
(o = new Uint8Array(s)).set(this.view.subarray(r, this.buffer.byteLength), i),
this.buffer = s,
this.view = o,
this.offset += n,
0 <= this.markedOffset && (this.markedOffset += n),
this.limit += n,
r += n) : new Uint8Array(this.buffer),
this.view.set(t.view.subarray(t.offset, t.limit), r - i),
t.offset = t.limit,
e && (this.offset -= i)),
this
}
,
o.prependTo = function(t, i) {
return t.prepend(this, i),
this
}
,
o.printDebug = function(t) {
(t = "function" != typeof t ? console.log.bind(console) : t)(this.toString() + "\n-------------------------------------------------------------------\n" + this.toDebug(!0))
}
,
o.remaining = function() {
return this.limit - this.offset
}
,
o.reset = function() {
return 0 <= this.markedOffset ? (this.offset = this.markedOffset,
this.markedOffset = -1) : this.offset = 0,
this
}
,
o.resize = function(t) {
if (!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal capacity: " + t + " (not an integer)");
if ((t |= 0) < 0)
throw RangeError("Illegal capacity: 0 <= " + t)
}
var i;
return this.buffer.byteLength < t && (t = new ArrayBuffer(t),
(i = new Uint8Array(t)).set(this.view),
this.buffer = t,
this.view = i),
this
}
,
o.reverse = function(t, i) {
if (void 0 === t && (t = this.offset),
void 0 === i && (i = this.limit),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (i >>>= 0,
t < 0 || i < t || i > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength)
}
return t !== i && Array.prototype.reverse.call(this.view.subarray(t, i)),
this
}
,
o.skip = function(t) {
if (!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal length: " + t + " (not an integer)");
t |= 0
}
var i = this.offset + t;
if (!this.noAssert && (i < 0 || i > this.buffer.byteLength))
throw RangeError("Illegal length: 0 <= " + this.offset + " + " + t + " <= " + this.buffer.byteLength);
return this.offset = i,
this
}
,
o.slice = function(t, i) {
if (void 0 === t && (t = this.offset),
void 0 === i && (i = this.limit),
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (i >>>= 0,
t < 0 || i < t || i > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength)
}
var r = this.clone();
return r.offset = t,
r.limit = i,
r
}
,
o.toBuffer = function(t) {
var i = this.offset
, r = this.limit;
if (!this.noAssert) {
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal offset: Not an integer");
if (i >>>= 0,
"number" != typeof r || r % 1 != 0)
throw TypeError("Illegal limit: Not an integer");
if (r >>>= 0,
i < 0 || r < i || r > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + i + " <= " + r + " <= " + this.buffer.byteLength)
}
return t || 0 !== i || r !== this.buffer.byteLength ? i === r ? s : (t = new ArrayBuffer(r - i),
new Uint8Array(t).set(new Uint8Array(this.buffer).subarray(i, r), 0),
t) : this.buffer
}
,
o.toArrayBuffer = o.toBuffer,
o.toString = function(t, i, r) {
if (void 0 === t)
return "ByteBufferAB(offset=" + this.offset + ",markedOffset=" + this.markedOffset + ",limit=" + this.limit + ",capacity=" + this.capacity() + ")";
switch ("number" == typeof t && (r = i = t = "utf8"),
t) {
case "utf8":
return this.toUTF8(i, r);
case "base64":
return this.toBase64(i, r);
case "hex":
return this.toHex(i, r);
case "binary":
return this.toBinary(i, r);
case "debug":
return this.toDebug();
case "columns":
return this.toColumns();
default:
throw Error("Unsupported encoding: " + t)
}
}
;
var u, l = function() {
for (var t = {}, n = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47], o = [], i = 0, r = n.length; i < r; ++i)
o[n[i]] = i;
return t.encode = function(t, i) {
for (var r, e; null !== (r = t()); )
i(n[r >> 2 & 63]),
e = (3 & r) << 4,
null !== (r = t()) ? (i(n[63 & ((e |= r >> 4 & 15) | r >> 4 & 15)]),
e = (15 & r) << 2,
null !== (r = t()) ? (i(n[63 & (e | r >> 6 & 3)]),
i(n[63 & r])) : (i(n[63 & e]),
i(61))) : (i(n[63 & e]),
i(61),
i(61))
}
,
t.decode = function(t, i) {
var r, e, n;
function s(t) {
throw Error("Illegal character code: " + t)
}
for (; null !== (r = t()); )
if (void 0 === (e = o[r]) && s(r),
null !== (r = t()) && (void 0 === (n = o[r]) && s(r),
i(e << 2 >>> 0 | (48 & n) >> 4),
null !== (r = t()))) {
if (void 0 === (e = o[r])) {
if (61 === r)
break;
s(r)
}
if (i((15 & n) << 4 >>> 0 | (60 & e) >> 2),
null !== (r = t())) {
if (void 0 === (n = o[r])) {
if (61 === r)
break;
s(r)
}
i((3 & e) << 6 >>> 0 | n)
}
}
}
,
t.test = function(t) {
return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)
}
,
t
}(), c = (o.toBase64 = function(t, i) {
if (void 0 === t && (t = this.offset),
void 0 === i && (i = this.limit),
i |= 0,
(t |= 0) < 0 || i > this.capacity || i < t)
throw RangeError("begin, end");
var r;
return l.encode(function() {
return t < i ? this.view[t++] : null
}
.bind(this), r = a()),
r()
}
,
w.fromBase64 = function(t, i) {
if ("string" != typeof t)
throw TypeError("str");
var r = new w(t.length / 4 * 3,i)
, e = 0;
return l.decode(f(t), function(t) {
r.view[e++] = t
}),
r.limit = e,
r
}
,
w.btoa = function(t) {
return w.fromBinary(t).toBase64()
}
,
w.atob = function(t) {
return w.fromBase64(t).toBinary()
}
,
o.toBinary = function(t, i) {
if (void 0 === t && (t = this.offset),
void 0 === i && (i = this.limit),
i |= 0,
(t |= 0) < 0 || i > this.capacity() || i < t)
throw RangeError("begin, end");
if (t === i)
return "";
for (var r = [], e = []; t < i; )
r.push(this.view[t++]),
1024 <= r.length && (e.push(String.fromCharCode.apply(String, r)),
r = []);
return e.join("") + String.fromCharCode.apply(String, r)
}
,
w.fromBinary = function(t, i) {
if ("string" != typeof t)
throw TypeError("str");
for (var r, e = 0, n = t.length, s = new w(n,i); e < n; ) {
if (255 < (r = t.charCodeAt(e)))
throw RangeError("illegal char code: " + r);
s.view[e++] = r
}
return s.limit = n,
s
}
,
o.toDebug = function(t) {
for (var i, r = -1, e = this.buffer.byteLength, n = "", s = "", o = ""; r < e; ) {
if (-1 !== r && (n += (i = this.view[r]) < 16 ? "0" + i.toString(16).toUpperCase() : i.toString(16).toUpperCase(),
t) && (s += 32 < i && i < 127 ? String.fromCharCode(i) : "."),
++r,
t && 0 < r && r % 16 == 0 && r !== e) {
for (; n.length < 51; )
n += " ";
o += n + s + "\n",
n = s = ""
}
r === this.offset && r === this.limit ? n += r === this.markedOffset ? "!" : "|" : r === this.offset ? n += r === this.markedOffset ? "[" : "<" : r === this.limit ? n += r === this.markedOffset ? "]" : ">" : n += r === this.markedOffset ? "'" : t || 0 !== r && r !== e ? " " : ""
}
if (t && " " !== n) {
for (; n.length < 51; )
n += " ";
o += n + s + "\n"
}
return t ? o : n
}
,
w.fromDebug = function(t, i, r) {
for (var e, n, s = t.length, o = new w((s + 1) / 3 | 0,i,r), h = 0, f = 0, a = !1, u = !1, l = !1, c = !1, g = !1; h < s; ) {
switch (e = t.charAt(h++)) {
case "!":
if (!r) {
if (u || l || c) {
g = !0;
break
}
u = l = c = !0
}
o.offset = o.markedOffset = o.limit = f,
a = !1;
break;
case "|":
if (!r) {
if (u || c) {
g = !0;
break
}
u = c = !0
}
o.offset = o.limit = f,
a = !1;
break;
case "[":
if (!r) {
if (u || l) {
g = !0;
break
}
u = l = !0
}
o.offset = o.markedOffset = f,
a = !1;
break;
case "<":
if (!r) {
if (u) {
g = !0;
break
}
u = !0
}
o.offset = f,
a = !1;
break;
case "]":
if (!r) {
if (c || l) {
g = !0;
break
}
c = l = !0
}
o.limit = o.markedOffset = f,
a = !1;
break;
case ">":
if (!r) {
if (c) {
g = !0;
break
}
c = !0
}
o.limit = f,
a = !1;
break;
case "'":
if (!r) {
if (l) {
g = !0;
break
}
l = !0
}
o.markedOffset = f,
a = !1;
break;
case " ":
a = !1;
break;
default:
if (!r && a)
g = !0;
else {
if (n = parseInt(e + t.charAt(h++), 16),
!r && (isNaN(n) || n < 0 || 255 < n))
throw TypeError("Illegal str: Not a debug encoded string");
o.view[f++] = n,
a = !0
}
}
if (g)
throw TypeError("Illegal str: Invalid symbol at " + h)
}
if (!r) {
if (!u || !c)
throw TypeError("Illegal str: Missing offset or limit");
if (f < o.buffer.byteLength)
throw TypeError("Illegal str: Not a debug encoded string (is it hex?) " + f + " < " + s)
}
return o
}
,
o.toHex = function(t, i) {
if (t = void 0 === t ? this.offset : t,
i = void 0 === i ? this.limit : i,
!this.noAssert) {
if ("number" != typeof t || t % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (t >>>= 0,
"number" != typeof i || i % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (i >>>= 0,
t < 0 || i < t || i > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + t + " <= " + i + " <= " + this.buffer.byteLength)
}
for (var r, e = new Array(i - t); t < i; )
(r = this.view[t++]) < 16 ? e.push("0", r.toString(16)) : e.push(r.toString(16));
return e.join("")
}
,
w.fromHex = function(t, i, r) {
if (!r) {
if ("string" != typeof t)
throw TypeError("Illegal str: Not a string");
if (t.length % 2 != 0)
throw TypeError("Illegal str: Length not a multiple of 2")
}
for (var e, n = t.length, s = new w(n / 2 | 0,i), o = 0, h = 0; o < n; o += 2) {
if (e = parseInt(t.substring(o, o + 2), 16),
!r && (!isFinite(e) || e < 0 || 255 < e))
throw TypeError("Illegal str: Contains non-hex characters");
s.view[h++] = e
}
return s.limit = h,
s
}
,
u = {
MAX_CODEPOINT: 1114111,
encodeUTF8: function(t, i) {
var r = null;
for ("number" == typeof t && (r = t,
t = function() {
return null
}
); null !== r || null !== (r = t()); )
r < 128 ? i(127 & r) : (r < 2048 ? i(r >> 6 & 31 | 192) : (r < 65536 ? i(r >> 12 & 15 | 224) : (i(r >> 18 & 7 | 240),
i(r >> 12 & 63 | 128)),
i(r >> 6 & 63 | 128)),
i(63 & r | 128)),
r = null
},
decodeUTF8: function(t, i) {
for (var r, e, n, s, o = function(t) {
t = t.slice(0, t.indexOf(null));
var i = Error(t.toString());
throw i.name = "TruncatedError",
i.bytes = t,
i
}; null !== (r = t()); )
if (0 == (128 & r))
i(r);
else if (192 == (224 & r))
null === (e = t()) && o([r, e]),
i((31 & r) << 6 | 63 & e);
else if (224 == (240 & r))
null !== (e = t()) && null !== (n = t()) || o([r, e, n]),
i((15 & r) << 12 | (63 & e) << 6 | 63 & n);
else {
if (240 != (248 & r))
throw RangeError("Illegal starting byte: " + r);
null !== (e = t()) && null !== (n = t()) && null !== (s = t()) || o([r, e, n, s]),
i((7 & r) << 18 | (63 & e) << 12 | (63 & n) << 6 | 63 & s)
}
},
UTF16toUTF8: function(t, i) {
for (var r, e = null; null !== (r = null !== e ? e : t()); )
55296 <= r && r <= 57343 && null !== (e = t()) && 56320 <= e && e <= 57343 ? (i(1024 * (r - 55296) + e - 56320 + 65536),
e = null) : i(r);
null !== e && i(e)
},
UTF8toUTF16: function(t, i) {
var r = null;
for ("number" == typeof t && (r = t,
t = function() {
return null
}
); null !== r || null !== (r = t()); )
r <= 65535 ? i(r) : (i(55296 + ((r -= 65536) >> 10)),
i(r % 1024 + 56320)),
r = null
},
encodeUTF16toUTF8: function(t, i) {
u.UTF16toUTF8(t, function(t) {
u.encodeUTF8(t, i)
})
},
decodeUTF8toUTF16: function(t, i) {
u.decodeUTF8(t, function(t) {
u.UTF8toUTF16(t, i)
})
},
calculateCodePoint: function(t) {
return t < 128 ? 1 : t < 2048 ? 2 : t < 65536 ? 3 : 4
},
calculateUTF8: function(t) {
for (var i, r = 0; null !== (i = t()); )
r += i < 128 ? 1 : i < 2048 ? 2 : i < 65536 ? 3 : 4;
return r
},
calculateUTF16asUTF8: function(t) {
var i = 0
, r = 0;
return u.UTF16toUTF8(t, function(t) {
++i,
r += t < 128 ? 1 : t < 2048 ? 2 : t < 65536 ? 3 : 4
}),
[i, r]
}
});
return o.toUTF8 = function(i, r) {
if (void 0 === i && (i = this.offset),
void 0 === r && (r = this.limit),
!this.noAssert) {
if ("number" != typeof i || i % 1 != 0)
throw TypeError("Illegal begin: Not an integer");
if (i >>>= 0,
"number" != typeof r || r % 1 != 0)
throw TypeError("Illegal end: Not an integer");
if (r >>>= 0,
i < 0 || r < i || r > this.buffer.byteLength)
throw RangeError("Illegal range: 0 <= " + i + " <= " + r + " <= " + this.buffer.byteLength)
}
var t;
try {
c.decodeUTF8toUTF16(function() {
return i < r ? this.view[i++] : null
}
.bind(this), t = a())
} catch (t) {
if (i !== r)
throw RangeError("Illegal range: Truncated data, " + i + " != " + r)
}
return t()
}
,
w.fromUTF8 = function(t, i, r) {
var e, n;
if (r || "string" == typeof t)
return e = new w(c.calculateUTF16asUTF8(f(t), !0)[1],i,r),
n = 0,
c.encodeUTF16toUTF8(f(t), function(t) {
e.view[n++] = t
}),
e.limit = n,
e;
throw TypeError("Illegal str: Not a string")
}
,
w
}),
function(t, i) {
"function" == typeof define && define.amd || "function" != typeof require || "object" != typeof module || !module || !module.exports ? (t.dcodeIO = t.dcodeIO || {}).ProtoBuf = i(t.dcodeIO.ByteBuffer) : module.exports = i(require("bytebuffer"))
}(this, function(g, t) {
"use strict";
var n, s, o, a, i, h, f, w, u, r, l, e, c, p, v, d = {};
function y(t) {
this.source = t + "",
this.index = 0,
this.line = 1,
this.stack = [],
this.Rt = null
}
function E(t) {
this.tn = new y(t),
this.proto3 = !1
}
function b(t, i) {
var r = -1
, e = 1;
if ("-" == t.charAt(0) && (e = -1,
t = t.substring(1)),
o.NUMBER_DEC.test(t))
r = parseInt(t);
else if (o.NUMBER_HEX.test(t))
r = parseInt(t.substring(2), 16);
else {
if (!o.NUMBER_OCT.test(t))
throw Error("illegal id value: " + (e < 0 ? "-" : "") + t);
r = parseInt(t.substring(1), 8)
}
if (r = e * r | 0,
!i && r < 0)
throw Error("illegal id value: " + (e < 0 ? "-" : "") + t);
return r
}
function m(t) {
var i = 1;
if ("-" == t.charAt(0) && (i = -1,
t = t.substring(1)),
o.NUMBER_DEC.test(t))
return i * parseInt(t, 10);
if (o.NUMBER_HEX.test(t))
return i * parseInt(t.substring(2), 16);
if (o.NUMBER_OCT.test(t))
return i * parseInt(t.substring(1), 8);
if ("inf" === t)
return i * (1 / 0);
if ("nan" === t)
return NaN;
if (o.NUMBER_FLT.test(t))
return i * parseFloat(t);
throw Error("illegal number value: " + (i < 0 ? "-" : "") + t)
}
function I(t, i, r) {
void 0 === t[i] ? t[i] = r : (Array.isArray(t[i]) || (t[i] = [t[i]]),
t[i].push(r))
}
function T(t) {
this.ns = new h.Namespace(this,null,""),
this.ptr = this.ns,
this.resolved = !1,
this.result = null,
this.files = {},
this.importRoot = null,
this.options = t || {}
}
function A(t, i) {
if (!t.map)
throw Error("field is not a map");
if (this.field = t,
this.keyElem = new f.Element(t.keyType,null,!0,t.syntax),
this.valueElem = new f.Element(t.type,t.resolvedType,!1,t.syntax),
this.map = {},
Object.defineProperty(this, "size", {
get: function() {
return Object.keys(this.map).length
}
}),
i)
for (var r = Object.keys(i), e = 0; e < r.length; e++) {
var n = this.keyElem.valueFromString(r[e])
, s = this.valueElem.verifyValue(i[r[e]]);
this.map[this.keyElem.valueToString(n)] = {
key: n,
value: s
}
}
}
function k(t) {
var i = 0;
return {
next: function() {
return i < t.length ? {
done: !1,
value: t[i++]
} : {
done: !0
}
}
}
}
return d.ByteBuffer = g,
d.Long = g.Long || null,
d.VERSION = "5.0.1",
d.WIRE_TYPES = {},
d.WIRE_TYPES.VARINT = 0,
d.WIRE_TYPES.BITS64 = 1,
d.WIRE_TYPES.LDELIM = 2,
d.WIRE_TYPES.STARTGROUP = 3,
d.WIRE_TYPES.ENDGROUP = 4,
d.WIRE_TYPES.BITS32 = 5,
d.PACKABLE_WIRE_TYPES = [d.WIRE_TYPES.VARINT, d.WIRE_TYPES.BITS64, d.WIRE_TYPES.BITS32],
d.TYPES = {
int32: {
name: "int32",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: 0
},
uint32: {
name: "uint32",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: 0
},
sint32: {
name: "sint32",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: 0
},
int64: {
name: "int64",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: 0
},
uint64: {
name: "uint64",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: d.Long ? d.Long.UZERO : void 0
},
sint64: {
name: "sint64",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: d.Long ? d.Long.ZERO : void 0
},
bool: {
name: "bool",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: !1
},
double: {
name: "double",
wireType: d.WIRE_TYPES.BITS64,
defaultValue: 0
},
string: {
name: "string",
wireType: d.WIRE_TYPES.LDELIM,
defaultValue: ""
},
bytes: {
name: "bytes",
wireType: d.WIRE_TYPES.LDELIM,
defaultValue: null
},
fixed32: {
name: "fixed32",
wireType: d.WIRE_TYPES.BITS32,
defaultValue: 0
},
sfixed32: {
name: "sfixed32",
wireType: d.WIRE_TYPES.BITS32,
defaultValue: 0
},
fixed64: {
name: "fixed64",
wireType: d.WIRE_TYPES.BITS64,
defaultValue: d.Long ? d.Long.UZERO : void 0
},
sfixed64: {
name: "sfixed64",
wireType: d.WIRE_TYPES.BITS64,
defaultValue: d.Long ? d.Long.ZERO : void 0
},
float: {
name: "float",
wireType: d.WIRE_TYPES.BITS32,
defaultValue: 0
},
enum: {
name: "enum",
wireType: d.WIRE_TYPES.VARINT,
defaultValue: 0
},
message: {
name: "message",
wireType: d.WIRE_TYPES.LDELIM,
defaultValue: null
},
group: {
name: "group",
wireType: d.WIRE_TYPES.STARTGROUP,
defaultValue: null
}
},
d.MAP_KEY_TYPES = [d.TYPES.int32, d.TYPES.sint32, d.TYPES.sfixed32, d.TYPES.uint32, d.TYPES.fixed32, d.TYPES.int64, d.TYPES.sint64, d.TYPES.sfixed64, d.TYPES.uint64, d.TYPES.fixed64, d.TYPES.bool, d.TYPES.string, d.TYPES.bytes],
d.ID_MIN = 1,
d.ID_MAX = 536870911,
d.convertFieldsToCamelCase = !1,
d.populateAccessors = !0,
d.populateDefaults = !0,
d.Util = ((n = {}).IS_NODE = !("object" != typeof process || process + "" != "[object process]" || process.browser),
n.XHR = function() {
for (var t = [function() {
return new XMLHttpRequest
}
, function() {
return new ActiveXObject("Msxml2.XMLHTTP")
}
, function() {
return new ActiveXObject("Msxml3.XMLHTTP")
}
, function() {
return new ActiveXObject("Microsoft.XMLHTTP")
}
], i = null, r = 0; r < t.length; r++) {
try {
i = t[r]()
} catch (t) {
continue
}
break
}
if (i)
return i;
throw Error("XMLHttpRequest is not supported")
}
,
n.fetch = function(t, r) {
if (r && "function" != typeof r && (r = null),
n.IS_NODE) {
var i = require("fs");
if (r)
i.readFile(t, function(t, i) {
r(t ? null : "" + i)
});
else
try {
return i.readFileSync(t)
} catch (t) {
return null
}
} else {
var e = n.XHR();
if (e.open("GET", t, !!r),
e.setRequestHeader("Accept", "text/plain"),
"function" == typeof e.overrideMimeType && e.overrideMimeType("text/plain"),
!r)
return e.send(null),
200 == e.status || 0 == e.status && "string" == typeof e.responseText ? e.responseText : null;
e.onreadystatechange = function() {
4 == e.readyState && (200 == e.status || 0 == e.status && "string" == typeof e.responseText ? r(e.responseText) : r(null))
}
,
4 != e.readyState && e.send(null)
}
}
,
n.toCamelCase = function(t) {
return t.replace(/_([a-zA-Z])/g, function(t, i) {
return i.toUpperCase()
})
}
,
n),
d.Lang = {
DELIM: /[\s\{\}=;:\[\],'"\(\)<>]/g,
RULE: /^(?:required|optional|repeated|map)$/,
TYPE: /^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,
NAME: /^[a-zA-Z_][a-zA-Z_0-9]*$/,
TYPEDEF: /^[a-zA-Z][a-zA-Z_0-9]*$/,
TYPEREF: /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/,
FQTYPEREF: /^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/,
NUMBER: /^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,
NUMBER_DEC: /^(?:[1-9][0-9]*|0)$/,
NUMBER_HEX: /^0[xX][0-9a-fA-F]+$/,
NUMBER_OCT: /^0[0-7]+$/,
NUMBER_FLT: /^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,
BOOL: /^(?:true|false)$/i,
ID: /^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
NEGID: /^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
WHITESPACE: /\s/,
STRING: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,
STRING_DQ: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,
STRING_SQ: /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g
},
d.DotProto = (o = (s = d).Lang,
r = {},
(e = y.prototype).Ot = function() {
var t = '"' === this.Rt ? o.STRING_DQ : o.STRING_SQ
, i = (t.lastIndex = this.index - 1,
t.exec(this.source));
if (i)
return this.index = t.lastIndex,
this.stack.push(this.Rt),
this.Rt = null,
i[1];
throw Error("unterminated string")
}
,
e.next = function() {
if (0 < this.stack.length)
return this.stack.shift();
if (this.index >= this.source.length)
return null;
if (null !== this.Rt)
return this.Ot();
var t, i, r;
do {
for (t = !1; o.WHITESPACE.test(r = this.source.charAt(this.index)); )
if ("\n" === r && ++this.line,
++this.index === this.source.length)
return null;
if ("/" === this.source.charAt(this.index)) {
if (++this.index,
"/" === this.source.charAt(this.index)) {
for (; "\n" !== this.source.charAt(++this.index); )
if (this.index == this.source.length)
return null;
++this.index,
++this.line
} else {
if ("*" !== (r = this.source.charAt(this.index)))
return "/";
do {
if ("\n" === r && ++this.line,
++this.index === this.source.length)
return null
} while (i = r,
r = this.source.charAt(this.index),
"*" !== i || "/" !== r);
++this.index
}
t = !0
}
} while (t);
if (this.index === this.source.length)
return null;
var e = this.index;
if (o.DELIM.lastIndex = 0,
!o.DELIM.test(this.source.charAt(e++)))
for (; e < this.source.length && !o.DELIM.test(this.source.charAt(e)); )
++e;
var n = this.source.substring(this.index, this.index = e);
return '"' !== n && "'" !== n || (this.Rt = n),
n
}
,
e.peek = function() {
if (0 === this.stack.length) {
var t = this.next();
if (null === t)
return null;
this.stack.push(t)
}
return this.stack[0]
}
,
e.skip = function(t) {
var i = this.next();
if (i !== t)
throw Error("illegal '" + i + "', '" + t + "' expected")
}
,
e.omit = function(t) {
return this.peek() === t && (this.next(),
!0)
}
,
e.toString = function() {
return "Tokenizer (" + this.index + "/" + this.source.length + " at line " + this.line + ")"
}
,
r.Tokenizer = y,
(e = E.prototype).parse = function() {
var t, i, r = {
name: "[ROOT]",
package: null,
messages: [],
enums: [],
imports: [],
options: {},
services: []
}, e = !0;
try {
for (; t = this.tn.next(); )
switch (t) {
case "package":
if (!e || null !== r.package)
throw Error("unexpected 'package'");
if (t = this.tn.next(),
!o.TYPEREF.test(t))
throw Error("illegal package name: " + t);
this.tn.skip(";"),
r.package = t;
break;
case "import":
if (!e)
throw Error("unexpected 'import'");
"public" !== (t = this.tn.peek()) && !(i = "weak" === t) || this.tn.next(),
t = this.Ot(),
this.tn.skip(";"),
i || r.imports.push(t);
break;
case "syntax":
if (!e)
throw Error("unexpected 'syntax'");
this.tn.skip("="),
"proto3" === (r.syntax = this.Ot()) && (this.proto3 = !0),
this.tn.skip(";");
break;
case "message":
this.Nt(r, null),
e = !1;
break;
case "enum":
this.Mt(r),
e = !1;
break;
case "option":
this.St(r);
break;
case "service":
this.jt(r);
break;
case "extend":
this.xt(r);
break;
default:
throw Error("unexpected '" + t + "'")
}
} catch (t) {
throw t.message = "Parse error at line " + this.tn.line + ": " + t.message,
t
}
return delete r.name,
r
}
,
E.parse = function(t) {
return new E(t).parse()
}
,
e.Ot = function() {
var t, i = "";
do {
if ("'" !== (t = this.tn.next()) && '"' !== t)
throw Error("illegal string delimiter: " + t)
} while (i += this.tn.next(),
this.tn.skip(t),
'"' === this.tn.peek());
return i
}
,
e.Ut = function(t) {
var i = this.tn.peek();
if ('"' === i || "'" === i)
return this.Ot();
if (this.tn.next(),
o.NUMBER.test(i))
return m(i);
if (o.BOOL.test(i))
return "true" === i.toLowerCase();
if (t && o.TYPEREF.test(i))
return i;
throw Error("illegal value: " + i)
}
,
e.St = function(t, i) {
var r = this.tn.next()
, e = !1;
if ("(" === r && (e = !0,
r = this.tn.next()),
!o.TYPEREF.test(r))
throw Error("illegal option name: " + r);
var n = r;
e && (this.tn.skip(")"),
n = "(" + n + ")",
r = this.tn.peek(),
o.FQTYPEREF.test(r)) && (n += r,
this.tn.next()),
this.tn.skip("="),
this.Ct(t, n),
i || this.tn.skip(";")
}
,
e.Ct = function(t, i) {
var r;
if ("{" !== this.tn.peek())
I(t.options, i, this.Ut(!0));
else
for (this.tn.skip("{"); "}" !== (r = this.tn.next()); ) {
if (!o.NAME.test(r))
throw Error("illegal option name: " + i + "." + r);
this.tn.omit(":") ? I(t.options, i + "." + r, this.Ut(!0)) : this.Ct(t, i + "." + r)
}
}
,
e.jt = function(t) {
var i = this.tn.next();
if (!o.NAME.test(i))
throw Error("illegal service name at line " + this.tn.line + ": " + i);
var r = {
name: i,
rpc: {},
options: {}
};
for (this.tn.skip("{"); "}" !== (i = this.tn.next()); )
if ("option" === i)
this.St(r);
else {
if ("rpc" !== i)
throw Error("illegal service token: " + i);
this._t(r)
}
this.tn.omit(";"),
t.services.push(r)
}
,
e._t = function(t) {
var i = this.tn.next();
if (!o.NAME.test(i))
throw Error("illegal rpc service method name: " + i);
var r = i
, e = {
request: null,
response: null,
request_stream: !1,
response_stream: !1,
options: {}
};
if (this.tn.skip("("),
"stream" === (i = this.tn.next()).toLowerCase() && (e.request_stream = !0,
i = this.tn.next()),
!o.TYPEREF.test(i))
throw Error("illegal rpc service request type: " + i);
if (e.request = i,
this.tn.skip(")"),
"returns" !== (i = this.tn.next()).toLowerCase())
throw Error("illegal rpc service request type delimiter: " + i);
if (this.tn.skip("("),
"stream" === (i = this.tn.next()).toLowerCase() && (e.response_stream = !0,
i = this.tn.next()),
e.response = i,
this.tn.skip(")"),
"{" === (i = this.tn.peek())) {
for (this.tn.next(); "}" !== (i = this.tn.next()); ) {
if ("option" !== i)
throw Error("illegal rpc service token: " + i);
this.St(e)
}
this.tn.omit(";")
} else
this.tn.skip(";");
void 0 === t.rpc && (t.rpc = {}),
t.rpc[r] = e
}
,
e.Nt = function(t, i) {
var r = !!i
, e = this.tn.next()
, n = {
name: "",
fields: [],
enums: [],
messages: [],
options: {},
services: [],
oneofs: {}
};
if (!o.NAME.test(e))
throw Error("illegal " + (r ? "group" : "message") + " name: " + e);
for (n.name = e,
r && (this.tn.skip("="),
i.id = b(this.tn.next()),
n.isGroup = !0),
"[" === this.tn.peek() && i && this.Bt(i),
this.tn.skip("{"); "}" !== (e = this.tn.next()); )
if (o.RULE.test(e))
this.Ft(n, e);
else if ("oneof" === e)
this.Lt(n);
else if ("enum" === e)
this.Mt(n);
else if ("message" === e)
this.Nt(n);
else if ("option" === e)
this.St(n);
else if ("service" === e)
this.jt(n);
else if ("extensions" === e)
n.hasOwnProperty("extensions") ? n.extensions = n.extensions.concat(this.Pt()) : n.extensions = this.Pt();
else if ("reserved" === e)
this.$t();
else if ("extend" === e)
this.xt(n);
else {
if (!o.TYPEREF.test(e))
throw Error("illegal message token: " + e);
if (!this.proto3)
throw Error("illegal field rule: " + e);
this.Ft(n, "optional", e)
}
return this.tn.omit(";"),
t.messages.push(n),
n
}
,
e.$t = function() {
for (; ";" !== this.tn.peek(); )
this.tn.next();
this.tn.skip(";")
}
,
e.Ft = function(t, i, r) {
if (!o.RULE.test(i))
throw Error("illegal message field rule: " + i);
var e, n = {
rule: i,
type: "",
name: "",
options: {},
id: 0
};
if ("map" === i) {
if (r)
throw Error("illegal type: " + r);
if (this.tn.skip("<"),
e = this.tn.next(),
!o.TYPE.test(e) && !o.TYPEREF.test(e))
throw Error("illegal message field type: " + e);
if (n.keytype = e,
this.tn.skip(","),
e = this.tn.next(),
!o.TYPE.test(e) && !o.TYPEREF.test(e))
throw Error("illegal message field: " + e);
if (n.type = e,
this.tn.skip(">"),
e = this.tn.next(),
!o.NAME.test(e))
throw Error("illegal message field name: " + e);
n.name = e,
this.tn.skip("="),
n.id = b(this.tn.next()),
"[" === (e = this.tn.peek()) && this.Bt(n),
this.tn.skip(";")
} else if ("group" === (r = void 0 !== r ? r : this.tn.next())) {
i = this.Nt(t, n);
if (!/^[A-Z]/.test(i.name))
throw Error("illegal group name: " + i.name);
n.type = i.name,
n.name = i.name.toLowerCase(),
this.tn.omit(";")
} else {
if (!o.TYPE.test(r) && !o.TYPEREF.test(r))
throw Error("illegal message field type: " + r);
if (n.type = r,
e = this.tn.next(),
!o.NAME.test(e))
throw Error("illegal message field name: " + e);
n.name = e,
this.tn.skip("="),
n.id = b(this.tn.next()),
"[" === (e = this.tn.peek()) && this.Bt(n),
this.tn.skip(";")
}
return t.fields.push(n),
n
}
,
e.Lt = function(t) {
var i = this.tn.next();
if (!o.NAME.test(i))
throw Error("illegal oneof name: " + i);
var r, e = i, n = [];
for (this.tn.skip("{"); "}" !== (i = this.tn.next()); )
(r = this.Ft(t, "optional", i)).oneof = e,
n.push(r.id);
this.tn.omit(";"),
t.oneofs[e] = n
}
,
e.Bt = function(t) {
this.tn.skip("[");
for (var i = !0; "]" !== this.tn.peek(); )
i || this.tn.skip(","),
this.St(t, !0),
i = !1;
this.tn.next()
}
,
e.Mt = function(t) {
var i = {
name: "",
values: [],
options: {}
}
, r = this.tn.next();
if (!o.NAME.test(r))
throw Error("illegal name: " + r);
for (i.name = r,
this.tn.skip("{"); "}" !== (r = this.tn.next()); )
if ("option" === r)
this.St(i);
else {
if (!o.NAME.test(r))
throw Error("illegal name: " + r);
this.tn.skip("=");
var e = {
name: r,
id: b(this.tn.next(), !0)
};
"[" === (r = this.tn.peek()) && this.Bt({
options: {}
}),
this.tn.skip(";"),
i.values.push(e)
}
this.tn.omit(";"),
t.enums.push(i)
}
,
e.Pt = function() {
var t, i, r, e = [];
do {
for (i = []; ; ) {
switch (t = this.tn.next()) {
case "min":
r = s.ID_MIN;
break;
case "max":
r = s.ID_MAX;
break;
default:
r = m(t)
}
if (i.push(r),
2 === i.length)
break;
if ("to" !== this.tn.peek()) {
i.push(r);
break
}
this.tn.next()
}
} while (e.push(i),
this.tn.omit(","));
return this.tn.skip(";"),
e
}
,
e.xt = function(t) {
var i = this.tn.next();
if (!o.TYPEREF.test(i))
throw Error("illegal extend reference: " + i);
var r = {
ref: i,
fields: []
};
for (this.tn.skip("{"); "}" !== (i = this.tn.next()); )
if (o.RULE.test(i))
this.Ft(r, i);
else {
if (!o.TYPEREF.test(i))
throw Error("illegal extend token: " + i);
if (!this.proto3)
throw Error("illegal field rule: " + i);
this.Ft(r, "optional", i)
}
return this.tn.omit(";"),
t.messages.push(r),
r
}
,
e.toString = function() {
return "Parser at line " + this.tn.line
}
,
r.Parser = E,
r),
d.Reflect = (w = d,
u = {},
(e = R.prototype).fqn = function() {
for (var t = this.name, i = this; null != (i = i.parent); )
t = i.name + "." + t;
return t
}
,
e.toString = function(t) {
return (t ? this.className + " " : "") + this.fqn()
}
,
e.build = function() {
throw Error(this.toString(!0) + " cannot be built directly")
}
,
u.T = R,
(r = O.prototype = Object.create(R.prototype)).getChildren = function(t) {
if (null == (t = t || null))
return this.children.slice();
for (var i = [], r = 0, e = this.children.length; r < e; ++r)
this.children[r]instanceof t && i.push(this.children[r]);
return i
}
,
r.addChild = function(t) {
var i;
if (i = this.getChild(t.name))
if (i instanceof l.Field && i.name !== i.originalName && null === this.getChild(i.originalName))
i.name = i.originalName;
else {
if (!(t instanceof l.Field && t.name !== t.originalName && null === this.getChild(t.originalName)))
throw Error("Duplicate name in namespace " + this.toString(!0) + ": " + t.name);
t.name = t.originalName
}
this.children.push(t)
}
,
r.getChild = function(t) {
for (var i = "number" == typeof t ? "id" : "name", r = 0, e = this.children.length; r < e; ++r)
if (this.children[r][i] === t)
return this.children[r];
return null
}
,
r.resolve = function(t, i) {
var r, e = "string" == typeof t ? t.split(".") : t, n = this, s = 0;
if ("" === e[s]) {
for (; null !== n.parent; )
n = n.parent;
s++
}
do {
do {
if (!(n instanceof u.Namespace)) {
n = null;
break
}
if (!(r = n.getChild(e[s])) || !(r instanceof u.T) || i && !(r instanceof u.Namespace)) {
n = null;
break
}
} while (n = r,
++s < e.length);
if (null != n)
break;
if (null !== this.parent)
return this.parent.resolve(t, i)
} while (null != n);
return n
}
,
r.qn = function(t) {
for (var i = [], r = t; i.unshift(r.name),
null !== (r = r.parent); )
;
for (var e = 1; e <= i.length; e++) {
var n = i.slice(i.length - e);
if (t === this.resolve(n, t instanceof u.Namespace))
return n.join(".")
}
return t.fqn()
}
,
r.build = function() {
for (var t, i = {}, r = this.children, e = 0, n = r.length; e < n; ++e)
(t = r[e])instanceof O && (i[t.name] = t.build());
return Object.defineProperty && Object.defineProperty(i, "$options", {
value: this.buildOpt()
}),
i
}
,
r.buildOpt = function() {
for (var t = {}, i = Object.keys(this.options), r = 0, e = i.length; r < e; ++r) {
var n = i[r]
, s = this.options[i[r]];
t[n] = s
}
return t
}
,
r.getOption = function(t) {
return void 0 === t ? this.options : void 0 !== this.options[t] ? this.options[t] : null
}
,
u.Namespace = O,
e = N.prototype,
N.defaultFieldValue = function(t) {
if (void 0 === (t = "string" == typeof t ? w.TYPES[t] : t).defaultValue)
throw Error("default value for type " + t.name + " is not supported");
return t == w.TYPES.bytes ? new g(0) : t.defaultValue
}
,
e.toString = function() {
return (this.name || "") + (this.isMapKey ? "map" : "value") + " element"
}
,
e.verifyValue = function(i) {
var r = this;
function e(t, i) {
throw Error("Illegal value for " + r.toString(!0) + " of type " + r.type.name + ": " + t + " (" + i + ")")
}
switch (this.type) {
case w.TYPES.int32:
case w.TYPES.sint32:
case w.TYPES.sfixed32:
return ("number" != typeof i || i == i && i % 1 != 0) && e(typeof i, "not an integer"),
4294967295 < i ? 0 | i : i;
case w.TYPES.uint32:
case w.TYPES.fixed32:
return ("number" != typeof i || i == i && i % 1 != 0) && e(typeof i, "not an integer"),
i < 0 ? i >>> 0 : i;
case w.TYPES.int64:
case w.TYPES.sint64:
case w.TYPES.sfixed64:
if (w.Long)
try {
return M(i, !1)
} catch (t) {
e(typeof i, t.message)
}
else
e(typeof i, "requires Long.js");
case w.TYPES.uint64:
case w.TYPES.fixed64:
if (w.Long)
try {
return M(i, !0)
} catch (t) {
e(typeof i, t.message)
}
else
e(typeof i, "requires Long.js");
case w.TYPES.bool:
return "boolean" != typeof i && e(typeof i, "not a boolean"),
i;
case w.TYPES.float:
case w.TYPES.double:
return "number" != typeof i && e(typeof i, "not a number"),
i;
case w.TYPES.string:
return "string" == typeof i || i && i instanceof String || e(typeof i, "not a string"),
"" + i;
case w.TYPES.bytes:
return g.isByteBuffer(i) ? i : g.wrap(i, "base64");
case w.TYPES.enum:
for (var t = this.resolvedType.getChildren(w.Reflect.Enum.Value), n = 0; n < t.length; n++) {
if (t[n].name == i)
return t[n].id;
if (t[n].id == i)
return t[n].id
}
if ("proto3" === this.syntax)
return ("number" != typeof i || i == i && i % 1 != 0) && e(typeof i, "not an integer"),
(4294967295 < i || i < 0) && e(typeof i, "not in range for uint32"),
i;
e(i, "not a valid enum value");
case w.TYPES.group:
case w.TYPES.message:
if (i && "object" == typeof i || e(typeof i, "object expected"),
i instanceof this.resolvedType.clazz)
return i;
if (i instanceof w.Builder.Message) {
var s = {};
for (n in i)
i.hasOwnProperty(n) && (s[n] = i[n]);
i = s
}
return new this.resolvedType.clazz(i)
}
throw Error("[INTERNAL] Illegal value for " + this.toString(!0) + ": " + i + " (undefined type " + this.type + ")")
}
,
e.calculateLength = function(t, i) {
if (null === i)
return 0;
var r;
switch (this.type) {
case w.TYPES.int32:
return i < 0 ? g.calculateVarint64(i) : g.calculateVarint32(i);
case w.TYPES.uint32:
return g.calculateVarint32(i);
case w.TYPES.sint32:
return g.calculateVarint32(g.zigZagEncode32(i));
case w.TYPES.fixed32:
case w.TYPES.sfixed32:
case w.TYPES.float:
return 4;
case w.TYPES.int64:
case w.TYPES.uint64:
return g.calculateVarint64(i);
case w.TYPES.sint64:
return g.calculateVarint64(g.zigZagEncode64(i));
case w.TYPES.fixed64:
case w.TYPES.sfixed64:
return 8;
case w.TYPES.bool:
return 1;
case w.TYPES.enum:
return g.calculateVarint32(i);
case w.TYPES.double:
return 8;
case w.TYPES.string:
return r = g.calculateUTF8Bytes(i),
g.calculateVarint32(r) + r;
case w.TYPES.bytes:
if (i.remaining() < 0)
throw Error("Illegal value for " + this.toString(!0) + ": " + i.remaining() + " bytes remaining");
return g.calculateVarint32(i.remaining()) + i.remaining();
case w.TYPES.message:
return r = this.resolvedType.calculate(i),
g.calculateVarint32(r) + r;
case w.TYPES.group:
return (r = this.resolvedType.calculate(i)) + g.calculateVarint32(t << 3 | w.WIRE_TYPES.ENDGROUP)
}
throw Error("[INTERNAL] Illegal value to encode in " + this.toString(!0) + ": " + i + " (unknown type)")
}
,
e.encodeValue = function(t, i, r) {
if (null !== i)
switch (this.type) {
case w.TYPES.int32:
i < 0 ? r.writeVarint64(i) : r.writeVarint32(i);
break;
case w.TYPES.uint32:
r.writeVarint32(i);
break;
case w.TYPES.sint32:
r.writeVarint32ZigZag(i);
break;
case w.TYPES.fixed32:
r.writeUint32(i);
break;
case w.TYPES.sfixed32:
r.writeInt32(i);
break;
case w.TYPES.int64:
case w.TYPES.uint64:
r.writeVarint64(i);
break;
case w.TYPES.sint64:
r.writeVarint64ZigZag(i);
break;
case w.TYPES.fixed64:
r.writeUint64(i);
break;
case w.TYPES.sfixed64:
r.writeInt64(i);
break;
case w.TYPES.bool:
"string" == typeof i ? r.writeVarint32("false" === i.toLowerCase() ? 0 : !!i) : r.writeVarint32(i ? 1 : 0);
break;
case w.TYPES.enum:
r.writeVarint32(i);
break;
case w.TYPES.float:
r.writeFloat32(i);
break;
case w.TYPES.double:
r.writeFloat64(i);
break;
case w.TYPES.string:
r.writeVString(i);
break;
case w.TYPES.bytes:
if (i.remaining() < 0)
throw Error("Illegal value for " + this.toString(!0) + ": " + i.remaining() + " bytes remaining");
var e = i.offset;
r.writeVarint32(i.remaining()),
r.append(i),
i.offset = e;
break;
case w.TYPES.message:
e = (new g).LE();
this.resolvedType.encode(i, e),
r.writeVarint32(e.offset),
r.append(e.flip());
break;
case w.TYPES.group:
this.resolvedType.encode(i, r),
r.writeVarint32(t << 3 | w.WIRE_TYPES.ENDGROUP);
break;
default:
throw Error("[INTERNAL] Illegal value to encode in " + this.toString(!0) + ": " + i + " (unknown type)")
}
return r
}
,
e.decode = function(t, i, r) {
if (i != this.type.wireType)
throw Error("Unexpected wire type for element");
var e, n;
switch (this.type) {
case w.TYPES.int32:
return 0 | t.readVarint32();
case w.TYPES.uint32:
return t.readVarint32() >>> 0;
case w.TYPES.sint32:
return 0 | t.readVarint32ZigZag();
case w.TYPES.fixed32:
return t.readUint32() >>> 0;
case w.TYPES.sfixed32:
return 0 | t.readInt32();
case w.TYPES.int64:
return t.readVarint64();
case w.TYPES.uint64:
return t.readVarint64().toUnsigned();
case w.TYPES.sint64:
return t.readVarint64ZigZag();
case w.TYPES.fixed64:
return t.readUint64();
case w.TYPES.sfixed64:
return t.readInt64();
case w.TYPES.bool:
return !!t.readVarint32();
case w.TYPES.enum:
return t.readVarint32();
case w.TYPES.float:
return t.readFloat();
case w.TYPES.double:
return t.readDouble();
case w.TYPES.string:
return t.readVString();
case w.TYPES.bytes:
if (n = t.readVarint32(),
t.remaining() < n)
throw Error("Illegal number of bytes for " + this.toString(!0) + ": " + n + " required but got only " + t.remaining());
return (e = t.clone()).limit = e.offset + n,
t.offset += n,
e;
case w.TYPES.message:
return n = t.readVarint32(),
this.resolvedType.decode(t, n);
case w.TYPES.group:
return this.resolvedType.decode(t, -1, r)
}
throw Error("[INTERNAL] Illegal decode type")
}
,
e.valueFromString = function(t) {
if (!this.isMapKey)
throw Error("valueFromString() called on non-map-key element");
switch (this.type) {
case w.TYPES.int32:
case w.TYPES.sint32:
case w.TYPES.sfixed32:
case w.TYPES.uint32:
case w.TYPES.fixed32:
return this.verifyValue(parseInt(t));
case w.TYPES.int64:
case w.TYPES.sint64:
case w.TYPES.sfixed64:
case w.TYPES.uint64:
case w.TYPES.fixed64:
return this.verifyValue(t);
case w.TYPES.bool:
return "true" === t;
case w.TYPES.string:
return this.verifyValue(t);
case w.TYPES.bytes:
return g.fromBinary(t)
}
}
,
e.valueToString = function(t) {
if (this.isMapKey)
return this.type === w.TYPES.bytes ? t.toString("binary") : t.toString();
throw Error("valueToString() called on non-map-key element")
}
,
u.Element = N,
(e = (l = function(t, i, r, e, n, s) {
O.call(this, t, i, r, e, s),
this.className = "Message",
this.extensions = void 0,
this.clazz = null,
this.isGroup = !!n,
this.qt = null,
this.Jt = null,
this.Vt = null
}
).prototype = Object.create(O.prototype)).build = function(t) {
if (this.clazz && !t)
return this.clazz;
var i = function(l, o) {
function h(t, i) {
l.Builder.Message.call(this);
for (var r, e = 0, n = a.length; e < n; ++e)
this[a[e].name] = null;
for (e = 0,
n = f.length; e < n; ++e) {
var s = f[e];
this[s.name] = s.repeated ? [] : s.map ? new l.Map(s) : null,
!s.required && "proto3" !== o.syntax || null === s.defaultValue || (this[s.name] = s.defaultValue)
}
if (0 < arguments.length)
if (1 !== arguments.length || null === t || "object" != typeof t || !("function" != typeof t.encode || t instanceof h) || Array.isArray(t) || t instanceof l.Map || g.isByteBuffer(t) || t instanceof ArrayBuffer || l.Long && t instanceof l.Long)
for (e = 0,
n = arguments.length; e < n; ++e)
void 0 !== (r = arguments[e]) && this.$set(f[e].name, r);
else
this.$set(t)
}
var f = o.getChildren(l.Reflect.Message.Field)
, a = o.getChildren(l.Reflect.Message.OneOf)
, s = h.prototype = Object.create(l.Builder.Message.prototype);
s.add = function(t, i, r) {
var e = o.Vt[t];
if (!r) {
if (!e)
throw Error(this + "#" + t + " is undefined");
if (!(e instanceof l.Reflect.Message.Field))
throw Error(this + "#" + t + " is not a field: " + e.toString(!0));
if (!e.repeated)
throw Error(this + "#" + t + " is not a repeated field");
i = e.verifyValue(i, !0)
}
return null === this[t] && (this[t] = []),
this[t].push(i),
this
}
,
s.$add = s.add,
s.set = function(t, i, r) {
if (t && "object" == typeof t)
for (var e in r = i,
t)
t.hasOwnProperty(e) && void 0 !== (i = t[e]) && this.$set(e, i, r);
else {
var n, s = o.Vt[t];
if (r)
this[t] = i;
else {
if (!s)
throw Error(this + "#" + t + " is not a field: undefined");
if (!(s instanceof l.Reflect.Message.Field))
throw Error(this + "#" + t + " is not a field: " + s.toString(!0));
this[s.name] = i = s.verifyValue(i)
}
s && s.oneof && (n = this[s.oneof.name],
null !== i ? (null !== n && n !== s.name && (this[n] = null),
this[s.oneof.name] = s.name) : n === t && (this[s.oneof.name] = null))
}
return this
}
,
s.$set = s.set,
s.get = function(t, i) {
if (i)
return this[t];
i = o.Vt[t];
if (!(i && i instanceof l.Reflect.Message.Field))
throw Error(this + "#" + t + " is not a field: undefined");
if (i instanceof l.Reflect.Message.Field)
return this[i.name];
throw Error(this + "#" + t + " is not a field: " + i.toString(!0))
}
,
s.$get = s.get;
for (var t = 0; t < f.length; t++) {
var i = f[t];
i instanceof l.Reflect.Message.ExtensionField || o.builder.options.populateAccessors && !function(r) {
function t(t, i) {
return this[r.name] = i ? t : r.verifyValue(t),
this
}
function i() {
return this[r.name]
}
var e = (e = r.originalName.replace(/(_[a-zA-Z])/g, function(t) {
return t.toUpperCase().replace("_", "")
})).substring(0, 1).toUpperCase() + e.substring(1)
, n = r.originalName.replace(/([A-Z])/g, function(t) {
return "_" + t
});
null === o.getChild("set" + e) && (s["set" + e] = t),
null === o.getChild("set_" + n) && (s["set_" + n] = t),
null === o.getChild("get" + e) && (s["get" + e] = i),
null === o.getChild("get_" + n) && (s["get_" + n] = i)
}(i)
}
function c(t, r, e, n) {
if (null === t || "object" != typeof t) {
if (n && n instanceof l.Reflect.Enum) {
var i = l.Reflect.Enum.getName(n.object, t);
if (null !== i)
return i
}
return t
}
if (g.isByteBuffer(t))
return r ? t.toBase64() : t.toBuffer();
if (l.Long.isLong(t))
return e ? t.toString() : l.Long.fromValue(t);
var s;
if (Array.isArray(t))
s = [],
t.forEach(function(t, i) {
s[i] = c(t, r, e, n)
});
else if (s = {},
t instanceof l.Map)
for (var o = t.entries(), h = o.next(); !h.done; h = o.next())
s[t.keyElem.valueToString(h.value[0])] = c(h.value[1], r, e, t.valueElem.resolvedType);
else {
var f, a = t.$type, u = void 0;
for (f in t)
t.hasOwnProperty(f) && (a && (u = a.getChild(f)) ? s[f] = c(t[f], r, e, u.resolvedType) : s[f] = c(t[f], r, e))
}
return s
}
return s.encode = function(i, t) {
"boolean" == typeof i && (t = i,
i = void 0);
var r = !1
, e = (i || (i = new g,
r = !0),
i.littleEndian);
try {
return o.encode(this, i.LE(), t),
(r ? i.flip() : i).LE(e)
} catch (t) {
throw i.LE(e),
t
}
}
,
h.encode = function(t, i, r) {
return new h(t).encode(i, r)
}
,
s.calculate = function() {
return o.calculate(this)
}
,
s.encodeDelimited = function(t, i) {
var r = !1
, e = (t || (t = new g,
r = !0),
(new g).LE());
return o.encode(this, e, i).flip(),
t.writeVarint32(e.remaining()),
t.append(e),
r ? t.flip() : t
}
,
s.encodeAB = function() {
try {
return this.encode().toArrayBuffer()
} catch (t) {
throw t.encoded && (t.encoded = t.encoded.toArrayBuffer()),
t
}
}
,
s.toArrayBuffer = s.encodeAB,
s.encodeNB = function() {
try {
return this.encode().toBuffer()
} catch (t) {
throw t.encoded && (t.encoded = t.encoded.toBuffer()),
t
}
}
,
s.toBuffer = s.encodeNB,
s.encode64 = function() {
try {
return this.encode().toBase64()
} catch (t) {
throw t.encoded && (t.encoded = t.encoded.toBase64()),
t
}
}
,
s.toBase64 = s.encode64,
s.encodeHex = function() {
try {
return this.encode().toHex()
} catch (t) {
throw t.encoded && (t.encoded = t.encoded.toHex()),
t
}
}
,
s.toHex = s.encodeHex,
s.toRaw = function(t, i) {
return c(this, !!t, !!i, this.$type)
}
,
s.encodeJSON = function() {
return JSON.stringify(c(this, !0, !0, this.$type))
}
,
h.decode = function(i, t, r) {
"string" == typeof t && (r = t,
t = -1),
"string" == typeof i ? i = g.wrap(i, r || "base64") : g.isByteBuffer(i) || (i = g.wrap(i));
r = i.littleEndian;
try {
var e = o.decode(i.LE(), t);
return i.LE(r),
e
} catch (t) {
throw i.LE(r),
t
}
}
,
h.decodeDelimited = function(i, t) {
if ("string" == typeof i ? i = g.wrap(i, t || "base64") : g.isByteBuffer(i) || (i = g.wrap(i)),
i.remaining() < 1)
return null;
var t = i.offset
, r = i.readVarint32();
if (i.remaining() < r)
return i.offset = t,
null;
try {
var e = o.decode(i.slice(i.offset, i.offset + r).LE());
return i.offset += r,
e
} catch (t) {
throw i.offset += r,
t
}
}
,
h.decode64 = function(t) {
return h.decode(t, "base64")
}
,
h.decodeHex = function(t) {
return h.decode(t, "hex")
}
,
h.decodeJSON = function(t) {
return new h(JSON.parse(t))
}
,
s.toString = function() {
return o.toString()
}
,
Object.defineProperty && (Object.defineProperty(h, "$options", {
value: o.buildOpt()
}),
Object.defineProperty(s, "$options", {
value: h.$options
}),
Object.defineProperty(h, "$type", {
value: o
}),
Object.defineProperty(s, "$type", {
value: o
})),
h
}(w, this);
this.qt = [],
this.Jt = {},
this.Vt = {};
for (var r, e = 0, n = this.children.length; e < n; e++)
if ((r = this.children[e])instanceof c || r instanceof l || r instanceof v) {
if (i.hasOwnProperty(r.name))
throw Error("Illegal reflect child of " + this.toString(!0) + ": " + r.toString(!0) + " cannot override static property '" + r.name + "'");
i[r.name] = r.build()
} else if (r instanceof l.Field)
r.build(),
this.qt.push(r),
this.Jt[r.id] = r,
this.Vt[r.name] = r;
else if (!(r instanceof l.OneOf || r instanceof p))
throw Error("Illegal reflect child of " + this.toString(!0) + ": " + this.children[e].toString(!0));
return this.clazz = i
}
,
e.encode = function(t, i, r) {
for (var e, n, s, o = null, h = 0, f = this.qt.length; h < f; ++h)
n = t[(e = this.qt[h]).name],
e.required && null === n ? null === o && (o = e) : e.encode(r ? n : e.verifyValue(n), i, t);
if (null !== o)
throw (s = Error("Missing at least one required field for " + this.toString(!0) + ": " + o)).encoded = i,
s;
return i
}
,
e.calculate = function(t) {
for (var i, r, e = 0, n = 0, s = this.qt.length; n < s; ++n) {
if (r = t[(i = this.qt[n]).name],
i.required && null === r)
throw Error("Missing at least one required field for " + this.toString(!0) + ": " + i);
e += i.calculate(r, t)
}
return e
}
,
e.decode = function(t, i, r) {
"number" != typeof i && (i = -1);
for (var e, n, s, o, h = t.offset, f = new this.clazz; t.offset < h + i || -1 === i && 0 < t.remaining(); ) {
if (n = (o = t.readVarint32()) >>> 3,
(e = 7 & o) === w.WIRE_TYPES.ENDGROUP) {
if (n !== r)
throw Error("Illegal group end indicator for " + this.toString(!0) + ": " + n + " (" + (r ? r + " expected" : "not a group") + ")");
break
}
if (s = this.Jt[n])
s.repeated && !s.options.packed ? f[s.name].push(s.decode(e, t)) : s.map ? (o = s.decode(e, t),
f[s.name].set(o[0], o[1])) : (f[s.name] = s.decode(e, t),
s.oneof && (null !== (o = f[s.oneof.name]) && o !== s.name && (f[o] = null),
f[s.oneof.name] = s.name));
else
switch (e) {
case w.WIRE_TYPES.VARINT:
t.readVarint32();
break;
case w.WIRE_TYPES.BITS32:
t.offset += 4;
break;
case w.WIRE_TYPES.BITS64:
t.offset += 8;
break;
case w.WIRE_TYPES.LDELIM:
var a = t.readVarint32();
t.offset += a;
break;
case w.WIRE_TYPES.STARTGROUP:
for (; function t(i, r) {
var e = r.readVarint32()
, n = 7 & e
, s = e >>> 3;
switch (n) {
case w.WIRE_TYPES.VARINT:
for (; 128 == (128 & (e = r.readUint8())); )
;
break;
case w.WIRE_TYPES.BITS64:
r.offset += 8;
break;
case w.WIRE_TYPES.LDELIM:
e = r.readVarint32(),
r.offset += e;
break;
case w.WIRE_TYPES.STARTGROUP:
t(s, r);
break;
case w.WIRE_TYPES.ENDGROUP:
if (s === i)
return;
throw Error("Illegal GROUPEND after unknown group: " + s + " (" + i + " expected)");
case w.WIRE_TYPES.BITS32:
r.offset += 4;
break;
default:
throw Error("Illegal wire type in unknown group " + i + ": " + n)
}
return 1
}(n, t); )
;
break;
default:
throw Error("Illegal wire type for unknown field " + n + " in " + this.toString(!0) + "#decode: " + e)
}
}
for (var u, l = 0, c = this.qt.length; l < c; ++l)
if (null === f[(s = this.qt[l]).name])
if ("proto3" === this.syntax)
f[s.name] = s.defaultValue;
else {
if (s.required)
throw (u = Error("Missing at least one required field for " + this.toString(!0) + ": " + s.name)).decoded = f,
u;
w.populateDefaults && null !== s.defaultValue && (f[s.name] = s.defaultValue)
}
return f
}
,
u.Message = l,
(e = S.prototype = Object.create(R.prototype)).build = function() {
this.element = new N(this.type,this.resolvedType,!1,this.syntax,this.name),
this.map && (this.keyElement = new N(this.keyType,void 0,!0,this.syntax,this.name)),
"proto3" !== this.syntax || this.repeated || this.map ? void 0 !== this.options.default && (this.defaultValue = this.verifyValue(this.options.default)) : this.defaultValue = N.defaultFieldValue(this.type)
}
,
e.verifyValue = function(t, i) {
i = i || !1;
var r = this;
function e(t, i) {
throw Error("Illegal value for " + r.toString(!0) + " of type " + r.type.name + ": " + t + " (" + i + ")")
}
if (null === t)
return this.required && e(typeof t, "required"),
"proto3" === this.syntax && this.type !== w.TYPES.message && e(typeof t, "proto3 field without field presence cannot be null"),
null;
if (!this.repeated || i)
return this.map && !i ? t instanceof w.Map ? t : (t instanceof Object || e(typeof t, "expected ProtoBuf.Map or raw object for map field"),
new w.Map(this,t)) : (!this.repeated && Array.isArray(t) && e(typeof t, "no array expected"),
this.element.verifyValue(t));
Array.isArray(t) || (t = [t]);
for (var n = [], s = 0; s < t.length; s++)
n.push(this.element.verifyValue(t[s]));
return n
}
,
e.hasWirePresence = function(t, i) {
if ("proto3" !== this.syntax)
return null !== t;
if (this.oneof && i[this.oneof.name] === this.name)
return !0;
switch (this.type) {
case w.TYPES.int32:
case w.TYPES.sint32:
case w.TYPES.sfixed32:
case w.TYPES.uint32:
case w.TYPES.fixed32:
return 0 !== t;
case w.TYPES.int64:
case w.TYPES.sint64:
case w.TYPES.sfixed64:
case w.TYPES.uint64:
case w.TYPES.fixed64:
return 0 !== t.low || 0 !== t.high;
case w.TYPES.bool:
return t;
case w.TYPES.float:
case w.TYPES.double:
return 0 !== t;
case w.TYPES.string:
return 0 < t.length;
case w.TYPES.bytes:
return 0 < t.remaining();
case w.TYPES.enum:
return 0 !== t;
case w.TYPES.message:
return null !== t;
default:
return !0
}
}
,
e.encode = function(i, n, t) {
if (null === this.type || "object" != typeof this.type)
throw Error("[INTERNAL] Unresolved type in " + this.toString(!0) + ": " + this.type);
if (!(null === i || this.repeated && 0 == i.length))
try {
if (this.repeated)
if (this.options.packed && 0 <= w.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)) {
n.writeVarint32(this.id << 3 | w.WIRE_TYPES.LDELIM),
n.ensureCapacity(n.offset += 1);
for (var r = n.offset, e = 0; e < i.length; e++)
this.element.encodeValue(this.id, i[e], n);
var s, o = n.offset - r, h = g.calculateVarint32(o);
1 < h && (s = n.slice(r, n.offset),
r += h - 1,
n.offset = r,
n.append(s)),
n.writeVarint32(o, r - h)
} else
for (e = 0; e < i.length; e++)
n.writeVarint32(this.id << 3 | this.type.wireType),
this.element.encodeValue(this.id, i[e], n);
else
this.map ? i.forEach(function(t, i, r) {
var e = g.calculateVarint32(8 | this.keyType.wireType) + this.keyElement.calculateLength(1, i) + g.calculateVarint32(16 | this.type.wireType) + this.element.calculateLength(2, t);
n.writeVarint32(this.id << 3 | w.WIRE_TYPES.LDELIM),
n.writeVarint32(e),
n.writeVarint32(8 | this.keyType.wireType),
this.keyElement.encodeValue(1, i, n),
n.writeVarint32(16 | this.type.wireType),
this.element.encodeValue(2, t, n)
}, this) : this.hasWirePresence(i, t) && (n.writeVarint32(this.id << 3 | this.type.wireType),
this.element.encodeValue(this.id, i, n))
} catch (t) {
throw Error("Illegal value for " + this.toString(!0) + ": " + i + " (" + t + ")")
}
return n
}
,
e.calculate = function(i, t) {
if (i = this.verifyValue(i),
null === this.type || "object" != typeof this.type)
throw Error("[INTERNAL] Unresolved type in " + this.toString(!0) + ": " + this.type);
if (null === i || this.repeated && 0 == i.length)
return 0;
var r, e, n = 0;
try {
if (this.repeated)
if (this.options.packed && 0 <= w.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)) {
for (n += g.calculateVarint32(this.id << 3 | w.WIRE_TYPES.LDELIM),
r = e = 0; r < i.length; r++)
e += this.element.calculateLength(this.id, i[r]);
n = n + g.calculateVarint32(e) + e
} else
for (r = 0; r < i.length; r++)
n = (n += g.calculateVarint32(this.id << 3 | this.type.wireType)) + this.element.calculateLength(this.id, i[r]);
else
this.map ? i.forEach(function(t, i, r) {
i = g.calculateVarint32(8 | this.keyType.wireType) + this.keyElement.calculateLength(1, i) + g.calculateVarint32(16 | this.type.wireType) + this.element.calculateLength(2, t);
n = (n += g.calculateVarint32(this.id << 3 | w.WIRE_TYPES.LDELIM)) + g.calculateVarint32(i) + i
}, this) : this.hasWirePresence(i, t) && (n = (n += g.calculateVarint32(this.id << 3 | this.type.wireType)) + this.element.calculateLength(this.id, i))
} catch (t) {
throw Error("Illegal value for " + this.toString(!0) + ": " + i + " (" + t + ")")
}
return n
}
,
e.decode = function(t, i, r) {
if (!(!this.map && t == this.type.wireType || !r && this.repeated && this.options.packed && t == w.WIRE_TYPES.LDELIM || this.map && t == w.WIRE_TYPES.LDELIM))
throw Error("Illegal wire type for field " + this.toString(!0) + ": " + t + " (" + this.type.wireType + " expected)");
if (t == w.WIRE_TYPES.LDELIM && this.repeated && this.options.packed && 0 <= w.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType) && !r) {
for (var e = i.readVarint32(), e = i.offset + e, n = []; i.offset < e; )
n.push(this.decode(this.type.wireType, i, !0));
return n
}
if (this.map) {
var s = N.defaultFieldValue(this.keyType)
, o = N.defaultFieldValue(this.type);
if (e = i.readVarint32(),
i.remaining() < e)
throw Error("Illegal number of bytes for " + this.toString(!0) + ": " + e + " required but got only " + i.remaining());
var h = i.clone();
for (h.limit = h.offset + e,
i.offset += e; 0 < h.remaining(); ) {
var f = h.readVarint32()
, f = (t = 7 & f,
f >>> 3);
if (1 == f)
s = this.keyElement.decode(h, t, f);
else {
if (2 != f)
throw Error("Unexpected tag in map field key/value submessage");
o = this.element.decode(h, t, f)
}
}
return [s, o]
}
return this.element.decode(i, t, this.id)
}
,
u.Message.Field = S,
j.prototype = Object.create(S.prototype),
u.Message.ExtensionField = j,
u.Message.OneOf = function(t, i, r) {
R.call(this, t, i, r),
this.fields = []
}
,
(c = function(t, i, r, e, n) {
O.call(this, t, i, r, e, n),
this.className = "Enum",
this.object = null
}
).getName = function(t, i) {
for (var r, e = Object.keys(t), n = 0; n < e.length; ++n)
if (t[r = e[n]] === i)
return r;
return null
}
,
(c.prototype = Object.create(O.prototype)).build = function(t) {
if (this.object && !t)
return this.object;
for (var i = new w.Builder.Enum, r = this.getChildren(c.Value), e = 0, n = r.length; e < n; ++e)
i[r[e].name] = r[e].id;
return Object.defineProperty && Object.defineProperty(i, "$options", {
value: this.buildOpt(),
enumerable: !1
}),
this.object = i
}
,
u.Enum = c,
x.prototype = Object.create(R.prototype),
u.Enum.Value = x,
(p = function(t, i, r, e) {
R.call(this, t, i, r),
this.field = e
}
).prototype = Object.create(R.prototype),
u.Extension = p,
((v = function(t, i, r, e) {
O.call(this, t, i, r, e),
this.className = "Service",
this.clazz = null
}
).prototype = Object.create(O.prototype)).build = function(t) {
return this.clazz && !t ? this.clazz : this.clazz = function(i, n) {
for (var s = function(t) {
i.Builder.Service.call(this),
this.rpcImpl = t || function(t, i, r) {
setTimeout(r.bind(this, Error("Not implemented, see: https://github.com/dcodeIO/ProtoBuf.js/wiki/Services")), 0)
}
}, t = s.prototype = Object.create(i.Builder.Service.prototype), r = n.getChildren(i.Reflect.Service.RPCMethod), e = 0; e < r.length; e++)
!function(e) {
t[e.name] = function(t, r) {
try {
try {
t = e.resolvedRequestType.clazz.decode(g.wrap(t))
} catch (t) {
if (!(t instanceof TypeError))
throw t
}
if (null === t || "object" != typeof t)
throw Error("Illegal arguments");
t instanceof e.resolvedRequestType.clazz || (t = new e.resolvedRequestType.clazz(t)),
this.rpcImpl(e.fqn(), t, function(t, i) {
if (t)
r(t);
else {
null === i && (i = "");
try {
i = e.resolvedResponseType.clazz.decode(i)
} catch (t) {}
i && i instanceof e.resolvedResponseType.clazz ? r(null, i) : r(Error("Illegal response type received in service method " + n.name + "#" + e.name))
}
})
} catch (t) {
setTimeout(r.bind(this, t), 0)
}
}
,
s[e.name] = function(t, i, r) {
new s(t)[e.name](i, r)
}
,
Object.defineProperty && (Object.defineProperty(s[e.name], "$options", {
value: e.buildOpt()
}),
Object.defineProperty(t[e.name], "$options", {
value: s[e.name].$options
}))
}(r[e]);
return Object.defineProperty && (Object.defineProperty(s, "$options", {
value: n.buildOpt()
}),
Object.defineProperty(t, "$options", {
value: s.$options
}),
Object.defineProperty(s, "$type", {
value: n
}),
Object.defineProperty(t, "$type", {
value: n
})),
s
}(w, this)
}
,
u.Service = v,
(U.prototype = Object.create(R.prototype)).buildOpt = r.buildOpt,
u.Service.Method = U,
C.prototype = Object.create(U.prototype),
u.Service.RPCMethod = C,
u),
d.Builder = (i = (a = d).Lang,
h = d.Reflect,
e = T.prototype,
T.isMessage = function(t) {
return "string" == typeof t.name && void 0 === t.values && void 0 === t.rpc
}
,
T.isMessageField = function(t) {
return "string" == typeof t.rule && "string" == typeof t.name && "string" == typeof t.type && void 0 !== t.id
}
,
T.isEnum = function(t) {
return "string" == typeof t.name && !(void 0 === t.values || !Array.isArray(t.values) || 0 === t.values.length)
}
,
T.isService = function(t) {
return !("string" != typeof t.name || "object" != typeof t.rpc || !t.rpc)
}
,
T.isExtend = function(t) {
return "string" == typeof t.ref
}
,
e.reset = function() {
return this.ptr = this.ns,
this
}
,
e.define = function(t) {
if ("string" == typeof t && i.TYPEREF.test(t))
return t.split(".").forEach(function(t) {
var i = this.ptr.getChild(t);
null === i && this.ptr.addChild(i = new h.Namespace(this,this.ptr,t)),
this.ptr = i
}, this),
this;
throw Error("illegal namespace: " + t)
}
,
e.create = function(t) {
if (t) {
if (Array.isArray(t)) {
if (0 === t.length)
return this;
t = t.slice()
} else
t = [t];
for (var i = [t]; 0 < i.length; ) {
if (t = i.pop(),
!Array.isArray(t))
throw Error("not a valid namespace: " + JSON.stringify(t));
for (; 0 < t.length; ) {
var r = t.shift();
if (T.isMessage(r)) {
var n = new h.Message(this,this.ptr,r.name,r.options,r.isGroup,r.syntax)
, e = {}
, s = (r.oneofs && Object.keys(r.oneofs).forEach(function(t) {
n.addChild(e[t] = new h.Message.OneOf(this,n,t))
}, this),
r.fields && r.fields.forEach(function(t) {
if (null !== n.getChild(0 | t.id))
throw Error("duplicate or invalid field id in " + n.name + ": " + t.id);
if (t.options && "object" != typeof t.options)
throw Error("illegal field options in " + n.name + "#" + t.name);
var i = null;
if ("string" == typeof t.oneof && !(i = e[t.oneof]))
throw Error("illegal oneof in " + n.name + "#" + t.name + ": " + t.oneof);
t = new h.Message.Field(this,n,t.rule,t.keytype,t.type,t.name,t.id,t.options,i,r.syntax),
i && i.fields.push(t),
n.addChild(t)
}, this),
[]);
if (r.enums && r.enums.forEach(function(t) {
s.push(t)
}),
r.messages && r.messages.forEach(function(t) {
s.push(t)
}),
r.services && r.services.forEach(function(t) {
s.push(t)
}),
r.extensions && ("number" == typeof r.extensions[0] ? n.extensions = [r.extensions] : n.extensions = r.extensions),
this.ptr.addChild(n),
0 < s.length) {
i.push(t),
t = s,
s = null,
this.ptr = n,
n = null;
continue
}
s = null
} else if (T.isEnum(r))
n = new h.Enum(this,this.ptr,r.name,r.options,r.syntax),
r.values.forEach(function(t) {
n.addChild(new h.Enum.Value(this,n,t.name,t.id))
}, this),
this.ptr.addChild(n);
else if (T.isService(r))
n = new h.Service(this,this.ptr,r.name,r.options),
Object.keys(r.rpc).forEach(function(t) {
var i = r.rpc[t];
n.addChild(new h.Service.RPCMethod(this,n,t,i.request,i.response,!!i.request_stream,!!i.response_stream,i.options))
}, this),
this.ptr.addChild(n);
else {
if (!T.isExtend(r))
throw Error("not a valid definition: " + JSON.stringify(r));
if (n = this.ptr.resolve(r.ref, !0))
r.fields.forEach(function(i) {
if (null !== n.getChild(0 | i.id))
throw Error("duplicate extended field id in " + n.name + ": " + i.id);
if (n.extensions) {
var r = !1;
if (n.extensions.forEach(function(t) {
i.id >= t[0] && i.id <= t[1] && (r = !0)
}),
!r)
throw Error("illegal extended field id in " + n.name + ": " + i.id + " (not within valid ranges)")
}
var t = i.name
, t = (this.options.convertFieldsToCamelCase && (t = a.Util.toCamelCase(t)),
new h.Message.ExtensionField(this,n,i.rule,i.type,this.ptr.fqn() + "." + t,i.id,i.options))
, e = new h.Extension(this,this.ptr,i.name,t);
t.extension = e,
this.ptr.addChild(e),
n.addChild(t)
}, this);
else if (!/\.?google\.protobuf\./.test(r.ref))
throw Error("extended message " + r.ref + " is not defined")
}
n = r = null
}
t = null,
this.ptr = this.ptr.parent
}
this.resolved = !1,
this.result = null
}
return this
}
,
e.import = function(i, t) {
var r = "/";
if ("string" == typeof t) {
if (a.Util.IS_NODE && (t = require("path").resolve(t)),
!0 === this.files[t])
return this.reset();
this.files[t] = !0
} else if ("object" == typeof t) {
var e = t.root
, e = ((0 <= (e = a.Util.IS_NODE ? require("path").resolve(e) : e).indexOf("\\") || 0 <= t.file.indexOf("\\")) && (r = "\\"),
e + r + t.file);
if (!0 === this.files[e])
return this.reset();
this.files[e] = !0
}
if (i.imports && 0 < i.imports.length) {
var n, e = !1;
"object" == typeof t ? (this.importRoot = t.root,
e = !0,
n = this.importRoot,
t = t.file,
(0 <= n.indexOf("\\") || 0 <= t.indexOf("\\")) && (r = "\\")) : "string" == typeof t ? this.importRoot ? n = this.importRoot : 0 <= t.indexOf("/") ? "" === (n = t.replace(/\/[^\/]*$/, "")) && (n = "/") : 0 <= t.indexOf("\\") ? (n = t.replace(/\\[^\\]*$/, ""),
r = "\\") : n = "." : n = null;
for (var s = 0; s < i.imports.length; s++)
if ("string" == typeof i.imports[s]) {
if (!n)
throw Error("cannot determine import root");
var o = i.imports[s];
if ("google/protobuf/descriptor.proto" !== o && !0 !== this.files[o = n + r + o]) {
/\.proto$/i.test(o) && !a.DotProto && (o = o.replace(/\.proto$/, ".json"));
var h = a.Util.fetch(o);
if (null === h)
throw Error("failed to import '" + o + "' in '" + t + "': file not found");
/\.json$/i.test(o) ? this.import(JSON.parse(h + ""), o) : this.import(a.DotProto.Parser.parse(h), o)
}
} else
t ? /\.(\w+)$/.test(t) ? this.import(i.imports[s], t.replace(/^(.+)\.(\w+)$/, function(t, i, r) {
return i + "_import" + s + "." + r
})) : this.import(i.imports[s], t + "_import" + s) : this.import(i.imports[s]);
e && (this.importRoot = null)
}
i.package && this.define(i.package),
i.syntax && function i(r) {
r.messages && r.messages.forEach(function(t) {
t.syntax = r.syntax,
i(t)
}),
r.enums && r.enums.forEach(function(t) {
t.syntax = r.syntax
})
}(i);
var f = this.ptr;
return i.options && Object.keys(i.options).forEach(function(t) {
f.options[t] = i.options[t]
}),
i.messages && (this.create(i.messages),
this.ptr = f),
i.enums && (this.create(i.enums),
this.ptr = f),
i.services && (this.create(i.services),
this.ptr = f),
i.extends && this.create(i.extends),
this.reset()
}
,
e.resolveAll = function() {
var t;
if (null == this.ptr || "object" == typeof this.ptr.type)
return this;
if (this.ptr instanceof h.Namespace)
this.ptr.children.forEach(function(t) {
this.ptr = t,
this.resolveAll()
}, this);
else if (this.ptr instanceof h.Message.Field) {
if (i.TYPE.test(this.ptr.type))
this.ptr.type = a.TYPES[this.ptr.type];
else {
if (!i.TYPEREF.test(this.ptr.type))
throw Error("illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.type);
if (!(t = (this.ptr instanceof h.Message.ExtensionField ? this.ptr.extension : this.ptr).parent.resolve(this.ptr.type, !0)))
throw Error("unresolvable type reference in " + this.ptr.toString(!0) + ": " + this.ptr.type);
if ((this.ptr.resolvedType = t)instanceof h.Enum) {
if (this.ptr.type = a.TYPES.enum,
"proto3" === this.ptr.syntax && "proto3" !== t.syntax)
throw Error("proto3 message cannot reference proto2 enum")
} else {
if (!(t instanceof h.Message))
throw Error("illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.type);
this.ptr.type = t.isGroup ? a.TYPES.group : a.TYPES.message
}
}
if (this.ptr.map) {
if (!i.TYPE.test(this.ptr.keyType))
throw Error("illegal key type for map field in " + this.ptr.toString(!0) + ": " + this.ptr.keyType);
this.ptr.keyType = a.TYPES[this.ptr.keyType]
}
} else if (this.ptr instanceof a.Reflect.Service.Method) {
if (!(this.ptr instanceof a.Reflect.Service.RPCMethod))
throw Error("illegal service type in " + this.ptr.toString(!0));
if (!((t = this.ptr.parent.resolve(this.ptr.requestName, !0)) && t instanceof a.Reflect.Message))
throw Error("Illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.requestName);
if (this.ptr.resolvedRequestType = t,
!((t = this.ptr.parent.resolve(this.ptr.responseName, !0)) && t instanceof a.Reflect.Message))
throw Error("Illegal type reference in " + this.ptr.toString(!0) + ": " + this.ptr.responseName);
this.ptr.resolvedResponseType = t
} else if (!(this.ptr instanceof a.Reflect.Message.OneOf || this.ptr instanceof a.Reflect.Extension || this.ptr instanceof a.Reflect.Enum.Value))
throw Error("illegal object in namespace: " + typeof this.ptr + ": " + this.ptr);
return this.reset()
}
,
e.build = function(t) {
if (this.reset(),
this.resolved || (this.resolveAll(),
this.resolved = !0,
this.result = null),
null === this.result && (this.result = this.ns.build()),
!t)
return this.result;
for (var i = "string" == typeof t ? t.split(".") : t, r = this.result, e = 0; e < i.length; e++) {
if (!r[i[e]]) {
r = null;
break
}
r = r[i[e]]
}
return r
}
,
e.lookup = function(t, i) {
return t ? this.ns.resolve(t, i) : this.ns
}
,
e.toString = function() {
return "Builder"
}
,
T.Message = function() {}
,
T.Enum = function() {}
,
T.Service = function() {}
,
T),
d.Map = (f = d.Reflect,
(r = A.prototype).clear = function() {
this.map = {}
}
,
r.delete = function(t) {
var t = this.keyElem.valueToString(this.keyElem.verifyValue(t))
, i = t in this.map;
return delete this.map[t],
i
}
,
r.entries = function() {
for (var t, i = [], r = Object.keys(this.map), e = 0; e < r.length; e++)
i.push([(t = this.map[r[e]]).key, t.value]);
return k(i)
}
,
r.keys = function() {
for (var t = [], i = Object.keys(this.map), r = 0; r < i.length; r++)
t.push(this.map[i[r]].key);
return k(t)
}
,
r.values = function() {
for (var t = [], i = Object.keys(this.map), r = 0; r < i.length; r++)
t.push(this.map[i[r]].value);
return k(t)
}
,
r.forEach = function(t, i) {
for (var r, e = Object.keys(this.map), n = 0; n < e.length; n++)
t.call(i, (r = this.map[e[n]]).value, r.key, this)
}
,
r.set = function(t, i) {
t = this.keyElem.verifyValue(t),
i = this.valueElem.verifyValue(i);
return this.map[this.keyElem.valueToString(t)] = {
key: t,
value: i
},
this
}
,
r.get = function(t) {
t = this.keyElem.valueToString(this.keyElem.verifyValue(t));
if (t in this.map)
return this.map[t].value
}
,
r.has = function(t) {
return this.keyElem.valueToString(this.keyElem.verifyValue(t))in this.map
}
,
A),
d.loadProto = function(t, i, r) {
return ("string" == typeof i || i && "string" == typeof i.file && "string" == typeof i.root) && (r = i,
i = void 0),
d.loadJson(d.DotProto.Parser.parse(t), i, r)
}
,
d.protoFromString = d.loadProto,
d.loadProtoFile = function(i, r, e) {
var t;
return r && "object" == typeof r ? (e = r,
r = null) : r && "function" == typeof r || (r = null),
r ? d.Util.fetch("string" == typeof i ? i : i.root + "/" + i.file, function(t) {
if (null === t)
r(Error("Failed to fetch file"));
else
try {
r(null, d.loadProto(t, e, i))
} catch (t) {
r(t)
}
}) : null === (t = d.Util.fetch("object" == typeof i ? i.root + "/" + i.file : i)) ? null : d.loadProto(t, e, i)
}
,
d.protoFromFile = d.loadProtoFile,
d.newBuilder = function(t) {
return void 0 === (t = t || {}).convertFieldsToCamelCase && (t.convertFieldsToCamelCase = d.convertFieldsToCamelCase),
void 0 === t.populateAccessors && (t.populateAccessors = d.populateAccessors),
new d.Builder(t)
}
,
d.loadJson = function(t, i, r) {
return ("string" == typeof i || i && "string" == typeof i.file && "string" == typeof i.root) && (r = i,
i = null),
i && "object" == typeof i || (i = d.newBuilder()),
"string" == typeof t && (t = JSON.parse(t)),
i.import(t, r),
i.resolveAll(),
i
}
,
d.loadJsonFile = function(i, r, e) {
var t;
return r && "object" == typeof r ? (e = r,
r = null) : r && "function" == typeof r || (r = null),
r ? d.Util.fetch("string" == typeof i ? i : i.root + "/" + i.file, function(t) {
if (null === t)
r(Error("Failed to fetch file"));
else
try {
r(null, d.loadJson(JSON.parse(t), e, i))
} catch (t) {
r(t)
}
}) : null === (t = d.Util.fetch("object" == typeof i ? i.root + "/" + i.file : i)) ? null : d.loadJson(JSON.parse(t), e, i)
}
,
d;
function R(t, i, r) {
this.builder = t,
this.parent = i,
this.name = r,
this.className
}
function O(t, i, r, e, n) {
R.call(this, t, i, r),
this.className = "Namespace",
this.children = [],
this.options = e || {},
this.syntax = n || "proto2"
}
function N(t, i, r, e, n) {
if (this.type = t,
this.resolvedType = i,
this.isMapKey = r,
this.syntax = e,
this.name = n,
r && w.MAP_KEY_TYPES.indexOf(t) < 0)
throw Error("Invalid map key type: " + t.name)
}
function M(t, i) {
if (t && "number" == typeof t.low && "number" == typeof t.high && "boolean" == typeof t.unsigned && t.low == t.low && t.high == t.high)
return new w.Long(t.low,t.high,void 0 === i ? t.unsigned : i);
if ("string" == typeof t)
return w.Long.fromString(t, i || !1, 10);
if ("number" == typeof t)
return w.Long.fromNumber(t, i || !1);
throw Error("not convertible to Long")
}
function S(t, i, r, e, n, s, o, h, f, a) {
R.call(this, t, i, s),
this.className = "Message.Field",
this.required = "required" === r,
this.repeated = "repeated" === r,
this.map = "map" === r,
this.keyType = e || null,
this.type = n,
this.resolvedType = null,
this.id = o,
this.options = h || {},
this.defaultValue = null,
this.oneof = f || null,
this.syntax = a || "proto2",
this.originalName = this.name,
this.element = null,
this.keyElement = null,
!this.builder.options.convertFieldsToCamelCase || this instanceof l.ExtensionField || (this.name = w.Util.toCamelCase(this.name))
}
function j(t, i, r, e, n, s, o) {
S.call(this, t, i, r, null, e, n, s, o),
this.extension
}
function x(t, i, r, e) {
R.call(this, t, i, r),
this.className = "Enum.Value",
this.id = e
}
function U(t, i, r, e) {
R.call(this, t, i, r),
this.className = "Service.Method",
this.options = e || {}
}
function C(t, i, r, e, n, s, o, h) {
U.call(this, t, i, r, h),
this.className = "Service.RPCMethod",
this.requestName = e,
this.responseName = n,
this.requestStream = s,
this.responseStream = o,
this.resolvedRequestType = null,
this.resolvedResponseType = null
}
});