/
protobuf.min.js.map
1 lines (1 loc) · 305 KB
/
protobuf.min.js.map
1
{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/convert.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/runtime.js","src/verifier.js","src/writer.js","src/writer_buffer.js","src/index.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","Math","ceil","b64","Array","s64","encode","buffer","start","end","j","b","String","fromCharCode","invalidEncoding","decode","offset","c","charCodeAt","undefined","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","test","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","log","keys","Object","Function","concat","map","key","format","$0","$1","arg","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","extend","ctor","create","constructor","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","read","chunk","write","c1","c2","Class","type","Type","TypeError","MessageCtor","properties","Message","util","merge","$type","getFieldsArray","forEach","field","isArray","defaultValue","emptyArray","isObject","long","emptyObject","getOneofsArray","oneof","prop","get","indexOf","set","value","setCtor","_TypeError","common","json","nested","google","protobuf","Any","fields","type_url","id","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","convert","destination","options","converter","defaults","repeated","fieldsOnly","Enum","toJson","enums","resolvedType","getValuesById","longs","unsigned","Number","LongBits","from","toNumber","Long","fromNumber","toString","fromValue","bytes","Buffer","isBuffer","toMessage","getCtor","fromString","newBuffer","decoder","mtype","group","safeProp","resolvedKeyType","types","basic","packed","genEncodeType","fieldIndex","ref","alwaysRequired","required","encoder","wireType","mapKey","partOf","low","high","oneofFields","ReflectionObject","_valuesById","clearCache","enm","EnumPrototype","className","props","valuesById","testJSON","Boolean","fromJSON","toJSON","add","isString","isInteger","remove","Field","toLowerCase","optional","message","extensionField","declaringField","_packed","FieldPrototype","MapField","isPacked","getOption","setOption","ifNotSet","resolved","typeDefault","parent","lookup","freeze","MapFieldPrototype","MessagePrototype","asJSON","object","writer","encodeDelimited","readerOrBuffer","decodeDelimited","verify","Method","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","MethodPrototype","initNested","Service","nestedTypes","Namespace","nestedError","_nestedArray","_clearProperties","namespace","arrayToJSON","array","obj","NamespacePrototype","nestedArray","toArray","methods","addJSON","getNestedArray","nestedJson","ns","nestedName","getEnum","setOptions","onAdd","onRemove","define","ptr","part","resolveAll","filterType","parentAlreadyChecked","getRoot","found","lookupType","lookupService","lookupEnum","Root","ReflectionObjectPrototype","root","fullName","getFullName","unshift","_handleAdd","_handleRemove","OneOf","fieldNames","ucName","ucFirst","_fieldsArray","addFieldsToParent","OneOfPrototype","index","isName","token","isTypeRef","isFqTypeRef","lower","parse","illegal","filename","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","substring","tokenLower","Infinity","NaN","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","parseInlineOptions","fieldName","lcFirst","valueType","parseEnumField","custom","parseOptionValue","service","parseMethod","st","method","reference","tokenize","head","keepCase","camelCase","package","indexOutOfRange","reader","writeLength","RangeError","pos","Reader","readLongVarint","bits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","configure","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","BufferReader","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","Uint8Array","uint","exponent","mantissa","pow","float","readDouble","Float64Array","f64","double","skipType","_configure","BufferReaderPrototype","utf8Slice","min","deferred","files","SYNC","handleExtension","extendedType","sisterField","RootPrototype","resolvePath","load","finish","cb","process","parsed","self","sync","queued","weak","idx","lastIndexOf","altname","setTimeout","readFileSync","loadSync","newDeferred","rpc","rpcImpl","$rpc","ServicePrototype","endedByRPC","_methodsArray","methodsArray","methodName","inherited","getMethodsArray","requestDelimited","responseDelimited","rpcService","request","requestData","setImmediate","responseData","response","err2","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","stack","repeat","curr","delimRe","delim","expected","actual","equals","_fieldsById","_repeatedFieldsArray","_oneofsArray","_ctor","TypePrototype","verifier","Writer","fieldsById","names","fieldsArray","repeatedFieldsArray","filter","oneofsArray","oneOfName","getFieldsById","setup","fld","fork","ldelim","bake","description","dst","toUpperCase","underScore","allocUnsafe","LongBitsPrototype","zero","zzEncode","abs","fromHash","hash","toHash","mask","part0","part1","part2","isNode","global","versions","node","isIE8","utf8Write","encoding","dcodeIO","isFinite","floor","longToHash","longFromHash","fromBits","longNeq","longNe","val","target","descriptors","descriptor","ucKey","defineProperty","invalid","genVerifyValue","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","writeVarint64","writeFixed32","BufferWriter","WriterPrototype","writeFloat","isNaN","round","LN2","writeDouble","writeBytes","reset","writeStringBuffer","BufferWriterPrototype","writeBytesBuffer","copy","byteLength","roots","amd"],"mappings":";;;;;;CAAA,QAAAA,GAAAC,EAAAC,EAAAC,GAAA,QAAAC,GAAAC,EAAAC,GAAA,IAAAJ,EAAAG,GAAA,CAAA,IAAAJ,EAAAI,GAAA,CAAA,GAAAE,GAAA,kBAAAC,UAAAA,OAAA,KAAAF,GAAAC,EAAA,MAAAA,GAAAF,GAAA,EAAA,IAAAI,EAAA,MAAAA,GAAAJ,GAAA,EAAA,IAAAK,GAAA,GAAAC,OAAA,uBAAAN,EAAA,IAAA,MAAAK,GAAAE,KAAA,mBAAAF,EAAA,GAAAG,GAAAX,EAAAG,IAAAS,WAAAb,GAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,GAAAE,GAAAD,EAAAI,GAAA,GAAAL,EAAA,OAAAI,GAAAF,EAAAA,EAAAF,IAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,GAAA,MAAAD,GAAAG,GAAAS,QAAA,IAAA,GAAAL,GAAA,kBAAAD,UAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,IAAAD,EAAAD,EAAAE,GAAA,OAAAD,KAAAa,GAAA,SAAAT,EAAAU,EAAAJ,GCAA,YAWA,SAAAK,GAAAC,EAAAC,GAEA,IAAA,GADAC,MACAb,EAAA,EAAAA,EAAAc,UAAAP,QACAM,EAAAE,KAAAD,UAAAd,KACA,IAAAgB,IAAA,CACA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GACAN,EAAAE,KAAA,SAAAK,GACA,GAAAJ,EAEA,GADAA,GAAA,EACAI,EACAD,EAAAC,OACA,CAEA,IAAA,GADAC,MACArB,EAAA,EAAAA,EAAAc,UAAAP,QACAc,EAAAN,KAAAD,UAAAd,KACAkB,GAAAI,MAAA,KAAAD,KAIA,KACAV,EAAAW,MAAAV,GAAAW,KAAAV,GACA,MAAAO,GACAJ,IACAA,GAAA,EACAG,EAAAC,OAlCAX,EAAAJ,QAAAK,0BCDA,YAOA,IAAAc,GAAAnB,CAOAmB,GAAAjB,OAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAlB,MACA,KAAAmB,EACA,MAAA,EAEA,KADA,GAAAjC,GAAA,IACAiC,EAAA,EAAA,GAAA,MAAAD,EAAAE,OAAAD,MACAjC,CACA,OAAAmC,MAAAC,KAAA,EAAAJ,EAAAlB,QAAA,EAAAd,EAUA,KAAA,GANAqC,GAAA,GAAAC,OAAA,IAGAC,EAAA,GAAAD,OAAA,KAGA/B,EAAA,EAAAA,EAAA,IACAgC,EAAAF,EAAA9B,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EAAAA,EAAA,GAAA,IAAAA,GASAwB,GAAAS,OAAA,SAAAC,EAAAC,EAAAC,GAKA,IAJA,GAGA5C,GAHAiC,KACAzB,EAAA,EACAqC,EAAA,EAEAF,EAAAC,GAAA,CACA,GAAAE,GAAAJ,EAAAC,IACA,QAAAE,GACA,IAAA,GACAZ,EAAAzB,KAAA8B,EAAAQ,GAAA,GACA9C,GAAA,EAAA8C,IAAA,EACAD,EAAA,CACA,MACA,KAAA,GACAZ,EAAAzB,KAAA8B,EAAAtC,EAAA8C,GAAA,GACA9C,GAAA,GAAA8C,IAAA,EACAD,EAAA,CACA,MACA,KAAA,GACAZ,EAAAzB,KAAA8B,EAAAtC,EAAA8C,GAAA,GACAb,EAAAzB,KAAA8B,EAAA,GAAAQ,GACAD,EAAA,GAUA,MANAA,KACAZ,EAAAzB,KAAA8B,EAAAtC,GACAiC,EAAAzB,GAAA,GACA,IAAAqC,IACAZ,EAAAzB,EAAA,GAAA,KAEAuC,OAAAC,aAAAlB,MAAAiB,OAAAd,GAGA,IAAAgB,GAAA,kBAUAjB,GAAAkB,OAAA,SAAAjB,EAAAS,EAAAS,GAIA,IAAA,GADAnD,GAFA2C,EAAAQ,EACAN,EAAA,EAEArC,EAAA,EAAAA,EAAAyB,EAAAlB,QAAA,CACA,GAAAqC,GAAAnB,EAAAoB,WAAA7C,IACA,IAAA,KAAA4C,GAAAP,EAAA,EACA,KACA,IAAAS,UAAAF,EAAAZ,EAAAY,IACA,KAAA1C,OAAAuC,EACA,QAAAJ,GACA,IAAA,GACA7C,EAAAoD,EACAP,EAAA,CACA,MACA,KAAA,GACAH,EAAAS,KAAAnD,GAAA,GAAA,GAAAoD,IAAA,EACApD,EAAAoD,EACAP,EAAA,CACA,MACA,KAAA,GACAH,EAAAS,MAAA,GAAAnD,IAAA,GAAA,GAAAoD,IAAA,EACApD,EAAAoD,EACAP,EAAA,CACA,MACA,KAAA,GACAH,EAAAS,MAAA,EAAAnD,IAAA,EAAAoD,EACAP,EAAA,GAIA,GAAA,IAAAA,EACA,KAAAnC,OAAAuC,EACA,OAAAE,GAAAR,2BCtHA,YAmBA,SAAAY,KAmBA,QAAAC,KAGA,IAFA,GAAA3B,MACArB,EAAA,EACAA,EAAAc,UAAAP,QACAc,EAAAN,KAAAD,UAAAd,KACA,IAAAiD,GAAAC,EAAA5B,MAAA,KAAAD,GACA8B,EAAAC,CACA,IAAAC,EAAA9C,OAAA,CACA,GAAA+C,GAAAD,EAAAA,EAAA9C,OAAA,EAGAgD,GAAAC,KAAAF,GACAH,IAAAC,EACAK,EAAAD,KAAAF,MACAH,EAGAO,EAAAF,KAAAF,KAAAI,EAAAF,KAAAP,IACAE,IAAAC,EACAO,GAAA,GACAA,GAAAC,EAAAJ,KAAAF,KACAH,IAAAC,EACAO,GAAA,GAIAE,EAAAL,KAAAP,KACAE,IAAAC,GAEA,IAAApD,EAAA,EAAAA,EAAAmD,IAAAnD,EACAiD,EAAA,KAAAA,CAEA,OADAI,GAAAtC,KAAAkC,GACAD,EASA,QAAAc,GAAAC,GACA,MAAA,aAAAA,EAAAA,EAAAC,QAAA,WAAA,KAAA,IAAA,IAAAnD,EAAAoD,KAAA,MAAA,QAAAZ,EAAAY,KAAA,MAAA,MAYA,QAAAC,GAAAH,EAAAI,GACA,gBAAAJ,KACAI,EAAAJ,EACAA,EAAAjB,OAEA,IAAAsB,GAAApB,EAAAc,IAAAC,EACAhB,GAAAsB,SACAC,QAAAC,IAAA,oBAAAH,EAAAJ,QAAA,MAAA,MAAAA,QAAA,MAAA,MACA,IAAAQ,GAAAC,OAAAD,KAAAL,IAAAA,MACA,OAAAO,UAAApD,MAAA,KAAAkD,EAAAG,OAAA,UAAAP,IAAA9C,MAAA,KAAAkD,EAAAI,IAAA,SAAAC,GAAA,MAAAV,GAAAU,MA7EA,IAAA,GAJAhE,MACAwC,KACAD,EAAA,EACAO,GAAA,EACA3D,EAAA,EAAAA,EAAAc,UAAAP,QACAM,EAAAE,KAAAD,UAAAd,KAwFA,OA9BAgD,GAAAc,IAAAA,EA4BAd,EAAAkB,IAAAA,EAEAlB,EAGA,QAAAE,GAAA4B,GAGA,IAFA,GAAAzD,MACArB,EAAA,EACAA,EAAAc,UAAAP,QACAc,EAAAN,KAAAD,UAAAd,KAEA,OADAA,GAAA,EACA8E,EAAAd,QAAA,YAAA,SAAAe,EAAAC,GACA,GAAAC,GAAA5D,EAAArB,IACA,QAAAgF,GACA,IAAA,IACA,MAAAE,MAAAC,UAAAF,EACA,SACA,MAAA1C,QAAA0C,MA/HAxE,EAAAJ,QAAA0C,CAEA,IAAAQ,GAAA,QACAM,EAAA,SACAH,EAAA,KACAD,EAAA,gDACAG,EAAA,sCA8HAb,GAAAqC,WAAA,CAAA,KAAArC,EAAAqC,UAAA,IAAArC,EAAA,IAAA,KAAA,cAAAmB,MAAA,EAAA,GAAA,MAAA3E,IACAwD,EAAAsB,SAAA,0BCtIA,YASA,SAAAgB,KAOA9D,KAAA+D,KAfA7E,EAAAJ,QAAAgF,CAmBA,IAAAE,GAAAF,EAAAG,SASAD,GAAAE,GAAA,SAAAC,EAAA/E,EAAAC,GAKA,OAJAW,KAAA+D,EAAAI,KAAAnE,KAAA+D,EAAAI,QAAA3E,MACAJ,GAAAA,EACAC,IAAAA,GAAAW,OAEAA,MASAgE,EAAAI,IAAA,SAAAD,EAAA/E,GACA,GAAAmC,SAAA4C,EACAnE,KAAA+D,SAEA,IAAAxC,SAAAnC,EACAY,KAAA+D,EAAAI,UAGA,KAAA,GADAE,GAAArE,KAAA+D,EAAAI,GACA1F,EAAA,EAAAA,EAAA4F,EAAArF,QACAqF,EAAA5F,GAAAW,KAAAA,EACAiF,EAAAC,OAAA7F,EAAA,KAEAA,CAGA,OAAAuB,OASAgE,EAAAO,KAAA,SAAAJ,GACA,GAAAE,GAAArE,KAAA+D,EAAAI,EACA,IAAAE,EAAA,CAGA,IAFA,GAAAvE,MACArB,EAAA,EACAA,EAAAc,UAAAP,QACAc,EAAAN,KAAAD,UAAAd,KACA,KAAAA,EAAA,EAAAA,EAAA4F,EAAArF,QACAqF,EAAA5F,GAAAW,GAAAW,MAAAsE,EAAA5F,KAAAY,IAAAS,GAEA,MAAAE,+BC7EA,YAUA,SAAAwE,GAAAC,GAGA,IAAA,GADAxB,GAAAC,OAAAD,KAAAjD,MACAvB,EAAA,EAAAA,EAAAwE,EAAAjE,SAAAP,EACAgG,EAAAxB,EAAAxE,IAAAuB,KAAAiD,EAAAxE,GAEA,IAAAwF,GAAAQ,EAAAR,UAAAf,OAAAwB,OAAA1E,KAAAiE,UAEA,OADAA,GAAAU,YAAAF,EACAR,EAjBA/E,EAAAJ,QAAA0F,0BCDA,YAwBA,SAAAI,GAAAC,EAAAC,GACA,MAAAA,GAEAC,GAAAA,EAAAC,SACAD,EAAAC,SAAAH,EAAA,OAAA,SAAAhF,EAAAoF,GACA,MAAApF,IAAA,mBAAAqF,gBACAC,EAAAN,EAAAC,GACAA,EAAAjF,EAAAoF,KAEAE,EAAAN,EAAAC,GAPA3F,EAAAyF,EAAA5E,KAAA6E,GAUA,QAAAM,GAAAN,EAAAC,GACA,GAAAM,GAAA,GAAAF,eACAE,GAAAC,mBAAA,WACA,MAAA,KAAAD,EAAAE,WACA,IAAAF,EAAAG,QAAA,MAAAH,EAAAG,OACAT,EAAA,KAAAM,EAAAI,cACAV,EAAAnG,MAAA,UAAAyG,EAAAG,SACAhE,QAKA6D,EAAAK,KAAA,MAAAZ,GACAO,EAAAM,OAhDAxG,EAAAJ,QAAA8F,CAEA,IAAAzF,GAAAX,EAAA,GACAmH,EAAAnH,EAAA,GAEAuG,EAAAY,EAAA,sDCNA,YASA,SAAAA,SAAAC,YACA,IACA,GAAAC,KAAAC,KAAA,QAAArD,QAAA,IAAA,OAAAmD,WACA,IAAAC,MAAAA,IAAA7G,QAAAkE,OAAAD,KAAA4C,KAAA7G,QACA,MAAA6G,KACA,MAAA7H,IACA,MAAA,MAdAkB,OAAAJ,QAAA6G,gCCDA,YAOA,IAAAd,GAAA/F,EAEAiH,EAMAlB,EAAAkB,WAAA,SAAAlB,GACA,MAAA,eAAA5C,KAAA4C,IAGAmB,EAMAnB,EAAAmB,UAAA,SAAAnB,GACAA,EAAAA,EAAApC,QAAA,MAAA,KACAA,QAAA,UAAA,IACA,IAAAwD,GAAApB,EAAAqB,MAAA,KACAC,EAAAJ,EAAAlB,GACAuB,EAAA,EACAD,KACAC,EAAAH,EAAAI,QAAA,IACA,KAAA,GAAA5H,GAAA,EAAAA,EAAAwH,EAAAjH,QACA,OAAAiH,EAAAxH,GACAA,EAAA,EACAwH,EAAA3B,SAAA7F,EAAA,GACA0H,EACAF,EAAA3B,OAAA7F,EAAA,KAEAA,EACA,MAAAwH,EAAAxH,GACAwH,EAAA3B,OAAA7F,EAAA,KAEAA,CAEA,OAAA2H,GAAAH,EAAAvD,KAAA,KAUAmC,GAAAlF,QAAA,SAAA2G,EAAAC,EAAAC,GAGA,MAFAA,KACAD,EAAAP,EAAAO,IACAR,EAAAQ,GACAA,GACAC,IACAF,EAAAN,EAAAM,KACAA,EAAAA,EAAA7D,QAAA,kBAAA,KAAAzD,OAAAgH,EAAAM,EAAA,IAAAC,GAAAA,4BC/DA,YA8BA,SAAAE,GAAAC,EAAAC,EAAAC,GACA,GAAAC,GAAAD,GAAA,KACAE,EAAAD,IAAA,EACAE,EAAA,KACA3F,EAAAyF,CACA,OAAA,UAAAD,GACA,GAAAA,EAAA,GAAAA,EAAAE,EACA,MAAAJ,GAAAE,EACAxF,GAAAwF,EAAAC,IACAE,EAAAL,EAAAG,GACAzF,EAAA,EAEA,IAAA4F,GAAAL,EAAA5H,KAAAgI,EAAA3F,EAAAA,GAAAwF,EAGA,OAFA,GAAAxF,IACAA,GAAA,EAAAA,GAAA,GACA4F,GA5CA9H,EAAAJ,QAAA2H,2BCDA,YAOA,IAAAQ,GAAAnI,CAOAmI,GAAAjI,OAAA,SAAAkB,GAGA,IAAA,GAFAgH,GAAA,EACA7F,EAAA,EACA5C,EAAA,EAAAA,EAAAyB,EAAAlB,SAAAP,EACA4C,EAAAnB,EAAAoB,WAAA7C,GACA4C,EAAA,IACA6F,GAAA,EACA7F,EAAA,KACA6F,GAAA,EACA,SAAA,MAAA7F,IAAA,SAAA,MAAAnB,EAAAoB,WAAA7C,EAAA,OACAA,EACAyI,GAAA,GAEAA,GAAA,CAEA,OAAAA,IAUAD,EAAAE,KAAA,SAAAxG,EAAAC,EAAAC,GACA,GAAAqG,GAAArG,EAAAD,CACA,IAAAsG,EAAA,EACA,MAAA,EAKA,KAJA,GAGAjJ,GAHAgI,KACAmB,KACA3I,EAAA,EAEAmC,EAAAC,GACA5C,EAAA0C,EAAAC,KACA3C,EAAA,IACAmJ,EAAA3I,KAAAR,EACAA,EAAA,KAAAA,EAAA,IACAmJ,EAAA3I,MAAA,GAAAR,IAAA,EAAA,GAAA0C,EAAAC,KACA3C,EAAA,KAAAA,EAAA,KACAA,IAAA,EAAAA,IAAA,IAAA,GAAA0C,EAAAC,OAAA,IAAA,GAAAD,EAAAC,OAAA,EAAA,GAAAD,EAAAC,MAAA,MACAwG,EAAA3I,KAAA,OAAAR,GAAA,IACAmJ,EAAA3I,KAAA,OAAA,KAAAR,IAEAmJ,EAAA3I,MAAA,GAAAR,IAAA,IAAA,GAAA0C,EAAAC,OAAA,EAAA,GAAAD,EAAAC,KACAnC,EAAA,OACAwH,EAAAzG,KAAAwB,OAAAC,aAAAlB,MAAAiB,OAAAoG,IACA3I,EAAA,EAKA,OAFAA,IACAwH,EAAAzG,KAAAwB,OAAAC,aAAAlB,MAAAiB,OAAAoG,EAAAT,MAAA,EAAAlI,KACAwH,EAAAvD,KAAA,KAUAuE,EAAAI,MAAA,SAAAnH,EAAAS,EAAAS,GAIA,IAAA,GAFAkG,GACAC,EAFA3G,EAAAQ,EAGA3C,EAAA,EAAAA,EAAAyB,EAAAlB,SAAAP,EACA6I,EAAApH,EAAAoB,WAAA7C,GACA6I,EAAA,IACA3G,EAAAS,KAAAkG,EACAA,EAAA,MACA3G,EAAAS,KAAAkG,GAAA,EAAA,IACA3G,EAAAS,KAAA,GAAAkG,EAAA,KACA,SAAA,MAAAA,IAAA,SAAA,OAAAC,EAAArH,EAAAoB,WAAA7C,EAAA,MACA6I,EAAA,QAAA,KAAAA,IAAA,KAAA,KAAAC,KACA9I,EACAkC,EAAAS,KAAAkG,GAAA,GAAA,IACA3G,EAAAS,KAAAkG,GAAA,GAAA,GAAA,IACA3G,EAAAS,KAAAkG,GAAA,EAAA,GAAA,IACA3G,EAAAS,KAAA,GAAAkG,EAAA,MAEA3G,EAAAS,KAAAkG,GAAA,GAAA,IACA3G,EAAAS,KAAAkG,GAAA,EAAA,GAAA,IACA3G,EAAAS,KAAA,GAAAkG,EAAA,IAGA,OAAAlG,GAAAR,4BCpGA,YAgBA,SAAA4G,GAAAC,GACA,MAAA/C,GAAA+C,GAUA,QAAA/C,GAAA+C,EAAAhD,GAKA,GAJAiD,IACAA,EAAAlJ,EAAA,OAGAiJ,YAAAC,IACA,KAAAC,GAAA,OAAA,SAEA,IAAAlD,GAEA,GAAA,kBAAAA,GACA,KAAAkD,GAAA,OAAA,kBAEAlD,GAAA,SAAAmD,GACA,MAAA,UAAAC,GACAD,EAAA7I,KAAAiB,KAAA6H,KAEAC,EAGArD,GAAAE,YAAA6C,CAGA,IAAAvD,GAAAQ,EAAAR,UAAA,GAAA6D,EA4CA,OA3CA7D,GAAAU,YAAAF,EAGAsD,EAAAC,MAAAvD,EAAAqD,GAAA,GAGArD,EAAAwD,MAAAR,EACAxD,EAAAgE,MAAAR,EAGAA,EAAAS,iBAAAC,QAAA,SAAAC,GAIAnE,EAAAmE,EAAA5F,MAAAhC,MAAA6H,QAAAD,EAAAzI,UAAA2I,cACAP,EAAAQ,WACAR,EAAAS,SAAAJ,EAAAE,gBAAAF,EAAAK,KACAV,EAAAW,YACAN,EAAAE,eAIAb,EAAAkB,iBAAAR,QAAA,SAAAS,GACAb,EAAAc,KAAA5E,EAAA2E,EAAAjJ,UAAA6C,MACAsG,IAAA,WAEA,IAAA,GAAA7F,GAAAC,OAAAD,KAAAjD,MAAAvB,EAAAwE,EAAAjE,OAAA,EAAAP,GAAA,IAAAA,EACA,GAAAmK,EAAAA,MAAAG,QAAA9F,EAAAxE,KAAA,EACA,MAAAwE,GAAAxE,IAGAuK,IAAA,SAAAC,GACA,IAAA,GAAAhG,GAAA2F,EAAAA,MAAAnK,EAAA,EAAAA,EAAAwE,EAAAjE,SAAAP,EACAwE,EAAAxE,KAAAwK,SACAjJ,MAAAiD,EAAAxE,SAOAgJ,EAAAyB,QAAAzE,GAEAR,EA7FA/E,EAAAJ,QAAA0I,CAEA,IAGAE,GAHAI,EAAAtJ,EAAA,IACAuJ,EAAAvJ,EAAA,IAIAmJ,EAAAI,EAAAoB,CAyFA3B,GAAA9C,OAAAA,EAGA8C,EAAAvD,UAAA6D,4CCpGA,YAiBA,SAAAsB,GAAA5G,EAAA6G,GACA,QAAApH,KAAAO,KACAA,EAAA,mBAAAA,EAAA,SACA6G,GAAAC,QAAAC,QAAAD,QAAAE,UAAAF,OAAAD,QAEAD,EAAA5G,GAAA6G,EApBAnK,EAAAJ,QAAAsK,EA6BAA,EAAA,OACAK,KACAC,QACAC,UACAlC,KAAA,SACAmC,GAAA,GAEAX,OACAxB,KAAA,QACAmC,GAAA,MAMA,IAAAC,EAEAT,GAAA,YACAU,SAAAD,GACAH,QACAK,SACAtC,KAAA,QACAmC,GAAA,GAEAI,OACAvC,KAAA,QACAmC,GAAA,OAMAR,EAAA,aACAa,UAAAJ,IAGAT,EAAA,SACAc,OACAR,aAIAN,EAAA,UACAe,QACAT,QACAA,QACAU,QAAA,SACA3C,KAAA,QACAmC,GAAA,KAIAS,OACAC,QACAC,MACA3B,OAAA,YAAA,cAAA,cAAA,YAAA,cAAA,eAGAc,QACAc,WACA/C,KAAA,YACAmC,GAAA,GAEAa,aACAhD,KAAA,SACAmC,GAAA,GAEAc,aACAjD,KAAA,SACAmC,GAAA,GAEAe,WACAlD,KAAA,OACAmC,GAAA,GAEAgB,aACAnD,KAAA,SACAmC,GAAA,GAEAiB,WACApD,KAAA,YACAmC,GAAA,KAIAkB,WACAC,QACAC,WAAA,IAGAC,WACAvB,QACAqB,QACAG,KAAA,WACAzD,KAAA,QACAmC,GAAA,OAMAR,EAAA,YACA+B,aACAzB,QACAT,OACAxB,KAAA,SACAmC,GAAA,KAIAwB,YACA1B,QACAT,OACAxB,KAAA,QACAmC,GAAA,KAIAyB,YACA3B,QACAT,OACAxB,KAAA,QACAmC,GAAA,KAIA0B,aACA5B,QACAT,OACAxB,KAAA,SACAmC,GAAA,KAIA2B,YACA7B,QACAT,OACAxB,KAAA,QACAmC,GAAA,KAIA4B,aACA9B,QACAT,OACAxB,KAAA,SACAmC,GAAA,KAIA6B,WACA/B,QACAT,OACAxB,KAAA,OACAmC,GAAA,KAIA8B,aACAhC,QACAT,OACAxB,KAAA,SACAmC,GAAA,KAIA+B,YACAjC,QACAT,OACAxB,KAAA,QACAmC,GAAA,gCCzMA,YA8BA,SAAAgC,GAAAnE,EAAA5E,EAAAgJ,EAAAC,EAAAC,GAEArE,IACAA,EAAAlJ,EAAA,IACAsJ,EAAAtJ,EAAA,KAGAsN,IACAA,KAGA,KAAA,GAAAxI,GADAL,EAAAC,OAAAD,KAAA6I,EAAAE,SAAAvE,EAAAiC,OAAA7G,GACApE,EAAA,EAAAA,EAAAwE,EAAAjE,SAAAP,EAAA,CACA,GAAA2J,GAAAX,EAAAiC,OAAApG,EAAAL,EAAAxE,IACAwK,EAAApG,EAAAS,EACA,IAAA8E,EACA,GAAAA,EAAA6D,UACA,IAAAhD,GAAA6C,EAAAE,YACAH,EAAAvI,MACA2F,GACA,IAAA,GAAAnI,GAAA,EAAAjC,EAAAoK,EAAAjK,OAAA8B,EAAAjC,IAAAiC,EACA+K,EAAAvI,GAAA9D,KAAAuM,EAAA3D,EAAAa,EAAAnI,GAAAgL,QAGAD,GAAAvI,GAAAyI,EAAA3D,EAAAa,EAAA6C,OACAA,GAAAI,aACAL,EAAAvI,GAAA2F,GAEA,MAAA4C,GAxDA3M,EAAAJ,QAAA8M,CAEA,IAGAlE,GACAI,EAJAqE,EAAA3N,EAAA,IACAuJ,EAAAvJ,EAAA,GAyEAoN,GAAAQ,OAAA,QAAAA,GAAAhE,EAAAa,EAAA6C,GAKA,GAJAA,IACAA,MAGA7C,YAAAnB,GACA,MAAA8D,GAAA3C,EAAAhB,MAAAgB,KAAA6C,EAAAM,EAGA,IAAAN,EAAAO,OAAAjE,EAAAkE,uBAAAH,GACA,MAAAL,GAAAO,QAAArL,OACAoH,EAAAkE,aAAAC,gBAAAtD,GACA,EAAAA,CAGA,IAAA6C,EAAAU,OAAApE,EAAAK,KAAA,CACA,GAAAgE,GAAA,MAAArE,EAAAX,KAAArH,OAAA,EACA,IAAA0L,EAAAU,QAAAE,OACA,MAAA,gBAAAzD,GACAA,EACAlB,EAAA4E,SAAAC,KAAA3D,GAAA4D,SAAAJ,EACA,IAAAX,EAAAU,QAAAxL,OACA,MAAA,gBAAAiI,GACAlB,EAAA+E,KAAAC,WAAA9D,EAAAwD,GAAAO,YACA/D,EAAAlB,EAAA+E,KAAAG,UAAAhE,GACAA,EAAAwD,SAAAA,EACAxD,EAAA+D,YAKA,GAAAlB,EAAAoB,OAAA9E,EAAA8E,MAAA,CACA,GAAApB,EAAAoB,QAAAlM,OACA,MAAA+G,GAAA9H,OAAAS,OAAAuI,EAAA,EAAAA,EAAAjK,OACA,IAAA8M,EAAAoB,QAAA1M,MACA,MAAAA,OAAAyD,UAAA0C,MAAA5H,KAAAkK,EACA,IAAA6C,EAAAoB,QAAAnF,EAAAoF,SAAApF,EAAAoF,OAAAC,SAAAnE,GACA,MAAAlB,GAAAoF,OAAAP,KAAA3D,GAEA,MAAAA,IAUA2C,EAAAyB,UAAA,QAAAA,GAAAjF,EAAAa,EAAA6C,GACA,aAAA7C,IAGA,IAAA,SACA,GAAAA,EAAA,CACA,GAAAb,EAAAkE,uBAAA5E,GACA,MAAAkE,GAAAxD,EAAAkE,aAAArD,EAAA,IAAAb,EAAAkE,aAAAgB,WAAAxB,EAAAuB,EACA,IAAA,UAAAjF,EAAAX,KACA,MAAAM,GAAAoF,OACApF,EAAAoF,OAAAC,SAAAnE,GACAA,EACAlB,EAAAoF,OAAAP,KAAA3D,GACAA,YAAAlB,GAAAvH,MACAyI,EACA,GAAAlB,GAAAvH,MAAAyI,GAEA,KAGA,KAAA,SACA,GAAAb,EAAAkE,uBAAAH,GACA,MAAA/D,GAAAkE,aAAAvB,OAAA9B,IAAA,CACA,IAAAb,EAAAK,KACA,MAAAV,GAAA+E,KAAAS,WAAAtE,EAAA,MAAAb,EAAAX,KAAArH,OAAA,GACA,IAAAgI,EAAA8E,MAAA,CACA,GAAAlG,GAAAe,EAAAyF,UAAAzF,EAAA9H,OAAAjB,OAAAiK,GAEA,OADAlB,GAAA9H,OAAAkB,OAAA8H,EAAAjC,EAAA,GACAA,EAEA,KAGA,KAAA,SACA,GAAAoB,EAAAK,KACA,MAAAV,GAAA+E,KAAAC,WAAA9D,EAAA,MAAAb,EAAAX,KAAArH,OAAA,IAIA,MAAA6I,oDCrKA,YAYA,SAAAwE,GAAAC,GAEA,GAAAhE,GAAAgE,EAAAxF,iBACAzG,EAAAsG,EAAAvG,QAAA,IAAA,KAEA,6CACA,2DACA,mBACA,mBACAkM,GAAAC,OAAAlM,EACA,iBACA,SACAA,EACA,iBAEA,KAAA,GAAAhD,GAAA,EAAAA,EAAAiL,EAAA1K,SAAAP,EAAA,CACA,GAAA2J,GAAAsB,EAAAjL,GAAAkB,UACA8H,EAAAW,EAAAkE,uBAAAH,GAAA,SAAA/D,EAAAX,KACAoB,EAAAd,EAAA6F,SAAAxF,EAAA5F,KAKA,IAJAf,EACA,WAAA2G,EAAAwB,IAGAxB,EAAA/E,IAAA,CAEA,GAAA+G,GAAAhC,EAAAyF,gBAAA,SAAAzF,EAAAgC,OACA3I,GACA,kBACA,6BAAAoH,GACA,SAAAA,GACA,eAAAuB,GACA,2BACA,wBACA,WACA7I,SAAAuM,EAAAC,MAAAtG,GAAAhG,EACA,wCAAAoH,EAAApK,GACAgD,EACA,gBAAAoH,EAAApB,OAGAW,GAAA6D,UAAAxK,EAEA,6BAAAoH,EAAAA,EAAAA,EAAAA,GAGAT,EAAA4F,QAAAzM,SAAAuM,EAAAE,OAAAvG,IAAAhG,EACA,kBACA,0BACA,kBACA,mBAAAoH,EAAApB,GACA,SAGAlG,SAAAuM,EAAAC,MAAAtG,GAAAhG,EAAA2G,EAAAkE,aAAAqB,MACA,gCACA,2CAAA9E,EAAApK,GACAgD,EACA,mBAAAoH,EAAApB,IAGAlG,SAAAuM,EAAAC,MAAAtG,GAAAhG,EAAA2G,EAAAkE,aAAAqB,MACA,0BACA,qCAAA9E,EAAApK,GACAgD,EACA,aAAAoH,EAAApB,EACAhG,GACA,SAGA,MAAAA,GACA,YACA,mBACA,SACA,KACA,KACA,YAtFAvC,EAAAJ,QAAA2O,CAEA,IAAAtB,GAAA3N,EAAA,IACAsP,EAAAtP,EAAA,IACAuJ,EAAAvJ,EAAA,8CCLA,YASA,SAAAyP,GAAAxM,EAAA2G,EAAA8F,EAAAC,EAAAC,GACA,MAAAhG,GAAAkE,aAAAqB,MACAlM,EAAA,+CAAAyM,EAAAC,GAAA/F,EAAAwB,IAAA,EAAA,KAAA,GAAAxB,EAAAwB,IAAA,EAAA,KAAA,GACAwE,GAAAhG,EAAAiG,SACA5M,EAAA,oDAAAyM,EAAAC,GAAA/F,EAAAwB,IAAA,EAAA,KAAA,GACAnI,EAAA,6DAAAyM,EAAAC,EAAA/F,EAAAwB,IAQA,QAAA0E,GAAAZ,GAQA,IAAA,GADAjP,GALAiL,EAAAgE,EAAAxF,iBACAoC,EAAAoD,EAAA/E,iBACAlH,EAAAsG,EAAAvG,QAAA,IAAA,KACA,0BAGA/C,EAAA,EAAAA,EAAAiL,EAAA1K,SAAAP,EAAA,CACA,GAAA2J,GAAAsB,EAAAjL,GAAAkB,UACA8H,EAAAW,EAAAkE,uBAAAH,GAAA,SAAA/D,EAAAX,KACA8G,EAAAT,EAAAC,MAAAtG,GACAoB,EAAA+E,EAAAxF,EAAA5F,KAGA,IAAA4F,EAAA/E,IAAA,CACA,GAAA+G,GAAAhC,EAAAyF,gBAAA,SAAAzF,EAAAgC,OACA3I,GACA,mCAAAoH,EAAAA,GACA,oDAAAA,GACA,4CAAAT,EAAAwB,IAAA,EAAA,KAAA,EAAA,EAAAkE,EAAAU,OAAApE,GAAAA,GACA7I,SAAAgN,EAAA9M,EACA,4DAAAhD,EAAAoK,GACApH,EACA,8BAAA,GAAA8M,EAAA9G,EAAAoB,GACApH,EACA,cACA,KACA,SAGA2G,GAAA6D,SAGA7D,EAAA4F,QAAAzM,SAAAuM,EAAAE,OAAAvG,GAAAhG,EAEA,uBAAAoH,EAAAA,GACA,uBAAAT,EAAAwB,IAAA,EAAA,KAAA,GACA,gCAAAf,GACA,eAAApB,EAAAoB,GACA,aAAAT,EAAAwB,IACA,MAGAnI,EAEA,UAAAoH,GACA,gCAAAA,GACAtH,SAAAgN,EACAN,EAAAxM,EAAA2G,EAAA3J,EAAA,IAAAoK,EAAA,OAAA,GACApH,EACA,2BAAA2G,EAAAwB,IAAA,EAAA2E,KAAA,EAAA9G,EAAAoB,IAKAT,EAAAqG,SACArG,EAAAiG,WAEAjG,EAAAK,KACAhH,EACA,8CAAAoH,EAAAA,EAAAT,EAAAE,aAAAoG,IAAAtG,EAAAE,aAAAqG,MACAlN,EACA,gCAAAoH,EAAAA,EAAAT,EAAAE,eAIA/G,SAAAgN,EACAN,EAAAxM,EAAA2G,EAAA3J,EAAA,IAAAoK,GAAA,GACApH,EACA,wBAAA2G,EAAAwB,IAAA,EAAA2E,KAAA,EAAA9G,EAAAoB,IAIA,IAAA,GAAApK,GAAA,EAAAA,EAAA6L,EAAAtL,SAAAP,EAAA,CACA,GAAAmK,GAAA0B,EAAA7L,GACAoK,EAAA+E,EAAAhF,EAAApG,KACAf,GACA,eAAAoH,EAEA,KAAA,GADA+F,GAAAhG,EAAAV,iBACApH,EAAA,EAAAA,EAAA8N,EAAA5P,SAAA8B,EAAA,CACA,GAAAsH,GAAAwG,EAAA9N,GACA2G,EAAAW,EAAAkE,uBAAAH,GAAA,SAAA/D,EAAAX,KACA8G,EAAAT,EAAAC,MAAAtG,GACAoB,EAAA+E,EAAAxF,EAAA5F,KACAf,GACA,UAAA2G,EAAA5F,MAEAjB,SAAAgN,EACAN,EAAAxM,EAAA2G,EAAAsB,EAAAX,QAAAX,GAAA,IAAAS,GACApH,EACA,wBAAA2G,EAAAwB,IAAA,EAAA2E,KAAA,EAAA9G,EAAAoB,GAEApH,EACA,UAEAA,EACA,KAGA,MAAAA,GACA,YA1HAvC,EAAAJ,QAAAwP,CAEA,IAAAnC,GAAA3N,EAAA,IACAsP,EAAAtP,EAAA,IACAuJ,EAAAvJ,EAAA,IAEAoP,EAAA7F,EAAA6F,mDCPA,YAsBA,SAAAzB,GAAA3J,EAAAuI,EAAAe,GACA+C,EAAA9P,KAAAiB,KAAAwC,EAAAsJ,GAMA9L,KAAA+K,OAAAA,MAOA/K,KAAA8O,EAAA,KAkCA,QAAAC,GAAAC,GAEA,MADAA,GAAAF,EAAA,KACAE,EAvEA9P,EAAAJ,QAAAqN,CAEA,IAAA0C,GAAArQ,EAAA,IAEAyQ,EAAAJ,EAAArK,OAAA2H,EAEAA,GAAA+C,UAAA,MAEA,IAAAnH,GAAAvJ,EAAA,IAEAmJ,EAAAI,EAAAoB,CA4BApB,GAAAoH,MAAAF,GAQAG,YACAtG,IAAA,WAUA,MATA9I,MAAA8O,IACA9O,KAAA8O,KACA5L,OAAAD,KAAAjD,KAAA+K,QAAA5C,QAAA,SAAA3F,GACA,GAAAoH,GAAA5J,KAAA+K,OAAAvI,EACA,IAAAxC,KAAA8O,EAAAlF,GACA,KAAAjL,OAAA,gBAAAiL,EAAA,OAAA5J,KACAA,MAAA8O,EAAAlF,GAAApH,GACAxC,OAEAA,KAAA8O,MAsBA3C,EAAAkD,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,GAAAA,EAAA0B,SAUAoB,EAAAoD,SAAA,SAAA/M,EAAA6G,GACA,MAAA,IAAA8C,GAAA3J,EAAA6G,EAAA0B,OAAA1B,EAAAyC,UAMAmD,EAAAO,OAAA,WACA,OACA1D,QAAA9L,KAAA8L,QACAf,OAAA/K,KAAA+K,SAYAkE,EAAAQ,IAAA,SAAAjN,EAAAoH,GAGA,IAAA7B,EAAA2H,SAAAlN,GACA,KAAAmF,GAAA,OAEA,KAAAI,EAAA4H,UAAA/F,IAAAA,EAAA,EACA,KAAAjC,GAAA,KAAA,yBAEA,IAAApG,SAAAvB,KAAA+K,OAAAvI,GACA,KAAA7D,OAAA,mBAAA6D,EAAA,QAAAxC,KAEA,IAAAuB,SAAAvB,KAAAuM,gBAAA3C,GACA,KAAAjL,OAAA,gBAAAiL,EAAA,OAAA5J,KAGA,OADAA,MAAA+K,OAAAvI,GAAAoH,EACAmF,EAAA/O,OAUAiP,EAAAW,OAAA,SAAApN,GACA,IAAAuF,EAAA2H,SAAAlN,GACA,KAAAmF,GAAA,OACA,IAAApG,SAAAvB,KAAA+K,OAAAvI,GACA,KAAA7D,OAAA,IAAA6D,EAAA,sBAAAxC,KAEA,cADAA,MAAA+K,OAAAvI,GACAuM,EAAA/O,2CCjJA,YA8BA,SAAA6P,GAAArN,EAAAoH,EAAAnC,EAAAyD,EAAA1G,EAAAsH,GAWA,GAVA/D,EAAAS,SAAA0C,IACAY,EAAAZ,EACAA,EAAA1G,EAAAjD,QACAwG,EAAAS,SAAAhE,KACAsH,EAAAtH,EACAA,EAAAjD,QAEAsN,EAAA9P,KAAAiB,KAAAwC,EAAAsJ,IAGA/D,EAAA4H,UAAA/F,IAAAA,EAAA,EACA,KAAAjC,GAAA,KAAA,yBAEA,KAAAI,EAAA2H,SAAAjI,GACA,KAAAE,GAAA,OAEA,IAAApG,SAAAiD,IAAAuD,EAAA2H,SAAAlL,GACA,KAAAmD,GAAA,SAEA,IAAApG,SAAA2J,IAAA,+BAAAjJ,KAAAiJ,EAAAA,EAAA8B,WAAA8C,eACA,KAAAnI,GAAA,OAAA,sBAMA3H,MAAAkL,KAAAA,GAAA,aAAAA,EAAAA,EAAA3J,OAMAvB,KAAAyH,KAAAA,EAMAzH,KAAA4J,GAAAA,EAMA5J,KAAAwE,OAAAA,GAAAjD,OAMAvB,KAAAqO,SAAA,aAAAnD,EAMAlL,KAAA+P,UAAA/P,KAAAqO,SAMArO,KAAAiM,SAAA,aAAAf,EAMAlL,KAAAqD,KAAA,EAMArD,KAAAgQ,QAAA,KAMAhQ,KAAAyO,OAAA,KAMAzO,KAAAsI,aAAA,KAMAtI,KAAAyI,OAAAV,EAAA+E,MAAAvL,SAAAuM,EAAArF,KAAAhB,GAMAzH,KAAAkN,MAAA,UAAAzF,EAMAzH,KAAAsM,aAAA,KAMAtM,KAAAiQ,eAAA,KAMAjQ,KAAAkQ,eAAA,KAOAlQ,KAAAmQ,EAAA,KAzJAjR,EAAAJ,QAAA+Q,CAEA,IAAAhB,GAAArQ,EAAA,IAEA4R,EAAAvB,EAAArK,OAAAqL,EAEAA,GAAAX,UAAA,OAEA,IAIAxH,GACA2I,EALAlE,EAAA3N,EAAA,IACAsP,EAAAtP,EAAA,IACAuJ,EAAAvJ,EAAA,IAKAmJ,EAAAI,EAAAoB,CA6IApB,GAAAoH,MAAAiB,GAQApC,QACAlF,IAAAsH,EAAAE,SAAA,WAIA,MAFA,QAAAtQ,KAAAmQ,IACAnQ,KAAAmQ,EAAAnQ,KAAAuQ,UAAA,aAAA,GACAvQ,KAAAmQ,MAeAC,EAAAI,UAAA,SAAAhO,EAAAyG,EAAAwH,GAGA,MAFA,WAAAjO,IACAxC,KAAAmQ,EAAA,MACAtB,EAAA5K,UAAAuM,UAAAzR,KAAAiB,KAAAwC,EAAAyG,EAAAwH,IAQAZ,EAAAR,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,GAAA9H,SAAA8H,EAAAO,KAUAiG,EAAAN,SAAA,SAAA/M,EAAA6G,GACA,MAAA9H,UAAA8H,EAAAe,SACAiG,IACAA,EAAA7R,EAAA,KACA6R,EAAAd,SAAA/M,EAAA6G,IAEA,GAAAwG,GAAArN,EAAA6G,EAAAO,GAAAP,EAAA5B,KAAA4B,EAAA6B,KAAA7B,EAAA7E,OAAA6E,EAAAyC,UAMAsE,EAAAZ,OAAA,WACA,OACAtE,KAAA,aAAAlL,KAAAkL,MAAAlL,KAAAkL,MAAA3J,OACAkG,KAAAzH,KAAAyH,KACAmC,GAAA5J,KAAA4J,GACApF,OAAAxE,KAAAwE,OACAsH,QAAA9L,KAAA8L,UASAsE,EAAAzQ,QAAA,WACA,GAAAK,KAAA0Q,SACA,MAAA1Q,KAEA,IAAA2Q,GAAA7C,EAAA9B,SAAAhM,KAAAyH,KAGA,IAAAlG,SAAAoP,EAGA,GAFAjJ,IACAA,EAAAlJ,EAAA,KACAwB,KAAAsM,aAAAtM,KAAA4Q,OAAAC,OAAA7Q,KAAAyH,KAAAC,GACAiJ,EAAA,SACA,CAAA,KAAA3Q,KAAAsM,aAAAtM,KAAA4Q,OAAAC,OAAA7Q,KAAAyH,KAAA0E,IAIA,KAAAxN,OAAA,4BAAAqB,KAAAyH,KAHAkJ,GAAA,EAwBA,MAjBA3Q,MAAAqD,IACArD,KAAAsI,gBACAtI,KAAAiM,SACAjM,KAAAsI,iBAEAtI,KAAA8L,SAAAvK,SAAAvB,KAAA8L,QAAA,QACA9L,KAAAsI,aAAAtI,KAAA8L,QAAA,QAEA9L,KAAAsI,aAAAqI,EAEA3Q,KAAAyI,OACAzI,KAAAsI,aAAAP,EAAA+E,KAAAC,WAAA/M,KAAAsI,aAAA,MAAAtI,KAAAyH,KAAArH,OAAA,IACA8C,OAAA4N,QACA5N,OAAA4N,OAAA9Q,KAAAsI,gBAIAuG,EAAA5K,UAAAtE,QAAAZ,KAAAiB,mEC/QA,YAyBA,SAAAqQ,GAAA7N,EAAAoH,EAAAQ,EAAA3C,EAAAqE,GAIA,GAHA+D,EAAA9Q,KAAAiB,KAAAwC,EAAAoH,EAAAnC,EAAAqE,IAGA/D,EAAA2H,SAAAtF,GACA,KAAArC,GAAAoB,EAAA,UAMAnJ,MAAAoK,QAAAA,EAMApK,KAAA6N,gBAAA,KAGA7N,KAAAqD,KAAA,EA5CAnE,EAAAJ,QAAAuR,CAEA,IAAAR,GAAArR,EAAA,IAEA4R,EAAAP,EAAA5L,UAEA8M,EAAAlB,EAAArL,OAAA6L,EAEAA,GAAAnB,UAAA,UAEA,IAAApB,GAAAtP,EAAA,IACAuJ,EAAAvJ,EAAA,GAyCA6R,GAAAhB,SAAA,SAAAhG,GACA,MAAAwG,GAAAR,SAAAhG,IAAA9H,SAAA8H,EAAAe,SAUAiG,EAAAd,SAAA,SAAA/M,EAAA6G,GACA,MAAA,IAAAgH,GAAA7N,EAAA6G,EAAAO,GAAAP,EAAAe,QAAAf,EAAA5B,KAAA4B,EAAAyC,UAMAiF,EAAAvB,OAAA,WACA,OACApF,QAAApK,KAAAoK,QACA3C,KAAAzH,KAAAyH,KACAmC,GAAA5J,KAAA4J,GACApF,OAAAxE,KAAAwE,OACAsH,QAAA9L,KAAA8L,UAOAiF,EAAApR,QAAA,WACA,GAAAK,KAAA0Q,SACA,MAAA1Q,KAGA,IAAAuB,SAAAuM,EAAAU,OAAAxO,KAAAoK,SACA,KAAAzL,OAAA,qBAAAqB,KAAAoK,QAEA,OAAAgG,GAAAzQ,QAAAZ,KAAAiB,iDC5FA,YAgBA,SAAA8H,GAAAD,GACA,GAAAA,EAEA,IAAA,GADA5E,GAAAC,OAAAD,KAAA4E,GACApJ,EAAA,EAAAA,EAAAwE,EAAAjE,SAAAP,EACAuB,KAAAiD,EAAAxE,IAAAoJ,EAAA5E,EAAAxE,IAnBAS,EAAAJ,QAAAgJ,CAEA,IAAA8D,GAAApN,EAAA,IA6BAwS,EAAAlJ,EAAA7D,SAcA+M,GAAAC,OAAA,SAAAnF,GACA,MAAAF,GAAA5L,KAAAiI,MAAAjI,QAAA8L,EAAAF,EAAAQ,SASAtE,EAAA8E,KAAA,SAAAsE,EAAApF,GACA,MAAAF,GAAA5L,KAAAiI,MAAAiJ,EAAA,GAAAlR,MAAA2E,YAAAmH,EAAAF,EAAAyB,YASAvF,EAAApH,OAAA,SAAAsP,EAAAmB,GACA,MAAAnR,MAAAiI,MAAAvH,OAAAsP,EAAAmB,IASArJ,EAAAsJ,gBAAA,SAAApB,EAAAmB,GACA,MAAAnR,MAAAiI,MAAAmJ,gBAAApB,EAAAmB,IAUArJ,EAAA3G,OAAA,SAAAkQ,GACA,MAAArR,MAAAiI,MAAA9G,OAAAkQ,IAUAvJ,EAAAwJ,gBAAA,SAAAD,GACA,MAAArR,MAAAiI,MAAAqJ,gBAAAD,IAUAvJ,EAAAyJ,OAAA,SAAAvB,GACA,MAAAhQ,MAAAiI,MAAAsJ,OAAAvB,kCC9GA,YA2BA,SAAAwB,GAAAhP,EAAAiF,EAAAgK,EAAAC,EAAAC,EAAAC,EAAA9F,GAUA,GATA/D,EAAAS,SAAAmJ,IACA7F,EAAA6F,EACAA,EAAAC,EAAArQ,QACAwG,EAAAS,SAAAoJ,KACA9F,EAAA8F,EACAA,EAAArQ,QAIAkG,IAAAM,EAAA2H,SAAAjI,GACA,KAAAE,GAAA,OAEA,KAAAI,EAAA2H,SAAA+B,GACA,KAAA9J,GAAA,cAEA,KAAAI,EAAA2H,SAAAgC,GACA,KAAA/J,GAAA,eAEAkH,GAAA9P,KAAAiB,KAAAwC,EAAAsJ,GAMA9L,KAAAyH,KAAAA,GAAA,MAMAzH,KAAAyR,YAAAA,EAMAzR,KAAA2R,gBAAAA,GAAApQ,OAMAvB,KAAA0R,aAAAA,EAMA1R,KAAA4R,iBAAAA,GAAArQ,OAMAvB,KAAA6R,oBAAA,KAMA7R,KAAA8R,qBAAA,KAvFA5S,EAAAJ,QAAA0S,CAEA,IAAA3C,GAAArQ,EAAA,IAEAuT,EAAAlD,EAAArK,OAAAgN,EAEAA,GAAAtC,UAAA,QAEA,IAAAxH,GAAAlJ,EAAA,IACAuJ,EAAAvJ,EAAA,IAEAmJ,EAAAI,EAAAoB,CAoFAqI,GAAAnC,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,GAAA9H,SAAA8H,EAAAoI,cAUAD,EAAAjC,SAAA,SAAA/M,EAAA6G,GACA,MAAA,IAAAmI,GAAAhP,EAAA6G,EAAA5B,KAAA4B,EAAAoI,YAAApI,EAAAqI,aAAArI,EAAAsI,cAAAtI,EAAAuI,eAAAvI,EAAAyC,UAMAiG,EAAAvC,OAAA,WACA,OACA/H,KAAA,QAAAzH,KAAAyH,MAAAzH,KAAAyH,MAAAlG,OACAkQ,YAAAzR,KAAAyR,YACAE,cAAA3R,KAAA2R,eAAApQ,OACAmQ,aAAA1R,KAAA0R,aACAE,eAAA5R,KAAA4R,gBAAArQ,OACAuK,QAAA9L,KAAA8L,UAOAiG,EAAApS,QAAA,WACA,GAAAK,KAAA0Q,SACA,MAAA1Q,KAGA,MAAAA,KAAA6R,oBAAA7R,KAAA4Q,OAAAC,OAAA7Q,KAAAyR,YAAA/J,IACA,KAAA/I,OAAA,8BAAAqB,KAAAyR,YAEA,MAAAzR,KAAA8R,qBAAA9R,KAAA4Q,OAAAC,OAAA7Q,KAAA0R,aAAAhK,IACA,KAAA/I,OAAA,+BAAAqB,KAAAyR,YAEA,OAAA5C,GAAA5K,UAAAtE,QAAAZ,KAAAiB,iDC3IA,YAmBA,SAAAgS,KAGAtK,IACAA,EAAAlJ,EAAA,KAEAyT,IACAA,EAAAzT,EAAA,KAEA0T,GAAA/F,EAAAzE,EAAAuK,EAAApC,EAAAsC,GACAC,EAAA,UAAAF,EAAA7O,IAAA,SAAAoB,GAAA,MAAAA,GAAAjC,OAAAE,KAAA,MAaA,QAAAyP,GAAA3P,EAAAsJ,GACA+C,EAAA9P,KAAAiB,KAAAwC,EAAAsJ,GAMA9L,KAAAsJ,OAAA/H,OAOAvB,KAAAqS,EAAA,KAOArS,KAAAsS,KAGA,QAAAvD,GAAAwD,GACAA,EAAAF,EAAA,IACA,KAAA,GAAA5T,GAAA,EAAAA,EAAA8T,EAAAD,EAAAtT,SAAAP,QACA8T,GAAAA,EAAAD,EAAA7T,GAEA,OADA8T,GAAAD,KACAC,EA8DA,QAAAC,GAAAC,GACA,GAAAA,GAAAA,EAAAzT,OAAA,CAGA,IAAA,GADA0T,MACAjU,EAAA,EAAAA,EAAAgU,EAAAzT,SAAAP,EACAiU,EAAAD,EAAAhU,GAAA+D,MAAAiQ,EAAAhU,GAAA+Q,QACA,OAAAkD,IA1IAxT,EAAAJ,QAAAqT,CAEA,IAAAtD,GAAArQ,EAAA,IAEAmU,EAAA9D,EAAArK,OAAA2N,EAEAA,GAAAjD,UAAA,WAEA,IAIAxH,GACAuK,EAEAC,EACAE,EARAjG,EAAA3N,EAAA,IACAqR,EAAArR,EAAA,IACAuJ,EAAAvJ,EAAA,IAqBAmJ,EAAAI,EAAAoB,CA0CApB,GAAAoH,MAAAwD,GAQAC,aACA9J,IAAA,WACA,MAAA9I,MAAAqS,IAAArS,KAAAqS,EAAAtK,EAAA8K,QAAA7S,KAAAsJ,aAWA6I,EAAA9C,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,IACAA,EAAAK,SACAL,EAAA0B,QACAxJ,SAAA8H,EAAAO,KACAP,EAAAT,QACAS,EAAAyJ,SACAvR,SAAA8H,EAAAoI,cAWAU,EAAA5C,SAAA,SAAA/M,EAAA6G,GACA,MAAA,IAAA8I,GAAA3P,EAAA6G,EAAAyC,SAAAiH,QAAA1J,EAAAC,SAMAqJ,EAAAnD,OAAA,WACA,OACA1D,QAAA9L,KAAA8L,QACAxC,OAAAkJ,EAAAxS,KAAAgT,oBAmBAb,EAAAK,YAAAA,EAOAG,EAAAI,QAAA,SAAAE,GACA,GAAAC,GAAAlT,IAYA,OAXAiT,KACAf,GACAF,IACA9O,OAAAD,KAAAgQ,GAAA9K,QAAA,SAAAgL,GAEA,IAAA,GADA7J,GAAA2J,EAAAE,GACArS,EAAA,EAAAA,EAAAoR,EAAAlT,SAAA8B,EACA,GAAAoR,EAAApR,GAAAuO,SAAA/F,GACA,MAAA4J,GAAAzD,IAAAyC,EAAApR,GAAAyO,SAAA4D,EAAA7J,GACA,MAAA3B,GAAA,UAAAwL,EAAA,YAAAf,MAGApS,MAQA2S,EAAA7J,IAAA,SAAAtG,GACA,MAAAjB,UAAAvB,KAAAsJ,OACA,KACAtJ,KAAAsJ,OAAA9G,IAAA,MAUAmQ,EAAAS,QAAA,SAAA5Q,GACA,GAAAxC,KAAAsJ,QAAAtJ,KAAAsJ,OAAA9G,YAAA2J,GACA,MAAAnM,MAAAsJ,OAAA9G,GAAAuI,MACA,MAAApM,OAAA,iBAUAgU,EAAAlD,IAAA,SAAAyB,GAKA,GAJAgB,GACAF,KAGAd,GAAAgB,EAAAnJ,QAAAmI,EAAAvM,aAAA,EACA,KAAAgD,GAAA,SAAAyK,EAEA,IAAAlB,YAAArB,IAAAtO,SAAA2P,EAAA1M,OACA,KAAAmD,GAAA,SAAA,6CAEA,IAAA3H,KAAAsJ,OAEA,CACA,GAAAvH,GAAA/B,KAAA8I,IAAAoI,EAAA1O,KACA,IAAAT,EAAA,CAEA,KAAAA,YAAAoQ,IAAAjB,YAAAiB,KAAApQ,YAAA2F,IAAA3F,YAAAkQ,GAYA,KAAAtT,OAAA,mBAAAuS,EAAA1O,KAAA,QAAAxC,KATA,KAAA,GADAsJ,GAAAvH,EAAAiR,iBACAvU,EAAA,EAAAA,EAAA6K,EAAAtK,SAAAP,EACAyS,EAAAzB,IAAAnG,EAAA7K,GACAuB,MAAA4P,OAAA7N,GACA/B,KAAAsJ,SACAtJ,KAAAsJ,WACA4H,EAAAmC,WAAAtR,EAAA+J,SAAA,QAbA9L,MAAAsJ,SAsBA,OAFAtJ,MAAAsJ,OAAA4H,EAAA1O,MAAA0O,EACAA,EAAAoC,MAAAtT,MACA+O,EAAA/O,OAUA2S,EAAA/C,OAAA,SAAAsB,GAGA,KAAAA,YAAArC,IACA,KAAAlH,GAAA,SAAA,qBAEA,IAAAuJ,EAAAN,SAAA5Q,OAAAA,KAAAsJ,OACA,KAAA3K,OAAAuS,EAAA,uBAAAlR,KAMA,cAJAA,MAAAsJ,OAAA4H,EAAA1O,MACAU,OAAAD,KAAAjD,KAAAsJ,QAAAtK,SACAgB,KAAAsJ,OAAA/H,QACA2P,EAAAqC,SAAAvT,MACA+O,EAAA/O,OASA2S,EAAAa,OAAA,SAAA3O,EAAAwE,GACAtB,EAAA2H,SAAA7K,GACAA,EAAAA,EAAAqB,MAAA,KACA1F,MAAA6H,QAAAxD,KACAwE,EAAAxE,EACAA,EAAAtD,OAEA,IAAAkS,GAAAzT,IACA,IAAA6E,EACA,KAAAA,EAAA7F,OAAA,GAAA,CACA,GAAA0U,GAAA7O,EAAAwB,OACA,IAAAoN,EAAAnK,QAAAmK,EAAAnK,OAAAoK,IAEA,GADAD,EAAAA,EAAAnK,OAAAoK,KACAD,YAAAtB,IACA,KAAAxT,OAAA,iDAEA8U,GAAAhE,IAAAgE,EAAA,GAAAtB,GAAAuB,IAIA,MAFArK,IACAoK,EAAAV,QAAA1J,GACAoK,GAMAd,EAAAhT,QAAA,WAEA+H,IACAA,EAAAlJ,EAAA,KAEAyT,IACAvK,EAAAlJ,EAAA,IAMA,KAAA,GADA8K,GAAAtJ,KAAAgT,iBACAvU,EAAA,EAAAA,EAAA6K,EAAAtK,SAAAP,EACA,GAAA,SAAAwD,KAAAqH,EAAA7K,GAAA+D,MAAA,CACA,GAAA8G,EAAA7K,YAAAiJ,IAAA4B,EAAA7K,YAAAwT,GACAjS,KAAAsJ,EAAA7K,GAAA+D,MAAA8G,EAAA7K,OACA,CAAA,KAAA6K,EAAA7K,YAAA0N,IAGA,QAFAnM,MAAAsJ,EAAA7K,GAAA+D,MAAA8G,EAAA7K,GAAAsM,OAGA/K,KAAAsS,EAAA9S,KAAA8J,EAAA7K,GAAA+D,MAGA,MAAAqM,GAAA5K,UAAAtE,QAAAZ,KAAAiB,OAOA2S,EAAAgB,WAAA,WAEA,IADA,GAAArK,GAAAtJ,KAAAgT,iBAAAvU,EAAA,EACAA,EAAA6K,EAAAtK,QACAsK,EAAA7K,YAAA0T,GACA7I,EAAA7K,KAAAkV,aAEArK,EAAA7K,KAAAkB,SACA,OAAAgT,GAAAhT,QAAAZ,KAAAiB,OAUA2S,EAAA9B,OAAA,SAAAhM,EAAA+O,EAAAC,GAKA,GAJA,iBAAAD,KACAC,EAAAD,EACAA,EAAArS,QAEAwG,EAAA2H,SAAA7K,IAAAA,EAAA7F,OACA6F,EAAAA,EAAAqB,MAAA,SACA,KAAArB,EAAA7F,OACA,MAAA,KAEA,IAAA,KAAA6F,EAAA,GACA,MAAA7E,MAAA8T,UAAAjD,OAAAhM,EAAA8B,MAAA,GAAAiN,EAEA,IAAAG,GAAA/T,KAAA8I,IAAAjE,EAAA,GACA,OAAAkP,IAAA,IAAAlP,EAAA7F,UAAA4U,GAAAG,YAAAH,KAAAG,YAAA5B,KAAA4B,EAAAA,EAAAlD,OAAAhM,EAAA8B,MAAA,GAAAiN,GAAA,IACAG,EAEA,OAAA/T,KAAA4Q,QAAAiD,EACA,KACA7T,KAAA4Q,OAAAC,OAAAhM,EAAA+O,IAqBAjB,EAAAqB,WAAA,SAAAnP,GAGA6C,IACAA,EAAAlJ,EAAA,IAEA,IAAAuV,GAAA/T,KAAA6Q,OAAAhM,EAAA6C,EACA,KAAAqM,EACA,KAAApV,OAAA,eACA,OAAAoV,IAUApB,EAAAsB,cAAA,SAAApP,GAGAoN,IACAA,EAAAzT,EAAA,IAEA,IAAAuV,GAAA/T,KAAA6Q,OAAAhM,EAAAoN,EACA,KAAA8B,EACA,KAAApV,OAAA,kBACA,OAAAoV,IAUApB,EAAAuB,WAAA,SAAArP,GACA,GAAAkP,GAAA/T,KAAA6Q,OAAAhM,EAAAsH,EACA,KAAA4H,EACA,KAAApV,OAAA,eACA,OAAAoV,GAAAhJ,oECjaA,YAoBA,SAAA8D,GAAArM,EAAAsJ,GAGA,IAAA/D,EAAA2H,SAAAlN,GACA,KAAAmF,GAAA,OAEA,IAAAmE,IAAA/D,EAAAS,SAAAsD,GACA,KAAAnE,GAAA,UAAA,YAMA3H,MAAA8L,QAAAA,EAMA9L,KAAAwC,KAAAA,EAMAxC,KAAA4Q,OAAA,KAMA5Q,KAAA0Q,UAAA,EAlDAxR,EAAAJ,QAAA+P,CAEA,IAAA9G,GAAAvJ,EAAA,GAEAqQ,GAAAK,UAAA,mBACAL,EAAArK,OAAAuD,EAAAvD,MAEA,IAAA2P,GAEAxM,EAAAI,EAAAoB,EA6CAiL,EAAAvF,EAAA5K,SAEA8D,GAAAoH,MAAAiF,GAQAC,MACAvL,IAAA,WAEA,IADA,GAAA2K,GAAAzT,KACA,OAAAyT,EAAA7C,QACA6C,EAAAA,EAAA7C,MACA,OAAA6C,KAUAa,UACAxL,IAAAsL,EAAAG,YAAA,WAGA,IAFA,GAAA1P,IAAA7E,KAAAwC,MACAiR,EAAAzT,KAAA4Q,OACA6C,GACA5O,EAAA2P,QAAAf,EAAAjR,MACAiR,EAAAA,EAAA7C,MAEA,OAAA/L,GAAAnC,KAAA,SAUA0R,EAAA5E,OAAA,WACA,KAAA7Q,UAQAyV,EAAAd,MAAA,SAAA1C,GACA5Q,KAAA4Q,QAAA5Q,KAAA4Q,SAAAA,GACA5Q,KAAA4Q,OAAAhB,OAAA5P,MACAA,KAAA4Q,OAAAA,EACA5Q,KAAA0Q,UAAA,CACA,IAAA2D,GAAAzD,EAAAkD,SACAK,KACAA,EAAA3V,EAAA,KACA6V,YAAAF,IACAE,EAAAI,EAAAzU,OAQAoU,EAAAb,SAAA,SAAA3C,GACA,GAAAyD,GAAAzD,EAAAkD,SACAK,KACAA,EAAA3V,EAAA,KACA6V,YAAAF,IACAE,EAAAK,EAAA1U,MACAA,KAAA4Q,OAAA,KACA5Q,KAAA0Q,UAAA,GAOA0D,EAAAzU,QAAA,WACA,GAAAK,KAAA0Q,SACA,MAAA1Q,KACA,IAAAqU,GAAArU,KAAA8T,SAKA,OAJAK,KACAA,EAAA3V,EAAA,KACA6V,YAAAF,KACAnU,KAAA0Q,UAAA,GACA1Q,MAQAoU,EAAA7D,UAAA,SAAA/N,GACA,GAAAxC,KAAA8L,QACA,MAAA9L,MAAA8L,QAAAtJ,IAWA4R,EAAA5D,UAAA,SAAAhO,EAAAyG,EAAAwH,GAGA,MAFAA,IAAAzQ,KAAA8L,SAAAvK,SAAAvB,KAAA8L,QAAAtJ,MACAxC,KAAA8L,UAAA9L,KAAA8L,aAAAtJ,GAAAyG,GACAjJ,MASAoU,EAAAf,WAAA,SAAAvH,EAAA2E,GAKA,MAJA3E,IACA5I,OAAAD,KAAA6I,GAAA3D,QAAA,SAAA3F,GACAxC,KAAAwQ,UAAAhO,EAAAsJ,EAAAtJ,GAAAiO,IACAzQ,MACAA,MAOAoU,EAAApH,SAAA,WACA,GAAAkC,GAAAlP,KAAA2E,YAAAuK,UACAoF,EAAAtU,KAAAuU,aACA,OAAAD,GAAAtV,OACAkQ,EAAA,IAAAoF,EACApF,uCCpMA,YAuBA,SAAAyF,GAAAnS,EAAAoS,EAAA9I,GAQA,GAPAtL,MAAA6H,QAAAuM,KACA9I,EAAA8I,EACAA,EAAArT,QAEAsN,EAAA9P,KAAAiB,KAAAwC,EAAAsJ,GAGA8I,IAAApU,MAAA6H,QAAAuM,GACA,KAAAjN,GAAA,aAAA,WAMA3H,MAAA6U,OAAA9M,EAAA+M,QAAA9U,KAAAwC,MAMAxC,KAAA4I,MAAAgM,MAOA5U,KAAA+U,KAoDA,QAAAC,GAAApM,GACAA,EAAAgI,QACAhI,EAAAmM,EAAA5M,QAAA,SAAAC,GACAA,EAAAwI,QACAhI,EAAAgI,OAAAnB,IAAArH,KA1GAlJ,EAAAJ,QAAA6V,CAEA,IAAA9F,GAAArQ,EAAA,IAEAyW,EAAApG,EAAArK,OAAAmQ,EAEAA,GAAAzF,UAAA,OAEA,IAAAW,GAAArR,EAAA,IACAuJ,EAAAvJ,EAAA,IAEAmJ,EAAAI,EAAAoB,CAgDApB,GAAAc,KAAAoM,EAAA,eACAnM,IAAA,WACA,MAAA9I,MAAA+U,KASAJ,EAAAtF,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,EAAAT,QAUA+L,EAAApF,SAAA,SAAA/M,EAAA6G,GACA,MAAA,IAAAsL,GAAAnS,EAAA6G,EAAAT,MAAAS,EAAAyC,UAMAmJ,EAAAzF,OAAA,WACA,OACA5G,MAAA5I,KAAA4I,MACAkD,QAAA9L,KAAA8L,UAwBAmJ,EAAAxF,IAAA,SAAArH,GAGA,KAAAA,YAAAyH,IACA,KAAAlI,GAAA,QAAA,UAQA,OANAS,GAAAwI,QACAxI,EAAAwI,OAAAhB,OAAAxH,GACApI,KAAA4I,MAAApJ,KAAA4I,EAAA5F,MACAxC,KAAA+U,EAAAvV,KAAA4I,GACAA,EAAAqG,OAAAzO,KACAgV,EAAAhV,MACAA,MAQAiV,EAAArF,OAAA,SAAAxH,GAGA,KAAAA,YAAAyH,IACA,KAAAlI,GAAA,QAAA,UAEA,IAAAuN,GAAAlV,KAAA+U,EAAAhM,QAAAX,EAEA,IAAA8M,EAAA,EACA,KAAAvW,OAAAyJ,EAAA,uBAAApI,KASA,OAPAA,MAAA+U,EAAAzQ,OAAA4Q,EAAA,GACAA,EAAAlV,KAAA4I,MAAAG,QAAAX,EAAA5F,MACA0S,GAAA,GACAlV,KAAA4I,MAAAtE,OAAA4Q,EAAA,GACA9M,EAAAwI,QACAxI,EAAAwI,OAAAhB,OAAAxH,GACAA,EAAAqG,OAAA,KACAzO,MAMAiV,EAAA3B,MAAA,SAAA1C,GACA/B,EAAA5K,UAAAqP,MAAAvU,KAAAiB,KAAA4Q,GACAoE,EAAAhV,OAMAiV,EAAA1B,SAAA,SAAA3C,GACA5Q,KAAA+U,EAAA5M,QAAA,SAAAC,GACAA,EAAAwI,QACAxI,EAAAwI,OAAAhB,OAAAxH,KAEAyG,EAAA5K,UAAAsP,SAAAxU,KAAAiB,KAAA4Q,8CC7KA,YAeA,SAAAuE,GAAAC,GACA,MAAA,2BAAAnT,KAAAmT,GAGA,QAAAC,GAAAD,GACA,MAAA,mCAAAnT,KAAAmT,GAGA,QAAAE,GAAAF,GACA,MAAA,iCAAAnT,KAAAmT,GAGA,QAAAG,GAAAH,GACA,MAAA,QAAAA,EAAA,KAAAA,EAAAtF,cA8BA,QAAA0F,GAAA3S,EAAAwR,EAAAvI,GA4BA,QAAA2J,GAAAL,EAAA5S,GACA,GAAAkT,GAAAF,EAAAE,QAEA,OADAF,GAAAE,SAAA,KACA/W,MAAA,YAAA6D,GAAA,SAAA,KAAA4S,EAAA,OAAAM,EAAAA,EAAA,KAAA,IAAA,QAAAC,EAAAjU,OAAA,KAGA,QAAAkU,KACA,GACAR,GADArK,IAEA,GAAA,CACA,GAAA,OAAAqK,EAAAS,MAAA,MAAAT,EACA,KAAAK,GAAAL,EACArK,GAAAvL,KAAAqW,KACAC,EAAAV,GACAA,EAAAW,UACA,MAAAX,GAAA,MAAAA,EACA,OAAArK,GAAArI,KAAA,IAGA,QAAAsT,GAAAC,GACA,GAAAb,GAAAS,GACA,QAAAN,EAAAH,IACA,IAAA,IACA,IAAA,IAEA,MADA5V,GAAA4V,GACAQ,GACA,KAAA,OACA,OAAA,CACA,KAAA,QACA,OAAA,EAEA,IACA,MAAAM,GAAAd,GACA,MAAApX,GACA,GAAAiY,GAAAZ,EAAAD,GACA,MAAAA,EACA,MAAAK,GAAAL,EAAA,UAIA,QAAAe,KACA,GAAAvV,GAAAwV,EAAAP,KACAhV,EAAAD,CAIA,OAHAkV,GAAA,MAAA,KACAjV,EAAAuV,EAAAP,MACAC,EAAA,MACAlV,EAAAC,GAGA,QAAAqV,GAAAd,GACA,GAAAiB,GAAA,CACA,OAAAjB,EAAAhV,OAAA,KACAiW,GAAA,EACAjB,EAAAA,EAAAkB,UAAA,GAEA,IAAAC,GAAAhB,EAAAH,EACA,QAAAmB,GACA,IAAA,MAAA,MAAAF,IAAAG,EAAAA,EACA,KAAA,MAAA,MAAAC,IACA,KAAA,IAAA,MAAA,GAEA,GAAA,gBAAAxU,KAAAmT,GACA,MAAAiB,GAAAK,SAAAtB,EAAA,GACA,IAAA,kBAAAnT,KAAAsU,GACA,MAAAF,GAAAK,SAAAtB,EAAA,GACA,IAAA,YAAAnT,KAAAmT,GACA,MAAAiB,GAAAK,SAAAtB,EAAA,EACA,IAAA,gDAAAnT,KAAAsU,GACA,MAAAF,GAAAM,WAAAvB,EACA,MAAAK,GAAAL,EAAA,UAGA,QAAAgB,GAAAhB,EAAAwB,GACA,GAAAL,GAAAhB,EAAAH,EACA,QAAAmB,GACA,IAAA,MAAA,MAAA,UACA,KAAA,IAAA,MAAA,GAEA,GAAA,MAAAnB,EAAAhV,OAAA,KAAAwW,EACA,KAAAnB,GAAAL,EAAA,KACA,IAAA,kBAAAnT,KAAAmT,GACA,MAAAsB,UAAAtB,EAAA,GACA,IAAA,oBAAAnT,KAAAsU,GACA,MAAAG,UAAAtB,EAAA,GACA,IAAA,cAAAnT,KAAAmT,GACA,MAAAsB,UAAAtB,EAAA,EACA,MAAAK,GAAAL,EAAA,MAGA,QAAAyB,KACA,GAAAtV,SAAAuV,EACA,KAAArB,GAAA,UAEA,IADAqB,EAAAjB,KACAR,EAAAyB,GACA,KAAArB,GAAAqB,EAAA,OACArD,IAAAA,GAAAD,OAAAsD,GACAhB,EAAA,KAGA,QAAAiB,KACA,GACAC,GADA5B,EAAAW,GAEA,QAAAX,GACA,IAAA,OACA4B,EAAAC,IAAAA,MACApB,GACA,MACA,KAAA,SACAA,GAEA,SACAmB,EAAAE,IAAAA,MAGA9B,EAAAQ,IACAE,EAAA,KACAkB,EAAAxX,KAAA4V,GAGA,QAAA+B,KAIA,GAHArB,EAAA,KACAsB,EAAA7B,EAAAK,KACAyB,EAAA,WAAAD,GACAC,GAAA,WAAAD,EACA,KAAA3B,GAAA2B,EAAA,SACAtB,GAAA,KAGA,QAAAwB,GAAA1G,EAAAwE,GACA,OAAAA,GAEA,IAAA,SAGA,MAFAmC,GAAA3G,EAAAwE,GACAU,EAAA,MACA,CAEA,KAAA,UAEA,MADA0B,GAAA5G,EAAAwE,IACA,CAEA,KAAA,OAEA,MADAqC,GAAA7G,EAAAwE,IACA,CAEA,KAAA,UAEA,MADAsC,GAAA9G,EAAAwE,IACA,CAEA,KAAA,SAEA,MADAuC,GAAA/G,EAAAwE,IACA,EAEA,OAAA,EAGA,QAAAoC,GAAA5G,EAAAwE,GACA,GAAA5S,GAAAqT,GACA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,YACA,IAAAiF,GAAA,GAAAC,GAAAlF,EACA,IAAAsT,EAAA,KAAA,GAAA,CACA,KAAA,OAAAV,EAAAS,MAAA,CACA,GAAAU,GAAAhB,EAAAH,EACA,KAAAkC,EAAA7P,EAAA2N,GAEA,OAAAmB,GAEA,IAAA,MACAqB,EAAAnQ,EAAA8O,EACA,MAEA,KAAA,WACA,IAAA,WACA,IAAA,WACAsB,EAAApQ,EAAA8O,EACA,MAEA,KAAA,QACAuB,EAAArQ,EAAA8O,EACA,MAEA,KAAA,cACA9O,EAAAsQ,aAAAtQ,EAAAsQ,gBAAAvY,KAAA2W,EAAA1O,EAAA8O,GACA,MAEA,KAAA,YACA9O,EAAAuQ,WAAAvQ,EAAAuQ,cAAAxY,KAAA2W,EAAA1O,EAAA8O,GACA,MAEA,SACA,IAAAc,IAAAhC,EAAAD,GACA,KAAAK,GAAAL,EACA5V,GAAA4V,GACAyC,EAAApQ,EAAA,aAIAqO,EAAA,KAAA,OAEAA,GAAA,IACAlF,GAAAnB,IAAAhI,GAGA,QAAAoQ,GAAAjH,EAAA1F,EAAA1G,GACA,GAAAiD,GAAAoO,GACA,IAAA,UAAAN,EAAA9N,GAEA,WADAwQ,GAAArH,EAAA1F,EAGA,KAAAmK,EAAA5N,GACA,KAAAgO,GAAAhO,EAAA,OACA,IAAAjF,GAAAqT,GACA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,OACAA,GAAA0V,GAAA1V,GACAsT,EAAA,IACA,IAAAlM,GAAAwM,EAAAP,KACAzN,EAAA+P,EAAA,GAAAtI,GAAArN,EAAAoH,EAAAnC,EAAAyD,EAAA1G,GAGA4D,GAAA6D,UAAA1K,SAAAuM,EAAAE,OAAAvG,KAAA4P,GACAjP,EAAAoI,UAAA,UAAA,GAAA,GACAI,EAAAnB,IAAArH,GAGA,QAAA6P,GAAArH,EAAA1F,GACA,GAAA1I,GAAAqT,GACA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,OACA,IAAA4V,GAAArQ,EAAAsQ,QAAA7V,EACAA,KAAA4V,IACA5V,EAAAuF,EAAA+M,QAAAtS,IACAsT,EAAA,IACA,IAAAlM,GAAAwM,EAAAP,KACApO,EAAA,GAAAC,GAAAlF,EACAiF,GAAAkG,OAAA,CACA,IAAAvF,GAAA,GAAAyH,GAAAuI,EAAAxO,EAAApH,EAAA0I,EAEA,KADA4K,EAAA,KACA,OAAAV,GAAAS,MACA,OAAAT,GAAAG,EAAAH,KACA,IAAA,SACAmC,EAAA9P,EAAA2N,IACAU,EAAA,IACA,MACA,KAAA,WACA,IAAA,WACA,IAAA,WACA+B,EAAApQ,EAAA2N,GACA,MAGA,SACA,KAAAK,GAAAL,IAGAU,EAAA,KAAA,GACAlF,EAAAnB,IAAAhI,GAAAgI,IAAArH,GAGA,QAAAwP,GAAAhH,GACAkF,EAAA,IACA,IAAA1L,GAAAyL,GAGA,IAAAtU,SAAAuM,EAAAU,OAAApE,GACA,KAAAqL,GAAArL,EAAA,OACA0L,GAAA,IACA,IAAAwC,GAAAzC,GAEA,KAAAR,EAAAiD,GACA,KAAA7C,GAAA6C,EAAA,OACAxC,GAAA,IACA,IAAAtT,GAAAqT,GAEA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,OAEAA,GAAA0V,GAAA1V,GACAsT,EAAA,IACA,IAAAlM,GAAAwM,EAAAP,KACAzN,EAAA+P,EAAA,GAAA9H,GAAA7N,EAAAoH,EAAAQ,EAAAkO,GACA1H,GAAAnB,IAAArH,GAGA,QAAA0P,GAAAlH,EAAAwE,GACA,GAAA5S,GAAAqT,GAGA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,OAEAA,GAAA0V,GAAA1V,EACA,IAAAoG,GAAA,GAAA+L,GAAAnS,EACA,IAAAsT,EAAA,KAAA,GAAA,CACA,KAAA,OAAAV,EAAAS,MACA,WAAAT,GACAmC,EAAA3O,EAAAwM,GACAU,EAAA,OAEAtW,EAAA4V,GACAyC,EAAAjP,EAAA,YAGAkN,GAAA,KAAA,OAEAA,GAAA,IACAlF,GAAAnB,IAAA7G,GAGA,QAAA6O,GAAA7G,EAAAwE,GACA,GAAA5S,GAAAqT,GAGA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,OAEA,IAAAuI,MACAiE,EAAA,GAAA7C,GAAA3J,EAAAuI,EACA,IAAA+K,EAAA,KAAA,GAAA,CACA,KAAA,OAAAV,EAAAS,MACA,WAAAN,EAAAH,IACAmC,EAAAvI,EAAAoG,GACAU,EAAA,MAEAyC,EAAAvJ,EAAAoG,EAEAU,GAAA,KAAA,OAEAA,GAAA,IACAlF,GAAAnB,IAAAT,GAGA,QAAAuJ,GAAA3H,EAAAwE,GAGA,IAAAD,EAAAC,GACA,KAAAK,GAAAL,EAAA,OAEA,IAAA5S,GAAA4S,CACAU,GAAA,IACA,IAAA7M,GAAAmN,EAAAP,KAAA,EACAjF,GAAA7F,OAAAvI,GAAAyG,EACAkP,MAGA,QAAAZ,GAAA3G,EAAAwE,GACA,GAAAoD,GAAA1C,EAAA,KAAA,GACAtT,EAAAqT,GAGA,KAAAR,EAAA7S,GACA,KAAAiT,GAAAjT,EAAA,OAEAgW,KACA1C,EAAA,KACAtT,EAAA,IAAAA,EAAA,IACA4S,EAAAW,IACAT,EAAAF,KACA5S,GAAA4S,EACAS,MAGAC,EAAA,KACA2C,EAAA7H,EAAApO,GAGA,QAAAiW,GAAA7H,EAAApO,GACA,GAAAsT,EAAA,KAAA,GACA,KAAA,OAAAV,GAAAS,MAAA,CAGA,IAAAV,EAAAC,IACA,KAAAK,GAAAL,GAAA,OAEA5S,GAAAA,EAAA,IAAA4S,GACAU,EAAA,KAAA,GACAtF,EAAAI,EAAApO,EAAAwT,GAAA,IAEAyC,EAAA7H,EAAApO,OAGAgO,GAAAI,EAAApO,EAAAwT,GAAA,IAIA,QAAAxF,GAAAI,EAAApO,EAAAyG,GACA2H,EAAAJ,UACAI,EAAAJ,UAAAhO,EAAAyG,GAEA2H,EAAApO,GAAAyG,EAGA,QAAAkP,GAAAvH,GACA,GAAAkF,EAAA,KAAA,GAAA,CACA,EACAyB,GAAA3G,EAAA,gBACAkF,EAAA,KAAA,GACAA,GAAA,KAGA,MADAA,GAAA,KACAlF,EAGA,QAAA8G,GAAA9G,EAAAwE,GAIA,GAHAA,EAAAS,KAGAV,EAAAC,GACA,KAAAK,GAAAL,EAAA,eAEA,IAAA5S,GAAA4S,EACAsD,EAAA,GAAAzG,GAAAzP,EACA,IAAAsT,EAAA,KAAA,GAAA,CACA,KAAA,OAAAV,EAAAS,MAAA,CACA,GAAAU,GAAAhB,EAAAH,EACA,QAAAmB,GACA,IAAA,SACAgB,EAAAmB,EAAAnC,GACAT,EAAA,IACA,MACA,KAAA,MACA6C,EAAAD,EAAAnC,EACA,MAGA,SACA,KAAAd,GAAAL,IAGAU,EAAA,KAAA,OAEAA,GAAA,IACAlF,GAAAnB,IAAAiJ,GAGA,QAAAC,GAAA/H,EAAAwE,GACA,GAAA3N,GAAA2N,EACA5S,EAAAqT,GAGA,KAAAV,EAAA3S,GACA,KAAAiT,GAAAjT,EAAA,OACA,IAAAiP,GAAAE,EACAD,EAAAE,CACAkE,GAAA,IACA,IAAA8C,EAIA,IAHA9C,EAAA8C,EAAA,UAAA,KACAjH,GAAA,IAEA0D,EAAAD,EAAAS,KACA,KAAAJ,GAAAL,EAMA,IALA3D,EAAA2D,EACAU,EAAA,KAAAA,EAAA,WAAAA,EAAA,KACAA,EAAA8C,GAAA,KACAhH,GAAA,IAEAyD,EAAAD,EAAAS,KACA,KAAAJ,GAAAL,EAEA1D,GAAA0D,EACAU,EAAA,IACA,IAAA+C,GAAA,GAAArH,GAAAhP,EAAAiF,EAAAgK,EAAAC,EAAAC,EAAAC,EACA,IAAAkE,EAAA,KAAA,GAAA,CACA,KAAA,OAAAV,EAAAS,MAAA,CACA,GAAAU,GAAAhB,EAAAH,EACA,QAAAmB,GACA,IAAA,SACAgB,EAAAsB,EAAAtC,GACAT,EAAA,IACA,MAGA,SACA,KAAAL,GAAAL,IAGAU,EAAA,KAAA,OAEAA,GAAA,IACAlF,GAAAnB,IAAAoJ,GAGA,QAAAlB,GAAA/G,EAAAwE,GACA,GAAA0D,GAAAjD,GAGA,KAAAR,EAAAyD,GACA,KAAArD,GAAAqD,EAAA,YAEA,IAAAhD,EAAA,KAAA,GAAA,CACA,KAAA,OAAAV,EAAAS,MAAA,CACA,GAAAU,GAAAhB,EAAAH,EACA,QAAAmB,GACA,IAAA,WACA,IAAA,WACA,IAAA,WACAsB,EAAAjH,EAAA2F,EAAAuC,EACA,MACA,SAEA,IAAAzB,IAAAhC,EAAAD,GACA,KAAAK,GAAAL,EACA5V,GAAA4V,GACAyC,EAAAjH,EAAA,WAAAkI,IAIAhD,EAAA,KAAA,OAEAA,GAAA,KAvhBAzB,YAAAF,GAGArI,IACAA,OAHAuI,EAAA,GAAAF,GACArI,EAAAuI,MAIA,IAOAyC,GACAI,EACAD,EACAG,EAVAzB,EAAAoD,EAAAlW,GACAgT,EAAAF,EAAAE,KACArW,EAAAmW,EAAAnW,KACAuW,EAAAJ,EAAAI,KACAD,EAAAH,EAAAG,KAEAkD,GAAA,EAKA3B,GAAA,CAEAhD,KACAA,EAAA,GAAAF,GAugBA,KArgBA,GAogBAiB,IApgBA3B,GAAAY,EAEA6D,GAAApM,EAAAmN,SAAA,SAAAzW,GAAA,MAAAA,IAAAuF,EAAAmR,UAmgBA,QAAA9D,GAAAS,MAAA,CACA,GAAAU,IAAAhB,EAAAH,GACA,QAAAmB,IAEA,IAAA,UAEA,IAAAyC,EACA,KAAAvD,GAAAL,GACAyB,IACA,MAEA,KAAA,SAEA,IAAAmC,EACA,KAAAvD,GAAAL,GACA2B,IACA,MAEA,KAAA,SAEA,IAAAiC,EACA,KAAAvD,GAAAL,GACA+B,IACA,MAEA,KAAA,SAEA,IAAA6B,EACA,KAAAvD,GAAAL,GACAmC,GAAA9D,GAAA2B,IACAU,EAAA,IACA,MAEA,SACA,GAAAwB,EAAA7D,GAAA2B,IAAA,CACA4D,GAAA,CACA,UAGA,KAAAvD,GAAAL,KAKA,MADAI,GAAAE,SAAA,MAEAyD,QAAArC,EACAI,QAAAA,EACAD,YAAAA,EACAG,OAAAA,EACA/C,KAAAA,GAvoBAnV,EAAAJ,QAAA0W,CAEA,IAAAuD,GAAAva,EAAA,IACA2V,EAAA3V,EAAA,IACAkJ,EAAAlJ,EAAA,IACAqR,EAAArR,EAAA,IACA6R,EAAA7R,EAAA,IACAmW,EAAAnW,EAAA,IACA2N,EAAA3N,EAAA,IACAyT,EAAAzT,EAAA,IACAgT,EAAAhT,EAAA,IACAsP,EAAAtP,EAAA,IACAuJ,EAAAvJ,EAAA,8FCbA,YAWA,SAAA4a,GAAAC,EAAAC,GACA,MAAAC,YAAA,uBAAAF,EAAAG,IAAA,OAAAF,GAAA,GAAA,MAAAD,EAAAnS,KASA,QAAAuS,GAAA9Y,GAMAX,KAAAgH,IAAArG,EAMAX,KAAAwZ,IAAA,EAMAxZ,KAAAkH,IAAAvG,EAAA3B,OAoEA,QAAA0a,KAEA,GAAAC,GAAA,GAAAhN,GAAA,EAAA,GACAlO,EAAA,CACA,IAAAuB,KAAAkH,IAAAlH,KAAAwZ,IAAA,EAAA,CACA,IAAA/a,EAAA,EAAAA,EAAA,IAAAA,EAGA,GADAkb,EAAAC,IAAAD,EAAAC,IAAA,IAAA5Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,EAAA/a,KAAA,EACAuB,KAAAgH,IAAAhH,KAAAwZ,OAAA,IACA,MAAAG,EAKA,IAFAA,EAAAC,IAAAD,EAAAC,IAAA,IAAA5Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,MAAA,EACAG,EAAAE,IAAAF,EAAAE,IAAA,IAAA7Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,KAAA,EACAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IACA,MAAAG,OACA,CACA,IAAAlb,EAAA,EAAAA,EAAA,IAAAA,EAAA,CAEA,GAAAuB,KAAAwZ,KAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAGA,IADA2Z,EAAAC,IAAAD,EAAAC,IAAA,IAAA5Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,EAAA/a,KAAA,EACAuB,KAAAgH,IAAAhH,KAAAwZ,OAAA,IACA,MAAAG,GAGA,GAAA3Z,KAAAwZ,KAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAIA,IAFA2Z,EAAAC,IAAAD,EAAAC,IAAA,IAAA5Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,MAAA,EACAG,EAAAE,IAAAF,EAAAE,IAAA,IAAA7Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,KAAA,EACAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IACA,MAAAG,GAEA,GAAA3Z,KAAAkH,IAAAlH,KAAAwZ,IAAA,GACA,IAAA/a,EAAA,EAAAA,EAAA,IAAAA,EAGA,GADAkb,EAAAE,IAAAF,EAAAE,IAAA,IAAA7Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,EAAA/a,EAAA,KAAA,EACAuB,KAAAgH,IAAAhH,KAAAwZ,OAAA,IACA,MAAAG,OAGA,KAAAlb,EAAA,EAAAA,EAAA,IAAAA,EAAA,CAEA,GAAAuB,KAAAwZ,KAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAGA,IADA2Z,EAAAE,IAAAF,EAAAE,IAAA,IAAA7Z,KAAAgH,IAAAhH,KAAAwZ,OAAA,EAAA/a,EAAA,KAAA,EACAuB,KAAAgH,IAAAhH,KAAAwZ,OAAA,IACA,MAAAG,GAGA,KAAAhb,OAAA;CAGA,QAAAmb,KACA,MAAAJ,GAAA3a,KAAAiB,MAAA+Z,SAGA,QAAAC,KACA,MAAAN,GAAA3a,KAAAiB,MAAA6M,WAGA,QAAAoN,KACA,MAAAP,GAAA3a,KAAAiB,MAAA+Z,QAAA,GAGA,QAAAG,KACA,MAAAR,GAAA3a,KAAAiB,MAAA6M,UAAA,GAGA,QAAAsN,KACA,MAAAT,GAAA3a,KAAAiB,MAAAoa,WAAAL,SAGA,QAAAM,KACA,MAAAX,GAAA3a,KAAAiB,MAAAoa,WAAAvN,WAkCA,QAAAyN,GAAAtT,EAAAnG,GACA,OAAAmG,EAAAnG,EAAA,GACAmG,EAAAnG,EAAA,IAAA,EACAmG,EAAAnG,EAAA,IAAA,GACAmG,EAAAnG,EAAA,IAAA,MAAA,EA2BA,QAAA0Z,KAGA,GAAAva,KAAAwZ,IAAA,EAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAAA,EAEA,OAAA,IAAA2M,GAAA2N,EAAAta,KAAAgH,IAAAhH,KAAAwZ,KAAA,GAAAc,EAAAta,KAAAgH,IAAAhH,KAAAwZ,KAAA,IAGA,QAAAgB,KACA,MAAAD,GAAAxb,KAAAiB,MAAA+Z,QAAA,GAGA,QAAAU,KACA,MAAAF,GAAAxb,KAAAiB,MAAA6M,UAAA,GAGA,QAAA6N,KACA,MAAAH,GAAAxb,KAAAiB,MAAAoa,WAAAL,SAGA,QAAAY,KACA,MAAAJ,GAAAxb,KAAAiB,MAAAoa,WAAAvN,WAqNA,QAAA+N,KACA7S,EAAA+E,MACA+N,EAAAC,MAAAhB,EACAe,EAAAE,OAAAd,EACAY,EAAAG,OAAAb,EACAU,EAAAI,QAAAT,EACAK,EAAAK,SAAAR,IAEAG,EAAAC,MAAAd,EACAa,EAAAE,OAAAb,EACAW,EAAAG,OAAAX,EACAQ,EAAAI,QAAAR,EACAI,EAAAK,SAAAP,GA/eAzb,EAAAJ,QAAA2a,CAEA,IAEA0B,GAFApT,EAAAvJ,EAAA,IAIAmO,EAAA5E,EAAA4E,SACA1F,EAAAc,EAAAd,IAwCAwS,GAAA/U,OAAAqD,EAAAoF,OACA,SAAAxM,GAGA,MAFAwa,KACAA,EAAA3c,EAAA,MACAib,EAAA/U,OAAA,SAAA/D,GACA,MAAA,IAAAwa,GAAAxa,KACAA,IAEA,SAAAA,GACA,MAAA,IAAA8Y,GAAA9Y,GAIA,IAAAka,GAAApB,EAAAxV,SAEA4W,GAAAO,EAAArT,EAAAvH,MAAAyD,UAAAoX,UAAAtT,EAAAvH,MAAAyD,UAAA0C,MAOAkU,EAAAS,OAAA,WACA,GAAArS,GAAA,UACA,OAAA,YACA,GAAAA,GAAA,IAAAjJ,KAAAgH,IAAAhH,KAAAwZ,QAAA,EAAAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IAAA,MAAAvQ,EACA,IAAAA,GAAAA,GAAA,IAAAjJ,KAAAgH,IAAAhH,KAAAwZ,OAAA,KAAA,EAAAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IAAA,MAAAvQ,EACA,IAAAA,GAAAA,GAAA,IAAAjJ,KAAAgH,IAAAhH,KAAAwZ,OAAA,MAAA,EAAAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IAAA,MAAAvQ,EACA,IAAAA,GAAAA,GAAA,IAAAjJ,KAAAgH,IAAAhH,KAAAwZ,OAAA,MAAA,EAAAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IAAA,MAAAvQ,EACA,IAAAA,GAAAA,GAAA,GAAAjJ,KAAAgH,IAAAhH,KAAAwZ,OAAA,MAAA,EAAAxZ,KAAAgH,IAAAhH,KAAAwZ,OAAA,IAAA,MAAAvQ,EAGA,KAAAjJ,KAAAwZ,KAAA,GAAAxZ,KAAAkH,IAEA,KADAlH,MAAAwZ,IAAAxZ,KAAAkH,IACAkS,EAAApZ,KAAA,GAEA,OAAAiJ,OAQA4R,EAAAU,MAAA,WACA,MAAA,GAAAvb,KAAAsb,UAOAT,EAAAW,OAAA,WACA,GAAAvS,GAAAjJ,KAAAsb,QACA,OAAArS,KAAA,IAAA,EAAAA,GAAA,GAgHA4R,EAAAY,KAAA,WACA,MAAA,KAAAzb,KAAAsb,UAcAT,EAAAa,QAAA,WAGA,GAAA1b,KAAAwZ,IAAA,EAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAAA,EAEA,OAAAsa,GAAAta,KAAAgH,IAAAhH,KAAAwZ,KAAA,IAOAqB,EAAAc,SAAA,WACA,GAAA1S,GAAAjJ,KAAA0b,SACA,OAAAzS,KAAA,IAAA,EAAAA,GA8CA,IAAA2S,GAAA,mBAAAC,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAE,EAAA,GAAAC,YAAAF,EAAAnb,OAEA,OADAmb,GAAA,IAAA,EACAC,EAAA,GACA,SAAA/U,EAAAwS,GAKA,MAJAuC,GAAA,GAAA/U,EAAAwS,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAsC,EAAA,IAEA,SAAA9U,EAAAwS,GAKA,MAJAuC,GAAA,GAAA/U,EAAAwS,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAsC,EAAA,OAGA,SAAA9U,EAAAwS,GACA,GAAAyC,GAAA3B,EAAAtT,EAAAwS,EAAA,GACAnD,EAAA,GAAA4F,GAAA,IAAA,EACAC,EAAAD,IAAA,GAAA,IACAE,EAAA,QAAAF,CACA,OAAA,OAAAC,EACAC,EACA1F,IACAJ,GAAAG,EAAAA,GACA,IAAA0F,EACA,sBAAA7F,EAAA8F,EACA9F,EAAAhW,KAAA+b,IAAA,EAAAF,EAAA,MAAAC,EAAA,SAQAtB,GAAAwB,MAAA,WAGA,GAAArc,KAAAwZ,IAAA,EAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAAA,EAEA,IAAAiJ,GAAA2S,EAAA5b,KAAAgH,IAAAhH,KAAAwZ,IAEA,OADAxZ,MAAAwZ,KAAA,EACAvQ,EAGA,IAAAqT,GAAA,mBAAAC,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAR,EAAA,GAAAC,YAAAQ,EAAA7b,OAEA,OADA6b,GAAA,IAAA,EACAT,EAAA,GACA,SAAA/U,EAAAwS,GASA,MARAuC,GAAA,GAAA/U,EAAAwS,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAgD,EAAA,IAEA,SAAAxV,EAAAwS,GASA,MARAuC,GAAA,GAAA/U,EAAAwS,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAuC,EAAA,GAAA/U,EAAAwS,EAAA,GACAgD,EAAA,OAGA,SAAAxV,EAAAwS,GACA,GAAAI,GAAAU,EAAAtT,EAAAwS,EAAA,GACAK,EAAAS,EAAAtT,EAAAwS,EAAA,GACAnD,EAAA,GAAAwD,GAAA,IAAA,EACAqC,EAAArC,IAAA,GAAA,KACAsC,EAAA,YAAA,QAAAtC,GAAAD,CACA,OAAA,QAAAsC,EACAC,EACA1F,IACAJ,GAAAG,EAAAA,GACA,IAAA0F,EACA,OAAA7F,EAAA8F,EACA9F,EAAAhW,KAAA+b,IAAA,EAAAF,EAAA,OAAAC,EAAA,kBAQAtB,GAAA4B,OAAA,WAGA,GAAAzc,KAAAwZ,IAAA,EAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,KAAA,EAEA,IAAAiJ,GAAAqT,EAAAtc,KAAAgH,IAAAhH,KAAAwZ,IAEA,OADAxZ,MAAAwZ,KAAA,EACAvQ,GAOA4R,EAAA3N,MAAA,WACA,GAAAlO,GAAAgB,KAAAsb,SACA1a,EAAAZ,KAAAwZ,IACA3Y,EAAAb,KAAAwZ,IAAAxa,CAGA,IAAA6B,EAAAb,KAAAkH,IACA,KAAAkS,GAAApZ,KAAAhB,EAGA,OADAgB,MAAAwZ,KAAAxa,EACA4B,IAAAC,EACA,GAAAb,MAAAgH,IAAArC,YAAA,GACA3E,KAAAob,EAAArc,KAAAiB,KAAAgH,IAAApG,EAAAC,IAOAga,EAAA3a,OAAA,WACA,GAAAgN,GAAAlN,KAAAkN,OACA,OAAAjG,GAAAE,KAAA+F,EAAA,EAAAA,EAAAlO,SAQA6b,EAAA/E,KAAA,SAAA9W,GACA,GAAA,gBAAAA,GAAA,CAEA,GAAAgB,KAAAwZ,IAAAxa,EAAAgB,KAAAkH,IACA,KAAAkS,GAAApZ,KAAAhB,EACAgB,MAAAwZ,KAAAxa,MAEA,GAEA,IAAAgB,KAAAwZ,KAAAxZ,KAAAkH,IACA,KAAAkS,GAAApZ,YACA,IAAAA,KAAAgH,IAAAhH,KAAAwZ,OAEA,OAAAxZ,OAQA6a,EAAA6B,SAAA,SAAAnO,GACA,OAAAA,GACA,IAAA,GACAvO,KAAA8V,MACA,MACA,KAAA,GACA9V,KAAA8V,KAAA,EACA,MACA,KAAA,GACA9V,KAAA8V,KAAA9V,KAAAsb,SACA,MACA,KAAA,GACA,OAAA,CACA,GAAA,KAAA/M,EAAA,EAAAvO,KAAAsb,UACA,KACAtb,MAAA0c,SAAAnO,GAEA,KACA,KAAA,GACAvO,KAAA8V,KAAA,EACA,MAGA,SACA,KAAAnX,OAAA,sBAAA4P,GAEA,MAAAvO,OAmBAyZ,EAAAkD,EAAA/B,EAEAA,wCCtfA,YAiBA,SAAAO,GAAAxa,GACA8Y,EAAA1a,KAAAiB,KAAAW,GAjBAzB,EAAAJ,QAAAqc,CAEA,IAAA1B,GAAAjb,EAAA,IAEAoe,EAAAzB,EAAAlX,UAAAf,OAAAwB,OAAA+U,EAAAxV,UACA2Y,GAAAjY,YAAAwW,CAEA,IAAApT,GAAAvJ,EAAA,GAaAuJ,GAAAoF,SACAyP,EAAAxB,EAAArT,EAAAoF,OAAAlJ,UAAA0C,OAKAiW,EAAA1c,OAAA,WACA,GAAAgH,GAAAlH,KAAAsb,QACA,OAAAtb,MAAAgH,IAAA6V,UAAA7c,KAAAwZ,IAAAxZ,KAAAwZ,IAAAnZ,KAAAyc,IAAA9c,KAAAwZ,IAAAtS,EAAAlH,KAAAkH,2CC7BA,YAsBA,SAAAiN,GAAArI,GACAqG,EAAApT,KAAAiB,KAAA,GAAA8L,GAMA9L,KAAA+c,YAMA/c,KAAAgd,SA2BA,QAAAC,MA0KA,QAAAC,GAAA9U,GACA,GAAA+U,GAAA/U,EAAAwI,OAAAC,OAAAzI,EAAA5D,OACA,IAAA2Y,EAAA,CACA,GAAAC,GAAA,GAAAvN,GAAAzH,EAAAmM,cAAAnM,EAAAwB,GAAAxB,EAAAX,KAAAW,EAAA8C,MAAA3J,QAAA6G,EAAA0D,QAIA,OAHAsR,GAAAlN,eAAA9H,EACAA,EAAA6H,eAAAmN,EACAD,EAAA1N,IAAA2N,IACA,EAEA,OAAA,EAhPAle,EAAAJ,QAAAqV,CAEA,IAAAhC,GAAA3T,EAAA,IAEA6e,EAAAlL,EAAA3N,OAAA2P,EAEAA,GAAAjF,UAAA,MAEA,IAIAsG,GAJA3F,EAAArR,EAAA,IACAuJ,EAAAvJ,EAAA,IACA4K,EAAA5K,EAAA,GAiCA2V,GAAA5E,SAAA,SAAAlG,EAAAgL,GAGA,MAFAA,KACAA,EAAA,GAAAF,IACAE,EAAAhB,WAAAhK,EAAAyC,SAAAiH,QAAA1J,EAAAC,SAWA+T,EAAAC,YAAAvV,EAAAlD,KAAAlF,QAaA0d,EAAAE,KAAA,QAAAA,GAAA7H,EAAA5J,EAAAhH,GAYA,QAAA0Y,GAAA3d,EAAAwU,GACA,GAAAvP,EAAA,CAEA,GAAA2Y,GAAA3Y,CACAA,GAAA,KACA2Y,EAAA5d,EAAAwU,IAMA,QAAAqJ,GAAAhI,EAAA7S,GACA,IAGA,GAFAkF,EAAA2H,SAAA7M,IAAA,MAAAA,EAAAzC,OAAA,KACAyC,EAAAc,KAAA6R,MAAA3S,IACAkF,EAAA2H,SAAA7M,GAEA,CACA2S,EAAAE,SAAAA,CACA,IAAAiI,GAAAnI,EAAA3S,EAAA+a,EAAA9R,EACA6R,GAAAzG,SACAyG,EAAAzG,QAAA/O,QAAA,SAAA3F,GACAoC,EAAAgZ,EAAAN,YAAA5H,EAAAlT,MAEAmb,EAAA1G,aACA0G,EAAA1G,YAAA9O,QAAA,SAAA3F,GACAoC,EAAAgZ,EAAAN,YAAA5H,EAAAlT,IAAA,SAVAob,GAAAvK,WAAAxQ,EAAAiJ,SAAAiH,QAAAlQ,EAAAyG,QAaA,MAAAzJ,GAEA,WADA2d,GAAA3d,GAGAge,GAAAC,GACAN,EAAA,KAAAI,GAIA,QAAAhZ,GAAA8Q,EAAAqI,GAGA,GAAAC,GAAAtI,EAAAuI,YAAA,mBACA,IAAAD,GAAA,EAAA,CACA,GAAAE,GAAAxI,EAAAY,UAAA0H,EACAE,KAAA9U,KACAsM,EAAAwI,GAIA,KAAAN,EAAAZ,MAAAjU,QAAA2M,IAAA,GAAA,CAKA,GAHAkI,EAAAZ,MAAAxd,KAAAkW,GAGAA,IAAAtM,GAUA,YATAyU,EACAH,EAAAhI,EAAAtM,EAAAsM,OAEAoI,EACAK,WAAA,aACAL,EACAJ,EAAAhI,EAAAtM,EAAAsM,OAOA,IAAAmI,EAAA,CACA,GAAAhb,EACA,KACAA,EAAAkF,EAAAhD,GAAAqZ,aAAA1I,GAAA1I,SAAA,QACA,MAAAnN,GAGA,YAFAke,GACAP,EAAA3d,IAGA6d,EAAAhI,EAAA7S,SAEAib,EACA/V,EAAAnD,MAAA8Q,EAAA,SAAA7V,EAAAgD,GAEA,KADAib,EACAhZ,EAEA,MAAAjF,QACAke,GACAP,EAAA3d,QAGA6d,GAAAhI,EAAA7S,MApGA2S,IACAA,EAAAhX,EAAA,KACA,kBAAAsN,KACAhH,EAAAgH,EACAA,EAAAvK,OAEA,IAAAqc,GAAA5d,IACA,KAAA8E,EACA,MAAAiD,GAAA5I,UAAAoe,EAAAK,EAAAlI,EAWA,IAAAmI,GAAA/Y,IAAAmY,EAqFAa,EAAA,CAUA,OANA/V,GAAA2H,SAAAgG,KACAA,GAAAA,IACAA,EAAAvN,QAAA,SAAAuN,GACA9Q,EAAAgZ,EAAAN,YAAA,GAAA5H,MAGAmI,EACAD,OACAE,GACAN,EAAA,KAAAI,KAgCAP,EAAAgB,SAAA,SAAA3I,EAAA5J,GACA,MAAA9L,MAAAud,KAAA7H,EAAA5J,EAAAmR,IA4BAI,EAAA5I,EAAA,SAAAvD,GAEA,GAAAoN,GAAAte,KAAA+c,SAAApW,OACA3G,MAAA+c,WAEA,KADA,GAAAte,GAAA,EACAA,EAAA6f,EAAAtf,QACAke,EAAAoB,EAAA7f,IACA6f,EAAAha,OAAA7F,EAAA,KAEAA,CAGA,IAFAuB,KAAA+c,SAAAuB,EAEApN,YAAArB,IAAAtO,SAAA2P,EAAA1M,SAAA0M,EAAAjB,iBAAAiN,EAAAhM,IAAAlR,KAAA+c,SAAAhU,QAAAmI,GAAA,EACAlR,KAAA+c,SAAAvd,KAAA0R,OACA,IAAAA,YAAAiB,GAAA,CACA,GAAA7I,GAAA4H,EAAA8B,gBACA,KAAAvU,EAAA,EAAAA,EAAA6K,EAAAtK,SAAAP,EACAuB,KAAAyU,EAAAnL,EAAA7K,MAUA4e,EAAA3I,EAAA,SAAAxD,GACA,GAAAA,YAAArB,GAAA,CAEA,GAAAtO,SAAA2P,EAAA1M,SAAA0M,EAAAjB,eAAA,CACA,GAAAiF,GAAAlV,KAAA+c,SAAAhU,QAAAmI,EACAgE,IAAA,GACAlV,KAAA+c,SAAAzY,OAAA4Q,EAAA,GAGAhE,EAAAjB,iBACAiB,EAAAjB,eAAAW,OAAAhB,OAAAsB,EAAAjB,gBACAiB,EAAAjB,eAAA,UAEA,IAAAiB,YAAAiB,GAEA,IAAA,GADA7I,GAAA4H,EAAA8B,iBACAvU,EAAA,EAAAA,EAAA6K,EAAAtK,SAAAP,EACAuB,KAAA0U,EAAApL,EAAA7K,2DCrSA,YAMA,IAAA8f,GAAAzf,CAEAyf,GAAAtM,QAAAzT,EAAA,kCCRA,YAcA,SAAAyT,GAAAuM,GACA1a,EAAA/E,KAAAiB,MAMAA,KAAAye,KAAAD,EApBAtf,EAAAJ,QAAAmT,CAEA,IAAAlK,GAAAvJ,EAAA,IACAsF,EAAAiE,EAAAjE,aAqBA4a,EAAAzM,EAAAhO,UAAAf,OAAAwB,OAAAZ,EAAAG,UACAya,GAAA/Z,YAAAsN,EAOAyM,EAAA7d,IAAA,SAAA8d,GAOA,MANA3e,MAAAye,OACAE,GACA3e,KAAAye,KAAA,KAAA,KAAA,MACAze,KAAAye,KAAA,KACAze,KAAAuE,KAAA,OAAAH,OAEApE,oCCxCA,YAwBA,SAAAiS,GAAAzP,EAAAsJ,GACAqG,EAAApT,KAAAiB,KAAAwC,EAAAsJ,GAMA9L,KAAA8S,WAOA9S,KAAA4e,EAAA,KAmBA,QAAA7P,GAAA2J,GAEA,MADAA,GAAAkG,EAAA,KACAlG,EA1DAxZ,EAAAJ,QAAAmT,CAEA,IAAAE,GAAA3T,EAAA,IAEAmU,EAAAR,EAAAlO,UAEAya,EAAAvM,EAAA3N,OAAAyN,EAEAA,GAAA/C,UAAA,SAEA,IAAAsC,GAAAhT,EAAA,IACAuJ,EAAAvJ,EAAA,IACA+f,EAAA/f,EAAA,GA4BAuJ,GAAAoH,MAAAuP,GAQAG,cACA/V,IAAA,WACA,MAAA9I,MAAA4e,IAAA5e,KAAA4e,EAAA7W,EAAA8K,QAAA7S,KAAA8S,cAgBAb,EAAA5C,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,GAAAA,EAAAyJ,UAUAb,EAAA1C,SAAA,SAAA/M,EAAA6G,GACA,GAAAqP,GAAA,GAAAzG,GAAAzP,EAAA6G,EAAAyC,QAKA,OAJAzC,GAAAyJ,SACA5P,OAAAD,KAAAoG,EAAAyJ,SAAA3K,QAAA,SAAA2W,GACApG,EAAAjJ,IAAA+B,EAAAjC,SAAAuP,EAAAzV,EAAAyJ,QAAAgM,OAEApG,GAMAgG,EAAAlP,OAAA,WACA,GAAAuP,GAAApM,EAAAnD,OAAAzQ,KAAAiB,KACA,QACA8L,QAAAiT,GAAAA,EAAAjT,SAAAvK,OACAuR,QAAAX,EAAAK,YAAAxS,KAAAgf,uBACA1V,OAAAyV,GAAAA,EAAAzV,QAAA/H,SAOAmd,EAAA5V,IAAA,SAAAtG,GACA,MAAAmQ,GAAA7J,IAAA/J,KAAAiB,KAAAwC,IAAAxC,KAAA8S,QAAAtQ,IAAA,MAMAkc,EAAA/K,WAAA,WAEA,IAAA,GADAb,GAAA9S,KAAAgf,kBACAvgB,EAAA,EAAAA,EAAAqU,EAAA9T,SAAAP,EACAqU,EAAArU,GAAAkB,SACA,OAAAgT,GAAAhT,QAAAZ,KAAAiB,OAMA0e,EAAAjP,IAAA,SAAAyB,GACA,GAAAlR,KAAA8I,IAAAoI,EAAA1O,MACA,KAAA7D,OAAA,mBAAAuS,EAAA1O,KAAA,QAAAxC,KACA,OAAAkR,aAAAM,IACAxR,KAAA8S,QAAA5B,EAAA1O,MAAA0O,EACAA,EAAAN,OAAA5Q,KACA+O,EAAA/O,OAEA2S,EAAAlD,IAAA1Q,KAAAiB,KAAAkR,IAMAwN,EAAA9O,OAAA,SAAAsB,GACA,GAAAA,YAAAM,GAAA,CAGA,GAAAxR,KAAA8S,QAAA5B,EAAA1O,QAAA0O,EACA,KAAAvS,OAAAuS,EAAA,uBAAAlR,KAIA,cAFAA,MAAA8S,QAAA5B,EAAA1O,MACA0O,EAAAN,OAAA,KACA7B,EAAA/O,MAEA,MAAA2S,GAAA/C,OAAA7Q,KAAAiB,KAAAkR,IA6BAwN,EAAAha,OAAA,SAAA8Z,EAAAS,EAAAC,GACA,GAAAC,GAAA,GAAAZ,GAAAtM,QAAAuM,EAyCA,OAxCAxe,MAAAgf,kBAAA7W,QAAA,SAAA0Q,GACAsG,EAAApX,EAAAsQ,QAAAQ,EAAArW,OAAA,SAAA4c,EAAAta,GACA,GAAAqa,EAAAV,KAAA,CAIA,IAAAW,EACA,KAAArX,GAAAoB,EAAA,UAAA,WAEA0P,GAAAlZ,SACA,IAAA0f,EACA,KACAA,GAAAJ,EAAApG,EAAAhH,oBAAAT,gBAAAgO,GAAAvG,EAAAhH,oBAAAnR,OAAA0e,IAAA5B,SACA,MAAA3d,GAEA,YADA,kBAAAyf,cAAAA,aAAAnB,YAAA,WAAArZ,EAAAjF,KAKA2e,EAAA3F,EAAAwG,EAAA,SAAAxf,EAAA0f,GACA,GAAA1f,EAEA,MADAsf,GAAA5a,KAAA,QAAA1E,EAAAgZ,GACA/T,EAAAA,EAAAjF,GAAA0B,MAEA,IAAA,OAAAge,EAEA,WADAJ,GAAAte,KAAA,EAGA,IAAA2e,EACA,KACAA,EAAAN,EAAArG,EAAA/G,qBAAAR,gBAAAiO,GAAA1G,EAAA/G,qBAAA3Q,OAAAoe,GACA,MAAAE,GAEA,MADAN,GAAA5a,KAAA,QAAAkb,EAAA5G,GACA/T,EAAAA,EAAA,QAAA2a,GAAAle,OAGA,MADA4d,GAAA5a,KAAA,OAAAib,EAAA3G,GACA/T,EAAAA,EAAA,KAAA0a,GAAAje,aAIA4d,mDCvNA,YAOA,SAAAO,GAAAnd,GACA,MAAAA,GAAAE,QAAA,UAAA,SAAAe,EAAAC,GACA,OAAAA,GACA,IAAA,KACA,IAAA,GACA,MAAAA,EACA,KAAA,IACA,MAAA,IACA,SACA,MAAAA,MAqBA,QAAAsV,GAAAlW,GAmBA,QAAA4S,GAAAkK,GACA,MAAAhhB,OAAA,WAAAghB,EAAA,UAAAje,EAAA,KAQA,QAAAkU,KACA,GAAAgK,GAAA,MAAAC,EAAAC,EAAAC,CACAH,GAAAI,UAAA5e,EAAA,CACA,IAAA6e,GAAAL,EAAAM,KAAArd,EACA,KAAAod,EACA,KAAAxK,GAAA,SAIA,OAHArU,GAAAwe,EAAAI,UACAxgB,EAAAqgB,GACAA,EAAA,KACAH,EAAAO,EAAA,IASA,QAAA7f,GAAAoZ,GACA,MAAA3W,GAAAzC,OAAAoZ,GAQA,QAAA3D,KACA,GAAAsK,EAAAnhB,OAAA,EACA,MAAAmhB,GAAA9Z,OACA,IAAAwZ,EACA,MAAAjK,IACA,IAAAwK,GACAre,EACAse,CACA,GAAA,CACA,GAAAjf,IAAApC,EACA,MAAA,KAEA,KADAohB,GAAA,EACA,KAAAne,KAAAoe,EAAAjgB,EAAAgB,KAGA,GAFA,OAAAif,KACA3e,IACAN,IAAApC,EACA,MAAA,KAEA,IAAA,MAAAoB,EAAAgB,GAAA,CACA,KAAAA,IAAApC,EACA,KAAAyW,GAAA,UACA,IAAA,MAAArV,EAAAgB,GAAA,CACA,KAAA,OAAAhB,IAAAgB,IACA,GAAAA,IAAApC,EACA,MAAA,QACAoC,IACAM,EACA0e,GAAA,MACA,CAAA,GAAA,OAAAC,EAAAjgB,EAAAgB,IAYA,MAAA,GAXA,GAAA,CAGA,GAFA,OAAAif,KACA3e,IACAN,IAAApC,EACA,MAAA,KACA+C,GAAAse,EACAA,EAAAjgB,EAAAgB,SACA,MAAAW,GAAA,MAAAse,KACAjf,EACAgf,GAAA,UAIAA,EAEA,IAAAhf,IAAApC,EACA,MAAA,KACA,IAAA6B,GAAAO,CACAkf,GAAAN,UAAA,CACA,IAAAO,GAAAD,EAAAre,KAAA7B,EAAAS,KACA,KAAA0f,EACA,KAAA1f,EAAA7B,IAAAshB,EAAAre,KAAA7B,EAAAS,OACAA,CACA,IAAAuU,GAAAvS,EAAAyT,UAAAlV,EAAAA,EAAAP,EAGA,OAFA,MAAAuU,GAAA,MAAAA,IACAyK,EAAAzK,GACAA,EASA,QAAA5V,GAAA4V,GACA+K,EAAA3gB,KAAA4V,GAQA,QAAAW,KACA,IAAAoK,EAAAnhB,OAAA,CACA,GAAAoW,GAAAS,GACA,IAAA,OAAAT,EACA,MAAA,KACA5V,GAAA4V,GAEA,MAAA+K,GAAA,GAWA,QAAArK,GAAA0K,EAAAzQ,GACA,GAAA0Q,GAAA1K,IACA2K,EAAAD,IAAAD,CACA,IAAAE,EAEA,MADA7K,MACA,CAEA,KAAA9F,EACA,KAAA0F,GAAA,UAAAgL,EAAA,OAAAD,EAAA,aACA,QAAA,EAzJA3d,EAAAA,EAAAmK,UAEA,IAAA5L,GAAA,EACApC,EAAA6D,EAAA7D,OACA0C,EAAA,EAEAye,KAEAN,EAAA,IAoJA,QACAne,KAAA,WAAA,MAAAA,IACAmU,KAAAA,EACAE,KAAAA,EACAvW,KAAAA,EACAsW,KAAAA,GAvMA5W,EAAAJ,QAAAia,CAEA,IAAAuH,GAAA,uBACAP,EAAA,kCACAD,EAAA,2DCLA,YAkCA,SAAApY,GAAAlF,EAAAsJ,GACAqG,EAAApT,KAAAiB,KAAAwC,EAAAsJ,GAMA9L,KAAA0J,UAMA1J,KAAAsK,OAAA/I,OAMAvB,KAAA+X,WAAAxW,OAMAvB,KAAAgY,SAAAzW,OAMAvB,KAAA2N,MAAApM,OAOAvB,KAAA2gB,EAAA,KAOA3gB,KAAA+U,EAAA,KAOA/U,KAAA4gB,EAAA,KAOA5gB,KAAA6gB,EAAA,KAOA7gB,KAAA8gB,EAAA,KAsFA,QAAA/R,GAAAtH,GAKA,MAJAA,GAAAkZ,EAAAlZ,EAAAsN,EAAAtN,EAAAoZ,EAAApZ,EAAAqZ,EAAA,WACArZ,GAAA/G,aACA+G,GAAAtG,aACAsG,GAAA8J,OACA9J,EA9LAvI,EAAAJ,QAAA4I,CAEA,IAAAyK,GAAA3T,EAAA,IAEAmU,EAAAR,EAAAlO,UAEA8c,EAAA5O,EAAA3N,OAAAkD,EAEAA,GAAAwH,UAAA,MAEA,IAWAZ,GACAb,EACAuT,EAbA7U,EAAA3N,EAAA,IACAmW,EAAAnW,EAAA,IACAqR,EAAArR,EAAA,IACAyT,EAAAzT,EAAA,IACAgJ,EAAAhJ,EAAA,IACAsJ,EAAAtJ,EAAA,IACAib,EAAAjb,EAAA,IACAyiB,EAAAziB,EAAA,IACAoN,EAAApN,EAAA,IACAuJ,EAAAvJ,EAAA,GAmFAuJ,GAAAoH,MAAA4R,GAQAG,YACApY,IAAA,WACA,GAAA9I,KAAA2gB,EACA,MAAA3gB,MAAA2gB,CACA3gB,MAAA2gB,IAEA,KAAA,GADAQ,GAAAje,OAAAD,KAAAjD,KAAA0J,QACAjL,EAAA,EAAAA,EAAA0iB,EAAAniB,SAAAP,EAAA,CACA,GAAA2J,GAAApI,KAAA0J,OAAAyX,EAAA1iB,IACAmL,EAAAxB,EAAAwB,EAGA,IAAA5J,KAAA2gB,EAAA/W,GACA,KAAAjL,OAAA,gBAAAiL,EAAA,OAAA5J,KAEAA,MAAA2gB,EAAA/W,GAAAxB,EAEA,MAAApI,MAAA2gB,IAUAS,aACAtY,IAAA,WACA,MAAA9I,MAAA+U,IAAA/U,KAAA+U,EAAAhN,EAAA8K,QAAA7S,KAAA0J,WAUA2X,qBACAvY,IAAA,WACA,MAAA9I,MAAA4gB,IAAA5gB,KAAA4gB,EAAA5gB,KAAAkI,iBAAAoZ,OAAA,SAAAlZ,GAAA,MAAAA,GAAA6D,cAUAsV,aACAzY,IAAA,WACA,MAAA9I,MAAA6gB,IAAA7gB,KAAA6gB,EAAA9Y,EAAA8K,QAAA7S,KAAAsK,WASA7F,MACAqE,IAAA,WACA,MAAA9I,MAAA8gB,IAAA9gB,KAAA8gB,EAAAtZ,EAAA9C,OAAA1E,MAAA2E,cAEAqE,IAAA,SAAAvE,GACA,GAAAA,KAAAA,EAAAR,oBAAA6D,IACA,KAAAC,GAAAoB,EAAA,OAAA,wBACA1E,GAAAmI,OACAnI,EAAAmI,KAAA9E,EAAA8E,MACA5M,KAAA8gB,EAAArc,MAkBAiD,EAAA2H,SAAA,SAAAhG,GACA,MAAAiG,SAAAjG,GAAAA,EAAAK,QAGA,IAAAwI,IAAA/F,EAAAzE,EAAAmI,EAAAoC,EAQAvK,GAAA6H,SAAA,SAAA/M,EAAA6G,GACA,GAAA5B,GAAA,GAAAC,GAAAlF,EAAA6G,EAAAyC,QA4BA,OA3BArE,GAAAsQ,WAAA1O,EAAA0O,WACAtQ,EAAAuQ,SAAA3O,EAAA2O,SACA3O,EAAAK,QACAxG,OAAAD,KAAAoG,EAAAK,QAAAvB,QAAA,SAAAiQ,GACA3Q,EAAAgI,IAAAI,EAAAN,SAAA6I,EAAA/O,EAAAK,OAAA0O,OAEA/O,EAAAiB,QACApH,OAAAD,KAAAoG,EAAAiB,QAAAnC,QAAA,SAAAqZ,GACA/Z,EAAAgI,IAAAkF,EAAApF,SAAAiS,EAAAnY,EAAAiB,OAAAkX,OAEAnY,EAAAC,QACApG,OAAAD,KAAAoG,EAAAC,QAAAnB,QAAA,SAAAgL,GAEA,IAAA,GADA7J,GAAAD,EAAAC,OAAA6J,GACA1U,EAAA,EAAAA,EAAAyT,EAAAlT,SAAAP,EACA,GAAAyT,EAAAzT,GAAA4Q,SAAA/F,GAEA,WADA7B,GAAAgI,IAAAyC,EAAAzT,GAAA8Q,SAAA4D,EAAA7J,GAIA,MAAA3K,OAAA,4BAAA8I,EAAA,KAAA0L,KAEA9J,EAAA0O,YAAA1O,EAAA0O,WAAA/Y,SACAyI,EAAAsQ,WAAA1O,EAAA0O,YACA1O,EAAA2O,UAAA3O,EAAA2O,SAAAhZ,SACAyI,EAAAuQ,SAAA3O,EAAA2O,UACA3O,EAAAsE,QACAlG,EAAAkG,OAAA,GACAlG,GAMAsZ,EAAAvR,OAAA,WACA,GAAAuP,GAAApM,EAAAnD,OAAAzQ,KAAAiB,KACA,QACA8L,QAAAiT,GAAAA,EAAAjT,SAAAvK,OACA+I,OAAA6H,EAAAK,YAAAxS,KAAA2I,kBACAe,OAAAyI,EAAAK,YAAAxS,KAAAkI,iBAAAoZ,OAAA,SAAA5O,GAAA,OAAAA,EAAAxC,sBACA6H,WAAA/X,KAAA+X,YAAA/X,KAAA+X,WAAA/Y,OAAAgB,KAAA+X,WAAAxW,OACAyW,SAAAhY,KAAAgY,UAAAhY,KAAAgY,SAAAhZ,OAAAgB,KAAAgY,SAAAzW,OACAoM,MAAA3N,KAAA2N,OAAApM,OACA+H,OAAAyV,GAAAA,EAAAzV,QAAA/H,SAOAwf,EAAApN,WAAA,WAEA,IADA,GAAAjK,GAAA1J,KAAAkI,iBAAAzJ,EAAA,EACAA,EAAAiL,EAAA1K,QACA0K,EAAAjL,KAAAkB,SACA,IAAA2K,GAAAtK,KAAA2I,gBACA,KADAlK,EAAA,EACAA,EAAA6L,EAAAtL,QACAsL,EAAA7L,KAAAkB,SACA,OAAAgT,GAAAhT,QAAAZ,KAAAiB,OAMA+gB,EAAAjY,IAAA,SAAAtG,GACA,MAAAmQ,GAAA7J,IAAA/J,KAAAiB,KAAAwC,IAAAxC,KAAA0J,QAAA1J,KAAA0J,OAAAlH,IAAAxC,KAAAsK,QAAAtK,KAAAsK,OAAA9H,IAAA,MAUAue,EAAAtR,IAAA,SAAAyB,GACA,GAAAlR,KAAA8I,IAAAoI,EAAA1O,MACA,KAAA7D,OAAA,mBAAAuS,EAAA1O,KAAA,QAAAxC,KACA,IAAAkR,YAAArB,IAAAtO,SAAA2P,EAAA1M,OAAA,CAIA,GAAAxE,KAAAyhB,gBAAAvQ,EAAAtH,IACA,KAAAjL,OAAA,gBAAAuS,EAAAtH,GAAA,OAAA5J,KAMA,OALAkR,GAAAN,QACAM,EAAAN,OAAAhB,OAAAsB,GACAlR,KAAA0J,OAAAwH,EAAA1O,MAAA0O,EACAA,EAAAlB,QAAAhQ,KACAkR,EAAAoC,MAAAtT,MACA+O,EAAA/O,MAEA,MAAAkR,aAAAyD,IACA3U,KAAAsK,SACAtK,KAAAsK,WACAtK,KAAAsK,OAAA4G,EAAA1O,MAAA0O,EACAA,EAAAoC,MAAAtT,MACA+O,EAAA/O,OAEA2S,EAAAlD,IAAA1Q,KAAAiB,KAAAkR,IAUA6P,EAAAnR,OAAA,SAAAsB,GACA,GAAAA,YAAArB,IAAAtO,SAAA2P,EAAA1M,OAAA,CAEA,GAAAxE,KAAA0J,OAAAwH,EAAA1O,QAAA0O,EACA,KAAAvS,OAAAuS,EAAA,uBAAAlR,KAGA,cAFAA,MAAA0J,OAAAwH,EAAA1O,MACA0O,EAAAlB,QAAA,KACAjB,EAAA/O,MAEA,MAAA2S,GAAA/C,OAAA7Q,KAAAiB,KAAAkR,IAQA6P,EAAArc,OAAA,SAAAmD,GACA,MAAA,KAAA7H,KAAAsN,WAAAzF,IASAkZ,EAAAnU,KAAA,SAAAsE,EAAApF,GACA,MAAAF,GAAA5L,KAAAkR,EAAA,IAAAlR,KAAAsN,WAAAxB,EAAAF,EAAAyB,YAOA0T,EAAAW,MAAA,WAsBA,MAnBApT,KACAA,EAAA9P,EAAA,IACAiP,EAAAjP,EAAA,IACAwiB,EAAAxiB,EAAA,KAEAwB,KAAAU,OAAA4N,EAAAtO,MAAA2C,IAAA3C,KAAAuU,cAAA,WACA0M,OAAAA,EACAnT,MAAA9N,KAAAkI,iBAAA7E,IAAA,SAAAse,GAAA,MAAAA,GAAArV,eACAvE,KAAAA,IAEA/H,KAAAmB,OAAAsM,EAAAzN,MAAA2C,IAAA3C,KAAAuU,cAAA,WACAkF,OAAAA,EACA3L,MAAA9N,KAAAkI,iBAAA7E,IAAA,SAAAse,GAAA,MAAAA,GAAArV,eACAvE,KAAAA,IAEA/H,KAAAuR,OAAAyP,EAAAhhB,MAAA2C,IAAA3C,KAAAuU,cAAA,WACAzG,MAAA9N,KAAAkI,iBAAA7E,IAAA,SAAAse,GAAA,MAAAA,GAAArV,eACAvE,KAAAA,IAEA/H,MASA+gB,EAAArgB,OAAA,SAAAsP,EAAAmB,GACA,MAAAnR,MAAA0hB,QAAAhhB,OAAAsP,EAAAmB,IASA4P,EAAA3P,gBAAA,SAAApB,EAAAmB,GACA,MAAAnR,MAAAU,OAAAsP,EAAAmB,GAAAA,EAAAjK,IAAAiK,EAAAyQ,OAAAzQ,GAAA0Q,UASAd,EAAA5f,OAAA,SAAAkQ,EAAArS,GACA,MAAAgB,MAAA0hB,QAAAvgB,OAAAkQ,EAAArS,IAQA+hB,EAAAzP,gBAAA,SAAAD,GAEA,MADAA,GAAAA,YAAAoI,GAAApI,EAAAoI,EAAA/U,OAAA2M,GACArR,KAAAmB,OAAAkQ,EAAAA,EAAAiK,WAQAyF,EAAAxP,OAAA,SAAAvB,GACA,MAAAhQ,MAAA0hB,QAAAnQ,OAAAvB,gHCzaA,YA6BA,SAAA8R,GAAA/W,EAAA3J,GACA,GAAA3C,GAAA,EAAAJ,IAEA,KADA+C,GAAA,EACA3C,EAAAsM,EAAA/L,QAAAX,EAAAD,EAAAK,EAAA2C,IAAA2J,EAAAtM,IACA,OAAAJ,GA3BA,GAAAyP,GAAAhP,EAEAiJ,EAAAvJ,EAAA,IAEAJ,GACA,SACA,QACA,QACA,SACA,SACA,UACA,WACA,QACA,SACA,SACA,UACA,WACA,OACA,SACA,QACA,UA6BA0P,GAAAC,MAAA+T,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAuBAhU,EAAA9B,SAAA8V,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA/Z,EAAAQ,WACA,OAYAuF,EAAArF,KAAAqZ,GACA,EACA,EACA,EACA,EACA,GACA,GAkBAhU,EAAAU,OAAAsT,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GAmBAhU,EAAAE,OAAA8T,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,kCC9LA,YAMA,IAAA/Z,GAAA7I,EAAAJ,QAAAN,EAAA,GAEAuJ,GAAA5I,UAAAX,EAAA,GACAuJ,EAAAvG,QAAAhD,EAAA,GACAuJ,EAAAjE,aAAAtF,EAAA,GACAuJ,EAAAvD,OAAAhG,EAAA,GACAuJ,EAAAnD,MAAApG,EAAA,GACAuJ,EAAAlD,KAAArG,EAAA,GAMAuJ,EAAAhD,GAAAgD,EAAApC,QAAA,MAOAoC,EAAA8K,QAAA,SAAA3B,GACA,IAAAA,EACA,QAIA,KAAA,GAHAiQ,GAAAje,OAAAD,KAAAiO,GACAlS,EAAAmiB,EAAAniB,OACAyT,EAAA,GAAAjS,OAAAxB,GACAP,EAAA,EAAAA,EAAAO,IAAAP,EACAgU,EAAAhU,GAAAyS,EAAAiQ,EAAA1iB,GACA,OAAAgU,IAUA1K,EAAAoB,EAAA,SAAA3G,EAAAuf,GACA,MAAApa,WAAAnF,EAAA,aAAAuf,GAAA,cAUAha,EAAAC,MAAA,SAAAga,EAAAlgB,EAAA2O,GACA,GAAA3O,EAEA,IAAA,GADAmB,GAAAC,OAAAD,KAAAnB,GACArD,EAAA,EAAAA,EAAAwE,EAAAjE,SAAAP,EACA8C,SAAAygB,EAAA/e,EAAAxE,KAAAgS,IACAuR,EAAA/e,EAAAxE,IAAAqD,EAAAmB,EAAAxE,IAEA,OAAAujB,IAQAja,EAAA6F,SAAA,SAAA/E,GACA,MAAA,KAAAA,EAAApG,QAAA,MAAA,QAAAA,QAAA,KAAA,OAAA,MAQAsF,EAAAmR,UAAA,SAAA3W,GACA,MAAAA,GAAA+T,UAAA,EAAA,GACA/T,EAAA+T,UAAA,GACA7T,QAAA,uBAAA,SAAAe,EAAAC,GAAA,MAAAA,GAAAwe,iBAQAla,EAAAma,WAAA,SAAA3f,GACA,MAAAA,GAAA+T,UAAA,EAAA,GACA/T,EAAA+T,UAAA,GACA7T,QAAA,sBAAA,SAAAe,EAAAC,GAAA,MAAA,IAAAA,EAAAqM,iBAQA/H,EAAAsQ,QAAA,SAAA9V,GACA,MAAAA,GAAAnC,OAAA,GAAA0P,cAAAvN,EAAA+T,UAAA,IAQAvO,EAAAyF,UAAA,SAAA5G,GAEA,MADAA,GAAAA,GAAA,EACAmB,EAAAoF,OACApF,EAAAoF,OAAAgV,YAAApa,EAAAoF,OAAAgV,YAAAvb,GAAA,GAAAmB,GAAAoF,OAAAvG,GACA,IAAA,mBAAAoV,YAAAA,WAAAxb,OAAAoG,0DClHA,YAuBA,SAAA+F,GAAAiN,EAAAC,GAMA7Z,KAAA4Z,GAAAA,EAMA5Z,KAAA6Z,GAAAA,EAjCA3a,EAAAJ,QAAA6N,CAEA,IAAA5E,GAAAvJ,EAAA,IAmCA4jB,EAAAzV,EAAA1I,UAOAoe,EAAA1V,EAAA0V,KAAA,GAAA1V,GAAA,EAAA,EAEA0V,GAAAxV,SAAA,WAAA,MAAA,IACAwV,EAAAC,SAAAD,EAAAjI,SAAA,WAAA,MAAApa,OACAqiB,EAAArjB,OAAA,WAAA,MAAA,IAOA2N,EAAAI,WAAA,SAAA9D,GACA,GAAA,IAAAA,EACA,MAAAoZ,EACA,IAAAhM,GAAApN,EAAA,CACAA,GAAA5I,KAAAkiB,IAAAtZ,EACA,IAAA2Q,GAAA3Q,IAAA,EACA4Q,GAAA5Q,EAAA2Q,GAAA,aAAA,CAUA,OATAvD,KACAwD,GAAAA,IAAA,EACAD,GAAAA,IAAA,IACAA,EAAA,aACAA,EAAA,IACAC,EAAA,aACAA,EAAA,KAGA,GAAAlN,GAAAiN,EAAAC,IAQAlN,EAAAC,KAAA,SAAA3D,GACA,GAAA,gBAAAA,GACA,MAAA0D,GAAAI,WAAA9D,EACA,IAAA,gBAAAA,GAAA,CACA,IAAAlB,EAAA+E,KAGA,MAAAH,GAAAI,WAAA2J,SAAAzN,EAAA,IAFAA,GAAAlB,EAAA+E,KAAAS,WAAAtE,GAIA,MAAAA,GAAAyF,KAAAzF,EAAA0F,KAAA,GAAAhC,GAAA1D,EAAAyF,MAAA,EAAAzF,EAAA0F,OAAA,GAAA0T,GAQAD,EAAAvV,SAAA,SAAAJ,GACA,OAAAA,GAAAzM,KAAA6Z,KAAA,IACA7Z,KAAA4Z,IAAA5Z,KAAA4Z,GAAA,IAAA,EACA5Z,KAAA6Z,IAAA7Z,KAAA6Z,KAAA,EACA7Z,KAAA4Z,KACA5Z,KAAA6Z,GAAA7Z,KAAA6Z,GAAA,IAAA,KACA7Z,KAAA4Z,GAAA,WAAA5Z,KAAA6Z,KAEA7Z,KAAA4Z,GAAA,WAAA5Z,KAAA6Z,IAQAuI,EAAArI,OAAA,SAAAtN,GACA,MAAA1E,GAAA+E,KACA,GAAA/E,GAAA+E,KAAA,EAAA9M,KAAA4Z,GAAA,EAAA5Z,KAAA6Z,GAAAvK,QAAA7C,KACAiC,IAAA,EAAA1O,KAAA4Z,GAAAjL,KAAA,EAAA3O,KAAA6Z,GAAApN,SAAA6C,QAAA7C,IAGA,IAAAnL,GAAAN,OAAAiD,UAAA3C,UAOAqL,GAAA6V,SAAA,SAAAC,GACA,MAAA,IAAA9V,IACArL,EAAAvC,KAAA0jB,EAAA,GACAnhB,EAAAvC,KAAA0jB,EAAA,IAAA,EACAnhB,EAAAvC,KAAA0jB,EAAA,IAAA,GACAnhB,EAAAvC,KAAA0jB,EAAA,IAAA,MAAA,GAEAnhB,EAAAvC,KAAA0jB,EAAA,GACAnhB,EAAAvC,KAAA0jB,EAAA,IAAA,EACAnhB,EAAAvC,KAAA0jB,EAAA,IAAA,GACAnhB,EAAAvC,KAAA0jB,EAAA,IAAA,MAAA,IAQAL,EAAAM,OAAA,WACA,MAAA1hB,QAAAC,aACA,IAAAjB,KAAA4Z,GACA5Z,KAAA4Z,KAAA,EAAA,IACA5Z,KAAA4Z,KAAA,GAAA,IACA5Z,KAAA4Z,KAAA,GACA,IAAA5Z,KAAA6Z,GACA7Z,KAAA6Z,KAAA,EAAA,IACA7Z,KAAA6Z,KAAA,GAAA,IACA7Z,KAAA6Z,KAAA,KAQAuI,EAAAE,SAAA,WACA,GAAAK,GAAA3iB,KAAA6Z,IAAA,EAGA,OAFA7Z,MAAA6Z,KAAA7Z,KAAA6Z,IAAA,EAAA7Z,KAAA4Z,KAAA,IAAA+I,KAAA,EACA3iB,KAAA4Z,IAAA5Z,KAAA4Z,IAAA,EAAA+I,KAAA,EACA3iB,MAOAoiB,EAAAhI,SAAA,WACA,GAAAuI,KAAA,EAAA3iB,KAAA4Z,GAGA,OAFA5Z,MAAA4Z,KAAA5Z,KAAA4Z,KAAA,EAAA5Z,KAAA6Z,IAAA,IAAA8I,KAAA,EACA3iB,KAAA6Z,IAAA7Z,KAAA6Z,KAAA,EAAA8I,KAAA,EACA3iB,MAOAoiB,EAAApjB,OAAA,WACA,GAAA4jB,GAAA5iB,KAAA4Z,GACAiJ,GAAA7iB,KAAA4Z,KAAA,GAAA5Z,KAAA6Z,IAAA,KAAA,EACAiJ,EAAA9iB,KAAA6Z,KAAA,EACA,OAAA,KAAAiJ,EACA,IAAAD,EACAD,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,QAAA,EAAA,EACAC,EAAA,MACAA,EAAA,IAAA,EAAA,EACAA,EAAA,QAAA,EAAA,EACAC,EAAA,IAAA,EAAA,qECpMA,YAEA,IAAA/a,MAAAjJ,OAEAiJ,MAAA4E,SAAAnO,QAAA,IACAuJ,KAAA9H,OAAAzB,QAAA,GACAuJ,KAAApC,QAAAnH,QAAA,GACAuJ,KAAAd,KAAAzI,QAAA,IACAuJ,KAAAtB,KAAAjI,QAAA,GAOAuJ,KAAAgb,OAAAzT,QAAA0T,OAAAtF,SAAAsF,OAAAtF,QAAAuF,UAAAD,OAAAtF,QAAAuF,SAAAC,MAOAnb,KAAAob,OAAA,CAAA,KAAApb,KAAAob,MAAArd,KAAA,UAAA,MAAA9H,IAMA+J,KAAAoF,QAAApF,KAAAoF,OAAApF,KAAApC,QAAA,YAAAoC,KAAAoF,OAAAA,QAAA,KAEApF,KAAAoF,SAEApF,KAAAoF,OAAAlJ,UAAAmf,UAGArb,KAAAoF,OAAAP,OACA7E,KAAAoF,OAAAP,KAAA,SAAA3D,EAAAoa,GAAA,MAAA,IAAAtb,MAAAoF,OAAAlE,EAAAoa,KAHAtb,KAAAoF,OAAA,MAUApF,KAAAvH,MAAA,mBAAAwb,YAAAxb,MAAAwb,WAMAjU,KAAA+E,KAAAkW,OAAAM,SAAAN,OAAAM,QAAAxW,MAAA/E,KAAApC,QAAA,QAQAoC,KAAA4H,UAAAjD,OAAAiD,WAAA,SAAA1G,GACA,MAAA,gBAAAA,IAAAsa,SAAAta,IAAA5I,KAAAmjB,MAAAva,KAAAA,GAQAlB,KAAA2H,SAAA,SAAAzG,GACA,MAAA,gBAAAA,IAAAA,YAAAjI,SAQA+G,KAAAS,SAAA,SAAAS,GACA,MAAAA,IAAA,gBAAAA,IAQAlB,KAAA0b,WAAA,SAAAxa,GACA,MAAAA,GACAlB,KAAA4E,SAAAC,KAAA3D,GAAAyZ,SACA,oBASA3a,KAAA2b,aAAA,SAAAjB,EAAAhW,GACA,GAAAkN,GAAA5R,KAAA4E,SAAA6V,SAAAC,EACA,OAAA1a,MAAA+E,KACA/E,KAAA+E,KAAA6W,SAAAhK,EAAAC,GAAAD,EAAAE,GAAApN,GACAkN,EAAA9M,SAAAyC,QAAA7C,KAUA1E,KAAA6b,QAAA,SAAArlB,EAAAwC,GACA,MAAA,gBAAAxC,GACA,gBAAAwC,GACAxC,IAAAwC,GACAxC,EAAAwJ,KAAA4E,SAAAI,WAAAxO,IAAAqb,KAAA7Y,EAAA2N,KAAAnQ,EAAAsb,KAAA9Y,EAAA4N,KACA,gBAAA5N,IACAA,EAAAgH,KAAA4E,SAAAI,WAAAhM,IAAA6Y,KAAArb,EAAAmQ,KAAA3N,EAAA8Y,KAAAtb,EAAAoQ,KACApQ,EAAAmQ,MAAA3N,EAAA2N,KAAAnQ,EAAAoQ,OAAA5N,EAAA4N,MAUA5G,KAAA8b,OAAA,SAAAC,EAAAlK,EAAAC,GACA,GAAA,gBAAAiK,GACA,MAAAA,GAAApV,MAAAkL,GAAAkK,EAAAnV,OAAAkL,CACA,IAAAF,GAAA5R,KAAA4E,SAAAC,KAAAkX,EACA,OAAAnK,GAAAC,KAAAA,GAAAD,EAAAE,KAAAA,GAQA9R,KAAA+M,QAAA,SAAAvS,GACA,MAAAA,GAAAnC,OAAA,GAAA6hB,cAAA1f,EAAA+T,UAAA,IASAvO,KAAAoH,MAAA,SAAA4U,EAAAC,GACA9gB,OAAAD,KAAA+gB,GAAA7b,QAAA,SAAA7E,GACAyE,KAAAc,KAAAkb,EAAAzgB,EAAA0gB,EAAA1gB,OAWAyE,KAAAc,KAAA,SAAAkb,EAAAzgB,EAAA2gB,GACA,GAAAC,GAAAnc,KAAA+M,QAAAxR,EACA2gB,GAAAnb,MACAib,EAAA,MAAAG,GAAAD,EAAAnb,KACAmb,EAAAjb,MACA+a,EAAA,MAAAG,GAAAnc,KAAAob,MACA,SAAAla,GACAgb,EAAAjb,IAAAjK,KAAAiB,KAAAiJ,GACAjJ,KAAAsD,GAAA2F,GAEAgb,EAAAjb,KACAjB,KAAAob,MACA5hB,SAAA0iB,EAAAhb,QACA8a,EAAAzgB,GAAA2gB,EAAAhb,OAEA/F,OAAAihB,eAAAJ,EAAAzgB,EAAA2gB,IAQAlc,KAAAQ,WAAArF,OAAA4N,OAAA5N,OAAA4N,cAMA/I,KAAAW,YAAAxF,OAAA4N,OAAA5N,OAAA4N,gLC/LA,YAOA,SAAAsT,GAAAhc,EAAAoY,GACA,MAAA,2BAAApY,EAAAmM,cAAA,KAAAiM,GAAApY,EAAA6D,UAAA,UAAAuU,EAAA,KAAApY,EAAA/E,KAAA,WAAAmd,EAAA,MAAApY,EAAAgC,QAAA,IAAA,IAAA,aAGA,QAAAia,GAAA5iB,EAAA2G,EAAA8F,EAAAC,GAEA,GAAA/F,EAAAkE,aACA,GAAAlE,EAAAkE,uBAAAH,GAAA,CAAA1K,EACA,cAAA0M,GACA,YACA,WAAAiW,EAAAhc,EAAA,cAEA,KAAA,GADA2C,GAAAhD,EAAA8K,QAAAzK,EAAAkE,aAAAvB,QACAjK,EAAA,EAAAA,EAAAiK,EAAA/L,SAAA8B,EAAAW,EACA,WAAAsJ,EAAAjK,GACAW,GACA,SACA,SACA2G,GAAAkE,uBAAA5E,IAAAjG,EACA,UACA,6BAAAyM,EAAAC,GACA,gBAEA,QAAA/F,EAAAX,MACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAAhG,EACA,0BAAA0M,GACA,WAAAiW,EAAAhc,EAAA,WACA,MACA,KAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAA3G,EACA,kFAAA0M,EAAAA,EAAAA,EAAAA,GACA,WAAAiW,EAAAhc,EAAA,gBACA,MACA,KAAA,QACA,IAAA,SAAA3G,EACA,2BAAA0M,GACA,WAAAiW,EAAAhc,EAAA,UACA,MACA,KAAA,OAAA3G,EACA,4BAAA0M,GACA,WAAAiW,EAAAhc,EAAA,WACA,MACA,KAAA,SAAA3G,EACA,yBAAA0M,GACA,WAAAiW,EAAAhc,EAAA,UACA,MACA,KAAA,QAAA3G,EACA,4DAAA0M,EAAAA,EAAAA,GACA,WAAAiW,EAAAhc,EAAA,YAOA,QAAAkc,GAAA7iB,EAAA2G,EAAA+F,GAEA,OAAA/F,EAAAgC,SACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAA3I,EACA,sCAAA0M,GACA,WAAAiW,EAAAhc,EAAA,eACA,MACA,KAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,UACA,IAAA,WAAA3G,EACA,2DAAA0M,GACA,WAAAiW,EAAAhc,EAAA,oBACA,MACA,KAAA,OAAA3G,EACA,mCAAA0M,GACA,WAAAiW,EAAAhc,EAAA,iBAWA,QAAA4Y,GAAAtT,GAKA,IAAA,GAHAhE,GAAAgE,EAAAxF,iBACAzG,EAAAsG,EAAAvG,QAAA,KAEA/C,EAAA,EAAAA,EAAAiL,EAAA1K,SAAAP,EAAA,CACA,GAAA2J,GAAAsB,EAAAjL,GAAAkB,UACAkJ,EAAAd,EAAA6F,SAAAxF,EAAA5F,KAGA4F,GAAA/E,KAAA5B,EACA,uBAAAoH,GACA,0BAAAA,GACA,WAAAub,EAAAhc,EAAA,WACA,yBAAAS,GACA,gCACAyb,EAAA7iB,EAAA2G,EAAA,QACAic,EAAA5iB,EAAA2G,EAAA3J,EAAA,IAAAoK,EAAA,UACApH,EACA,KACA,MAGA2G,EAAA6D,UAAAxK,EACA,uBAAAoH,GACA,0BAAAA,GACA,WAAAub,EAAAhc,EAAA,UACA,iCAAAS,GACAwb,EAAA5iB,EAAA2G,EAAA3J,EAAA,IAAAoK,EAAA,OAAApH,EACA,KACA,OAIA2G,EAAAiG,WACAjG,EAAAkE,uBAAA5E,GAAAjG,EACA,mCAAAoH,EAAAA,GACApH,EACA,uBAAAoH,IAEAwb,EAAA5iB,EAAA2G,EAAA3J,EAAA,IAAAoK,GACAT,EAAAiG,UAAA5M,EACA,MAGA,MAAAA,GACA,eAjJAvC,EAAAJ,QAAAkiB,CAEA,IAAA7U,GAAA3N,EAAA,IACAkJ,EAAAlJ,EAAA,IACAuJ,EAAAvJ,EAAA,8CCLA,YAsBA,SAAA+lB,GAAAnlB,EAAA8H,EAAA4c,GAMA9jB,KAAAZ,GAAAA,EAMAY,KAAAkH,IAAAA,EAMAlH,KAAA6V,KAAAtU,OAMAvB,KAAA8jB,IAAAA,EAIA,QAAAU,MAWA,QAAAC,GAAAtT,GAMAnR,KAAAgZ,KAAA7H,EAAA6H,KAMAhZ,KAAA0kB,KAAAvT,EAAAuT,KAMA1kB,KAAAkH,IAAAiK,EAAAjK,IAMAlH,KAAA6V,KAAA1E,EAAAwT,OAQA,QAAA1D,KAMAjhB,KAAAkH,IAAA,EAMAlH,KAAAgZ,KAAA,GAAAuL,GAAAC,EAAA,EAAA,GAMAxkB,KAAA0kB,KAAA1kB,KAAAgZ,KAMAhZ,KAAA2kB,OAAA,KAuDA,QAAAC,GAAAd,EAAA9c,EAAAwS,GACAxS,EAAAwS,GAAA,IAAAsK,EAGA,QAAAe,GAAAf,EAAA9c,EAAAwS,GACA,KAAAsK,EAAA,KACA9c,EAAAwS,KAAA,IAAAsK,EAAA,IACAA,KAAA,CAEA9c,GAAAwS,GAAAsK,EAwCA,QAAAgB,GAAAhB,EAAA9c,EAAAwS,GACA,KAAAsK,EAAAjK,IACA7S,EAAAwS,KAAA,IAAAsK,EAAAlK,GAAA,IACAkK,EAAAlK,IAAAkK,EAAAlK,KAAA,EAAAkK,EAAAjK,IAAA,MAAA,EACAiK,EAAAjK,MAAA,CAEA,MAAAiK,EAAAlK,GAAA,KACA5S,EAAAwS,KAAA,IAAAsK,EAAAlK,GAAA,IACAkK,EAAAlK,GAAAkK,EAAAlK,KAAA,CAEA5S,GAAAwS,KAAAsK,EAAAlK,GA2CA,QAAAmL,GAAAjB,EAAA9c,EAAAwS,GACAxS,EAAAwS,KAAA,IAAAsK,EACA9c,EAAAwS,KAAAsK,IAAA,EAAA,IACA9c,EAAAwS,KAAAsK,IAAA,GAAA,IACA9c,EAAAwS,GAAAsK,IAAA,GArRA5kB,EAAAJ,QAAAmiB,CAEA,IAEA+D,GAFAjd,EAAAvJ,EAAA,IAIAmO,EAAA5E,EAAA4E,SACA1M,EAAA8H,EAAA9H,OACAgH,EAAAc,EAAAd,IA0HAga,GAAAvc,OAAAqD,EAAAoF,OACA,WAGA,MAFA6X,KACAA,EAAAxmB,EAAA,MACAyiB,EAAAvc,OAAA,WACA,MAAA,IAAAsgB,QAGA,WACA,MAAA,IAAA/D,IAQAA,EAAAva,MAAA,SAAAE,GACA,MAAA,IAAAmB,GAAAvH,MAAAoG,IAIAmB,EAAAvH,QAAAA,QACAygB,EAAAva,MAAAqB,EAAAtB,KAAAwa,EAAAva,MAAAqB,EAAAvH,MAAAyD,UAAAoX,UAGA,IAAA4J,GAAAhE,EAAAhd,SASAghB,GAAAzlB,KAAA,SAAAJ,EAAA8H,EAAA4c,GAGA,MAFA9jB,MAAA0kB,KAAA1kB,KAAA0kB,KAAA7O,KAAA,GAAA0O,GAAAnlB,EAAA8H,EAAA4c,GACA9jB,KAAAkH,KAAAA,EACAlH,MAoBAilB,EAAA3J,OAAA,SAAArS,GAEA,MADAA,MAAA,EACAjJ,KAAAR,KAAAqlB,EACA5b,EAAA,IAAA,EACAA,EAAA,MAAA,EACAA,EAAA,QAAA,EACAA,EAAA,UAAA,EACA,EACAA,IASAgc,EAAA1J,MAAA,SAAAtS,GACA,MAAAA,GAAA,EACAjJ,KAAAR,KAAAslB,EAAA,GAAAnY,EAAAI,WAAA9D,IACAjJ,KAAAsb,OAAArS,IAQAgc,EAAAzJ,OAAA,SAAAvS,GACA,MAAAjJ,MAAAsb,QAAArS,GAAA,EAAAA,GAAA,MAAA,IAsBAgc,EAAAlK,OAAA,SAAA9R,GACA,GAAA0Q,GAAAhN,EAAAC,KAAA3D,EACA,OAAAjJ,MAAAR,KAAAslB,EAAAnL,EAAA3a,SAAA2a,IAUAsL,EAAAnK,MAAAmK,EAAAlK,OAQAkK,EAAAjK,OAAA,SAAA/R,GACA,GAAA0Q,GAAAhN,EAAAC,KAAA3D,GAAAqZ,UACA,OAAAtiB,MAAAR,KAAAslB,EAAAnL,EAAA3a,SAAA2a,IAQAsL,EAAAxJ,KAAA,SAAAxS,GACA,MAAAjJ,MAAAR,KAAAolB,EAAA,EAAA3b,EAAA,EAAA,IAeAgc,EAAAvJ,QAAA,SAAAzS,GACA,MAAAjJ,MAAAR,KAAAulB,EAAA,EAAA9b,IAAA,IAQAgc,EAAAtJ,SAAA,SAAA1S,GACA,MAAAjJ,MAAAR,KAAAulB,EAAA,EAAA9b,GAAA,EAAAA,GAAA,KASAgc,EAAAhK,QAAA,SAAAhS,GACA,GAAA0Q,GAAAhN,EAAAC,KAAA3D,EACA,OAAAjJ,MAAAR,KAAAulB,EAAA,EAAApL,EAAAC,IAAApa,KAAAulB,EAAA,EAAApL,EAAAE,KASAoL,EAAA/J,SAAA,SAAAjS,GACA,GAAA0Q,GAAAhN,EAAAC,KAAA3D,GAAAqZ,UACA,OAAAtiB,MAAAR,KAAAulB,EAAA,EAAApL,EAAAC,IAAApa,KAAAulB,EAAA,EAAApL,EAAAE,IAGA,IAAAqL,GAAA,mBAAArJ,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAE,EAAA,GAAAC,YAAAF,EAAAnb,OAEA,OADAmb,GAAA,IAAA,EACAC,EAAA,GACA,SAAA+H,EAAA9c,EAAAwS,GACAsC,EAAA,GAAAgI,EACA9c,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,GAAAuC,EAAA,IAEA,SAAA+H,EAAA9c,EAAAwS,GACAsC,EAAA,GAAAgI,EACA9c,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,GAAAuC,EAAA,OAGA,SAAA9S,EAAAjC,EAAAwS,GACA,GAAAnD,GAAApN,EAAA,EAAA,EAAA,CAGA,IAFAoN,IACApN,GAAAA,GACA,IAAAA,EACA8b,EAAA,EAAA9b,EAAA,EAAA,EAAA,WAAAjC,EAAAwS,OACA,IAAA2L,MAAAlc,GACA8b,EAAA,WAAA/d,EAAAwS,OACA,IAAAvQ,EAAA,sBACA8b,GAAA1O,GAAA,GAAA,cAAA,EAAArP,EAAAwS,OACA,IAAAvQ,EAAA,uBACA8b,GAAA1O,GAAA,GAAAhW,KAAA+kB,MAAAnc,EAAA,0BAAA,EAAAjC,EAAAwS,OACA,CACA,GAAA0C,GAAA7b,KAAAmjB,MAAAnjB,KAAA2C,IAAAiG,GAAA5I,KAAAglB,KACAlJ,EAAA,QAAA9b,KAAA+kB,MAAAnc,EAAA5I,KAAA+b,IAAA,GAAAF,GAAA,QACA6I,IAAA1O,GAAA,GAAA6F,EAAA,KAAA,GAAAC,KAAA,EAAAnV,EAAAwS,IAUAyL,GAAA5I,MAAA,SAAApT,GACA,MAAAjJ,MAAAR,KAAA0lB,EAAA,EAAAjc,GAGA,IAAAqc,GAAA,mBAAA/I,cACA,WACA,GAAAC,GAAA,GAAAD,cAAA,GACAR,EAAA,GAAAC,YAAAQ,EAAA7b,OAEA,OADA6b,GAAA,IAAA,EACAT,EAAA,GACA,SAAA+H,EAAA9c,EAAAwS,GACAgD,EAAA,GAAAsH,EACA9c,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,GAAAuC,EAAA,IAEA,SAAA+H,EAAA9c,EAAAwS,GACAgD,EAAA,GAAAsH,EACA9c,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,KAAAuC,EAAA,GACA/U,EAAAwS,GAAAuC,EAAA,OAGA,SAAA9S,EAAAjC,EAAAwS,GACA,GAAAnD,GAAApN,EAAA,EAAA,EAAA,CAGA,IAFAoN,IACApN,GAAAA,GACA,IAAAA,EACA8b,EAAA,EAAA/d,EAAAwS,GACAuL,EAAA,EAAA9b,EAAA,EAAA,EAAA,WAAAjC,EAAAwS,EAAA,OACA,IAAA2L,MAAAlc,GACA8b,EAAA,WAAA/d,EAAAwS,GACAuL,EAAA,WAAA/d,EAAAwS,EAAA,OACA,IAAAvQ,EAAA,uBACA8b,EAAA,EAAA/d,EAAAwS,GACAuL,GAAA1O,GAAA,GAAA,cAAA,EAAArP,EAAAwS,EAAA,OACA,CACA,GAAA2C,EACA,IAAAlT,EAAA,wBACAkT,EAAAlT,EAAA,OACA8b,EAAA5I,IAAA,EAAAnV,EAAAwS,GACAuL,GAAA1O,GAAA,GAAA8F,EAAA,cAAA,EAAAnV,EAAAwS,EAAA,OACA,CACA,GAAA0C,GAAA7b,KAAAmjB,MAAAnjB,KAAA2C,IAAAiG,GAAA5I,KAAAglB,IACA,QAAAnJ,IACAA,EAAA,MACAC,EAAAlT,EAAA5I,KAAA+b,IAAA,GAAAF,GACA6I,EAAA,iBAAA5I,IAAA,EAAAnV,EAAAwS,GACAuL,GAAA1O,GAAA,GAAA6F,EAAA,MAAA,GAAA,QAAAC,EAAA,WAAA,EAAAnV,EAAAwS,EAAA,KAWAyL,GAAAxI,OAAA,SAAAxT,GACA,MAAAjJ,MAAAR,KAAA8lB,EAAA,EAAArc,GAGA,IAAAsc,GAAAxd,EAAAvH,MAAAyD,UAAA+E,IACA,SAAA8a,EAAA9c,EAAAwS,GACAxS,EAAAgC,IAAA8a,EAAAtK,IAGA,SAAAsK,EAAA9c,EAAAwS,GACA,IAAA,GAAA/a,GAAA,EAAAA,EAAAqlB,EAAA9kB,SAAAP,EACAuI,EAAAwS,EAAA/a,GAAAqlB,EAAArlB,GAQAwmB,GAAA/X,MAAA,SAAAjE,GACA,GAAA/B,GAAA+B,EAAAjK,SAAA,CACA,IAAA,gBAAAiK,IAAA/B,EAAA,CACA,GAAAF,GAAAia,EAAAva,MAAAQ,EAAAjH,EAAAjB,OAAAiK,GACAhJ,GAAAkB,OAAA8H,EAAAjC,EAAA,GACAiC,EAAAjC,EAEA,MAAAE,GACAlH,KAAAsb,OAAApU,GAAA1H,KAAA+lB,EAAAre,EAAA+B,GACAjJ,KAAAR,KAAAolB,EAAA,EAAA,IAQAK,EAAA/kB,OAAA,SAAA+I,GACA,GAAA/B,GAAAD,EAAAjI,OAAAiK,EACA,OAAA/B,GACAlH,KAAAsb,OAAApU,GAAA1H,KAAAyH,EAAAI,MAAAH,EAAA+B,GACAjJ,KAAAR,KAAAolB,EAAA,EAAA,IAQAK,EAAArD,KAAA,WAIA,MAHA5hB,MAAA2kB,OAAA,GAAAF,GAAAzkB,MACAA,KAAAgZ,KAAAhZ,KAAA0kB,KAAA,GAAAH,GAAAC,EAAA,EAAA,GACAxkB,KAAAkH,IAAA,EACAlH,MAOAilB,EAAAO,MAAA,WAUA,MATAxlB,MAAA2kB,QACA3kB,KAAAgZ,KAAAhZ,KAAA2kB,OAAA3L,KACAhZ,KAAA0kB,KAAA1kB,KAAA2kB,OAAAD,KACA1kB,KAAAkH,IAAAlH,KAAA2kB,OAAAzd,IACAlH,KAAA2kB,OAAA3kB,KAAA2kB,OAAA9O,OAEA7V,KAAAgZ,KAAAhZ,KAAA0kB,KAAA,GAAAH,GAAAC,EAAA,EAAA,GACAxkB,KAAAkH,IAAA,GAEAlH,MAQAilB,EAAApD,OAAA,SAAAjY,GACA,GAAAoP,GAAAhZ,KAAAgZ,KACA0L,EAAA1kB,KAAA0kB,KACAxd,EAAAlH,KAAAkH,GAQA,OAPAlH,MAAAwlB,QACA,gBAAA5b,IACA5J,KAAAsb,QAAA1R,GAAA,EAAA,KAAA,GACA5J,KAAAsb,OAAApU,GACAlH,KAAA0kB,KAAA7O,KAAAmD,EAAAnD,KACA7V,KAAA0kB,KAAAA,EACA1kB,KAAAkH,KAAAA,EACAlH,MAOAilB,EAAAzH,OAAA,WAIA,IAHA,GAAAxE,GAAAhZ,KAAAgZ,KAAAnD,KACA7O,EAAAhH,KAAA2E,YAAA+B,MAAA1G,KAAAkH,KACAsS,EAAA,EACAR,GACAA,EAAA5Z,GAAA4Z,EAAA8K,IAAA9c,EAAAwS,GACAA,GAAAR,EAAA9R,IACA8R,EAAAA,EAAAnD,IAGA,OAAA7O,wCC7hBA,YAmBA,SAAAge,KACA/D,EAAAliB,KAAAiB,MAqCA,QAAAylB,GAAA3B,EAAA9c,EAAAwS,GACAsK,EAAA9kB,OAAA,GACAiI,EAAAI,MAAAyc,EAAA9c,EAAAwS,GAEAxS,EAAAoc,UAAAU,EAAAtK,GA5DAta,EAAAJ,QAAAkmB,CAEA,IAAA/D,GAAAziB,EAAA,IAEAknB,EAAAV,EAAA/gB,UAAAf,OAAAwB,OAAAuc,EAAAhd,UACAyhB,GAAA/gB,YAAAqgB,CAEA,IAAAjd,GAAAvJ,EAAA,IAEAyI,EAAAc,EAAAd,KACAkG,EAAApF,EAAAoF,MAiBA6X,GAAAte,MAAA,SAAAE,GACA,OAAAoe,EAAAte,MAAAyG,EAAAgV,YACAhV,EAAAgV,YACA,SAAAvb,GACA,MAAA,IAAAuG,GAAAvG,KACAA,GAGA,IAAA+e,GAAAxY,GAAAA,EAAAlJ,oBAAA+X,aAAA,MAAA7O,EAAAlJ,UAAA+E,IAAAxG,KAAA,GACA,SAAAshB,EAAA9c,EAAAwS,GACAxS,EAAAgC,IAAA8a,EAAAtK,IAEA,SAAAsK,EAAA9c,EAAAwS,GACAsK,EAAA8B,KAAA5e,EAAAwS,EAAA,EAAAsK,EAAA9kB,QAMA0mB,GAAAxY,MAAA,SAAAjE,GACA,gBAAAA,KACAA,EAAAkE,EAAAP,KAAA3D,EAAA,UACA,IAAA/B,GAAA+B,EAAAjK,SAAA,CAIA,OAHAgB,MAAAsb,OAAApU,GACAA,GACAlH,KAAAR,KAAAmmB,EAAAze,EAAA+B,GACAjJ,MAaA0lB,EAAAxlB,OAAA,SAAA+I,GACA,GAAA/B,GAAAiG,EAAA0Y,WAAA5c,EAIA,OAHAjJ,MAAAsb,OAAApU,GACAA,GACAlH,KAAAR,KAAAimB,EAAAve,EAAA+B,GACAjJ,uDCxEA,YAmBA,SAAAud,GAAA7H,EAAArB,EAAAvP,GAMA,MALA,kBAAAuP,IACAvP,EAAAuP,EACAA,EAAA,GAAA7K,GAAA2K,MACAE,IACAA,EAAA,GAAA7K,GAAA2K,MACAE,EAAAkJ,KAAA7H,EAAA5Q,GAmCA,QAAAuZ,GAAA3I,EAAArB,GAGA,MAFAA,KACAA,EAAA,GAAA7K,GAAA2K,MACAE,EAAAgK,SAAA3I,GAsDA,QAAAkF,KACApR,EAAAiQ,OAAAkD,IArHA,GAAAnT,GAAAwZ,EAAAxZ,SAAA1K,CAkDA0K,GAAA+T,KAAAA,EAeA/T,EAAA6U,SAAAA,EASA7U,EAAAsc,SAGAtc,EAAAuP,SAAAva,EAAA,IACAgL,EAAAgM,MAAAhX,EAAA,IAGAgL,EAAAyX,OAAAziB,EAAA,IACAgL,EAAAwb,aAAAxmB,EAAA,IACAgL,EAAAiQ,OAAAjb,EAAA,IACAgL,EAAA2R,aAAA3c,EAAA,IACAgL,EAAA8E,QAAA9P,EAAA,IACAgL,EAAAiE,QAAAjP,EAAA,IACAgL,EAAAwX,SAAAxiB,EAAA,IAGAgL,EAAAqF,iBAAArQ,EAAA,IACAgL,EAAA2I,UAAA3T,EAAA,IACAgL,EAAA2K,KAAA3V,EAAA,IACAgL,EAAA2C,KAAA3N,EAAA,IACAgL,EAAA9B,KAAAlJ,EAAA,IACAgL,EAAAqG,MAAArR,EAAA,IACAgL,EAAAmL,MAAAnW,EAAA,IACAgL,EAAA6G,SAAA7R,EAAA,IACAgL,EAAAyI,QAAAzT,EAAA,IACAgL,EAAAgI,OAAAhT,EAAA,IAGAgL,EAAAhC,MAAAhJ,EAAA,IACAgL,EAAA1B,QAAAtJ,EAAA,IAGAgL,EAAAsE,MAAAtP,EAAA,IACAgL,EAAAJ,OAAA5K,EAAA,IACAgL,EAAA+U,IAAA/f,EAAA,IACAgL,EAAAzB,KAAAvJ,EAAA,IACAgL,EAAAoR,UAAAA,EAWA,kBAAApH,SAAAA,OAAAuS,KACAvS,QAAA,QAAA,SAAA1G,GAKA,MAJAA,KACAtD,EAAAzB,KAAA+E,KAAAA,EACA8N,KAEApR","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {function(?Error, ...*)} fn Function to call\r\n * @param {Object} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue);?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n \r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function \" + (name ? name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\", \") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n return format.replace(/%([djs])/g, function($0, $1) {\r\n var arg = args[i++];\r\n switch ($1) {\r\n case \"j\":\r\n return JSON.stringify(arg);\r\n default:\r\n return String(arg);\r\n }\r\n });\r\n}\r\n\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {Object} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise<string>|undefined} A Promise if `callback` has been omitted \r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = [],\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n parts.push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(19),\r\n util = require(34);\r\n\r\nvar Type; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a class instance, which is also a message prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(32);\r\n\r\n /* istanbul ignore next */\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type\", \"a Type\");\r\n\r\n if (ctor) {\r\n /* istanbul ignore next */\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor\", \"a function\");\r\n } else\r\n ctor = (function(MessageCtor) { // eslint-disable-line wrap-iife\r\n return function Message(properties) {\r\n MessageCtor.call(this, properties);\r\n };\r\n })(Message);\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n \r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa.\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.getFieldsArray().forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue) && !field.long\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.getOneofsArray().forEach(function(oneof) {\r\n util.prop(prototype, oneof.resolve().name, {\r\n get: function getVirtual() {\r\n // > If the parser encounters multiple members of the same oneof on the wire, only the last member seen is used in the parsed message.\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (oneof.oneof.indexOf(keys[i]) > -1)\r\n return keys[i];\r\n return undefined;\r\n },\r\n set: function setVirtual(value) {\r\n for (var keys = oneof.oneof, i = 0; i < keys.length; ++i)\r\n if (keys[i] !== value)\r\n delete this[keys[i]];\r\n }\r\n // see util.prop for IE8 support\r\n });\r\n });\r\n\r\n // Register\r\n type.setCtor(ctor);\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa.\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\n\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object} google/protobuf/any.proto Any\r\n * @property {Object} google/protobuf/duration.proto Duration\r\n * @property {Object} google/protobuf/empty.proto Empty\r\n * @property {Object} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object} google/protobuf/wrappers.proto Wrappers\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n// - google/protobuf/descriptor.proto\r\n// - google/protobuf/field_mask.proto\r\n// - google/protobuf/source_context.proto\r\n// - google/protobuf/type.proto\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [ \"nullValue\", \"numberValue\", \"stringValue\", \"boolValue\", \"structValue\", \"listValue\" ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});","\"use strict\";\r\nmodule.exports = convert;\r\n\r\nvar Enum = require(16),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n Message;\r\n\r\n/**\r\n * A converter as used by {@link convert}.\r\n * @typedef Converter\r\n * @type {function}\r\n * @param {Field} field Reflected field\r\n * @param {*} value Value to convert\r\n * @param {Object.<string,*>} options Conversion options\r\n * @returns {*} Converted value\r\n */\r\n\r\n/**\r\n * Converts between JSON objects and messages, based on reflection information.\r\n * @param {Type} type Type \r\n * @param {*} source Source object\r\n * @param {*} destination Destination object\r\n * @param {Object.<string,*>} options Conversion options\r\n * @param {Converter} converter Conversion function\r\n * @returns {*} `destination`\r\n * @property {Converter} toJson To JSON converter using {@link JSONConversionOptions}\r\n * @property {Converter} toMessage To message converter using {@link MessageConversionOptions}\r\n */\r\nfunction convert(type, source, destination, options, converter) {\r\n\r\n if (!Type) { // require this here already so it is available within the converters below\r\n Type = require(32);\r\n Message = require(19);\r\n }\r\n\r\n if (!options)\r\n options = {};\r\n\r\n var keys = Object.keys(options.defaults ? type.fields : source);\r\n for (var i = 0, key; i < keys.length; ++i) {\r\n var field = type.fields[key = keys[i]],\r\n value = source[key];\r\n if (field) {\r\n if (field.repeated) {\r\n if (value || options.defaults) {\r\n destination[key] = [];\r\n if (value)\r\n for (var j = 0, l = value.length; j < l; ++j)\r\n destination[key].push(converter(field, value[j], options));\r\n }\r\n } else\r\n destination[key] = converter(field, value, options);\r\n } else if (!options.fieldsOnly)\r\n destination[key] = value;\r\n }\r\n return destination;\r\n}\r\n\r\n/**\r\n * JSON conversion options as used by {@link Message#asJSON} with {@link convert}.\r\n * @typedef JSONConversionOptions\r\n * @type {Object}\r\n * @property {boolean} [fieldsOnly=false] Keeps only properties that reference a field\r\n * @property {*} [longs] Long conversion type. Only relevant with a long library.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to a possibly unsafe number without, and a `Long` with a long library.\r\n * @property {*} [enums=Number] Enum value conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to the numeric ids.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and `String` (the global types).\r\n * Defaults to return the underlying buffer type.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n */\r\n/**/\r\nconvert.toJson = function toJson(field, value, options) {\r\n if (!options)\r\n options = {};\r\n \r\n // Recurse into inner messages\r\n if (value instanceof Message)\r\n return convert(value.$type, value, {}, options, toJson);\r\n\r\n // Enums as strings\r\n if (options.enums && field.resolvedType instanceof Enum)\r\n return options.enums === String\r\n ? field.resolvedType.getValuesById()[value]\r\n : value | 0;\r\n\r\n // Longs as numbers or strings\r\n if (options.longs && field.long) {\r\n var unsigned = field.type.charAt(0) === \"u\";\r\n if (options.longs === Number)\r\n return typeof value === \"number\"\r\n ? value\r\n : util.LongBits.from(value).toNumber(unsigned);\r\n if (options.longs === String) {\r\n if(typeof value === \"number\")\r\n return util.Long.fromNumber(value, unsigned).toString();\r\n value = util.Long.fromValue(value); // TODO: fromValue is missing an unsigned option (long.js 3.2.0)\r\n value.unsigned = unsigned;\r\n return value.toString();\r\n }\r\n }\r\n\r\n // Bytes as base64 strings, plain arrays or buffers\r\n if (options.bytes && field.bytes) {\r\n if (options.bytes === String)\r\n return util.base64.encode(value, 0, value.length);\r\n if (options.bytes === Array)\r\n return Array.prototype.slice.call(value);\r\n if (options.bytes === util.Buffer && !util.Buffer.isBuffer(value))\r\n return util.Buffer.from(value); // polyfilled\r\n }\r\n return value;\r\n};\r\n\r\n/**\r\n * Message conversion options as used by {@link Message.from} and {@link Type#from} with {@link convert}.\r\n * @typedef MessageConversionOptions\r\n * @type {Object}\r\n * @property {boolean} [fieldsOnly=false] Keeps only properties that reference a field\r\n */\r\n/**/\r\nconvert.toMessage = function toMessage(field, value, options) {\r\n switch (typeof value) {\r\n\r\n // Recurse into inner messages\r\n case \"object\":\r\n if (value) {\r\n if (field.resolvedType instanceof Type)\r\n return convert(field.resolvedType, value, new (field.resolvedType.getCtor())(), options, toMessage);\r\n if (field.type === \"bytes\")\r\n return util.Buffer\r\n ? util.Buffer.isBuffer(value)\r\n ? value\r\n : util.Buffer.from(value) // polyfilled\r\n : value instanceof util.Array\r\n ? value\r\n : new util.Array(value);\r\n }\r\n break;\r\n\r\n // Strings to proper numbers, longs or buffers\r\n case \"string\":\r\n if (field.resolvedType instanceof Enum)\r\n return field.resolvedType.values[value] || 0;\r\n if (field.long)\r\n return util.Long.fromString(value, field.type.charAt(0) === \"u\");\r\n if (field.bytes) {\r\n var buf = util.newBuffer(util.base64.length(value));\r\n util.base64.decode(value, buf, 0);\r\n return buf;\r\n }\r\n break;\r\n\r\n // Numbers to proper longs\r\n case \"number\":\r\n if (field.long)\r\n return util.Long.fromNumber(value, field.type.charAt(0) === \"u\");\r\n break;\r\n\r\n }\r\n return value;\r\n};\r\n","\"use strict\";\r\nmodule.exports = decoder;\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\n/**\r\n * Generates a decoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction decoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray(); \r\n var gen = util.codegen(\"r\", \"l\")\r\n\r\n (\"r instanceof Reader||(r=Reader.create(r))\")\r\n (\"var c=l===undefined?r.len:r.pos+l,m=new(this.getCtor())\")\r\n (\"while(r.pos<c){\")\r\n (\"var t=r.uint32()\");\r\n if (mtype.group) gen\r\n (\"if((t&7)===4)\")\r\n (\"break\");\r\n gen\r\n (\"switch(t>>>3){\");\r\n \r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n prop = util.safeProp(field.name);\r\n gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) {\r\n\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"r.skip().pos++\")\r\n (\"if(m%s===util.emptyObject)\", prop)\r\n (\"m%s={}\", prop)\r\n (\"var k=r.%s()\", keyType)\r\n (\"if(typeof k===\\\"object\\\")\")\r\n (\"k=util.longToHash(k)\")\r\n (\"r.pos++\");\r\n if (types.basic[type] === undefined) gen\r\n (\"m%s[k]=types[%d].decode(r,r.uint32())\", prop, i); // can't be groups\r\n else gen\r\n (\"m%s[k]=r.%s()\", prop, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"m%s&&m%s.length?m%s:m%s=[]\", prop, prop, prop, prop);\r\n\r\n // Packed\r\n if (field.packed && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var e=r.uint32()+r.pos\")\r\n (\"while(r.pos<e)\")\r\n (\"m%s.push(r.%s())\", prop, type)\r\n (\"}else\");\r\n\r\n // Non-packed\r\n if (types.basic[type] === undefined) gen(field.resolvedType.group\r\n ? \"m%s.push(types[%d].decode(r))\"\r\n : \"m%s.push(types[%d].decode(r,r.uint32()))\", prop, i);\r\n else gen\r\n (\"m%s.push(r.%s())\", prop, type);\r\n\r\n // Non-repeated\r\n } else if (types.basic[type] === undefined) gen(field.resolvedType.group\r\n ? \"m%s=types[%d].decode(r)\"\r\n : \"m%s=types[%d].decode(r,r.uint32())\", prop, i);\r\n else gen\r\n (\"m%s=r.%s()\", prop, type);\r\n gen\r\n (\"break\");\r\n\r\n // Unknown fields\r\n } return gen\r\n (\"default:\")\r\n (\"r.skipType(t&7)\")\r\n (\"break\")\r\n (\"}\")\r\n (\"}\")\r\n (\"return m\");\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n","\"use strict\";\r\nmodule.exports = encoder;\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\nvar safeProp = util.safeProp;\r\n\r\nfunction genEncodeType(gen, field, fieldIndex, ref, alwaysRequired) {\r\n if (field.resolvedType.group)\r\n return gen(\"types[%d].encode(%s,w.uint32(%d)).uint32(%d)\", fieldIndex, ref, (field.id << 3 | 3) >>> 0, (field.id << 3 | 4) >>> 0);\r\n return alwaysRequired || field.required\r\n ? gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.fork()).len&&w.ldelim(%d)||w.reset()\", fieldIndex, ref, field.id);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.getFieldsArray();\r\n var oneofs = mtype.getOneofsArray();\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"w||(w=Writer.create())\");\r\n\r\n var i;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n var keyType = field.resolvedKeyType /* only valid is enum */ ? \"uint32\" : field.keyType;\r\n gen\r\n (\"if(m%s&&m%s!==util.emptyObject){\", prop, prop)\r\n (\"for(var ks=Object.keys(m%s),i=0;i<ks.length;++i){\", prop)\r\n (\"w.uint32(%d).fork().uint32(%d).%s(ks[i])\", (field.id << 3 | 2) >>> 0, 8 | types.mapKey[keyType], keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(m%s[ks[i]],w.uint32(18).fork()).ldelim()\", i, prop); // can't be groups\r\n else gen\r\n (\"w.uint32(%d).%s(m%s[ks[i]])\", 16 | wireType, type, prop);\r\n gen\r\n (\"w.ldelim()\")\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(m%s&&m%s.length){\", prop, prop)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<m%s.length;++i)\", prop)\r\n (\"w.%s(m%s[i])\", type, prop)\r\n (\"w.ldelim()\", field.id)\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(m%s)\", prop)\r\n (\"for(var i=0;i<m%s.length;++i)\", prop);\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, i, \"m\" + prop + \"[i]\", true);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s[i])\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else if (!field.partOf) {\r\n if (!field.required) {\r\n\r\n if (field.long) {\r\n gen\r\n (\"if(m%s!==undefined&&util.longNe(m%s,%d,%d))\", prop, prop, field.defaultValue.low, field.defaultValue.high);\r\n } else gen\r\n (\"if(m%s!==undefined&&m%s!==%j)\", prop, prop, field.defaultValue);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, i, \"m\" + prop, true);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n }\r\n }\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i],\r\n prop = safeProp(oneof.name);\r\n gen\r\n (\"switch(m%s){\", prop);\r\n var oneofFields = oneof.getFieldsArray();\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type],\r\n prop = safeProp(field.name);\r\n gen\r\n (\"case%j:\", field.name);\r\n\r\n if (wireType === undefined)\r\n genEncodeType(gen, field, fields.indexOf(field), \"m\" + prop);\r\n else gen\r\n (\"w.uint32(%d).%s(m%s)\", (field.id << 3 | wireType) >>> 0, type, prop);\r\n\r\n gen\r\n (\"break;\");\r\n\r\n } gen\r\n (\"}\"); \r\n }\r\n\r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.<string,number>} [values] Enum values as an object, by name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.<string,number>}\r\n */\r\n this.values = values || {}; // toJSON, marker\r\n\r\n /**\r\n * Cached values by id.\r\n * @type {?Object.<number,string>}\r\n * @private\r\n */\r\n this._valuesById = null;\r\n}\r\n\r\nutil.props(EnumPrototype, {\r\n\r\n /**\r\n * Enum values by id.\r\n * @name Enum#valuesById\r\n * @type {Object.<number,string>}\r\n * @readonly\r\n */\r\n valuesById: {\r\n get: function getValuesById() {\r\n if (!this._valuesById) {\r\n this._valuesById = {};\r\n Object.keys(this.values).forEach(function(name) {\r\n var id = this.values[name];\r\n if (this._valuesById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n this._valuesById[id] = name;\r\n }, this);\r\n }\r\n return this._valuesById;\r\n }\r\n }\r\n\r\n /**\r\n * Gets this enum's values by id. This is an alias of {@link Enum#valuesById|valuesById}'s getter for use within non-ES5 environments.\r\n * @name Enum#getValuesById\r\n * @function\r\n * @returns {Object.<number,string>}\r\n */\r\n});\r\n\r\nfunction clearCache(enm) {\r\n enm._valuesById = null;\r\n return enm;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.<string,*>} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id) {\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n /* istanbul ignore next */\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n /* istanbul ignore next */\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\r\n /* istanbul ignore next */\r\n if (this.getValuesById()[id] !== undefined)\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this.values[name] = id;\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n if (this.values[name] === undefined)\r\n throw Error(\"'\" + name + \"' is not a name of \" + this);\r\n delete this.values[name];\r\n return clearCache(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Enum = require(16),\r\n types = require(33),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object} [rule=\"optional\"] Field rule\r\n * @param {string|Object} [extend] Extended type if different from parent\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n \r\n /* istanbul ignore next */\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id\", \"a non-negative integer\");\r\n /* istanbul ignore next */\r\n if (!util.isString(type))\r\n throw TypeError(\"type\");\r\n /* istanbul ignore next */\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend\");\r\n /* istanbul ignore next */\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule\", \"a valid rule string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field's default value. Only relevant when working with proto2.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\nutil.props(FieldPrototype, {\r\n\r\n /**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\n packed: {\r\n get: FieldPrototype.isPacked = function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether this field is packed. This is an alias of {@link Field#packed|packed}'s getter for use within non-ES5 environments.\r\n * @name Field#isPacked\r\n * @function\r\n * @returns {boolean}\r\n */\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(18);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n var typeDefault = types.defaults[this.type];\r\n\r\n // if not a basic type, resolve it\r\n if (typeDefault === undefined) {\r\n if (!Type)\r\n Type = require(32);\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n typeDefault = 0;\r\n /* istanbul ignore next */\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // when everything is resolved, determine the default value\r\n if (this.map)\r\n this.defaultValue = {};\r\n else if (this.repeated)\r\n this.defaultValue = [];\r\n else {\r\n if (this.options && this.options[\"default\"] !== undefined)\r\n this.defaultValue = this.options[\"default\"];\r\n else\r\n this.defaultValue = typeDefault;\r\n \r\n if (this.long) {\r\n this.defaultValue = util.Long.fromNumber(this.defaultValue, this.type.charAt(0) === \"u\");\r\n if (Object.freeze)\r\n Object.freeze(this.defaultValue); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n }\r\n }\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar types = require(33),\r\n util = require(34);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw util._TypeError(\"keyType\");\r\n \r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n \r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar convert = require(13);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This method should be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @extends {Object}\r\n * @constructor\r\n * @param {Object.<string,*>} [properties] Properties to set\r\n * @abstract\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/** @alias Message.prototype */\r\nvar MessagePrototype = Message.prototype;\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Converts this message to a JSON object.\r\n * @param {JSONConversionOptions} [options] Conversion options\r\n * @returns {Object.<string,*>} JSON object\r\n */\r\nMessagePrototype.asJSON = function asJSON(options) {\r\n return convert(this.$type, this, {}, options, convert.toJson);\r\n};\r\n\r\n/**\r\n * Creates a message from a JSON object by converting strings and numbers to their respective field types.\r\n * @param {Object.<string,*>} object JSON object\r\n * @param {MessageConversionOptions} [options] Options\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = function from(object, options) {\r\n return convert(this.$type, object, new this.constructor(), options, convert.toMessage);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(readerOrBuffer) {\r\n return this.$type.decode(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n return this.$type.decodeDelimited(readerOrBuffer);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(32),\r\n util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object} [responseStream] Whether the response is streamed\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {Object} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream || undefined,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream || undefined,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore next */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(34);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\n\r\nfunction initNested() {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(32);\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(30);\r\n\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @classdesc Reflected namespace and base class of all reflection objects containing nested objects.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.<string,ReflectionObject>|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n\r\n /**\r\n * Properties to remove when cache is cleared.\r\n * @type {Array.<string>}\r\n * @private\r\n */\r\n this._clearProperties = [];\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n for (var i = 0; i < namespace._clearProperties.length; ++i)\r\n delete namespace[namespace._clearProperties[i]];\r\n namespace._clearProperties = [];\r\n return namespace;\r\n}\r\n\r\nutil.props(NamespacePrototype, {\r\n\r\n /**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name Namespace#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\n nestedArray: {\r\n get: function getNestedArray() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @param {string} name Namespace name\r\n * @param {Object} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.getNestedArray())\r\n };\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.<string,*>|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.<string,*>} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n throw TypeError(\"nested.\" + nestedName, \"JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.<string,number>} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespacePrototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n if (!nestedTypes)\r\n initNested();\r\n\r\n /* istanbul ignore next */\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object\", nestedError);\r\n /* istanbul ignore next */\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object\", \"an extension field when not part of a type\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n /* istanbul ignore next */\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n\r\n /* istanbul ignore next */\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object\", \"a ReflectionObject\");\r\n /* istanbul ignore next */\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n \r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path)) {\r\n json = path;\r\n path = undefined;\r\n }\r\n var ptr = this;\r\n if (path)\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.resolve = function resolve() {\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(32);\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Type = require(30);\r\n\r\n // Add uppercased (and thus conflict-free) nested types, services and enums as properties\r\n // of the type just like static code does. This allows using a .d.ts generated for a static\r\n // module with reflection-based solutions where the condition is met.\r\n var nested = this.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i)\r\n if (/^[A-Z]/.test(nested[i].name)) {\r\n if (nested[i] instanceof Type || nested[i] instanceof Service)\r\n this[nested[i].name] = nested[i];\r\n else if (nested[i] instanceof Enum)\r\n this[nested[i].name] = nested[i].values;\r\n else\r\n continue;\r\n this._clearProperties.push(nested[i].name);\r\n }\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolveAll() {\r\n var nested = this.getNestedArray(), i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n if (util.isString(path) && path.length)\r\n path = path.split(\".\");\r\n else if (!path.length)\r\n return null;\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.getRoot().lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found && path.length === 1 && (!filterType || found instanceof filterType) || found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name Namespace#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(32);\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(30);\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.<string,number>} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(34);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(name))\r\n throw TypeError(\"name\");\r\n /* istanbul ignore next */\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options\", \"an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.<string,*>|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nutil.props(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function getRoot() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: ReflectionObjectPrototype.getFullName = function getFullName() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n var root = parent.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n var root = this.getRoot();\r\n if (!Root)\r\n Root = require(27);\r\n if (root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.<string,*>} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className;\r\n var fullName = this.getFullName();\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\nvar ReflectionObject = require(22);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17),\r\n util = require(34);\r\n\r\nvar TypeError = util._TypeError;\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames\", \"an Array\");\r\n\r\n /**\r\n * Upper cased name for getter/setter calls.\r\n * @type {string}\r\n */\r\n this.ucName = util.ucFirst(this.name);\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nutil.prop(OneOfPrototype, \"fieldsArray\", {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n\r\n if (field.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field\", \"a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n if (index > -1)\r\n this.oneof.splice(index, 1);\r\n if (field.parent)\r\n field.parent.remove(field);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nvar tokenize = require(31),\r\n Root = require(27),\r\n Type = require(32),\r\n Field = require(17),\r\n MapField = require(18),\r\n OneOf = require(23),\r\n Enum = require(16),\r\n Service = require(30),\r\n Method = require(20),\r\n types = require(33),\r\n util = require(34);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n root = new Root();\r\n options = root || {};\r\n } else if (!options)\r\n options = {};\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n if (!root)\r\n root = new Root();\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\r\n\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 0x1FFFFFFF;\r\n case \"0\": return 0;\r\n }\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n \r\n default:\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (lower(type) === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new Field(name, id, type, rule, extend));\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var field = parseInlineOptions(new MapField(name, id, keyType, valueType));\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var values = {};\r\n var enm = new Enum(name, values);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumField(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumField(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true);\r\n parent.values[name] = value;\r\n parseInlineOptions({}); // skips enum value options\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (!isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n name = name + \".\" + token;\r\n if (skip(\":\", true))\r\n setOption(parent, name, readValue(true));\r\n else\r\n parseOptionValue(parent, name);\r\n }\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n else\r\n parent[name] = value;\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n var st;\r\n if (skip(st = \"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(st, true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {ParserResult} Parser result\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(36);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n \r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n if (!BufferReader)\r\n BufferReader = require(26);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return new BufferReader(buffer);\r\n })(buffer);\r\n }\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = util.Array.prototype.subarray || util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = (function read_uint32_setup() { // eslint-disable-line wrap-iife\r\n var value = 0xffffffff >>> 0; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n \r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (i = 0; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (i = 0; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (i = 0; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n do {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n \r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\nvar Reader = require(25);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\nif (util.Buffer)\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n util = require(34),\r\n common = require(12);\r\n\r\nvar parse; // cyclic\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {Object} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files. \r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {*} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (!parse)\r\n parse = require(24);\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n cb(err, root);\r\n }\r\n\r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n return;\r\n }\r\n if (!sync && !queued)\r\n finish(null, self);\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {Promise<Root>} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise<Root>\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename, options) {\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.getFullName(), field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field && object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n }\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.getNestedArray();\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n }\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\nrpc.Service = require(29);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(34);\r\nvar EventEmitter = util.EventEmitter;\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @memberof rpc\r\n * @extends util.EventEmitter\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n */\r\nfunction Service(rpcImpl) {\r\n EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.$rpc = rpcImpl;\r\n}\r\n\r\n/** @alias rpc.Service.prototype */\r\nvar ServicePrototype = Service.prototype = Object.create(EventEmitter.prototype);\r\nServicePrototype.constructor = Service;\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nServicePrototype.end = function end(endedByRPC) {\r\n if (this.$rpc) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.$rpc(null, null, null);\r\n this.$rpc = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(20),\r\n util = require(34),\r\n rpc = require(28);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.<string,*>} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.<string,Method>}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\nutil.props(ServicePrototype, {\r\n\r\n /**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\n methodsArray: {\r\n get: function getMethodsArray() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n }\r\n\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {Object} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.getMethodsArray()) || {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolveAll() {\r\n var methods = this.getMethodsArray();\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method} method Reflected method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Uint8Array} [responseData] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {function(Method, Uint8Array, function)} rpcImpl {@link RPCImpl|RPC implementation}\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} Runtime RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl);\r\n this.getMethodsArray().forEach(function(method) {\r\n rpcService[util.lcFirst(method.name)] = function callVirtual(request, /* optional */ callback) {\r\n if (!rpcService.$rpc) // already ended?\r\n return;\r\n\r\n /* istanbul ignore next */\r\n if (!request)\r\n throw util._TypeError(\"request\", \"not null\");\r\n\r\n method.resolve();\r\n var requestData;\r\n try {\r\n requestData = (requestDelimited ? method.resolvedRequestType.encodeDelimited(request) : method.resolvedRequestType.encode(request)).finish();\r\n } catch (err) {\r\n (typeof setImmediate === \"function\" ? setImmediate : setTimeout)(function() { callback(err); });\r\n return;\r\n }\r\n // Calls the custom RPC implementation with the reflected method and binary request data\r\n // and expects the rpc implementation to call its callback with the binary response data.\r\n rpcImpl(method, requestData, function(err, responseData) {\r\n if (err) {\r\n rpcService.emit(\"error\", err, method);\r\n return callback ? callback(err) : undefined;\r\n }\r\n if (responseData === null) {\r\n rpcService.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n var response;\r\n try {\r\n response = responseDelimited ? method.resolvedResponseType.decodeDelimited(responseData) : method.resolvedResponseType.decode(responseData);\r\n } catch (err2) {\r\n rpcService.emit(\"error\", err2, method);\r\n return callback ? callback(\"error\", err2) : undefined;\r\n }\r\n rpcService.emit(\"data\", response, method);\r\n return callback ? callback(null, response) : undefined;\r\n });\r\n };\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n case \"0\":\r\n return \"\\u0000\";\r\n default:\r\n return $1;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n */\r\n/**/\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n \r\n var offset = 0,\r\n length = source.length,\r\n line = 1;\r\n \r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n if (offset === length)\r\n return null;\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n line: function() { return line; },\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type; \r\n\r\nvar Namespace = require(21);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(23),\r\n Field = require(17),\r\n Service = require(30),\r\n Class = require(11),\r\n Message = require(19),\r\n Reader = require(25),\r\n Writer = require(38),\r\n convert = require(13),\r\n util = require(34);\r\n\r\nvar encoder, // might become cyclic\r\n decoder, // might become cyclic\r\n verifier; // cyclic\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends Namespace\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.<string,Field>}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.<string,OneOf>}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.<number,Field>}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached repeated fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._repeatedFieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nutil.props(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.<number,Field>}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function getFieldsById() {\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function getFieldsArray() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Repeated fields of this message as an array for iteration.\r\n * @name Type#repeatedFieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n repeatedFieldsArray: {\r\n get: function getRepeatedFieldsArray() {\r\n return this._repeatedFieldsArray || (this._repeatedFieldsArray = this.getFieldsArray().filter(function(field) { return field.repeated; }));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function getOneofsArray() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function getCtor() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function setCtor(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw util._TypeError(\"ctor\", \"a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n if (json.fields)\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.getOneofsArray()),\r\n fields : Namespace.arrayToJSON(this.getFieldsArray().filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolveAll() {\r\n var fields = this.getFieldsArray(), i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.getOneofsArray(); i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n if (this.getFieldsById()[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n if (this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.message = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new (this.getCtor())(properties);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a JSON object by converting strings and numbers to their respective field types.\r\n * @param {Object} object JSON object\r\n * @param {MessageConversionOptions} [options] Conversion options\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.from = function from(object, options) {\r\n return convert(this, object, new (this.getCtor())(), options, convert.toMessage);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n if (!encoder) {\r\n encoder = require(15);\r\n decoder = require(14);\r\n verifier = require(37);\r\n }\r\n this.encode = encoder(this).eof(this.getFullName() + \"$encode\", {\r\n Writer : Writer,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(this.getFullName() + \"$decode\", {\r\n Reader : Reader,\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(this.getFullName() + \"$verify\", {\r\n types : this.getFieldsArray().map(function(fld) { return fld.resolvedType; }),\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(readerOrBuffer, length) {\r\n return this.setup().decode(readerOrBuffer, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(readerOrBuffer) {\r\n readerOrBuffer = readerOrBuffer instanceof Reader ? readerOrBuffer : Reader.create(readerOrBuffer);\r\n return this.decode(readerOrBuffer, readerOrBuffer.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(34);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\", // 14\r\n \"message\" // 15\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.<string,number>}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.<string,*>}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.<number>} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.<string,number>}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.<string,number>}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.<string,number>}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(36);\r\n\r\nutil.asPromise = require(1);\r\nutil.codegen = require(3);\r\nutil.EventEmitter = require(4);\r\nutil.extend = require(5);\r\nutil.fetch = require(6);\r\nutil.path = require(8);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.<string,*>} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n if (!object)\r\n return [];\r\n var names = Object.keys(object),\r\n length = names.length;\r\n var array = new Array(length);\r\n for (var i = 0; i < length; ++i)\r\n array[i] = object[names[i]];\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a type error.\r\n * @param {string} name Argument name\r\n * @param {string} [description=\"a string\"] Expected argument descripotion\r\n * @returns {TypeError} Created type error\r\n * @private\r\n */\r\nutil._TypeError = function(name, description) {\r\n return TypeError(name + \" must be \" + (description || \"a string\"));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object} dst Destination object\r\n * @param {Object} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) {\r\n if (src) {\r\n var keys = Object.keys(src);\r\n for (var i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n }\r\n return dst;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts a string to camel case notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.camelCase = function camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n};\r\n\r\n/**\r\n * Converts a string to underscore notation.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.underScore = function underScore(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return \"_\" + $1.toLowerCase(); });\r\n};\r\n\r\n/**\r\n * Converts the second character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) { // ucFirst counterpart is in runtime util\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number} [size=0] Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(size) {\r\n size = size || 0;\r\n return util.Buffer\r\n ? util.Buffer.allocUnsafe ? util.Buffer.allocUnsafe(size) : new util.Buffer(size)\r\n : new (typeof Uint8Array !== \"undefined\" ? Uint8Array : Array)(size);\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n value = Math.abs(value);\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0;\r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nutil.LongBits = require(\"./longbits\");\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.inquire = require(\"@protobufjs/inquire\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Whether running within IE8 or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isIE8 = false; try { util.isIE8 = eval(\"!-[1,]\"); } catch (e) {} // eslint-disable-line no-eval, no-empty\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (util.Buffer = util.inquire(\"buffer\")) && util.Buffer.Buffer || null;\r\n\r\nif (util.Buffer) {\r\n // Don't use browser-buffer for performance\r\n if (!util.Buffer.prototype.utf8Write)\r\n util.Buffer = null;\r\n // Polyfill Buffer.from\r\n else if (!util.Buffer.from)\r\n util.Buffer.from = function from(value, encoding) { return new util.Buffer(value, encoding); };\r\n}\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array === \"undefined\" ? Array : Uint8Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n * @deprecated Use {@link util.longNe|longNe} instead\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = util.LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = util.LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Tests if a possibily long value equals the specified low and high bits.\r\n * @param {number|string|Long} val Value to test\r\n * @param {number} lo Low bits to test against\r\n * @param {number} hi High bits to test against\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNe = function longNe(val, lo, hi) {\r\n if (typeof val === \"object\") // Long-like, null is invalid and throws\r\n return val.low !== lo || val.high !== hi;\r\n var bits = util.LongBits.from(val);\r\n return bits.lo !== lo || bits.hi !== hi;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) { // lcFirst counterpart is in core util\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ucKey = util.ucFirst(key);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = util.isIE8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (util.isIE8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : {};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n Type = require(32),\r\n util = require(34);\r\n\r\nfunction invalid(field, expected) {\r\n return \"invalid value for field \" + field.getFullName() + \" (\" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected)\";\r\n}\r\n\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else if (field.resolvedType instanceof Type) gen\r\n (\"var r;\")\r\n (\"if(r=types[%d].verify(%s))\", fieldIndex, ref)\r\n (\"return r\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9]\\\\d*)$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9]\\\\d*))$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.getFieldsArray();\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(m%s!==undefined){\", prop)\r\n (\"if(!util.isObject(m%s))\", prop)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(m%s)\", prop)\r\n (\"for(var i=0;i<k.length;++i){\");\r\n genVerifyKey(gen, field, \"k[i]\");\r\n genVerifyValue(gen, field, i, \"m\" + prop + \"[k[i]]\");\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // repeated fields\r\n } else if (field.repeated) { gen\r\n (\"if(m%s!==undefined){\", prop)\r\n (\"if(!Array.isArray(m%s))\", prop)\r\n (\"return%j\", invalid(field, \"array\"))\r\n (\"for(var i=0;i<m%s.length;++i){\", prop);\r\n genVerifyValue(gen, field, i, \"m\" + prop + \"[i]\"); gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // required or present fields\r\n } else {\r\n if (!field.required) {\r\n if (field.resolvedType instanceof Type) gen\r\n (\"if(m%s!==undefined&&m%s!==null){\", prop, prop);\r\n else gen\r\n (\"if(m%s!==undefined){\", prop);\r\n }\r\n genVerifyValue(gen, field, i, \"m\" + prop);\r\n if (!field.required) gen\r\n (\"}\");\r\n }\r\n }\r\n return gen\r\n (\"return null\");\r\n /* eslint-enable no-unexpected-multiline */\r\n}","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nvar util = require(36);\r\n\r\nvar BufferWriter; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {*} val Value to write\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, len, val) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {Writer.Op|undefined}\r\n */\r\n this.next = undefined;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val; // type varies\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = writer.states;\r\n}\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @function\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = util.Buffer\r\n ? function create_buffer_setup() {\r\n if (!BufferWriter)\r\n BufferWriter = require(39);\r\n return (Writer.create = function create_buffer() {\r\n return new BufferWriter();\r\n })();\r\n }\r\n : function create_array() {\r\n return new Writer();\r\n };\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nWriter.alloc = function alloc(size) {\r\n return new util.Array(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (util.Array !== Array)\r\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n this.tail = this.tail.next = new Op(fn, len, val);\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value = value >>> 0;\r\n return this.push(writeVarint32,\r\n value < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 0x80000000, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(0x7fffffff, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 0x7f800000) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 0x7fffff;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() { // eslint-disable-line wrap-iife\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 0x80000000, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(0xFFFFFFFF, buf, pos);\r\n writeFixed32(0x7FFFFFFF, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 0x7FF00000) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 0xFFFFF) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (typeof id === \"number\")\r\n this.uint32((id << 3 | 2) >>> 0);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\nvar Writer = require(38);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(36);\r\n\r\nvar utf8 = util.utf8,\r\n Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe\r\n ? Buffer.allocUnsafe\r\n : function allocUnsafe_new(size) {\r\n return new Buffer(size);\r\n })(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name[0] === \"s\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n }\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n val.copy(buf, pos, 0, val.length);\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n// function load(filename:string, root:Root, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise<Root>} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise<Root>\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.<string,Root>}\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Parser\r\nprotobuf.tokenize = require(\"./tokenize\");\r\nprotobuf.parse = require(\"./parse\");\r\n\r\n// Serialization\r\nprotobuf.Writer = require(\"./writer\");\r\nprotobuf.BufferWriter = require(\"./writer_buffer\");\r\nprotobuf.Reader = require(\"./reader\");\r\nprotobuf.BufferReader = require(\"./reader_buffer\");\r\nprotobuf.encoder = require(\"./encoder\");\r\nprotobuf.decoder = require(\"./decoder\");\r\nprotobuf.verifier = require(\"./verifier\");\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(\"./object\");\r\nprotobuf.Namespace = require(\"./namespace\");\r\nprotobuf.Root = require(\"./root\");\r\nprotobuf.Enum = require(\"./enum\");\r\nprotobuf.Type = require(\"./type\");\r\nprotobuf.Field = require(\"./field\");\r\nprotobuf.OneOf = require(\"./oneof\");\r\nprotobuf.MapField = require(\"./mapfield\");\r\nprotobuf.Service = require(\"./service\");\r\nprotobuf.Method = require(\"./method\");\r\n\r\n// Runtime\r\nprotobuf.Class = require(\"./class\");\r\nprotobuf.Message = require(\"./message\");\r\n\r\n// Utility\r\nprotobuf.types = require(\"./types\");\r\nprotobuf.common = require(\"./common\");\r\nprotobuf.rpc = require(\"./rpc\");\r\nprotobuf.util = require(\"./util\");\r\nprotobuf.configure = configure;\r\n\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// Be nice to AMD\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n"],"sourceRoot":"."}