{"version":3,"sources":["../node_modules/inherits/inherits_browser.js","../node_modules/safe-buffer/index.js","../node_modules/react/jsx-runtime.js","../node_modules/process/browser.js","../node_modules/buffer/index.js","../node_modules/webpack/buildin/global.js","../node_modules/minimalistic-assert/index.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/react/index.js","../node_modules/elliptic/node_modules/bn.js/lib/bn.js","../node_modules/webpack/buildin/module.js","../node_modules/cipher-base/index.js","../node_modules/events/events.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/randombytes/browser.js","../node_modules/hash-base/node_modules/readable-stream/errors-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/sha.js/hash.js","../node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/create-hash/browser.js","../node_modules/core-util-is/lib/util.js","../node_modules/buffer-xor/index.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/process-nextick-args/index.js","../node_modules/browserify-aes/aes.js","../node_modules/evp_bytestokey/index.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/parse-asn1/index.js","../node_modules/object-assign/index.js","../node_modules/path-browserify/index.js","../node_modules/md5.js/index.js","../node_modules/util-deprecate/browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/ripemd160/index.js","../node_modules/sha.js/index.js","../node_modules/readable-stream/readable-browser.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/des.js/lib/des/cipher.js","../node_modules/browserify-aes/browser.js","../node_modules/browserify-aes/modes/index.js","../node_modules/brorand/index.js","../node_modules/browserify-sign/node_modules/safe-buffer/index.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/browserify-rsa/index.js","../node_modules/bn.js/lib/bn.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/hash.js/lib/hash.js","../node_modules/safer-buffer/safer.js","../node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/asn1.js/lib/asn1/constants/der.js","../node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/isarray/index.js","../node_modules/hash-base/index.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha512.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/create-hmac/browser.js","../node_modules/create-hash/md5.js","../node_modules/pbkdf2/browser.js","../node_modules/pbkdf2/lib/precondition.js","../node_modules/pbkdf2/lib/default-encoding.js","../node_modules/pbkdf2/lib/sync-browser.js","../node_modules/pbkdf2/lib/to-buffer.js","../node_modules/des.js/lib/des/utils.js","../node_modules/des.js/lib/des/des.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/diffie-hellman/lib/generatePrime.js","../node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","../node_modules/miller-rabin/lib/mr.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/asn1.js/lib/asn1.js","../node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/public-encrypt/mgf.js","../node_modules/public-encrypt/xor.js","../node_modules/public-encrypt/withPublic.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/sql.js/dist/sql-wasm.js","../node_modules/sql.js/dist/sql-wasm.wasm","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/crypto-browserify/index.js","../node_modules/hash-base/node_modules/safe-buffer/index.js","../node_modules/hash-base/node_modules/readable-stream/readable-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha384.js","../node_modules/stream-browserify/index.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/writable-browser.js","../node_modules/readable-stream/duplex-browser.js","../node_modules/readable-stream/transform.js","../node_modules/readable-stream/passthrough.js","../node_modules/create-hmac/legacy.js","../node_modules/browserify-sign/algos.js","../node_modules/pbkdf2/lib/async.js","../node_modules/browserify-cipher/browser.js","../node_modules/browserify-des/index.js","../node_modules/des.js/lib/des.js","../node_modules/des.js/lib/des/cbc.js","../node_modules/des.js/lib/des/ede.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/decrypter.js","../node_modules/browserify-des/modes.js","../node_modules/diffie-hellman/browser.js","../node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","../node_modules/diffie-hellman/lib/dh.js","../node_modules/browserify-sign/browser/index.js","../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/browserify-sign/browser/sign.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/parse-asn1/asn1.js","../node_modules/asn1.js/lib/asn1/api.js","../node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/parse-asn1/certificate.js","../node_modules/parse-asn1/fixProc.js","../node_modules/browserify-sign/browser/verify.js","../node_modules/create-ecdh/browser.js","../node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","../node_modules/public-encrypt/browser.js","../node_modules/public-encrypt/publicEncrypt.js","../node_modules/public-encrypt/privateDecrypt.js","../node_modules/randomfill/browser.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js"],"names":["Object","create","module","exports","ctor","superCtor","super_","prototype","constructor","value","enumerable","writable","configurable","TempCtor","buffer","require","Buffer","copyProps","src","dst","key","SafeBuffer","arg","encodingOrOffset","length","from","alloc","allocUnsafe","allocUnsafeSlow","TypeError","size","fill","encoding","buf","undefined","SlowBuffer","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","i","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","base64","ieee754","isArray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","isEncoding","actual","write","slice","fromString","obj","isBuffer","checked","copy","val","type","data","fromObject","assertSize","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","m","bidirectionalIndexOf","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","defineProperty","_isBuffer","compare","a","x","y","list","pos","swap16","swap32","swap64","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","g","Function","window","assert","msg","equal","l","r","utils","BN","minAssert","minUtils","toArray","zero2","encode","getNAF","num","w","bits","naf","bitLength","ws","k","clone","z","mod","andln","isOdd","isubn","iushrn","getJSF","k1","k2","jsf","m8","d1","d2","cmpn","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","inherits","isSurrogatePair","htonl","word","zero8","enc","p","toHex32","endian","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","d","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","carry","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","number","base","isBN","negative","words","red","_init","wordSize","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","strip","limbLen","limbPow","total","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","self","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","toBuffer","toArrayLike","ArrayType","reqLength","q","clz32","_countBits","t","_zeroBits","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","o","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","s","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","isEven","yp","xp","im","jm","gcd","_invmp","x1","x2","delta","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","u","webpackPolyfill","deprecate","paths","children","get","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","update","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","err","_flush","done","fin","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","emitter","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","unshift","warned","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","position","originalListener","pop","spliceOne","keys","rawListeners","eventNames","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","util","Readable","Writable","v","method","options","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","cb","MAX_BYTES","MAX_UINT32","crypto","msCrypto","getRandomValues","generated","codes","createErrorType","Base","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","getMessage","oneOf","expected","thing","map","determiner","search","this_len","substring","endsWith","getBuffer","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","block","accum","assigned","remainder","digest","rem","lowBits","highBits","hash","_hash","MD5","RIPEMD160","sha","alg","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","Reporter","DecoderBuffer","EncoderBuffer","reporter","item","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","raw","fail","_reporterState","forEach","_arrayLikeToArray","arr2","_slicedToArray","_i","iterator","_s","_e","_n","_d","minLen","test","fn","asUInt32Array","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_key","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","password","salt","keyBits","ivLen","keyLen","iv","used","keyStart","ivStart","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","step","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","asn1","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","tag","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","decrypt","kde","kdeparams","iters","algo","cipher","cipherText","keylen","pbkdf2Sync","createDecipheriv","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","signature","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","toObject","assign","test1","test2","test3","letter","shouldUseNative","source","symbols","to","normalizeArray","parts","allowAboveRoot","up","last","splice","filter","xs","f","resolvedPath","resolvedAbsolute","path","charAt","normalize","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","matchedSlash","basename","extname","startDot","startPart","preDotState","HashBase","ARRAY16","_a","_b","_c","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","config","localStorage","trace","ERR_STREAM_PREMATURE_CLOSE","eos","stream","opts","callback","called","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onerror","onclose","onrequest","req","setHeader","abort","isRequest","zl","zr","sl","sr","hl","hr","fn1","fn2","fn3","fn4","fn5","ar","br","cr","dr","tl","tr","Algorithm","sha1","sha224","sha256","sha384","sha512","Stream","PassThrough","CorkedRequest","_this","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","destroy","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","object","pipe","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","Cipher","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","first","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","createCipher","createCipheriv","Cipheriv","createDecipher","Decipher","Decipheriv","listCiphers","getCiphers","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","Rand","rand","generate","_rand","getBytes","getByte","randomBytes","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","move","_move","for","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","elliptic","curves","ec","eddsa","pre","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","common","ripemd","hmac","ripemd160","safer","Safer","kStringMaxLength","constants","MAX_LENGTH","MAX_STRING_LENGTH","tags","methods","Node","parent","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","contains","_wrap","stateProps","cstate","prop","body","child","_useArgs","def","newKey","_decode","wrapResult","prevObj","result","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","entity","_use","some","node","_createEncoderBuffer","_encodeValue","_skipDefault","content","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","JSON","stringify","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","now","inherited","elem","stack","partial","captureStackTrace","reverse","tagClass","tagClassByName","tagByName","_finalized","prefix","throwIfNotStringOrBuffer","ReadableState","EElistenerCount","debug","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","head","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","event","dests","ev","wrap","asyncIterator","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","K","W","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","T1","T2","H","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_this2","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","pbkdf2","MAX_ALLOC","iterations","checkParameters","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","T","U","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","padSplit","group","DESState","DES","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","pad","lStart","rStart","keyL","keyR","incr32","getBlock","_cipher","_prev","encrypt","chunkNum","_cache","aes","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","gen","n2","bn","brorand","MillerRabin","_randbelow","min_bytes","_randrange","stop","rone","n1","rn1","getDivisor","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","SHA256","sha512_K","SHA512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","bignum","define","decoders","encoders","der","pem","DEREncoder","tree","DERNode","encodedTag","encodeTag","header","lenOctets","unused","id","values","ident","objid","time","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","sign","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","second","year","mon","day","hour","sec","UTC","_getDecoder","createHash","i2ops","seed","paddedMsg","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","asyncGeneratorStep","_next","_throw","info","then","_asyncToGenerator","initSqlJsPromise","initSqlJs","moduleConfig","resolveModule","Module","originalOnAbortFunction","errorThatCausedAbort","onRuntimeInitialized","Qa","db","Oa","kb","aa","da","ib","Za","ob","filename","random","fa","ea","ha","ka","ia","la","handleError","hc","eb","Wa","cwrap","ba","ic","qb","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","sb","Fc","Gc","Hc","tb","reset","Cb","Db","yb","Gb","BigInt","Hb","getBlob","useBigInt","getColumnNames","getAsObject","getSQL","getNormalizedSQL","na","ma","Bb","Eb","ub","freemem","oa","free","mb","pa","qa","ra","getRemainingSQL","prepare","exec","ca","columns","O","each","iterateStatements","sa","fc","Nc","Va","ta","close","ua","getRowsModified","create_function","Ja","WeakMap","J","has","Ia","grow","WebAssembly","results","Instance","va","wb","Aa","Kc","Database","wa","Ca","Da","Ea","Fa","Ga","xa","ya","za","importScripts","Ba","E","__dirname","readFileSync","F","readFile","location","href","document","currentScript","XMLHttpRequest","open","send","responseText","responseType","response","onload","status","Ha","print","log","printErr","thisProgram","Ka","delete","wasmBinary","noExitRuntime","La","L","Ma","Na","Pa","Ra","Xa","Ua","TextDecoder","Ya","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","Uint16Array","HEAPU32","Uint32Array","HEAPF32","Float32Array","HEAPF64","Float64Array","$a","ab","bb","preRun","P","pb","onAbort","RuntimeError","fb","startsWith","preloadedImages","preloadedAudios","gb","locateFile","hb","Qb","lb","vb","xb","zb","Ab","rdev","Q","tty","seekable","timestamp","readSync","stdin","fd","prompt","readline","Fb","createNode","Ta","Sa","lookup","rename","unlink","rmdir","readdir","symlink","file","link","readlink","Ib","S","Jb","Rb","Nb","dev","ino","nlink","uid","gid","atime","mtime","ctime","blocks","Kb","Lb","Mb","Ob","Pb","V","root","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","ac","bc","$b","Pc","cc","X","dc","willDeletePath","onDeletePath","gc","Ic","Jc","logReadFiles","Lc","onOpenFile","Mc","onWriteToFile","Oc","Qc","Rc","Y","Sc","Tc","getTime","Wc","Uc","Vc","Z","hrtime","performance","Zc","Xc","Yc","USER","LOGNAME","PATH","PWD","HOME","LANG","navigator","languages","defineProperties","ad","toTimeString","getFullYear","getTimezoneOffset","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","$c","copyWithin","fsync","extraStackTrace","asm","monitorRunDependencies","clearInterval","instance","fetch","credentials","ok","arrayBuffer","catch","instantiate","instantiateWasm","instantiateStreaming","___wasm_call_ctors","_sqlite3_free","___errno_location","_sqlite3_step","_sqlite3_finalize","_sqlite3_prepare_v2","_sqlite3_reset","_sqlite3_clear_bindings","_sqlite3_value_blob","_sqlite3_value_text","_sqlite3_value_bytes","_sqlite3_value_double","_sqlite3_value_int","_sqlite3_value_type","_sqlite3_result_blob","_sqlite3_result_double","$","_sqlite3_result_error","_sqlite3_result_int","_sqlite3_result_int64","_sqlite3_result_null","_sqlite3_result_text","_sqlite3_column_count","_sqlite3_data_count","ga","_sqlite3_column_blob","_sqlite3_column_bytes","_sqlite3_column_double","_sqlite3_column_text","_sqlite3_column_type","_sqlite3_column_name","_sqlite3_bind_blob","_sqlite3_bind_double","_sqlite3_bind_int","_sqlite3_bind_text","_sqlite3_bind_parameter_index","_sqlite3_sql","_sqlite3_normalized_sql","_sqlite3_errmsg","_sqlite3_exec","_sqlite3_changes","_sqlite3_close_v2","_sqlite3_create_function_v2","_sqlite3_open","_malloc","_free","_RegisterExtensionFunctions","bd","__get_tzname","__get_daylight","__get_timezone","stackSave","stackRestore","stackAlloc","_memalign","dd","calledRun","noFSInit","postRun","setStatus","every","UTF8ToString","cd","preInit","default","Fragment","StrictMode","Profiler","Suspense","encodeURIComponent","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","props","refs","updater","isReactComponent","setState","forceUpdate","isPureReactComponent","ref","__self","__source","defaultProps","$$typeof","_owner","escape","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","createFactory","createRef","forwardRef","render","isValidElement","lazy","_payload","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","Set","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","toUpperCase","removeAttribute","setAttribute","setAttributeNS","xlinkHref","prepareStackTrace","construct","displayName","_render","nodeName","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","activeElement","defaultChecked","defaultValue","_wrapperState","initialChecked","initialValue","controlled","ownerDocument","selected","defaultSelected","disabled","dangerouslySetInnerHTML","textContent","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","style","setProperty","menuitem","area","col","embed","img","keygen","meta","param","wbr","is","srcElement","correspondingUseElement","parentNode","stateNode","onError","alternate","return","memoizedState","dehydrated","sibling","Map","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","pointerId","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","unstable_scheduleCallback","unstable_NormalPriority","animationend","animationiteration","animationstart","transitionend","animation","unstable_now","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","LN2","unstable_UserBlockingPriority","ed","gd","hd","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","le","color","datetime","email","month","range","tel","url","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","capture","passive","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","documentElement","tagName","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","Ah","Bh","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","element","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","mark","setPrototypeOf","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","randomFill","randomFillSync","createCredentials","pipeline","enumerableOnly","sym","_defineProperty","_defineProperties","descriptor","custom","Constructor","_classCallCheck","protoProps","staticProps","_getString","_getBuffer","getOwnPropertyDescriptors","_objectSpread","depth","customInspect","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","reduce","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","EE","_isStdio","didOnEnd","cleanup","scope","Timeout","clearFn","_id","_clearFn","setInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","html","script","onreadystatechange","installReadyStateChangeImplementation","task","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","aesModes","desModes","ebtk","suite","des","EDE","modeName","_des","des3","proto","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","cache","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","fromArray","_multiply","lsbVi","abl","_last","padded","unpad","autoPadding","generatePrime","DH","ENCODINGS","genc","SEVEN","setPublicKey","pub","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","hex","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","other","secret","getPrime","front","getPrivateKey","getGenerator","verify","algorithms","_hashType","_tag","_signType","sig","EC","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","keyFromPrivate","toDER","ecSign","dsaSign","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","parse","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","MontCurve","i4","a24","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","sha1_K","SHA1","SHA224","SHA384","inner","outer","HmacDRBG","KeyPair","Signature","keyPair","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","kmac","reseed","addEnc","temp","_importPrivate","privEnc","_importPublic","pubEnc","reason","derive","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","backHalf","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","seq","int","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","namedCurve","Entity","_createNamed","Generated","_initNamed","PEMEncoder","label","PEMDecoder","lines","_reverse","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","format","inenc","mgf","withPublic","publicKey","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","cur","nonZero","pkcs1","zBuffer","dif","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","jsx","jsxs"],"mappings":";yGAA6B,oBAAlBA,OAAOC,OAEhBC,EAAOC,QAAU,SAAkBC,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKG,UAAYP,OAAOC,OAAOI,EAAUE,UAAW,CAClDC,YAAa,CACXC,MAAOL,EACPM,YAAY,EACZC,UAAU,EACVC,cAAc,OAOtBV,EAAOC,QAAU,SAAkBC,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,K,gBCtBnC,IAAIU,EAASC,EAAQ,GACjBC,EAASF,EAAOE,OAGpB,SAASC,EAAWC,EAAKC,GACvB,IAAK,IAAIC,KAAOF,EACdC,EAAIC,GAAOF,EAAIE,GAWnB,SAASC,EAAYC,EAAKC,EAAkBC,GAC1C,OAAOR,EAAOM,EAAKC,EAAkBC,GATnCR,EAAOS,MAAQT,EAAOU,OAASV,EAAOW,aAAeX,EAAOY,gBAC9D1B,EAAOC,QAAUW,GAGjBG,EAAUH,EAAQX,GAClBA,EAAQa,OAASK,GAQnBJ,EAAUD,EAAQK,GAElBA,EAAWI,KAAO,SAAUH,EAAKC,EAAkBC,GACjD,GAAmB,kBAARF,EACT,MAAM,IAAIO,UAAU,iCAEtB,OAAOb,EAAOM,EAAKC,EAAkBC,IAGvCH,EAAWK,MAAQ,SAAUI,EAAMC,EAAMC,GACvC,GAAoB,kBAATF,EACT,MAAM,IAAID,UAAU,6BAEtB,IAAII,EAAMjB,EAAOc,GAUjB,YATaI,IAATH,EACsB,kBAAbC,EACTC,EAAIF,KAAKA,EAAMC,GAEfC,EAAIF,KAAKA,GAGXE,EAAIF,KAAK,GAEJE,GAGTZ,EAAWM,YAAc,SAAUG,GACjC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOb,EAAOc,IAGhBT,EAAWO,gBAAkB,SAAUE,GACrC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOf,EAAOqB,WAAWL,K,6BCzDzB5B,EAAOC,QAAUY,EAAQ,M,cCF3B,IAOIqB,EACAC,EARAC,EAAUpC,EAAOC,QAAU,GAU/B,SAASoC,IACL,MAAM,IAAIC,MAAM,mCAEpB,SAASC,IACL,MAAM,IAAID,MAAM,qCAsBpB,SAASE,EAAWC,GAChB,GAAIP,IAAqBQ,WAErB,OAAOA,WAAWD,EAAK,GAG3B,IAAKP,IAAqBG,IAAqBH,IAAqBQ,WAEhE,OADAR,EAAmBQ,WACZA,WAAWD,EAAK,GAE3B,IAEI,OAAOP,EAAiBO,EAAK,GAC/B,MAAME,GACJ,IAEI,OAAOT,EAAiBU,KAAK,KAAMH,EAAK,GAC1C,MAAME,GAEJ,OAAOT,EAAiBU,KAAKC,KAAMJ,EAAK,MAvCnD,WACG,IAEQP,EADsB,oBAAfQ,WACYA,WAEAL,EAEzB,MAAOM,GACLT,EAAmBG,EAEvB,IAEQF,EADwB,oBAAjBW,aACcA,aAEAP,EAE3B,MAAOI,GACLR,EAAqBI,GAjB5B,GAwED,IAEIQ,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAazB,OACb0B,EAAQD,EAAaK,OAAOJ,GAE5BE,GAAc,EAEdF,EAAM1B,QACN+B,KAIR,SAASA,IACL,IAAIJ,EAAJ,CAGA,IAAIK,EAAUd,EAAWW,GACzBF,GAAW,EAGX,IADA,IAAIM,EAAMP,EAAM1B,OACViC,GAAK,CAGP,IAFAR,EAAeC,EACfA,EAAQ,KACCE,EAAaK,GACdR,GACAA,EAAaG,GAAYM,MAGjCN,GAAc,EACdK,EAAMP,EAAM1B,OAEhByB,EAAe,KACfE,GAAW,EAnEf,SAAyBQ,GACrB,GAAItB,IAAuBW,aAEvB,OAAOA,aAAaW,GAGxB,IAAKtB,IAAuBI,IAAwBJ,IAAuBW,aAEvE,OADAX,EAAqBW,aACdA,aAAaW,GAExB,IAEWtB,EAAmBsB,GAC5B,MAAOd,GACL,IAEI,OAAOR,EAAmBS,KAAK,KAAMa,GACvC,MAAOd,GAGL,OAAOR,EAAmBS,KAAKC,KAAMY,KAgD7CC,CAAgBJ,IAiBpB,SAASK,EAAKlB,EAAKmB,GACff,KAAKJ,IAAMA,EACXI,KAAKe,MAAQA,EAYjB,SAASC,KA5BTzB,EAAQ0B,SAAW,SAAUrB,GACzB,IAAIsB,EAAO,IAAIC,MAAMC,UAAU3C,OAAS,GACxC,GAAI2C,UAAU3C,OAAS,EACnB,IAAK,IAAI4C,EAAI,EAAGA,EAAID,UAAU3C,OAAQ4C,IAClCH,EAAKG,EAAI,GAAKD,UAAUC,GAGhClB,EAAMmB,KAAK,IAAIR,EAAKlB,EAAKsB,IACJ,IAAjBf,EAAM1B,QAAiB2B,GACvBT,EAAWa,IASnBM,EAAKtD,UAAUmD,IAAM,WACjBX,KAAKJ,IAAI2B,MAAM,KAAMvB,KAAKe,QAE9BxB,EAAQiC,MAAQ,UAChBjC,EAAQkC,SAAU,EAClBlC,EAAQmC,IAAM,GACdnC,EAAQoC,KAAO,GACfpC,EAAQqC,QAAU,GAClBrC,EAAQsC,SAAW,GAInBtC,EAAQuC,GAAKd,EACbzB,EAAQwC,YAAcf,EACtBzB,EAAQyC,KAAOhB,EACfzB,EAAQ0C,IAAMjB,EACdzB,EAAQ2C,eAAiBlB,EACzBzB,EAAQ4C,mBAAqBnB,EAC7BzB,EAAQ6C,KAAOpB,EACfzB,EAAQ8C,gBAAkBrB,EAC1BzB,EAAQ+C,oBAAsBtB,EAE9BzB,EAAQgD,UAAY,SAAUC,GAAQ,MAAO,IAE7CjD,EAAQkD,QAAU,SAAUD,GACxB,MAAM,IAAI/C,MAAM,qCAGpBF,EAAQmD,IAAM,WAAc,MAAO,KACnCnD,EAAQoD,MAAQ,SAAUC,GACtB,MAAM,IAAInD,MAAM,mCAEpBF,EAAQsD,MAAQ,WAAa,OAAO,I,8BCvLpC,YAUA,IAAIC,EAAS9E,EAAQ,KACjB+E,EAAU/E,EAAQ,KAClBgF,EAAUhF,EAAQ,IAmDtB,SAASiF,IACP,OAAOhF,EAAOiF,oBACV,WACA,WAGN,SAASC,EAAcC,EAAM3E,GAC3B,GAAIwE,IAAexE,EACjB,MAAM,IAAI4E,WAAW,8BAcvB,OAZIpF,EAAOiF,qBAETE,EAAO,IAAIE,WAAW7E,IACjB8E,UAAYtF,EAAOT,WAGX,OAAT4F,IACFA,EAAO,IAAInF,EAAOQ,IAEpB2E,EAAK3E,OAASA,GAGT2E,EAaT,SAASnF,EAAQM,EAAKC,EAAkBC,GACtC,IAAKR,EAAOiF,uBAAyBlD,gBAAgB/B,GACnD,OAAO,IAAIA,EAAOM,EAAKC,EAAkBC,GAI3C,GAAmB,kBAARF,EAAkB,CAC3B,GAAgC,kBAArBC,EACT,MAAM,IAAIiB,MACR,qEAGJ,OAAOb,EAAYoB,KAAMzB,GAE3B,OAAOG,EAAKsB,KAAMzB,EAAKC,EAAkBC,GAW3C,SAASC,EAAM0E,EAAM1F,EAAOc,EAAkBC,GAC5C,GAAqB,kBAAVf,EACT,MAAM,IAAIoB,UAAU,yCAGtB,MAA2B,qBAAhB0E,aAA+B9F,aAAiB8F,YA6H7D,SAA0BJ,EAAMrC,EAAO0C,EAAYhF,GAGjD,GAFAsC,EAAM2C,WAEFD,EAAa,GAAK1C,EAAM2C,WAAaD,EACvC,MAAM,IAAIJ,WAAW,6BAGvB,GAAItC,EAAM2C,WAAaD,GAAchF,GAAU,GAC7C,MAAM,IAAI4E,WAAW,6BAIrBtC,OADiB5B,IAAfsE,QAAuCtE,IAAXV,EACtB,IAAI6E,WAAWvC,QACH5B,IAAXV,EACD,IAAI6E,WAAWvC,EAAO0C,GAEtB,IAAIH,WAAWvC,EAAO0C,EAAYhF,GAGxCR,EAAOiF,qBAETE,EAAOrC,GACFwC,UAAYtF,EAAOT,UAGxB4F,EAAOO,EAAcP,EAAMrC,GAE7B,OAAOqC,EAvJEQ,CAAgBR,EAAM1F,EAAOc,EAAkBC,GAGnC,kBAAVf,EAwFb,SAAqB0F,EAAMS,EAAQ5E,GACT,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKhB,EAAO6F,WAAW7E,GACrB,MAAM,IAAIH,UAAU,8CAGtB,IAAIL,EAAwC,EAA/BiF,EAAWG,EAAQ5E,GAG5B8E,GAFJX,EAAOD,EAAaC,EAAM3E,IAERuF,MAAMH,EAAQ5E,GAE5B8E,IAAWtF,IAIb2E,EAAOA,EAAKa,MAAM,EAAGF,IAGvB,OAAOX,EA5GEc,CAAWd,EAAM1F,EAAOc,GAsJnC,SAAqB4E,EAAMe,GACzB,GAAIlG,EAAOmG,SAASD,GAAM,CACxB,IAAIzD,EAA4B,EAAtB2D,EAAQF,EAAI1F,QAGtB,OAAoB,KAFpB2E,EAAOD,EAAaC,EAAM1C,IAEjBjC,QAIT0F,EAAIG,KAAKlB,EAAM,EAAG,EAAG1C,GAHZ0C,EAOX,GAAIe,EAAK,CACP,GAA4B,qBAAhBX,aACRW,EAAIpG,kBAAkByF,aAAgB,WAAYW,EACpD,MAA0B,kBAAfA,EAAI1F,SA+8CL8F,EA/8CkCJ,EAAI1F,UAg9CrC8F,EA/8CFpB,EAAaC,EAAM,GAErBO,EAAcP,EAAMe,GAG7B,GAAiB,WAAbA,EAAIK,MAAqBxB,EAAQmB,EAAIM,MACvC,OAAOd,EAAcP,EAAMe,EAAIM,MAw8CrC,IAAgBF,EAp8Cd,MAAM,IAAIzF,UAAU,sFA9Kb4F,CAAWtB,EAAM1F,GA4B1B,SAASiH,EAAY5F,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,oCACf,GAAIC,EAAO,EAChB,MAAM,IAAIsE,WAAW,wCA4BzB,SAASzE,EAAawE,EAAMrE,GAG1B,GAFA4F,EAAW5F,GACXqE,EAAOD,EAAaC,EAAMrE,EAAO,EAAI,EAAoB,EAAhBsF,EAAQtF,KAC5Cd,EAAOiF,oBACV,IAAK,IAAI7B,EAAI,EAAGA,EAAItC,IAAQsC,EAC1B+B,EAAK/B,GAAK,EAGd,OAAO+B,EAwCT,SAASO,EAAeP,EAAMrC,GAC5B,IAAItC,EAASsC,EAAMtC,OAAS,EAAI,EAA4B,EAAxB4F,EAAQtD,EAAMtC,QAClD2E,EAAOD,EAAaC,EAAM3E,GAC1B,IAAK,IAAI4C,EAAI,EAAGA,EAAI5C,EAAQ4C,GAAK,EAC/B+B,EAAK/B,GAAgB,IAAXN,EAAMM,GAElB,OAAO+B,EA+DT,SAASiB,EAAS5F,GAGhB,GAAIA,GAAUwE,IACZ,MAAM,IAAII,WAAW,0DACaJ,IAAa2B,SAAS,IAAM,UAEhE,OAAgB,EAATnG,EAsFT,SAASiF,EAAYG,EAAQ5E,GAC3B,GAAIhB,EAAOmG,SAASP,GAClB,OAAOA,EAAOpF,OAEhB,GAA2B,qBAAhB+E,aAA6D,oBAAvBA,YAAYqB,SACxDrB,YAAYqB,OAAOhB,IAAWA,aAAkBL,aACnD,OAAOK,EAAOH,WAEM,kBAAXG,IACTA,EAAS,GAAKA,GAGhB,IAAInD,EAAMmD,EAAOpF,OACjB,GAAY,IAARiC,EAAW,OAAO,EAItB,IADA,IAAIoE,GAAc,IAEhB,OAAQ7F,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOyB,EACT,IAAK,OACL,IAAK,QACL,UAAKvB,EACH,OAAO4F,EAAYlB,GAAQpF,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANiC,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOsE,EAAcnB,GAAQpF,OAC/B,QACE,GAAIqG,EAAa,OAAOC,EAAYlB,GAAQpF,OAC5CQ,GAAY,GAAKA,GAAUgG,cAC3BH,GAAc,GAMtB,SAASI,EAAcjG,EAAUkG,EAAOC,GACtC,IAAIN,GAAc,EAclB,SALc3F,IAAVgG,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQnF,KAAKvB,OACf,MAAO,GAOT,SAJYU,IAARiG,GAAqBA,EAAMpF,KAAKvB,UAClC2G,EAAMpF,KAAKvB,QAGT2G,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFKlG,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAOoG,EAASrF,KAAMmF,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOE,EAAUtF,KAAMmF,EAAOC,GAEhC,IAAK,QACH,OAAOG,EAAWvF,KAAMmF,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOI,EAAYxF,KAAMmF,EAAOC,GAElC,IAAK,SACH,OAAOK,EAAYzF,KAAMmF,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOM,EAAa1F,KAAMmF,EAAOC,GAEnC,QACE,GAAIN,EAAa,MAAM,IAAIhG,UAAU,qBAAuBG,GAC5DA,GAAYA,EAAW,IAAIgG,cAC3BH,GAAc,GAStB,SAASa,EAAMC,EAAGC,EAAGC,GACnB,IAAIzE,EAAIuE,EAAEC,GACVD,EAAEC,GAAKD,EAAEE,GACTF,EAAEE,GAAKzE,EAmIT,SAAS0E,EAAsBhI,EAAQwG,EAAKd,EAAYxE,EAAU2D,GAEhE,GAAsB,IAAlB7E,EAAOU,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfgF,GACTxE,EAAWwE,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACVuC,MAAMvC,KAERA,EAAab,EAAM,EAAK7E,EAAOU,OAAS,GAItCgF,EAAa,IAAGA,EAAa1F,EAAOU,OAASgF,GAC7CA,GAAc1F,EAAOU,OAAQ,CAC/B,GAAImE,EAAK,OAAQ,EACZa,EAAa1F,EAAOU,OAAS,OAC7B,GAAIgF,EAAa,EAAG,CACzB,IAAIb,EACC,OAAQ,EADJa,EAAa,EAUxB,GALmB,kBAARc,IACTA,EAAMtG,EAAOS,KAAK6F,EAAKtF,IAIrBhB,EAAOmG,SAASG,GAElB,OAAmB,IAAfA,EAAI9F,QACE,EAEHwH,EAAalI,EAAQwG,EAAKd,EAAYxE,EAAU2D,GAClD,GAAmB,kBAAR2B,EAEhB,OADAA,GAAY,IACRtG,EAAOiF,qBACiC,oBAAjCI,WAAW9F,UAAU0I,QAC1BtD,EACKU,WAAW9F,UAAU0I,QAAQnG,KAAKhC,EAAQwG,EAAKd,GAE/CH,WAAW9F,UAAU2I,YAAYpG,KAAKhC,EAAQwG,EAAKd,GAGvDwC,EAAalI,EAAQ,CAAEwG,GAAOd,EAAYxE,EAAU2D,GAG7D,MAAM,IAAI9D,UAAU,wCAGtB,SAASmH,EAAcG,EAAK7B,EAAKd,EAAYxE,EAAU2D,GACrD,IA0BIvB,EA1BAgF,EAAY,EACZC,EAAYF,EAAI3H,OAChB8H,EAAYhC,EAAI9F,OAEpB,QAAiBU,IAAbF,IAEe,UADjBA,EAAWuH,OAAOvH,GAAUgG,gBACY,UAAbhG,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAImH,EAAI3H,OAAS,GAAK8F,EAAI9F,OAAS,EACjC,OAAQ,EAEV4H,EAAY,EACZC,GAAa,EACbC,GAAa,EACb9C,GAAc,EAIlB,SAASgD,EAAMvH,EAAKmC,GAClB,OAAkB,IAAdgF,EACKnH,EAAImC,GAEJnC,EAAIwH,aAAarF,EAAIgF,GAKhC,GAAIzD,EAAK,CACP,IAAI+D,GAAc,EAClB,IAAKtF,EAAIoC,EAAYpC,EAAIiF,EAAWjF,IAClC,GAAIoF,EAAKL,EAAK/E,KAAOoF,EAAKlC,GAAqB,IAAhBoC,EAAoB,EAAItF,EAAIsF,IAEzD,IADoB,IAAhBA,IAAmBA,EAAatF,GAChCA,EAAIsF,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEtC,IAAhBM,IAAmBtF,GAAKA,EAAIsF,GAChCA,GAAc,OAKlB,IADIlD,EAAa8C,EAAYD,IAAW7C,EAAa6C,EAAYC,GAC5DlF,EAAIoC,EAAYpC,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAIuF,GAAQ,EACHC,EAAI,EAAGA,EAAIN,EAAWM,IAC7B,GAAIJ,EAAKL,EAAK/E,EAAIwF,KAAOJ,EAAKlC,EAAKsC,GAAI,CACrCD,GAAQ,EACR,MAGJ,GAAIA,EAAO,OAAOvF,EAItB,OAAQ,EAeV,SAASyF,EAAU5H,EAAK2E,EAAQkD,EAAQtI,GACtCsI,EAASC,OAAOD,IAAW,EAC3B,IAAIE,EAAY/H,EAAIT,OAASsI,EACxBtI,GAGHA,EAASuI,OAAOvI,IACHwI,IACXxI,EAASwI,GAJXxI,EAASwI,EASX,IAAIC,EAASrD,EAAOpF,OACpB,GAAIyI,EAAS,IAAM,EAAG,MAAM,IAAIpI,UAAU,sBAEtCL,EAASyI,EAAS,IACpBzI,EAASyI,EAAS,GAEpB,IAAK,IAAI7F,EAAI,EAAGA,EAAI5C,IAAU4C,EAAG,CAC/B,IAAI8F,EAASC,SAASvD,EAAOwD,OAAW,EAAJhG,EAAO,GAAI,IAC/C,GAAI2E,MAAMmB,GAAS,OAAO9F,EAC1BnC,EAAI6H,EAAS1F,GAAK8F,EAEpB,OAAO9F,EAGT,SAASiG,EAAWpI,EAAK2E,EAAQkD,EAAQtI,GACvC,OAAO8I,EAAWxC,EAAYlB,EAAQ3E,EAAIT,OAASsI,GAAS7H,EAAK6H,EAAQtI,GAG3E,SAAS+I,EAAYtI,EAAK2E,EAAQkD,EAAQtI,GACxC,OAAO8I,EAq6BT,SAAuBE,GAErB,IADA,IAAIC,EAAY,GACPrG,EAAI,EAAGA,EAAIoG,EAAIhJ,SAAU4C,EAEhCqG,EAAUpG,KAAyB,IAApBmG,EAAIE,WAAWtG,IAEhC,OAAOqG,EA36BWE,CAAa/D,GAAS3E,EAAK6H,EAAQtI,GAGvD,SAASoJ,EAAa3I,EAAK2E,EAAQkD,EAAQtI,GACzC,OAAO+I,EAAWtI,EAAK2E,EAAQkD,EAAQtI,GAGzC,SAASqJ,EAAa5I,EAAK2E,EAAQkD,EAAQtI,GACzC,OAAO8I,EAAWvC,EAAcnB,GAAS3E,EAAK6H,EAAQtI,GAGxD,SAASsJ,EAAW7I,EAAK2E,EAAQkD,EAAQtI,GACvC,OAAO8I,EAk6BT,SAAyBE,EAAKO,GAG5B,IAFA,IAAIC,EAAGC,EAAIC,EACPT,EAAY,GACPrG,EAAI,EAAGA,EAAIoG,EAAIhJ,WACjBuJ,GAAS,GAAK,KADa3G,EAIhC6G,GADAD,EAAIR,EAAIE,WAAWtG,KACT,EACV8G,EAAKF,EAAI,IACTP,EAAUpG,KAAK6G,GACfT,EAAUpG,KAAK4G,GAGjB,OAAOR,EA/6BWU,CAAevE,EAAQ3E,EAAIT,OAASsI,GAAS7H,EAAK6H,EAAQtI,GAkF9E,SAASgH,EAAavG,EAAKiG,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQlG,EAAIT,OACtBqE,EAAOuF,cAAcnJ,GAErB4D,EAAOuF,cAAcnJ,EAAI+E,MAAMkB,EAAOC,IAIjD,SAASE,EAAWpG,EAAKiG,EAAOC,GAC9BA,EAAMkD,KAAKC,IAAIrJ,EAAIT,OAAQ2G,GAI3B,IAHA,IAAIoD,EAAM,GAENnH,EAAI8D,EACD9D,EAAI+D,GAAK,CACd,IAQMqD,EAAYC,EAAWC,EAAYC,EARrCC,EAAY3J,EAAImC,GAChByH,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIxH,EAAI0H,GAAoB3D,EAG1B,OAAQ2D,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,OAAV,KADlBJ,EAAavJ,EAAImC,EAAI,OAEnBuH,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAavJ,EAAImC,EAAI,GACrBqH,EAAYxJ,EAAImC,EAAI,GACQ,OAAV,IAAboH,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAavJ,EAAImC,EAAI,GACrBqH,EAAYxJ,EAAImC,EAAI,GACpBsH,EAAazJ,EAAImC,EAAI,GACO,OAAV,IAAboH,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbN,EAAIlH,KAAKwH,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBN,EAAIlH,KAAKwH,GACTzH,GAAK0H,EAGP,OAQF,SAAgCC,GAC9B,IAAItI,EAAMsI,EAAWvK,OACrB,GAAIiC,GAAOuI,EACT,OAAOzC,OAAO0C,aAAa3H,MAAMiF,OAAQwC,GAI3C,IAAIR,EAAM,GACNnH,EAAI,EACR,KAAOA,EAAIX,GACT8H,GAAOhC,OAAO0C,aAAa3H,MACzBiF,OACAwC,EAAW/E,MAAM5C,EAAGA,GAAK4H,IAG7B,OAAOT,EAvBAW,CAAsBX,GA98B/BpL,EAAQa,OAASA,EACjBb,EAAQgC,WAoTR,SAAqBX,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAOR,EAAOU,OAAOF,IAvTvBrB,EAAQgM,kBAAoB,GA0B5BnL,EAAOiF,yBAAqD/D,IAA/BkK,EAAOnG,oBAChCmG,EAAOnG,oBAQX,WACE,IACE,IAAIkD,EAAM,IAAI9C,WAAW,GAEzB,OADA8C,EAAI7C,UAAY,CAACA,UAAWD,WAAW9F,UAAW8L,IAAK,WAAc,OAAO,KACvD,KAAdlD,EAAIkD,OACiB,oBAAjBlD,EAAImD,UACuB,IAAlCnD,EAAImD,SAAS,EAAG,GAAG7F,WACvB,MAAO5D,GACP,OAAO,GAfP0J,GAKJpM,EAAQ6F,WAAaA,IAkErBhF,EAAOwL,SAAW,KAGlBxL,EAAOyL,SAAW,SAAUtD,GAE1B,OADAA,EAAI7C,UAAYtF,EAAOT,UAChB4I,GA2BTnI,EAAOS,KAAO,SAAUhB,EAAOc,EAAkBC,GAC/C,OAAOC,EAAK,KAAMhB,EAAOc,EAAkBC,IAGzCR,EAAOiF,sBACTjF,EAAOT,UAAU+F,UAAYD,WAAW9F,UACxCS,EAAOsF,UAAYD,WACG,qBAAXqG,QAA0BA,OAAOC,SACxC3L,EAAO0L,OAAOC,WAAa3L,GAE7BhB,OAAO4M,eAAe5L,EAAQ0L,OAAOC,QAAS,CAC5ClM,MAAO,KACPG,cAAc,KAiCpBI,EAAOU,MAAQ,SAAUI,EAAMC,EAAMC,GACnC,OArBF,SAAgBmE,EAAMrE,EAAMC,EAAMC,GAEhC,OADA0F,EAAW5F,GACPA,GAAQ,EACHoE,EAAaC,EAAMrE,QAEfI,IAATH,EAIyB,kBAAbC,EACVkE,EAAaC,EAAMrE,GAAMC,KAAKA,EAAMC,GACpCkE,EAAaC,EAAMrE,GAAMC,KAAKA,GAE7BmE,EAAaC,EAAMrE,GAQnBJ,CAAM,KAAMI,EAAMC,EAAMC,IAiBjChB,EAAOW,YAAc,SAAUG,GAC7B,OAAOH,EAAY,KAAMG,IAK3Bd,EAAOY,gBAAkB,SAAUE,GACjC,OAAOH,EAAY,KAAMG,IAiH3Bd,EAAOmG,SAAW,SAAmBwB,GACnC,QAAe,MAALA,IAAaA,EAAEkE,YAG3B7L,EAAO8L,QAAU,SAAkBC,EAAGpE,GACpC,IAAK3H,EAAOmG,SAAS4F,KAAO/L,EAAOmG,SAASwB,GAC1C,MAAM,IAAI9G,UAAU,6BAGtB,GAAIkL,IAAMpE,EAAG,OAAO,EAKpB,IAHA,IAAIqE,EAAID,EAAEvL,OACNyL,EAAItE,EAAEnH,OAED4C,EAAI,EAAGX,EAAM4H,KAAKC,IAAI0B,EAAGC,GAAI7I,EAAIX,IAAOW,EAC/C,GAAI2I,EAAE3I,KAAOuE,EAAEvE,GAAI,CACjB4I,EAAID,EAAE3I,GACN6I,EAAItE,EAAEvE,GACN,MAIJ,OAAI4I,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,GAGThM,EAAO6F,WAAa,SAAqB7E,GACvC,OAAQuH,OAAOvH,GAAUgG,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,IAIbhH,EAAOsC,OAAS,SAAiB4J,EAAM1L,GACrC,IAAKuE,EAAQmH,GACX,MAAM,IAAIrL,UAAU,+CAGtB,GAAoB,IAAhBqL,EAAK1L,OACP,OAAOR,EAAOU,MAAM,GAGtB,IAAI0C,EACJ,QAAelC,IAAXV,EAEF,IADAA,EAAS,EACJ4C,EAAI,EAAGA,EAAI8I,EAAK1L,SAAU4C,EAC7B5C,GAAU0L,EAAK9I,GAAG5C,OAItB,IAAIV,EAASE,EAAOW,YAAYH,GAC5B2L,EAAM,EACV,IAAK/I,EAAI,EAAGA,EAAI8I,EAAK1L,SAAU4C,EAAG,CAChC,IAAInC,EAAMiL,EAAK9I,GACf,IAAKpD,EAAOmG,SAASlF,GACnB,MAAM,IAAIJ,UAAU,+CAEtBI,EAAIoF,KAAKvG,EAAQqM,GACjBA,GAAOlL,EAAIT,OAEb,OAAOV,GA8CTE,EAAOyF,WAAaA,EA0EpBzF,EAAOT,UAAUsM,WAAY,EAQ7B7L,EAAOT,UAAU6M,OAAS,WACxB,IAAI3J,EAAMV,KAAKvB,OACf,GAAIiC,EAAM,IAAM,EACd,MAAM,IAAI2C,WAAW,6CAEvB,IAAK,IAAIhC,EAAI,EAAGA,EAAIX,EAAKW,GAAK,EAC5BsE,EAAK3F,KAAMqB,EAAGA,EAAI,GAEpB,OAAOrB,MAGT/B,EAAOT,UAAU8M,OAAS,WACxB,IAAI5J,EAAMV,KAAKvB,OACf,GAAIiC,EAAM,IAAM,EACd,MAAM,IAAI2C,WAAW,6CAEvB,IAAK,IAAIhC,EAAI,EAAGA,EAAIX,EAAKW,GAAK,EAC5BsE,EAAK3F,KAAMqB,EAAGA,EAAI,GAClBsE,EAAK3F,KAAMqB,EAAI,EAAGA,EAAI,GAExB,OAAOrB,MAGT/B,EAAOT,UAAU+M,OAAS,WACxB,IAAI7J,EAAMV,KAAKvB,OACf,GAAIiC,EAAM,IAAM,EACd,MAAM,IAAI2C,WAAW,6CAEvB,IAAK,IAAIhC,EAAI,EAAGA,EAAIX,EAAKW,GAAK,EAC5BsE,EAAK3F,KAAMqB,EAAGA,EAAI,GAClBsE,EAAK3F,KAAMqB,EAAI,EAAGA,EAAI,GACtBsE,EAAK3F,KAAMqB,EAAI,EAAGA,EAAI,GACtBsE,EAAK3F,KAAMqB,EAAI,EAAGA,EAAI,GAExB,OAAOrB,MAGT/B,EAAOT,UAAUoH,SAAW,WAC1B,IAAInG,EAAuB,EAAduB,KAAKvB,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArB2C,UAAU3C,OAAqB6G,EAAUtF,KAAM,EAAGvB,GAC/CyG,EAAa3D,MAAMvB,KAAMoB,YAGlCnD,EAAOT,UAAUgN,OAAS,SAAiB5E,GACzC,IAAK3H,EAAOmG,SAASwB,GAAI,MAAM,IAAI9G,UAAU,6BAC7C,OAAIkB,OAAS4F,GACsB,IAA5B3H,EAAO8L,QAAQ/J,KAAM4F,IAG9B3H,EAAOT,UAAUiN,QAAU,WACzB,IAAIhD,EAAM,GACNiD,EAAMtN,EAAQgM,kBAKlB,OAJIpJ,KAAKvB,OAAS,IAChBgJ,EAAMzH,KAAK4E,SAAS,MAAO,EAAG8F,GAAKC,MAAM,SAASC,KAAK,KACnD5K,KAAKvB,OAASiM,IAAKjD,GAAO,UAEzB,WAAaA,EAAM,KAG5BxJ,EAAOT,UAAUuM,QAAU,SAAkBc,EAAQ1F,EAAOC,EAAK0F,EAAWC,GAC1E,IAAK9M,EAAOmG,SAASyG,GACnB,MAAM,IAAI/L,UAAU,6BAgBtB,QAbcK,IAAVgG,IACFA,EAAQ,QAEEhG,IAARiG,IACFA,EAAMyF,EAASA,EAAOpM,OAAS,QAEfU,IAAd2L,IACFA,EAAY,QAEE3L,IAAZ4L,IACFA,EAAU/K,KAAKvB,QAGb0G,EAAQ,GAAKC,EAAMyF,EAAOpM,QAAUqM,EAAY,GAAKC,EAAU/K,KAAKvB,OACtE,MAAM,IAAI4E,WAAW,sBAGvB,GAAIyH,GAAaC,GAAW5F,GAASC,EACnC,OAAO,EAET,GAAI0F,GAAaC,EACf,OAAQ,EAEV,GAAI5F,GAASC,EACX,OAAO,EAQT,GAAIpF,OAAS6K,EAAQ,OAAO,EAS5B,IAPA,IAAIZ,GAJJc,KAAa,IADbD,KAAe,GAMXZ,GAPJ9E,KAAS,IADTD,KAAW,GASPzE,EAAM4H,KAAKC,IAAI0B,EAAGC,GAElBc,EAAWhL,KAAKiE,MAAM6G,EAAWC,GACjCE,EAAaJ,EAAO5G,MAAMkB,EAAOC,GAE5B/D,EAAI,EAAGA,EAAIX,IAAOW,EACzB,GAAI2J,EAAS3J,KAAO4J,EAAW5J,GAAI,CACjC4I,EAAIe,EAAS3J,GACb6I,EAAIe,EAAW5J,GACf,MAIJ,OAAI4I,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,GA6HThM,EAAOT,UAAU0N,SAAW,SAAmB3G,EAAKd,EAAYxE,GAC9D,OAAoD,IAA7Ce,KAAKkG,QAAQ3B,EAAKd,EAAYxE,IAGvChB,EAAOT,UAAU0I,QAAU,SAAkB3B,EAAKd,EAAYxE,GAC5D,OAAO8G,EAAqB/F,KAAMuE,EAAKd,EAAYxE,GAAU,IAG/DhB,EAAOT,UAAU2I,YAAc,SAAsB5B,EAAKd,EAAYxE,GACpE,OAAO8G,EAAqB/F,KAAMuE,EAAKd,EAAYxE,GAAU,IAkD/DhB,EAAOT,UAAUwG,MAAQ,SAAgBH,EAAQkD,EAAQtI,EAAQQ,GAE/D,QAAeE,IAAX4H,EACF9H,EAAW,OACXR,EAASuB,KAAKvB,OACdsI,EAAS,OAEJ,QAAe5H,IAAXV,GAA0C,kBAAXsI,EACxC9H,EAAW8H,EACXtI,EAASuB,KAAKvB,OACdsI,EAAS,MAEJ,KAAIoE,SAASpE,GAWlB,MAAM,IAAItH,MACR,2EAXFsH,GAAkB,EACdoE,SAAS1M,IACXA,GAAkB,OACDU,IAAbF,IAAwBA,EAAW,UAEvCA,EAAWR,EACXA,OAASU,GASb,IAAI8H,EAAYjH,KAAKvB,OAASsI,EAG9B,SAFe5H,IAAXV,GAAwBA,EAASwI,KAAWxI,EAASwI,GAEpDpD,EAAOpF,OAAS,IAAMA,EAAS,GAAKsI,EAAS,IAAOA,EAAS/G,KAAKvB,OACrE,MAAM,IAAI4E,WAAW,0CAGlBpE,IAAUA,EAAW,QAG1B,IADA,IAAI6F,GAAc,IAEhB,OAAQ7F,GACN,IAAK,MACH,OAAO6H,EAAS9G,KAAM6D,EAAQkD,EAAQtI,GAExC,IAAK,OACL,IAAK,QACH,OAAO6I,EAAUtH,KAAM6D,EAAQkD,EAAQtI,GAEzC,IAAK,QACH,OAAO+I,EAAWxH,KAAM6D,EAAQkD,EAAQtI,GAE1C,IAAK,SACL,IAAK,SACH,OAAOoJ,EAAY7H,KAAM6D,EAAQkD,EAAQtI,GAE3C,IAAK,SAEH,OAAOqJ,EAAY9H,KAAM6D,EAAQkD,EAAQtI,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOsJ,EAAU/H,KAAM6D,EAAQkD,EAAQtI,GAEzC,QACE,GAAIqG,EAAa,MAAM,IAAIhG,UAAU,qBAAuBG,GAC5DA,GAAY,GAAKA,GAAUgG,cAC3BH,GAAc,IAKtB7G,EAAOT,UAAU4N,OAAS,WACxB,MAAO,CACL5G,KAAM,SACNC,KAAMtD,MAAM3D,UAAUyG,MAAMlE,KAAKC,KAAKqL,MAAQrL,KAAM,KAwFxD,IAAIiJ,EAAuB,KAoB3B,SAAS1D,EAAYrG,EAAKiG,EAAOC,GAC/B,IAAIkG,EAAM,GACVlG,EAAMkD,KAAKC,IAAIrJ,EAAIT,OAAQ2G,GAE3B,IAAK,IAAI/D,EAAI8D,EAAO9D,EAAI+D,IAAO/D,EAC7BiK,GAAO9E,OAAO0C,aAAsB,IAAThK,EAAImC,IAEjC,OAAOiK,EAGT,SAAS9F,EAAatG,EAAKiG,EAAOC,GAChC,IAAIkG,EAAM,GACVlG,EAAMkD,KAAKC,IAAIrJ,EAAIT,OAAQ2G,GAE3B,IAAK,IAAI/D,EAAI8D,EAAO9D,EAAI+D,IAAO/D,EAC7BiK,GAAO9E,OAAO0C,aAAahK,EAAImC,IAEjC,OAAOiK,EAGT,SAASjG,EAAUnG,EAAKiG,EAAOC,GAC7B,IAAI1E,EAAMxB,EAAIT,SAET0G,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAM1E,KAAK0E,EAAM1E,GAGxC,IADA,IAAI6K,EAAM,GACDlK,EAAI8D,EAAO9D,EAAI+D,IAAO/D,EAC7BkK,GAAOC,EAAMtM,EAAImC,IAEnB,OAAOkK,EAGT,SAAS7F,EAAcxG,EAAKiG,EAAOC,GAGjC,IAFA,IAAIqG,EAAQvM,EAAI+E,MAAMkB,EAAOC,GACzBoD,EAAM,GACDnH,EAAI,EAAGA,EAAIoK,EAAMhN,OAAQ4C,GAAK,EACrCmH,GAAOhC,OAAO0C,aAAauC,EAAMpK,GAAoB,IAAfoK,EAAMpK,EAAI,IAElD,OAAOmH,EA0CT,SAASkD,EAAa3E,EAAQ4E,EAAKlN,GACjC,GAAKsI,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAI1D,WAAW,sBAC3D,GAAI0D,EAAS4E,EAAMlN,EAAQ,MAAM,IAAI4E,WAAW,yCA+JlD,SAASuI,EAAU1M,EAAKxB,EAAOqJ,EAAQ4E,EAAKjB,EAAKnC,GAC/C,IAAKtK,EAAOmG,SAASlF,GAAM,MAAM,IAAIJ,UAAU,+CAC/C,GAAIpB,EAAQgN,GAAOhN,EAAQ6K,EAAK,MAAM,IAAIlF,WAAW,qCACrD,GAAI0D,EAAS4E,EAAMzM,EAAIT,OAAQ,MAAM,IAAI4E,WAAW,sBAkDtD,SAASwI,EAAmB3M,EAAKxB,EAAOqJ,EAAQ+E,GAC1CpO,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAI2D,EAAI,EAAGwF,EAAIyB,KAAKC,IAAIrJ,EAAIT,OAASsI,EAAQ,GAAI1F,EAAIwF,IAAKxF,EAC7DnC,EAAI6H,EAAS1F,IAAM3D,EAAS,KAAS,GAAKoO,EAAezK,EAAI,EAAIA,MAClC,GAA5ByK,EAAezK,EAAI,EAAIA,GA8B9B,SAAS0K,EAAmB7M,EAAKxB,EAAOqJ,EAAQ+E,GAC1CpO,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAI2D,EAAI,EAAGwF,EAAIyB,KAAKC,IAAIrJ,EAAIT,OAASsI,EAAQ,GAAI1F,EAAIwF,IAAKxF,EAC7DnC,EAAI6H,EAAS1F,GAAM3D,IAAuC,GAA5BoO,EAAezK,EAAI,EAAIA,GAAU,IAmJnE,SAAS2K,EAAc9M,EAAKxB,EAAOqJ,EAAQ4E,EAAKjB,EAAKnC,GACnD,GAAIxB,EAAS4E,EAAMzM,EAAIT,OAAQ,MAAM,IAAI4E,WAAW,sBACpD,GAAI0D,EAAS,EAAG,MAAM,IAAI1D,WAAW,sBAGvC,SAAS4I,EAAY/M,EAAKxB,EAAOqJ,EAAQ+E,EAAcI,GAKrD,OAJKA,GACHF,EAAa9M,EAAKxB,EAAOqJ,EAAQ,GAEnChE,EAAQiB,MAAM9E,EAAKxB,EAAOqJ,EAAQ+E,EAAc,GAAI,GAC7C/E,EAAS,EAWlB,SAASoF,EAAajN,EAAKxB,EAAOqJ,EAAQ+E,EAAcI,GAKtD,OAJKA,GACHF,EAAa9M,EAAKxB,EAAOqJ,EAAQ,GAEnChE,EAAQiB,MAAM9E,EAAKxB,EAAOqJ,EAAQ+E,EAAc,GAAI,GAC7C/E,EAAS,EA/clB9I,EAAOT,UAAUyG,MAAQ,SAAgBkB,EAAOC,GAC9C,IAoBIgH,EApBA1L,EAAMV,KAAKvB,OAqBf,IApBA0G,IAAUA,GAGE,GACVA,GAASzE,GACG,IAAGyE,EAAQ,GACdA,EAAQzE,IACjByE,EAAQzE,IANV0E,OAAcjG,IAARiG,EAAoB1E,IAAQ0E,GASxB,GACRA,GAAO1E,GACG,IAAG0E,EAAM,GACVA,EAAM1E,IACf0E,EAAM1E,GAGJ0E,EAAMD,IAAOC,EAAMD,GAGnBlH,EAAOiF,qBACTkJ,EAASpM,KAAKuJ,SAASpE,EAAOC,IACvB7B,UAAYtF,EAAOT,cACrB,CACL,IAAI6O,EAAWjH,EAAMD,EACrBiH,EAAS,IAAInO,EAAOoO,OAAUlN,GAC9B,IAAK,IAAIkC,EAAI,EAAGA,EAAIgL,IAAYhL,EAC9B+K,EAAO/K,GAAKrB,KAAKqB,EAAI8D,GAIzB,OAAOiH,GAWTnO,EAAOT,UAAU8O,WAAa,SAAqBvF,EAAQrD,EAAYwI,GACrEnF,GAAkB,EAClBrD,GAA0B,EACrBwI,GAAUR,EAAY3E,EAAQrD,EAAY1D,KAAKvB,QAKpD,IAHA,IAAI8F,EAAMvE,KAAK+G,GACXwF,EAAM,EACNlL,EAAI,IACCA,EAAIqC,IAAe6I,GAAO,MACjChI,GAAOvE,KAAK+G,EAAS1F,GAAKkL,EAG5B,OAAOhI,GAGTtG,EAAOT,UAAUgP,WAAa,SAAqBzF,EAAQrD,EAAYwI,GACrEnF,GAAkB,EAClBrD,GAA0B,EACrBwI,GACHR,EAAY3E,EAAQrD,EAAY1D,KAAKvB,QAKvC,IAFA,IAAI8F,EAAMvE,KAAK+G,IAAWrD,GACtB6I,EAAM,EACH7I,EAAa,IAAM6I,GAAO,MAC/BhI,GAAOvE,KAAK+G,IAAWrD,GAAc6I,EAGvC,OAAOhI,GAGTtG,EAAOT,UAAUiP,UAAY,SAAoB1F,EAAQmF,GAEvD,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACpCuB,KAAK+G,IAGd9I,EAAOT,UAAUkP,aAAe,SAAuB3F,EAAQmF,GAE7D,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACpCuB,KAAK+G,GAAW/G,KAAK+G,EAAS,IAAM,GAG7C9I,EAAOT,UAAUkJ,aAAe,SAAuBK,EAAQmF,GAE7D,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACnCuB,KAAK+G,IAAW,EAAK/G,KAAK+G,EAAS,IAG7C9I,EAAOT,UAAUmP,aAAe,SAAuB5F,EAAQmF,GAG7D,OAFKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,SAElCuB,KAAK+G,GACT/G,KAAK+G,EAAS,IAAM,EACpB/G,KAAK+G,EAAS,IAAM,IACD,SAAnB/G,KAAK+G,EAAS,IAGrB9I,EAAOT,UAAUoP,aAAe,SAAuB7F,EAAQmF,GAG7D,OAFKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QAEpB,SAAfuB,KAAK+G,IACT/G,KAAK+G,EAAS,IAAM,GACrB/G,KAAK+G,EAAS,IAAM,EACrB/G,KAAK+G,EAAS,KAGlB9I,EAAOT,UAAUqP,UAAY,SAAoB9F,EAAQrD,EAAYwI,GACnEnF,GAAkB,EAClBrD,GAA0B,EACrBwI,GAAUR,EAAY3E,EAAQrD,EAAY1D,KAAKvB,QAKpD,IAHA,IAAI8F,EAAMvE,KAAK+G,GACXwF,EAAM,EACNlL,EAAI,IACCA,EAAIqC,IAAe6I,GAAO,MACjChI,GAAOvE,KAAK+G,EAAS1F,GAAKkL,EAM5B,OAFIhI,IAFJgI,GAAO,OAEShI,GAAO+D,KAAKwE,IAAI,EAAG,EAAIpJ,IAEhCa,GAGTtG,EAAOT,UAAUuP,UAAY,SAAoBhG,EAAQrD,EAAYwI,GACnEnF,GAAkB,EAClBrD,GAA0B,EACrBwI,GAAUR,EAAY3E,EAAQrD,EAAY1D,KAAKvB,QAKpD,IAHA,IAAI4C,EAAIqC,EACJ6I,EAAM,EACNhI,EAAMvE,KAAK+G,IAAW1F,GACnBA,EAAI,IAAMkL,GAAO,MACtBhI,GAAOvE,KAAK+G,IAAW1F,GAAKkL,EAM9B,OAFIhI,IAFJgI,GAAO,OAEShI,GAAO+D,KAAKwE,IAAI,EAAG,EAAIpJ,IAEhCa,GAGTtG,EAAOT,UAAUwP,SAAW,SAAmBjG,EAAQmF,GAErD,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACtB,IAAfuB,KAAK+G,IAC0B,GAA5B,IAAO/G,KAAK+G,GAAU,GADK/G,KAAK+G,IAI3C9I,EAAOT,UAAUyP,YAAc,SAAsBlG,EAAQmF,GACtDA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QAC3C,IAAI8F,EAAMvE,KAAK+G,GAAW/G,KAAK+G,EAAS,IAAM,EAC9C,OAAc,MAANxC,EAAsB,WAANA,EAAmBA,GAG7CtG,EAAOT,UAAU0P,YAAc,SAAsBnG,EAAQmF,GACtDA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QAC3C,IAAI8F,EAAMvE,KAAK+G,EAAS,GAAM/G,KAAK+G,IAAW,EAC9C,OAAc,MAANxC,EAAsB,WAANA,EAAmBA,GAG7CtG,EAAOT,UAAU2P,YAAc,SAAsBpG,EAAQmF,GAG3D,OAFKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QAEnCuB,KAAK+G,GACV/G,KAAK+G,EAAS,IAAM,EACpB/G,KAAK+G,EAAS,IAAM,GACpB/G,KAAK+G,EAAS,IAAM,IAGzB9I,EAAOT,UAAU4P,YAAc,SAAsBrG,EAAQmF,GAG3D,OAFKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QAEnCuB,KAAK+G,IAAW,GACrB/G,KAAK+G,EAAS,IAAM,GACpB/G,KAAK+G,EAAS,IAAM,EACpB/G,KAAK+G,EAAS,IAGnB9I,EAAOT,UAAU6P,YAAc,SAAsBtG,EAAQmF,GAE3D,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACpCsE,EAAQ0D,KAAKzG,KAAM+G,GAAQ,EAAM,GAAI,IAG9C9I,EAAOT,UAAU8P,YAAc,SAAsBvG,EAAQmF,GAE3D,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACpCsE,EAAQ0D,KAAKzG,KAAM+G,GAAQ,EAAO,GAAI,IAG/C9I,EAAOT,UAAU+P,aAAe,SAAuBxG,EAAQmF,GAE7D,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACpCsE,EAAQ0D,KAAKzG,KAAM+G,GAAQ,EAAM,GAAI,IAG9C9I,EAAOT,UAAUgQ,aAAe,SAAuBzG,EAAQmF,GAE7D,OADKA,GAAUR,EAAY3E,EAAQ,EAAG/G,KAAKvB,QACpCsE,EAAQ0D,KAAKzG,KAAM+G,GAAQ,EAAO,GAAI,IAS/C9I,EAAOT,UAAUiQ,YAAc,SAAsB/P,EAAOqJ,EAAQrD,EAAYwI,IAC9ExO,GAASA,EACTqJ,GAAkB,EAClBrD,GAA0B,EACrBwI,IAEHN,EAAS5L,KAAMtC,EAAOqJ,EAAQrD,EADf4E,KAAKwE,IAAI,EAAG,EAAIpJ,GAAc,EACO,GAGtD,IAAI6I,EAAM,EACNlL,EAAI,EAER,IADArB,KAAK+G,GAAkB,IAARrJ,IACN2D,EAAIqC,IAAe6I,GAAO,MACjCvM,KAAK+G,EAAS1F,GAAM3D,EAAQ6O,EAAO,IAGrC,OAAOxF,EAASrD,GAGlBzF,EAAOT,UAAUkQ,YAAc,SAAsBhQ,EAAOqJ,EAAQrD,EAAYwI,IAC9ExO,GAASA,EACTqJ,GAAkB,EAClBrD,GAA0B,EACrBwI,IAEHN,EAAS5L,KAAMtC,EAAOqJ,EAAQrD,EADf4E,KAAKwE,IAAI,EAAG,EAAIpJ,GAAc,EACO,GAGtD,IAAIrC,EAAIqC,EAAa,EACjB6I,EAAM,EAEV,IADAvM,KAAK+G,EAAS1F,GAAa,IAAR3D,IACV2D,GAAK,IAAMkL,GAAO,MACzBvM,KAAK+G,EAAS1F,GAAM3D,EAAQ6O,EAAO,IAGrC,OAAOxF,EAASrD,GAGlBzF,EAAOT,UAAUmQ,WAAa,SAAqBjQ,EAAOqJ,EAAQmF,GAMhE,OALAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,IAAM,GACjD9I,EAAOiF,sBAAqBxF,EAAQ4K,KAAKsF,MAAMlQ,IACpDsC,KAAK+G,GAAmB,IAARrJ,EACTqJ,EAAS,GAWlB9I,EAAOT,UAAUqQ,cAAgB,SAAwBnQ,EAAOqJ,EAAQmF,GAUtE,OATAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,MAAQ,GACpD9I,EAAOiF,qBACTlD,KAAK+G,GAAmB,IAARrJ,EAChBsC,KAAK+G,EAAS,GAAMrJ,IAAU,GAE9BmO,EAAkB7L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAGlB9I,EAAOT,UAAUsQ,cAAgB,SAAwBpQ,EAAOqJ,EAAQmF,GAUtE,OATAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,MAAQ,GACpD9I,EAAOiF,qBACTlD,KAAK+G,GAAWrJ,IAAU,EAC1BsC,KAAK+G,EAAS,GAAc,IAARrJ,GAEpBmO,EAAkB7L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAUlB9I,EAAOT,UAAUuQ,cAAgB,SAAwBrQ,EAAOqJ,EAAQmF,GAYtE,OAXAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,WAAY,GACxD9I,EAAOiF,qBACTlD,KAAK+G,EAAS,GAAMrJ,IAAU,GAC9BsC,KAAK+G,EAAS,GAAMrJ,IAAU,GAC9BsC,KAAK+G,EAAS,GAAMrJ,IAAU,EAC9BsC,KAAK+G,GAAmB,IAARrJ,GAEhBqO,EAAkB/L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAGlB9I,EAAOT,UAAUwQ,cAAgB,SAAwBtQ,EAAOqJ,EAAQmF,GAYtE,OAXAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,WAAY,GACxD9I,EAAOiF,qBACTlD,KAAK+G,GAAWrJ,IAAU,GAC1BsC,KAAK+G,EAAS,GAAMrJ,IAAU,GAC9BsC,KAAK+G,EAAS,GAAMrJ,IAAU,EAC9BsC,KAAK+G,EAAS,GAAc,IAARrJ,GAEpBqO,EAAkB/L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAGlB9I,EAAOT,UAAUyQ,WAAa,SAAqBvQ,EAAOqJ,EAAQrD,EAAYwI,GAG5E,GAFAxO,GAASA,EACTqJ,GAAkB,GACbmF,EAAU,CACb,IAAIgC,EAAQ5F,KAAKwE,IAAI,EAAG,EAAIpJ,EAAa,GAEzCkI,EAAS5L,KAAMtC,EAAOqJ,EAAQrD,EAAYwK,EAAQ,GAAIA,GAGxD,IAAI7M,EAAI,EACJkL,EAAM,EACN4B,EAAM,EAEV,IADAnO,KAAK+G,GAAkB,IAARrJ,IACN2D,EAAIqC,IAAe6I,GAAO,MAC7B7O,EAAQ,GAAa,IAARyQ,GAAsC,IAAzBnO,KAAK+G,EAAS1F,EAAI,KAC9C8M,EAAM,GAERnO,KAAK+G,EAAS1F,IAAO3D,EAAQ6O,GAAQ,GAAK4B,EAAM,IAGlD,OAAOpH,EAASrD,GAGlBzF,EAAOT,UAAU4Q,WAAa,SAAqB1Q,EAAOqJ,EAAQrD,EAAYwI,GAG5E,GAFAxO,GAASA,EACTqJ,GAAkB,GACbmF,EAAU,CACb,IAAIgC,EAAQ5F,KAAKwE,IAAI,EAAG,EAAIpJ,EAAa,GAEzCkI,EAAS5L,KAAMtC,EAAOqJ,EAAQrD,EAAYwK,EAAQ,GAAIA,GAGxD,IAAI7M,EAAIqC,EAAa,EACjB6I,EAAM,EACN4B,EAAM,EAEV,IADAnO,KAAK+G,EAAS1F,GAAa,IAAR3D,IACV2D,GAAK,IAAMkL,GAAO,MACrB7O,EAAQ,GAAa,IAARyQ,GAAsC,IAAzBnO,KAAK+G,EAAS1F,EAAI,KAC9C8M,EAAM,GAERnO,KAAK+G,EAAS1F,IAAO3D,EAAQ6O,GAAQ,GAAK4B,EAAM,IAGlD,OAAOpH,EAASrD,GAGlBzF,EAAOT,UAAU6Q,UAAY,SAAoB3Q,EAAOqJ,EAAQmF,GAO9D,OANAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,KAAO,KAClD9I,EAAOiF,sBAAqBxF,EAAQ4K,KAAKsF,MAAMlQ,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCsC,KAAK+G,GAAmB,IAARrJ,EACTqJ,EAAS,GAGlB9I,EAAOT,UAAU8Q,aAAe,SAAuB5Q,EAAOqJ,EAAQmF,GAUpE,OATAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,OAAS,OACrD9I,EAAOiF,qBACTlD,KAAK+G,GAAmB,IAARrJ,EAChBsC,KAAK+G,EAAS,GAAMrJ,IAAU,GAE9BmO,EAAkB7L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAGlB9I,EAAOT,UAAU+Q,aAAe,SAAuB7Q,EAAOqJ,EAAQmF,GAUpE,OATAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,OAAS,OACrD9I,EAAOiF,qBACTlD,KAAK+G,GAAWrJ,IAAU,EAC1BsC,KAAK+G,EAAS,GAAc,IAARrJ,GAEpBmO,EAAkB7L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAGlB9I,EAAOT,UAAUgR,aAAe,SAAuB9Q,EAAOqJ,EAAQmF,GAYpE,OAXAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,YAAa,YACzD9I,EAAOiF,qBACTlD,KAAK+G,GAAmB,IAARrJ,EAChBsC,KAAK+G,EAAS,GAAMrJ,IAAU,EAC9BsC,KAAK+G,EAAS,GAAMrJ,IAAU,GAC9BsC,KAAK+G,EAAS,GAAMrJ,IAAU,IAE9BqO,EAAkB/L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAGlB9I,EAAOT,UAAUiR,aAAe,SAAuB/Q,EAAOqJ,EAAQmF,GAapE,OAZAxO,GAASA,EACTqJ,GAAkB,EACbmF,GAAUN,EAAS5L,KAAMtC,EAAOqJ,EAAQ,EAAG,YAAa,YACzDrJ,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxCO,EAAOiF,qBACTlD,KAAK+G,GAAWrJ,IAAU,GAC1BsC,KAAK+G,EAAS,GAAMrJ,IAAU,GAC9BsC,KAAK+G,EAAS,GAAMrJ,IAAU,EAC9BsC,KAAK+G,EAAS,GAAc,IAARrJ,GAEpBqO,EAAkB/L,KAAMtC,EAAOqJ,GAAQ,GAElCA,EAAS,GAgBlB9I,EAAOT,UAAUkR,aAAe,SAAuBhR,EAAOqJ,EAAQmF,GACpE,OAAOD,EAAWjM,KAAMtC,EAAOqJ,GAAQ,EAAMmF,IAG/CjO,EAAOT,UAAUmR,aAAe,SAAuBjR,EAAOqJ,EAAQmF,GACpE,OAAOD,EAAWjM,KAAMtC,EAAOqJ,GAAQ,EAAOmF,IAWhDjO,EAAOT,UAAUoR,cAAgB,SAAwBlR,EAAOqJ,EAAQmF,GACtE,OAAOC,EAAYnM,KAAMtC,EAAOqJ,GAAQ,EAAMmF,IAGhDjO,EAAOT,UAAUqR,cAAgB,SAAwBnR,EAAOqJ,EAAQmF,GACtE,OAAOC,EAAYnM,KAAMtC,EAAOqJ,GAAQ,EAAOmF,IAIjDjO,EAAOT,UAAU8G,KAAO,SAAeuG,EAAQiE,EAAa3J,EAAOC,GAQjE,GAPKD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMpF,KAAKvB,QAC9BqQ,GAAejE,EAAOpM,SAAQqQ,EAAcjE,EAAOpM,QAClDqQ,IAAaA,EAAc,GAC5B1J,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB0F,EAAOpM,QAAgC,IAAhBuB,KAAKvB,OAAc,OAAO,EAGrD,GAAIqQ,EAAc,EAChB,MAAM,IAAIzL,WAAW,6BAEvB,GAAI8B,EAAQ,GAAKA,GAASnF,KAAKvB,OAAQ,MAAM,IAAI4E,WAAW,6BAC5D,GAAI+B,EAAM,EAAG,MAAM,IAAI/B,WAAW,2BAG9B+B,EAAMpF,KAAKvB,SAAQ2G,EAAMpF,KAAKvB,QAC9BoM,EAAOpM,OAASqQ,EAAc1J,EAAMD,IACtCC,EAAMyF,EAAOpM,OAASqQ,EAAc3J,GAGtC,IACI9D,EADAX,EAAM0E,EAAMD,EAGhB,GAAInF,OAAS6K,GAAU1F,EAAQ2J,GAAeA,EAAc1J,EAE1D,IAAK/D,EAAIX,EAAM,EAAGW,GAAK,IAAKA,EAC1BwJ,EAAOxJ,EAAIyN,GAAe9O,KAAKqB,EAAI8D,QAEhC,GAAIzE,EAAM,MAASzC,EAAOiF,oBAE/B,IAAK7B,EAAI,EAAGA,EAAIX,IAAOW,EACrBwJ,EAAOxJ,EAAIyN,GAAe9O,KAAKqB,EAAI8D,QAGrC7B,WAAW9F,UAAUuR,IAAIhP,KACvB8K,EACA7K,KAAKuJ,SAASpE,EAAOA,EAAQzE,GAC7BoO,GAIJ,OAAOpO,GAOTzC,EAAOT,UAAUwB,KAAO,SAAeuF,EAAKY,EAAOC,EAAKnG,GAEtD,GAAmB,kBAARsF,EAAkB,CAS3B,GARqB,kBAAVY,GACTlG,EAAWkG,EACXA,EAAQ,EACRC,EAAMpF,KAAKvB,QACa,kBAAR2G,IAChBnG,EAAWmG,EACXA,EAAMpF,KAAKvB,QAEM,IAAf8F,EAAI9F,OAAc,CACpB,IAAIuQ,EAAOzK,EAAIoD,WAAW,GACtBqH,EAAO,MACTzK,EAAMyK,GAGV,QAAiB7P,IAAbF,GAA8C,kBAAbA,EACnC,MAAM,IAAIH,UAAU,6BAEtB,GAAwB,kBAAbG,IAA0BhB,EAAO6F,WAAW7E,GACrD,MAAM,IAAIH,UAAU,qBAAuBG,OAErB,kBAARsF,IAChBA,GAAY,KAId,GAAIY,EAAQ,GAAKnF,KAAKvB,OAAS0G,GAASnF,KAAKvB,OAAS2G,EACpD,MAAM,IAAI/B,WAAW,sBAGvB,GAAI+B,GAAOD,EACT,OAAOnF,KAQT,IAAIqB,EACJ,GANA8D,KAAkB,EAClBC,OAAcjG,IAARiG,EAAoBpF,KAAKvB,OAAS2G,IAAQ,EAE3Cb,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAKlD,EAAI8D,EAAO9D,EAAI+D,IAAO/D,EACzBrB,KAAKqB,GAAKkD,MAEP,CACL,IAAIkH,EAAQxN,EAAOmG,SAASG,GACxBA,EACAQ,EAAY,IAAI9G,EAAOsG,EAAKtF,GAAU2F,YACtClE,EAAM+K,EAAMhN,OAChB,IAAK4C,EAAI,EAAGA,EAAI+D,EAAMD,IAAS9D,EAC7BrB,KAAKqB,EAAI8D,GAASsG,EAAMpK,EAAIX,GAIhC,OAAOV,MAMT,IAAIiP,EAAoB,qBAmBxB,SAASzD,EAAO3F,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAEjB,SAAS,IAC7BiB,EAAEjB,SAAS,IAGpB,SAASG,EAAalB,EAAQmE,GAE5B,IAAIc,EADJd,EAAQA,GAASkH,IAMjB,IAJA,IAAIzQ,EAASoF,EAAOpF,OAChB0Q,EAAgB,KAChB1D,EAAQ,GAEHpK,EAAI,EAAGA,EAAI5C,IAAU4C,EAAG,CAI/B,IAHAyH,EAAYjF,EAAO8D,WAAWtG,IAGd,OAAUyH,EAAY,MAAQ,CAE5C,IAAKqG,EAAe,CAElB,GAAIrG,EAAY,MAAQ,EAEjBd,GAAS,IAAM,GAAGyD,EAAMnK,KAAK,IAAM,IAAM,KAC9C,SACK,GAAID,EAAI,IAAM5C,EAAQ,EAEtBuJ,GAAS,IAAM,GAAGyD,EAAMnK,KAAK,IAAM,IAAM,KAC9C,SAIF6N,EAAgBrG,EAEhB,SAIF,GAAIA,EAAY,MAAQ,EACjBd,GAAS,IAAM,GAAGyD,EAAMnK,KAAK,IAAM,IAAM,KAC9C6N,EAAgBrG,EAChB,SAIFA,EAAkE,OAArDqG,EAAgB,OAAU,GAAKrG,EAAY,YAC/CqG,IAEJnH,GAAS,IAAM,GAAGyD,EAAMnK,KAAK,IAAM,IAAM,KAMhD,GAHA6N,EAAgB,KAGZrG,EAAY,IAAM,CACpB,IAAKd,GAAS,GAAK,EAAG,MACtByD,EAAMnK,KAAKwH,QACN,GAAIA,EAAY,KAAO,CAC5B,IAAKd,GAAS,GAAK,EAAG,MACtByD,EAAMnK,KACJwH,GAAa,EAAM,IACP,GAAZA,EAAmB,UAEhB,GAAIA,EAAY,MAAS,CAC9B,IAAKd,GAAS,GAAK,EAAG,MACtByD,EAAMnK,KACJwH,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,SAEhB,MAAIA,EAAY,SASrB,MAAM,IAAIrJ,MAAM,sBARhB,IAAKuI,GAAS,GAAK,EAAG,MACtByD,EAAMnK,KACJwH,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,MAOzB,OAAO2C,EA4BT,SAASzG,EAAeyC,GACtB,OAAO3E,EAAOsM,YAhIhB,SAAsB3H,GAIpB,IAFAA,EAUF,SAAqBA,GACnB,OAAIA,EAAI4H,KAAa5H,EAAI4H,OAClB5H,EAAI6H,QAAQ,aAAc,IAZ3BC,CAAW9H,GAAK6H,QAAQL,EAAmB,KAEzCxQ,OAAS,EAAG,MAAO,GAE3B,KAAOgJ,EAAIhJ,OAAS,IAAM,GACxBgJ,GAAY,IAEd,OAAOA,EAuHmB+H,CAAY/H,IAGxC,SAASF,EAAYpJ,EAAKC,EAAK2I,EAAQtI,GACrC,IAAK,IAAI4C,EAAI,EAAGA,EAAI5C,KACb4C,EAAI0F,GAAU3I,EAAIK,QAAY4C,GAAKlD,EAAIM,UADhB4C,EAE5BjD,EAAIiD,EAAI0F,GAAU5I,EAAIkD,GAExB,OAAOA,K,+BCvvDT,IAAIoO,EAGJA,EAAK,WACJ,OAAOzP,KADH,GAIL,IAECyP,EAAIA,GAAK,IAAIC,SAAS,cAAb,GACR,MAAO5P,GAEc,kBAAX6P,SAAqBF,EAAIE,QAOrCxS,EAAOC,QAAUqS,G,cCjBjB,SAASG,EAAOrL,EAAKsL,GACnB,IAAKtL,EACH,MAAM,IAAI9E,MAAMoQ,GAAO,oBAJ3B1S,EAAOC,QAAUwS,EAOjBA,EAAOE,MAAQ,SAAqBC,EAAGC,EAAGH,GACxC,GAAIE,GAAKC,EACP,MAAM,IAAIvQ,MAAMoQ,GAAQ,qBAAuBE,EAAI,OAASC,K,6BCPhE,IAAIC,EAAQ7S,EACR8S,EAAKlS,EAAQ,IACbmS,EAAYnS,EAAQ,GACpBoS,EAAWpS,EAAQ,IAEvBiS,EAAML,OAASO,EACfF,EAAMI,QAAUD,EAASC,QACzBJ,EAAMK,MAAQF,EAASE,MACvBL,EAAMzE,MAAQ4E,EAAS5E,MACvByE,EAAMM,OAASH,EAASG,OA6BxBN,EAAMO,OA1BN,SAAgBC,EAAKC,EAAGC,GACtB,IAAIC,EAAM,IAAIzP,MAAMmH,KAAKoC,IAAI+F,EAAII,YAAaF,GAAQ,GACtDC,EAAI5R,KAAK,GAKT,IAHA,IAAI8R,EAAK,GAAMJ,EAAI,EACfK,EAAIN,EAAIO,QAEH3P,EAAI,EAAGA,EAAIuP,EAAInS,OAAQ4C,IAAK,CACnC,IAAI4P,EACAC,EAAMH,EAAEI,MAAML,EAAK,GACnBC,EAAEK,SAEFH,EADEC,GAAOJ,GAAM,GAAK,GACfA,GAAM,GAAKI,EAEZA,EACNH,EAAEM,MAAMJ,IAERA,EAAI,EAGNL,EAAIvP,GAAK4P,EACTF,EAAEO,OAAO,GAGX,OAAOV,GA2DTX,EAAMsB,OAtDN,SAAgBC,EAAIC,GAClB,IAAIC,EAAM,CACR,GACA,IAGFF,EAAKA,EAAGR,QACRS,EAAKA,EAAGT,QAIR,IAHA,IAEIW,EAFAC,EAAK,EACLC,EAAK,EAEFL,EAAGM,MAAMF,GAAM,GAAKH,EAAGK,MAAMD,GAAM,GAAG,CAE3C,IAMIE,EAYAC,EAlBAC,EAAOT,EAAGL,MAAM,GAAKS,EAAM,EAC3BM,EAAOT,EAAGN,MAAM,GAAKU,EAAM,EACnB,IAARI,IACFA,GAAO,GACG,IAARC,IACFA,GAAO,GAGPH,EADgB,KAAP,EAANE,GACE,EAGO,KADZN,EAAMH,EAAGL,MAAM,GAAKS,EAAM,IACF,IAAPD,GAAqB,IAARO,EAGvBD,GAFCA,EAIVP,EAAI,GAAGpQ,KAAKyQ,GAIVC,EADgB,KAAP,EAANE,GACE,EAGO,KADZP,EAAMF,EAAGN,MAAM,GAAKU,EAAM,IACF,IAAPF,GAAqB,IAARM,EAGvBC,GAFCA,EAIVR,EAAI,GAAGpQ,KAAK0Q,GAGR,EAAIJ,IAAOG,EAAK,IAClBH,EAAK,EAAIA,GACP,EAAIC,IAAOG,EAAK,IAClBH,EAAK,EAAIA,GACXL,EAAGF,OAAO,GACVG,EAAGH,OAAO,GAGZ,OAAOI,GAWTzB,EAAMkC,eAPN,SAAwBhO,EAAK3B,EAAM4P,GACjC,IAAI/T,EAAM,IAAMmE,EAChB2B,EAAI3G,UAAUgF,GAAQ,WACpB,YAAqBrD,IAAda,KAAK3B,GAAqB2B,KAAK3B,GACpC2B,KAAK3B,GAAO+T,EAASrS,KAAKC,QAShCiQ,EAAMoC,WAJN,SAAoB5G,GAClB,MAAwB,kBAAVA,EAAqBwE,EAAMI,QAAQ5E,EAAO,OACtDA,GAOJwE,EAAMqC,UAHN,SAAmB7G,GACjB,OAAO,IAAIyE,EAAGzE,EAAO,MAAO,Q,6BCjH9B,IAAImE,EAAS5R,EAAQ,GACjBuU,EAAWvU,EAAQ,GAIvB,SAASwU,EAAgB3C,EAAKxO,GAC5B,OAAqC,SAAZ,MAApBwO,EAAIlI,WAAWtG,QAGhBA,EAAI,GAAKA,EAAI,GAAKwO,EAAIpR,SAGkB,SAAZ,MAAxBoR,EAAIlI,WAAWtG,EAAI,KA0D7B,SAASoR,EAAM/B,GAKb,OAJWA,IAAM,GACLA,IAAM,EAAK,MACXA,GAAK,EAAK,UACN,IAAJA,IAAa,MACV,EAgBjB,SAASJ,EAAMoC,GACb,OAAoB,IAAhBA,EAAKjU,OACA,IAAMiU,EAENA,EAIX,SAASC,EAAMD,GACb,OAAoB,IAAhBA,EAAKjU,OACA,IAAMiU,EACU,IAAhBA,EAAKjU,OACL,KAAOiU,EACS,IAAhBA,EAAKjU,OACL,MAAQiU,EACQ,IAAhBA,EAAKjU,OACL,OAASiU,EACO,IAAhBA,EAAKjU,OACL,QAAUiU,EACM,IAAhBA,EAAKjU,OACL,SAAWiU,EACK,IAAhBA,EAAKjU,OACL,UAAYiU,EAEZA,EAhHXtV,EAAQmV,SAAWA,EAyDnBnV,EAAQiT,QA7CR,SAAiBR,EAAK+C,GACpB,GAAIzR,MAAM6B,QAAQ6M,GAChB,OAAOA,EAAI5L,QACb,IAAK4L,EACH,MAAO,GACT,IAAIrH,EAAM,GACV,GAAmB,kBAARqH,EACT,GAAK+C,GAyBE,GAAY,QAARA,EAIT,KAHA/C,EAAMA,EAAIP,QAAQ,eAAgB,KAC1B7Q,OAAS,IAAM,IACrBoR,EAAM,IAAMA,GACTxO,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,GAAK,EAC/BmH,EAAIlH,KAAK8F,SAASyI,EAAIxO,GAAKwO,EAAIxO,EAAI,GAAI,UAxBzC,IADA,IAAIwR,EAAI,EACCxR,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAAK,CACnC,IAAI4G,EAAI4H,EAAIlI,WAAWtG,GACnB4G,EAAI,IACNO,EAAIqK,KAAO5K,EACFA,EAAI,MACbO,EAAIqK,KAAQ5K,GAAK,EAAK,IACtBO,EAAIqK,KAAY,GAAJ5K,EAAU,KACbuK,EAAgB3C,EAAKxO,IAC9B4G,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtB4H,EAAIlI,aAAatG,IACvDmH,EAAIqK,KAAQ5K,GAAK,GAAM,IACvBO,EAAIqK,KAAS5K,GAAK,GAAM,GAAM,IAC9BO,EAAIqK,KAAS5K,GAAK,EAAK,GAAM,IAC7BO,EAAIqK,KAAY,GAAJ5K,EAAU,MAEtBO,EAAIqK,KAAQ5K,GAAK,GAAM,IACvBO,EAAIqK,KAAS5K,GAAK,EAAK,GAAM,IAC7BO,EAAIqK,KAAY,GAAJ5K,EAAU,UAW5B,IAAK5G,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAC1BmH,EAAInH,GAAc,EAATwO,EAAIxO,GAEjB,OAAOmH,GAUTpL,EAAQoO,MANR,SAAeqE,GAEb,IADA,IAAIrH,EAAM,GACDnH,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAC9BmH,GAAO8H,EAAMT,EAAIxO,GAAGuD,SAAS,KAC/B,OAAO4D,GAWTpL,EAAQqV,MAAQA,EAYhBrV,EAAQ0V,QAVR,SAAiBjD,EAAKkD,GAEpB,IADA,IAAIvK,EAAM,GACDnH,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAAK,CACnC,IAAIqP,EAAIb,EAAIxO,GACG,WAAX0R,IACFrC,EAAI+B,EAAM/B,IACZlI,GAAOmK,EAAMjC,EAAE9L,SAAS,KAE1B,OAAO4D,GAUTpL,EAAQkT,MAAQA,EAoBhBlT,EAAQuV,MAAQA,EAgBhBvV,EAAQ4V,OAdR,SAAgBnD,EAAK1K,EAAOC,EAAK2N,GAC/B,IAAIrS,EAAM0E,EAAMD,EAChByK,EAAOlP,EAAM,IAAM,GAEnB,IADA,IAAI8H,EAAM,IAAIrH,MAAMT,EAAM,GACjBW,EAAI,EAAG0P,EAAI5L,EAAO9D,EAAImH,EAAI/J,OAAQ4C,IAAK0P,GAAK,EAAG,CACtD,IAAIL,EAEFA,EADa,QAAXqC,EACGlD,EAAIkB,IAAM,GAAOlB,EAAIkB,EAAI,IAAM,GAAOlB,EAAIkB,EAAI,IAAM,EAAKlB,EAAIkB,EAAI,GAEjElB,EAAIkB,EAAI,IAAM,GAAOlB,EAAIkB,EAAI,IAAM,GAAOlB,EAAIkB,EAAI,IAAM,EAAKlB,EAAIkB,GACxEvI,EAAInH,GAAKqP,IAAM,EAEjB,OAAOlI,GAsBTpL,EAAQ6V,QAlBR,SAAiBpD,EAAKkD,GAEpB,IADA,IAAIvK,EAAM,IAAIrH,MAAmB,EAAb0O,EAAIpR,QACf4C,EAAI,EAAG0P,EAAI,EAAG1P,EAAIwO,EAAIpR,OAAQ4C,IAAK0P,GAAK,EAAG,CAClD,IAAIjL,EAAI+J,EAAIxO,GACG,QAAX0R,GACFvK,EAAIuI,GAAKjL,IAAM,GACf0C,EAAIuI,EAAI,GAAMjL,IAAM,GAAM,IAC1B0C,EAAIuI,EAAI,GAAMjL,IAAM,EAAK,IACzB0C,EAAIuI,EAAI,GAAS,IAAJjL,IAEb0C,EAAIuI,EAAI,GAAKjL,IAAM,GACnB0C,EAAIuI,EAAI,GAAMjL,IAAM,GAAM,IAC1B0C,EAAIuI,EAAI,GAAMjL,IAAM,EAAK,IACzB0C,EAAIuI,GAAS,IAAJjL,GAGb,OAAO0C,GAOTpL,EAAQ8V,OAHR,SAAgBxC,EAAG9K,GACjB,OAAQ8K,IAAM9K,EAAM8K,GAAM,GAAK9K,GAOjCxI,EAAQ+V,OAHR,SAAgBzC,EAAG9K,GACjB,OAAQ8K,GAAK9K,EAAM8K,IAAO,GAAK9K,GAOjCxI,EAAQgW,MAHR,SAAepJ,EAAGpE,GAChB,OAAQoE,EAAIpE,IAAO,GAOrBxI,EAAQiW,QAHR,SAAiBrJ,EAAGpE,EAAGqC,GACrB,OAAQ+B,EAAIpE,EAAIqC,IAAO,GAOzB7K,EAAQkW,QAHR,SAAiBtJ,EAAGpE,EAAGqC,EAAGsL,GACxB,OAAQvJ,EAAIpE,EAAIqC,EAAIsL,IAAO,GAO7BnW,EAAQoW,QAHR,SAAiBxJ,EAAGpE,EAAGqC,EAAGsL,EAAGzT,GAC3B,OAAQkK,EAAIpE,EAAIqC,EAAIsL,EAAIzT,IAAO,GAajC1C,EAAQqW,MATR,SAAevU,EAAKkL,EAAKsJ,EAAIC,GAC3B,IAAIC,EAAK1U,EAAIkL,GAGTjC,EAAMwL,EAFDzU,EAAIkL,EAAM,KAEI,EACnBlC,GAAMC,EAAKwL,EAAK,EAAI,GAAKD,EAAKE,EAClC1U,EAAIkL,GAAOlC,IAAO,EAClBhJ,EAAIkL,EAAM,GAAKjC,GASjB/K,EAAQyW,SALR,SAAkBH,EAAIC,EAAIC,EAAIE,GAG5B,OAFUH,EAAKG,IAAQ,EACRH,EAAK,EAAI,GAAKD,EAAKE,IACpB,GAQhBxW,EAAQ2W,SAJR,SAAkBL,EAAIC,EAAIC,EAAIE,GAE5B,OADSH,EAAKG,IACA,GAiBhB1W,EAAQ4W,WAbR,SAAoBN,EAAIC,EAAIC,EAAIE,EAAIG,EAAIC,EAAIC,EAAIC,GAC9C,IAAIC,EAAQ,EACRlM,EAAKwL,EAST,OAPAU,IADAlM,EAAMA,EAAK2L,IAAQ,GACLH,EAAK,EAAI,EAEvBU,IADAlM,EAAMA,EAAK+L,IAAQ,GACLA,EAAK,EAAI,EAIdR,EAAKE,EAAKK,EAAKE,GAFxBE,IADAlM,EAAMA,EAAKiM,IAAQ,GACLA,EAAK,EAAI,KAGT,GAQhBhX,EAAQkX,WAJR,SAAoBZ,EAAIC,EAAIC,EAAIE,EAAIG,EAAIC,EAAIC,EAAIC,GAE9C,OADST,EAAKG,EAAKI,EAAKE,IACV,GAmBhBhX,EAAQmX,WAfR,SAAoBb,EAAIC,EAAIC,EAAIE,EAAIG,EAAIC,EAAIC,EAAIC,EAAII,EAAIC,GACtD,IAAIJ,EAAQ,EACRlM,EAAKwL,EAWT,OATAU,IADAlM,EAAMA,EAAK2L,IAAQ,GACLH,EAAK,EAAI,EAEvBU,IADAlM,EAAMA,EAAK+L,IAAQ,GACLA,EAAK,EAAI,EAEvBG,IADAlM,EAAMA,EAAKiM,IAAQ,GACLA,EAAK,EAAI,EAIdV,EAAKE,EAAKK,EAAKE,EAAKK,GAF7BH,IADAlM,EAAMA,EAAKsM,IAAQ,GACLA,EAAK,EAAI,KAGT,GAShBrX,EAAQsX,WALR,SAAoBhB,EAAIC,EAAIC,EAAIE,EAAIG,EAAIC,EAAIC,EAAIC,EAAII,EAAIC,GAGtD,OAFSd,EAAKG,EAAKI,EAAKE,EAAKK,IAEf,GAQhBrX,EAAQuX,UAJR,SAAmBjB,EAAIC,EAAIlD,GAEzB,OADSkD,GAAO,GAAKlD,EAASiD,IAAOjD,KACxB,GAQfrT,EAAQwX,UAJR,SAAmBlB,EAAIC,EAAIlD,GAEzB,OADSiD,GAAO,GAAKjD,EAASkD,IAAOlD,KACxB,GAOfrT,EAAQyX,SAHR,SAAkBnB,EAAIC,EAAIlD,GACxB,OAAOiD,IAAOjD,GAQhBrT,EAAQ0X,SAJR,SAAkBpB,EAAIC,EAAIlD,GAExB,OADSiD,GAAO,GAAKjD,EAASkD,IAAOlD,KACxB,I,6BChRbtT,EAAOC,QAAUY,EAAQ,M,iBCH3B,sBAAWb,EAAQC,GACjB,aAGA,SAASwS,EAAQrL,EAAKsL,GACpB,IAAKtL,EAAK,MAAM,IAAI9E,MAAMoQ,GAAO,oBAKnC,SAAS0C,EAAUlV,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,EAK/B,SAAS6S,EAAI6E,EAAQC,EAAMjC,GACzB,GAAI7C,EAAG+E,KAAKF,GACV,OAAOA,EAGT/U,KAAKkV,SAAW,EAChBlV,KAAKmV,MAAQ,KACbnV,KAAKvB,OAAS,EAGduB,KAAKoV,IAAM,KAEI,OAAXL,IACW,OAATC,GAA0B,OAATA,IACnBjC,EAASiC,EACTA,EAAO,IAGThV,KAAKqV,MAAMN,GAAU,EAAGC,GAAQ,GAAIjC,GAAU,OAYlD,IAAI9U,EATkB,kBAAXd,EACTA,EAAOC,QAAU8S,EAEjB9S,EAAQ8S,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGoF,SAAW,GAGd,IAEIrX,EADoB,qBAAX0R,QAAmD,qBAAlBA,OAAO1R,OACxC0R,OAAO1R,OAEPD,EAAQ,KAAUC,OAE7B,MAAO6B,IAgIT,SAASyV,EAAe1R,EAAQ2R,GAC9B,IAAIvN,EAAIpE,EAAO8D,WAAW6N,GAE1B,OAAIvN,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASwN,EAAc5R,EAAQ6R,EAAYF,GACzC,IAAIxF,EAAIuF,EAAc1R,EAAQ2R,GAI9B,OAHIA,EAAQ,GAAKE,IACf1F,GAAKuF,EAAc1R,EAAQ2R,EAAQ,IAAM,GAEpCxF,EA8CT,SAAS2F,EAAWlO,EAAKtC,EAAOC,EAAKmH,GAGnC,IAFA,IAAIyD,EAAI,EACJtP,EAAM4H,KAAKC,IAAId,EAAIhJ,OAAQ2G,GACtB/D,EAAI8D,EAAO9D,EAAIX,EAAKW,IAAK,CAChC,IAAI4G,EAAIR,EAAIE,WAAWtG,GAAK,GAE5B2O,GAAKzD,EAIHyD,GADE/H,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAO+H,EAnNTE,EAAG+E,KAAO,SAAexE,GACvB,OAAIA,aAAeP,GAIJ,OAARO,GAA+B,kBAARA,GAC5BA,EAAIhT,YAAY6X,WAAapF,EAAGoF,UAAYnU,MAAM6B,QAAQyN,EAAI0E,QAGlEjF,EAAGxF,IAAM,SAAckL,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG3H,IAAM,SAAcqN,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG1S,UAAU6X,MAAQ,SAAeN,EAAQC,EAAMjC,GAChD,GAAsB,kBAAXgC,EACT,OAAO/U,KAAK+V,YAAYhB,EAAQC,EAAMjC,GAGxC,GAAsB,kBAAXgC,EACT,OAAO/U,KAAKgW,WAAWjB,EAAQC,EAAMjC,GAG1B,QAATiC,IACFA,EAAO,IAETpF,EAAOoF,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI7P,EAAQ,EACM,OAFlB4P,EAASA,EAAOnQ,WAAW0K,QAAQ,OAAQ,KAEhC,KACTnK,IACAnF,KAAKkV,SAAW,GAGd/P,EAAQ4P,EAAOtW,SACJ,KAATuW,EACFhV,KAAKiW,UAAUlB,EAAQ5P,EAAO4N,IAE9B/S,KAAKkW,WAAWnB,EAAQC,EAAM7P,GACf,OAAX4N,GACF/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,MAM9C7C,EAAG1S,UAAUuY,YAAc,SAAsBhB,EAAQC,EAAMjC,GACzDgC,EAAS,IACX/U,KAAKkV,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACX/U,KAAKmV,MAAQ,CAAW,SAATJ,GACf/U,KAAKvB,OAAS,GACLsW,EAAS,kBAClB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,UAEzB/U,KAAKvB,OAAS,IAEdmR,EAAOmF,EAAS,kBAChB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,SACvB,GAEF/U,KAAKvB,OAAS,GAGD,OAAXsU,GAGJ/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,IAGxC7C,EAAG1S,UAAUwY,WAAa,SAAqBjB,EAAQC,EAAMjC,GAG3D,GADAnD,EAAgC,kBAAlBmF,EAAOtW,QACjBsW,EAAOtW,QAAU,EAGnB,OAFAuB,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EACPuB,KAGTA,KAAKvB,OAAS6J,KAAK6N,KAAKpB,EAAOtW,OAAS,GACxCuB,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAGlB,IAAIwF,EAAG6J,EACHzO,EAAM,EACV,GAAe,OAAX8Q,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAGoI,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,UAGC,GAAe,OAAXkM,EACT,IAAK1R,EAAI,EAAGwF,EAAI,EAAGxF,EAAI0T,EAAOtW,OAAQ4C,GAAK,EACzCqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,KAIN,OAAO7G,KAAKoW,SAyBdlG,EAAG1S,UAAUyY,UAAY,SAAoBlB,EAAQ5P,EAAO4N,GAE1D/S,KAAKvB,OAAS6J,KAAK6N,MAAMpB,EAAOtW,OAAS0G,GAAS,GAClDnF,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAIlB,IAGIqP,EAHAzO,EAAM,EACN4E,EAAI,EAGR,GAAe,OAAXkM,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAG4C,GAAK8D,EAAO9D,GAAK,EAC3CqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,OAKX,IAAKZ,GADa0T,EAAOtW,OAAS0G,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO9D,EAAI0T,EAAOtW,OAAQ4C,GAAK,EAC1EqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,EAKbjC,KAAKoW,SA2BPlG,EAAG1S,UAAU0Y,WAAa,SAAqBnB,EAAQC,EAAM7P,GAE3DnF,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EAGd,IAAK,IAAI4X,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWtB,EAClEqB,IAEFA,IACAC,EAAWA,EAAUtB,EAAQ,EAO7B,IALA,IAAIuB,EAAQxB,EAAOtW,OAAS0G,EACxB+L,EAAMqF,EAAQF,EACdjR,EAAMkD,KAAKC,IAAIgO,EAAOA,EAAQrF,GAAO/L,EAErCuN,EAAO,EACFrR,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAKgV,EAChC3D,EAAOiD,EAAUZ,EAAQ1T,EAAGA,EAAIgV,EAASrB,GAEzChV,KAAKwW,MAAMF,GACPtW,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB,GAAY,IAARxB,EAAW,CACb,IAAIpE,EAAM,EAGV,IAFA4F,EAAOiD,EAAUZ,EAAQ1T,EAAG0T,EAAOtW,OAAQuW,GAEtC3T,EAAI,EAAGA,EAAI6P,EAAK7P,IACnByL,GAAOkI,EAGThV,KAAKwW,MAAM1J,GACP9M,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB1S,KAAKoW,SAGPlG,EAAG1S,UAAU8G,KAAO,SAAeoS,GACjCA,EAAKvB,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BqV,EAAKvB,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAE7BqV,EAAKjY,OAASuB,KAAKvB,OACnBiY,EAAKxB,SAAWlV,KAAKkV,SACrBwB,EAAKtB,IAAMpV,KAAKoV,KAGlBlF,EAAG1S,UAAUwT,MAAQ,WACnB,IAAIhB,EAAI,IAAIE,EAAG,MAEf,OADAlQ,KAAKsE,KAAK0L,GACHA,GAGTE,EAAG1S,UAAUmZ,QAAU,SAAkB5X,GACvC,KAAOiB,KAAKvB,OAASM,GACnBiB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAE9B,OAAOuB,MAITkQ,EAAG1S,UAAU4Y,MAAQ,WACnB,KAAOpW,KAAKvB,OAAS,GAAqC,IAAhCuB,KAAKmV,MAAMnV,KAAKvB,OAAS,IACjDuB,KAAKvB,SAEP,OAAOuB,KAAK4W,aAGd1G,EAAG1S,UAAUoZ,UAAY,WAKvB,OAHoB,IAAhB5W,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,KAClCnV,KAAKkV,SAAW,GAEXlV,MAGTkQ,EAAG1S,UAAUiN,QAAU,WACrB,OAAQzK,KAAKoV,IAAM,UAAY,SAAWpV,KAAK4E,SAAS,IAAM,KAiChE,IAAIiS,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYC,EAAMxG,EAAKlF,GAC9BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC,IAAIxU,EAAOuW,EAAKxY,OAASgS,EAAIhS,OAAU,EACvC8M,EAAI9M,OAASiC,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIsJ,EAAoB,EAAhBiN,EAAK9B,MAAM,GACfvP,EAAmB,EAAf6K,EAAI0E,MAAM,GACdnF,EAAIhG,EAAIpE,EAERuC,EAAS,SAAJ6H,EACLqE,EAASrE,EAAI,SAAa,EAC9BzE,EAAI4J,MAAM,GAAKhN,EAEf,IAAK,IAAI4I,EAAI,EAAGA,EAAIrQ,EAAKqQ,IAAK,CAM5B,IAHA,IAAImG,EAAS7C,IAAU,GACnB8C,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAK0P,EAAIlK,EAAK,EAIlBqQ,IADAlH,GAFAhG,EAAoB,EAAhBiN,EAAK9B,MAAM9T,KACfuE,EAAmB,EAAf6K,EAAI0E,MAAMtO,IACFsQ,GACG,SAAa,EAC5BA,EAAY,SAAJnH,EAEVzE,EAAI4J,MAAMpE,GAAa,EAARoG,EACf9C,EAAiB,EAAT6C,EAQV,OANc,IAAV7C,EACF9I,EAAI4J,MAAMpE,GAAa,EAARsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAzlBblG,EAAG1S,UAAUoH,SAAW,SAAmBoQ,EAAMqC,GAI/C,IAAI9L,EACJ,GAHA8L,EAAoB,EAAVA,GAAe,EAGZ,MAJbrC,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCzJ,EAAM,GAGN,IAFA,IAAItJ,EAAM,EACNoS,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,EAAI1Q,KAAKmV,MAAM9T,GACfqR,GAA+B,UAArBhC,GAAKzO,EAAOoS,IAAmBzP,SAAS,IAGpD2G,EADY,KADd8I,EAAS3D,IAAO,GAAKzO,EAAQ,WACVZ,IAAMrB,KAAKvB,OAAS,EAC/BoY,EAAM,EAAInE,EAAKjU,QAAUiU,EAAOnH,EAEhCmH,EAAOnH,GAEftJ,GAAO,IACI,KACTA,GAAO,GACPZ,KAMJ,IAHc,IAAVgT,IACF9I,EAAM8I,EAAMzP,SAAS,IAAM2G,GAEtBA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGT,GAAIyJ,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYR,EAAW9B,GAEvBuC,EAAYR,EAAW/B,GAC3BzJ,EAAM,GACN,IAAItD,EAAIjI,KAAKgR,QAEb,IADA/I,EAAEiN,SAAW,GACLjN,EAAEuP,UAAU,CAClB,IAAIxH,EAAI/H,EAAEwP,KAAKF,GAAW3S,SAASoQ,GAMjCzJ,GALFtD,EAAIA,EAAEyP,MAAMH,IAELC,SAGCxH,EAAIzE,EAFJsL,EAAMS,EAAYtH,EAAEvR,QAAUuR,EAAIzE,EAQ5C,IAHIvL,KAAKwX,WACPjM,EAAM,IAAMA,GAEPA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGTqE,GAAO,EAAO,oCAGhBM,EAAG1S,UAAUma,SAAW,WACtB,IAAIrM,EAAMtL,KAAKmV,MAAM,GASrB,OARoB,IAAhBnV,KAAKvB,OACP6M,GAAuB,SAAhBtL,KAAKmV,MAAM,GACO,IAAhBnV,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,GAEzC7J,GAAO,iBAAoC,SAAhBtL,KAAKmV,MAAM,GAC7BnV,KAAKvB,OAAS,GACvBmR,GAAO,EAAO,8CAEU,IAAlB5P,KAAKkV,UAAmB5J,EAAMA,GAGxC4E,EAAG1S,UAAU4N,OAAS,WACpB,OAAOpL,KAAK4E,SAAS,KAGvBsL,EAAG1S,UAAUoa,SAAW,SAAmB7E,EAAQtU,GAEjD,OADAmR,EAAyB,qBAAX3R,GACP+B,KAAK6X,YAAY5Z,EAAQ8U,EAAQtU,IAG1CyR,EAAG1S,UAAU6S,QAAU,SAAkB0C,EAAQtU,GAC/C,OAAOuB,KAAK6X,YAAY1W,MAAO4R,EAAQtU,IAGzCyR,EAAG1S,UAAUqa,YAAc,SAAsBC,EAAW/E,EAAQtU,GAClE,IAAIiF,EAAa1D,KAAK0D,aAClBqU,EAAYtZ,GAAU6J,KAAKoC,IAAI,EAAGhH,GACtCkM,EAAOlM,GAAcqU,EAAW,yCAChCnI,EAAOmI,EAAY,EAAG,+BAEtB/X,KAAKoW,QACL,IAGIxQ,EAAGvE,EAHHyK,EAA0B,OAAXiH,EACfvK,EAAM,IAAIsP,EAAUC,GAGpBC,EAAIhY,KAAKgR,QACb,GAAKlF,EAYE,CACL,IAAKzK,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAInH,GAAKuE,EAGX,KAAOvE,EAAI0W,EAAW1W,IACpBmH,EAAInH,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAI0W,EAAYrU,EAAYrC,IACtCmH,EAAInH,GAAK,EAGX,IAAKA,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAIuP,EAAY1W,EAAI,GAAKuE,EAe7B,OAAO4C,GAGLF,KAAK2P,MACP/H,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,OAAO,GAAKpI,KAAK2P,MAAMvH,IAGzBR,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,IAAIyH,EAAIzH,EACJV,EAAI,EAiBR,OAhBImI,GAAK,OACPnI,GAAK,GACLmI,KAAO,IAELA,GAAK,KACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAEFnI,EAAImI,GAIfjI,EAAG1S,UAAU4a,UAAY,SAAoB1H,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIyH,EAAIzH,EACJV,EAAI,EAoBR,OAnBqB,KAAZ,KAAJmI,KACHnI,GAAK,GACLmI,KAAO,IAEU,KAAV,IAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,GAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,IACHnI,IAEKA,GAITE,EAAG1S,UAAUqT,UAAY,WACvB,IAAIH,EAAI1Q,KAAKmV,MAAMnV,KAAKvB,OAAS,GAC7ByJ,EAAKlI,KAAKkY,WAAWxH,GACzB,OAA2B,IAAnB1Q,KAAKvB,OAAS,GAAUyJ,GAiBlCgI,EAAG1S,UAAU6a,SAAW,WACtB,GAAIrY,KAAKwX,SAAU,OAAO,EAG1B,IADA,IAAIxH,EAAI,EACC3O,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIuE,EAAI5F,KAAKoY,UAAUpY,KAAKmV,MAAM9T,IAElC,GADA2O,GAAKpK,EACK,KAANA,EAAU,MAEhB,OAAOoK,GAGTE,EAAG1S,UAAUkG,WAAa,WACxB,OAAO4E,KAAK6N,KAAKnW,KAAK6Q,YAAc,IAGtCX,EAAG1S,UAAU8a,OAAS,SAAiBC,GACrC,OAAsB,IAAlBvY,KAAKkV,SACAlV,KAAKwY,MAAMC,MAAMF,GAAOG,MAAM,GAEhC1Y,KAAKgR,SAGdd,EAAG1S,UAAUmb,SAAW,SAAmBJ,GACzC,OAAIvY,KAAK4Y,MAAML,EAAQ,GACdvY,KAAK6Y,KAAKN,GAAOG,MAAM,GAAGI,OAE5B9Y,KAAKgR,SAGdd,EAAG1S,UAAUub,MAAQ,WACnB,OAAyB,IAAlB/Y,KAAKkV,UAIdhF,EAAG1S,UAAUwb,IAAM,WACjB,OAAOhZ,KAAKgR,QAAQ8H,QAGtB5I,EAAG1S,UAAUsb,KAAO,WAKlB,OAJK9Y,KAAKwX,WACRxX,KAAKkV,UAAY,GAGZlV,MAITkQ,EAAG1S,UAAUyb,KAAO,SAAexI,GACjC,KAAOzQ,KAAKvB,OAASgS,EAAIhS,QACvBuB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAG9B,IAAK,IAAI4C,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAC9BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAG5C,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAU0b,IAAM,SAAczI,GAE/B,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKiZ,KAAKxI,IAInBP,EAAG1S,UAAU2b,GAAK,SAAa1I,GAC7B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkI,IAAIzI,GAC/CA,EAAIO,QAAQkI,IAAIlZ,OAGzBkQ,EAAG1S,UAAU4b,IAAM,SAAc3I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQiI,KAAKxI,GAChDA,EAAIO,QAAQiI,KAAKjZ,OAI1BkQ,EAAG1S,UAAU6b,MAAQ,SAAgB5I,GAEnC,IAAI7K,EAEFA,EADE5F,KAAKvB,OAASgS,EAAIhS,OAChBgS,EAEAzQ,KAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAK5C,OAFArB,KAAKvB,OAASmH,EAAEnH,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAU8b,KAAO,SAAe7I,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKqZ,MAAM5I,IAIpBP,EAAG1S,UAAU+b,IAAM,SAAc9I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQsI,KAAK7I,GAChDA,EAAIO,QAAQsI,KAAKtZ,OAG1BkQ,EAAG1S,UAAUgc,KAAO,SAAe/I,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQqI,MAAM5I,GACjDA,EAAIO,QAAQqI,MAAMrZ,OAI3BkQ,EAAG1S,UAAUic,MAAQ,SAAgBhJ,GAEnC,IAAIzG,EACApE,EACA5F,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAAKuE,EAAEuP,MAAM9T,GAGvC,GAAIrB,OAASgK,EACX,KAAO3I,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAM5B,OAFArB,KAAKvB,OAASuL,EAAEvL,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAUkc,KAAO,SAAejJ,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKyZ,MAAMhJ,IAIpBP,EAAG1S,UAAUmc,IAAM,SAAclJ,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQ0I,KAAKjJ,GAChDA,EAAIO,QAAQ0I,KAAK1Z,OAG1BkQ,EAAG1S,UAAUoc,KAAO,SAAenJ,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQyI,MAAMhJ,GACjDA,EAAIO,QAAQyI,MAAMzZ,OAI3BkQ,EAAG1S,UAAUib,MAAQ,SAAgBF,GACnC3I,EAAwB,kBAAV2I,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBvR,KAAK6N,KAAKoC,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvBvY,KAAK2W,QAAQkD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIxY,EAAI,EAAGA,EAAIwY,EAAaxY,IAC/BrB,KAAKmV,MAAM9T,GAAsB,UAAhBrB,KAAKmV,MAAM9T,GAS9B,OALIyY,EAAW,IACb9Z,KAAKmV,MAAM9T,IAAMrB,KAAKmV,MAAM9T,GAAM,UAAc,GAAKyY,GAIhD9Z,KAAKoW,SAGdlG,EAAG1S,UAAUqb,KAAO,SAAeN,GACjC,OAAOvY,KAAKgR,QAAQyH,MAAMF,IAI5BrI,EAAG1S,UAAUuc,KAAO,SAAeC,EAAKzV,GACtCqL,EAAsB,kBAARoK,GAAoBA,GAAO,GAEzC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAha,KAAK2W,QAAQ1U,EAAM,GAGjBjC,KAAKmV,MAAMlT,GADTsC,EACgBvE,KAAKmV,MAAMlT,GAAQ,GAAKgY,EAExBja,KAAKmV,MAAMlT,KAAS,GAAKgY,GAGtCja,KAAKoW,SAIdlG,EAAG1S,UAAU0c,KAAO,SAAezJ,GACjC,IAAIT,EAkBAhG,EAAGpE,EAfP,GAAsB,IAAlB5F,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAI7B,OAHAlV,KAAKkV,SAAW,EAChBlF,EAAIhQ,KAAKma,KAAK1J,GACdzQ,KAAKkV,UAAY,EACVlV,KAAK4W,YAGP,GAAsB,IAAlB5W,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAIpC,OAHAzE,EAAIyE,SAAW,EACflF,EAAIhQ,KAAKma,KAAK1J,GACdA,EAAIyE,SAAW,EACRlF,EAAE4G,YAKP5W,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5B2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,EAC1CrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAEhB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAClC2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,EACvBrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAIhB,GADAhQ,KAAKvB,OAASuL,EAAEvL,OACF,IAAV4V,EACFrU,KAAKmV,MAAMnV,KAAKvB,QAAU4V,EAC1BrU,KAAKvB,cAEA,GAAIuL,IAAMhK,KACf,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAI5B,OAAOrB,MAITkQ,EAAG1S,UAAU4c,IAAM,SAAc3J,GAC/B,IAAIjI,EACJ,OAAqB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UAC7BzE,EAAIyE,SAAW,EACf1M,EAAMxI,KAAKmO,IAAIsC,GACfA,EAAIyE,UAAY,EACT1M,GACmB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UACpClV,KAAKkV,SAAW,EAChB1M,EAAMiI,EAAItC,IAAInO,MACdA,KAAKkV,SAAW,EACT1M,GAGLxI,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkJ,KAAKzJ,GAEhDA,EAAIO,QAAQkJ,KAAKla,OAI1BkQ,EAAG1S,UAAU2c,KAAO,SAAe1J,GAEjC,GAAqB,IAAjBA,EAAIyE,SAAgB,CACtBzE,EAAIyE,SAAW,EACf,IAAIlF,EAAIhQ,KAAKka,KAAKzJ,GAElB,OADAA,EAAIyE,SAAW,EACRlF,EAAE4G,YAGJ,GAAsB,IAAlB5W,KAAKkV,SAId,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAKka,KAAKzJ,GACVzQ,KAAKkV,SAAW,EACTlV,KAAK4W,YAId,IAWI5M,EAAGpE,EAXHkQ,EAAM9V,KAAK8V,IAAIrF,GAGnB,GAAY,IAARqF,EAIF,OAHA9V,KAAKkV,SAAW,EAChBlV,KAAKvB,OAAS,EACduB,KAAKmV,MAAM,GAAK,EACTnV,KAKL8V,EAAM,GACR9L,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAE5BgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,IAC7B,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAElB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAElCgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,IACV,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAIlB,GAAc,IAAVqE,GAAehT,EAAI2I,EAAEvL,QAAUuL,IAAMhK,KACvC,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAU5B,OANArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,GAEhC2I,IAAMhK,OACRA,KAAKkV,SAAW,GAGXlV,KAAKoW,SAIdlG,EAAG1S,UAAU2Q,IAAM,SAAcsC,GAC/B,OAAOzQ,KAAKgR,QAAQmJ,KAAK1J,IA+C3B,IAAI4J,EAAc,SAAsBpD,EAAMxG,EAAKlF,GACjD,IAIIpD,EACAmS,EACApS,EANA8B,EAAIiN,EAAK9B,MACTvP,EAAI6K,EAAI0E,MACRoF,EAAIhP,EAAI4J,MACRlN,EAAI,EAIJuS,EAAY,EAAPxQ,EAAE,GACPyQ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Q,EAAE,GACP4Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Q,EAAE,GACP+Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjR,EAAE,GACPkR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpR,EAAE,GACPqR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvR,EAAE,GACPwR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1R,EAAE,GACP2R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7R,EAAE,GACP8R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhS,EAAE,GACPiS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnS,EAAE,GACPoS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1W,EAAE,GACP2W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7W,EAAE,GACP8W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhX,EAAE,GACPiX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnX,EAAE,GACPoX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtX,EAAE,GACPuX,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPzX,EAAE,GACP0X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5X,EAAE,GACP6X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/X,EAAE,GACPgY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlY,EAAE,GACPmY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrY,EAAE,GACPsY,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB1S,EAAI2J,SAAW+B,EAAK/B,SAAWzE,EAAIyE,SACnC3J,EAAI9M,OAAS,GAMb,IAAI2f,IAAQnW,GAJZE,EAAKG,KAAK+V,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAMhS,KAAK+V,KAAK5D,EAAK+B,IACRlU,KAAK+V,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDtU,IAFAC,EAAKI,KAAK+V,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENjW,EAAKG,KAAK+V,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKzD,EAAK4B,IACRlU,KAAK+V,KAAKxD,EAAK0B,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQrW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKkC,GAAQ,GACvBrU,KAAK+V,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDzU,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENnW,EAAKG,KAAK+V,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKtD,EAAKyB,IACRlU,KAAK+V,KAAKrD,EAAKuB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKrD,EAAKwB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK+B,GAAQ,GACvBrU,KAAK+V,KAAKxD,EAAK6B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQtW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKqC,GAAQ,GACvBxU,KAAK+V,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD5U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENpW,EAAKG,KAAK+V,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKnD,EAAKsB,IACRlU,KAAK+V,KAAKlD,EAAKoB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKlD,EAAKqB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK4B,GAAQ,GACvBrU,KAAK+V,KAAKrD,EAAK0B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK2B,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKkC,GAAQ,GACvBxU,KAAK+V,KAAKxD,EAAKgC,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQvW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKwC,GAAQ,GACvB3U,KAAK+V,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD/U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENrW,EAAKG,KAAK+V,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKhD,EAAKmB,IACRlU,KAAK+V,KAAK/C,EAAKiB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK/C,EAAKkB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKyB,GAAQ,GACvBrU,KAAK+V,KAAKlD,EAAKuB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKwB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK+B,GAAQ,GACvBxU,KAAK+V,KAAKrD,EAAK6B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK8B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKqC,GAAQ,GACvB3U,KAAK+V,KAAKxD,EAAKmC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQxW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK2C,IAAQ,GACvB9U,KAAK+V,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDlV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENtW,EAAKG,KAAK+V,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK7C,EAAKgB,IACRlU,KAAK+V,KAAK5C,EAAKc,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK5C,EAAKe,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKsB,GAAQ,GACvBrU,KAAK+V,KAAK/C,EAAKoB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKqB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK4B,GAAQ,GACvBxU,KAAK+V,KAAKlD,EAAK0B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK2B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKkC,GAAQ,GACvB3U,KAAK+V,KAAKrD,EAAKgC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKiC,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKwC,IAAQ,GACvB9U,KAAK+V,KAAKxD,EAAKsC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQzW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK8C,IAAQ,GACvBjV,KAAK+V,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDrV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENvW,EAAKG,KAAK+V,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK1C,EAAKa,IACRlU,KAAK+V,KAAKzC,EAAKW,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKzC,EAAKY,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKmB,GAAQ,GACvBrU,KAAK+V,KAAK5C,EAAKiB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKkB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKyB,GAAQ,GACvBxU,KAAK+V,KAAK/C,EAAKuB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKwB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK+B,GAAQ,GACvB3U,KAAK+V,KAAKlD,EAAK6B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK8B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKqC,IAAQ,GACvB9U,KAAK+V,KAAKrD,EAAKmC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKoC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK2C,IAAQ,GACvBjV,KAAK+V,KAAKxD,EAAKyC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ1W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKiD,IAAQ,GACvBpV,KAAK+V,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDxV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENxW,EAAKG,KAAK+V,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKvC,EAAKU,IACRlU,KAAK+V,KAAKtC,EAAKQ,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKtC,EAAKS,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKgB,GAAQ,GACvBrU,KAAK+V,KAAKzC,EAAKc,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKe,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKsB,GAAQ,GACvBxU,KAAK+V,KAAK5C,EAAKoB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKqB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK4B,GAAQ,GACvB3U,KAAK+V,KAAK/C,EAAK0B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK2B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKkC,IAAQ,GACvB9U,KAAK+V,KAAKlD,EAAKgC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKiC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKwC,IAAQ,GACvBjV,KAAK+V,KAAKrD,EAAKsC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKuC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK8C,IAAQ,GACvBpV,KAAK+V,KAAKxD,EAAK4C,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ3W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKoD,IAAQ,GACvBvV,KAAK+V,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD3V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENzW,EAAKG,KAAK+V,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKpC,EAAKO,IACRlU,KAAK+V,KAAKnC,EAAKK,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKnC,EAAKM,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKa,GAAQ,GACvBrU,KAAK+V,KAAKtC,EAAKW,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKY,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKmB,GAAQ,GACvBxU,KAAK+V,KAAKzC,EAAKiB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKkB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKyB,GAAQ,GACvB3U,KAAK+V,KAAK5C,EAAKuB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKwB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK+B,IAAQ,GACvB9U,KAAK+V,KAAK/C,EAAK6B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK8B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKqC,IAAQ,GACvBjV,KAAK+V,KAAKlD,EAAKmC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKoC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK2C,IAAQ,GACvBpV,KAAK+V,KAAKrD,EAAKyC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK0C,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKiD,IAAQ,GACvBvV,KAAK+V,KAAKxD,EAAK+C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ5W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKuD,IAAQ,GACvB1V,KAAK+V,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD9V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN1W,EAAKG,KAAK+V,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKI,IACRlU,KAAK+V,KAAKhC,EAAKE,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKhC,EAAKG,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKU,GAAQ,GACvBrU,KAAK+V,KAAKnC,EAAKQ,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKS,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKgB,GAAQ,GACvBxU,KAAK+V,KAAKtC,EAAKc,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKe,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKsB,GAAQ,GACvB3U,KAAK+V,KAAKzC,EAAKoB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKqB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK4B,IAAQ,GACvB9U,KAAK+V,KAAK5C,EAAK0B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK2B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKkC,IAAQ,GACvBjV,KAAK+V,KAAK/C,EAAKgC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKiC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKwC,IAAQ,GACvBpV,KAAK+V,KAAKlD,EAAKsC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKuC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK8C,IAAQ,GACvBvV,KAAK+V,KAAKrD,EAAK4C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK6C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKoD,IAAQ,GACvB1V,KAAK+V,KAAKxD,EAAKkD,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ7W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK0D,IAAQ,GACvB7V,KAAK+V,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAEN3W,EAAKG,KAAK+V,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKO,IACRrU,KAAK+V,KAAKhC,EAAKK,GAAQ,EACpCxU,EAAKI,KAAK+V,KAAKhC,EAAKM,GACpBxU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKa,GAAQ,GACvBxU,KAAK+V,KAAKnC,EAAKW,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKY,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKmB,GAAQ,GACvB3U,KAAK+V,KAAKtC,EAAKiB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKkB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKyB,IAAQ,GACvB9U,KAAK+V,KAAKzC,EAAKuB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKwB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK+B,IAAQ,GACvBjV,KAAK+V,KAAK5C,EAAK6B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK8B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKqC,IAAQ,GACvBpV,KAAK+V,KAAK/C,EAAKmC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKoC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK2C,IAAQ,GACvBvV,KAAK+V,KAAKlD,EAAKyC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK0C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKiD,IAAQ,GACvB1V,KAAK+V,KAAKrD,EAAK+C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS9W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKuD,IAAQ,GACvB7V,KAAK+V,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP5W,EAAKG,KAAK+V,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKU,IACRxU,KAAK+V,KAAKhC,EAAKQ,GAAQ,EACpC3U,EAAKI,KAAK+V,KAAKhC,EAAKS,GACpB3U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKgB,GAAQ,GACvB3U,KAAK+V,KAAKnC,EAAKc,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKe,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKsB,IAAQ,GACvB9U,KAAK+V,KAAKtC,EAAKoB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKqB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK4B,IAAQ,GACvBjV,KAAK+V,KAAKzC,EAAK0B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK2B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKkC,IAAQ,GACvBpV,KAAK+V,KAAK5C,EAAKgC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKiC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKwC,IAAQ,GACvBvV,KAAK+V,KAAK/C,EAAKsC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKuC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK8C,IAAQ,GACvB1V,KAAK+V,KAAKlD,EAAK4C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS/W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKoD,IAAQ,GACvB7V,KAAK+V,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP7W,EAAKG,KAAK+V,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKa,IACR3U,KAAK+V,KAAKhC,EAAKW,GAAQ,EACpC9U,EAAKI,KAAK+V,KAAKhC,EAAKY,GACpB9U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKmB,IAAQ,GACvB9U,KAAK+V,KAAKnC,EAAKiB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKkB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKyB,IAAQ,GACvBjV,KAAK+V,KAAKtC,EAAKuB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKwB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK+B,IAAQ,GACvBpV,KAAK+V,KAAKzC,EAAK6B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK8B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKqC,IAAQ,GACvBvV,KAAK+V,KAAK5C,EAAKmC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKoC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK2C,IAAQ,GACvB1V,KAAK+V,KAAK/C,EAAKyC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAShX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKiD,IAAQ,GACvB7V,KAAK+V,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP9W,EAAKG,KAAK+V,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKgB,KACR9U,KAAK+V,KAAKhC,EAAKc,GAAQ,EACpCjV,EAAKI,KAAK+V,KAAKhC,EAAKe,IACpBjV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKsB,IAAQ,GACvBjV,KAAK+V,KAAKnC,EAAKoB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKqB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK4B,IAAQ,GACvBpV,KAAK+V,KAAKtC,EAAK0B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK2B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKkC,IAAQ,GACvBvV,KAAK+V,KAAKzC,EAAKgC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKiC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKwC,IAAQ,GACvB1V,KAAK+V,KAAK5C,EAAKsC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASjX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK8C,IAAQ,GACvB7V,KAAK+V,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP/W,EAAKG,KAAK+V,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKmB,KACRjV,KAAK+V,KAAKhC,EAAKiB,IAAQ,EACpCpV,EAAKI,KAAK+V,KAAKhC,EAAKkB,IACpBpV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKyB,IAAQ,GACvBpV,KAAK+V,KAAKnC,EAAKuB,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKwB,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK+B,IAAQ,GACvBvV,KAAK+V,KAAKtC,EAAK6B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK8B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKqC,IAAQ,GACvB1V,KAAK+V,KAAKzC,EAAKmC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASlX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK2C,IAAQ,GACvB7V,KAAK+V,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPhX,EAAKG,KAAK+V,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKsB,KACRpV,KAAK+V,KAAKhC,EAAKoB,IAAQ,EACpCvV,EAAKI,KAAK+V,KAAKhC,EAAKqB,IACpBvV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK4B,IAAQ,GACvBvV,KAAK+V,KAAKnC,EAAK0B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK2B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKkC,IAAQ,GACvB1V,KAAK+V,KAAKtC,EAAKgC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASnX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKwC,IAAQ,GACvB7V,KAAK+V,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPjX,EAAKG,KAAK+V,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKyB,KACRvV,KAAK+V,KAAKhC,EAAKuB,IAAQ,EACpC1V,EAAKI,KAAK+V,KAAKhC,EAAKwB,IACpB1V,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK+B,IAAQ,GACvB1V,KAAK+V,KAAKnC,EAAK6B,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASpX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKqC,IAAQ,GACvB7V,KAAK+V,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPlX,EAAKG,KAAK+V,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK4B,KACR1V,KAAK+V,KAAKhC,EAAK0B,IAAQ,EACpC7V,EAAKI,KAAK+V,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASrX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKkC,IAAQ,GACvB7V,KAAK+V,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAStX,GAJbE,EAAKG,KAAK+V,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK+B,KACR7V,KAAK+V,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAjW,IAFAC,EAAKI,KAAK+V,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANtX,IACFsS,EAAE,IAAMtS,EACRsD,EAAI9M,UAEC8M,GAiDT,SAASiU,EAAYvI,EAAMxG,EAAKlF,GAE9B,OADW,IAAIkU,GACHC,KAAKzI,EAAMxG,EAAKlF,GAsB9B,SAASkU,EAAMxV,EAAGC,GAChBlK,KAAKiK,EAAIA,EACTjK,KAAKkK,EAAIA,EAvEN5B,KAAK+V,OACRhE,EAAcrD,GAiDhB9G,EAAG1S,UAAUmiB,MAAQ,SAAgBlP,EAAKlF,GACxC,IAAI/C,EACA9H,EAAMV,KAAKvB,OAASgS,EAAIhS,OAW5B,OATE+J,EADkB,KAAhBxI,KAAKvB,QAAgC,KAAfgS,EAAIhS,OACtB4b,EAAYra,KAAMyQ,EAAKlF,GACpB7K,EAAM,GACTsW,EAAWhX,KAAMyQ,EAAKlF,GACnB7K,EAAM,KArDnB,SAAmBuW,EAAMxG,EAAKlF,GAC5BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC3J,EAAI9M,OAASwY,EAAKxY,OAASgS,EAAIhS,OAI/B,IAFA,IAAI4V,EAAQ,EACRuL,EAAU,EACL7O,EAAI,EAAGA,EAAIxF,EAAI9M,OAAS,EAAGsS,IAAK,CAGvC,IAAImG,EAAS0I,EACbA,EAAU,EAGV,IAFA,IAAIzI,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAI0P,EAAIlK,EAGRmJ,GAFoB,EAAhBiH,EAAK9B,MAAM9T,KACI,EAAfoP,EAAI0E,MAAMtO,IAGdsB,EAAS,SAAJ6H,EAGTmH,EAAa,UADbhP,EAAMA,EAAKgP,EAAS,GAIpByI,IAFA1I,GAHAA,EAAUA,GAAWlH,EAAI,SAAa,GAAM,IAGxB7H,IAAO,IAAO,KAEZ,GACtB+O,GAAU,SAEZ3L,EAAI4J,MAAMpE,GAAKoG,EACf9C,EAAQ6C,EACRA,EAAS0I,EAQX,OANc,IAAVvL,EACF9I,EAAI4J,MAAMpE,GAAKsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAgBHyJ,CAAS7f,KAAMyQ,EAAKlF,GAEpBiU,EAAWxf,KAAMyQ,EAAKlF,GAGvB/C,GAWTiX,EAAKjiB,UAAUsiB,QAAU,SAAkBC,GAGzC,IAFA,IAAI5H,EAAI,IAAIhX,MAAM4e,GACdhQ,EAAIG,EAAG1S,UAAU0a,WAAW6H,GAAK,EAC5B1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrB8W,EAAE9W,GAAKrB,KAAKggB,OAAO3e,EAAG0O,EAAGgQ,GAG3B,OAAO5H,GAITsH,EAAKjiB,UAAUwiB,OAAS,SAAiB/V,EAAG8F,EAAGgQ,GAC7C,GAAU,IAAN9V,GAAWA,IAAM8V,EAAI,EAAG,OAAO9V,EAGnC,IADA,IAAIgW,EAAK,EACA5e,EAAI,EAAGA,EAAI0O,EAAG1O,IACrB4e,IAAW,EAAJhW,IAAW8F,EAAI1O,EAAI,EAC1B4I,IAAM,EAGR,OAAOgW,GAKTR,EAAKjiB,UAAU0iB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBif,EAAKjf,GAAK+e,EAAID,EAAI9e,IAClBkf,EAAKlf,GAAKgf,EAAIF,EAAI9e,KAItBoe,EAAKjiB,UAAUgjB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEngB,KAAKkgB,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIU,EAAI,EAAGA,EAAIV,EAAGU,IAAM,EAM3B,IALA,IAAI1Q,EAAI0Q,GAAK,EAETC,EAAQpY,KAAKqY,IAAI,EAAIrY,KAAKsY,GAAK7Q,GAC/B8Q,EAAQvY,KAAKwY,IAAI,EAAIxY,KAAKsY,GAAK7Q,GAE1B8C,EAAI,EAAGA,EAAIkN,EAAGlN,GAAK9C,EAI1B,IAHA,IAAIgR,EAASL,EACTM,EAASH,EAEJha,EAAI,EAAGA,EAAI4Z,EAAG5Z,IAAK,CAC1B,IAAIoa,EAAKX,EAAKzN,EAAIhM,GACdqa,EAAKX,EAAK1N,EAAIhM,GAEdsa,EAAKb,EAAKzN,EAAIhM,EAAI4Z,GAClBW,EAAKb,EAAK1N,EAAIhM,EAAI4Z,GAElBY,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKzN,EAAIhM,GAAKoa,EAAKE,EACnBZ,EAAK1N,EAAIhM,GAAKqa,EAAKE,EAEnBd,EAAKzN,EAAIhM,EAAI4Z,GAAKQ,EAAKE,EACvBZ,EAAK1N,EAAIhM,EAAI4Z,GAAKS,EAAKE,EAGnBva,IAAMkJ,IACRsR,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,KAOnB5B,EAAKjiB,UAAU8jB,YAAc,SAAsBzb,EAAGC,GACpD,IAAIia,EAAqB,EAAjBzX,KAAKoC,IAAI5E,EAAGD,GAChB0b,EAAU,EAAJxB,EACN1e,EAAI,EACR,IAAK0e,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B1e,IAGF,OAAO,GAAKA,EAAI,EAAIkgB,GAGtB9B,EAAKjiB,UAAUgkB,UAAY,SAAoBpB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAI8W,EAAIiI,EAAI/e,GAEZ+e,EAAI/e,GAAK+e,EAAIL,EAAI1e,EAAI,GACrB+e,EAAIL,EAAI1e,EAAI,GAAK8W,EAEjBA,EAAIkI,EAAIhf,GAERgf,EAAIhf,IAAMgf,EAAIN,EAAI1e,EAAI,GACtBgf,EAAIN,EAAI1e,EAAI,IAAM8W,IAItBsH,EAAKjiB,UAAUikB,aAAe,SAAuB3Q,EAAIiP,GAEvD,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAIqP,EAAoC,KAAhCpI,KAAKoZ,MAAM5Q,EAAG,EAAIzP,EAAI,GAAK0e,GACjCzX,KAAKoZ,MAAM5Q,EAAG,EAAIzP,GAAK0e,GACvB1L,EAEFvD,EAAGzP,GAAS,SAAJqP,EAGN2D,EADE3D,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT2O,EAAKjiB,UAAUmkB,WAAa,SAAqB7Q,EAAIpQ,EAAK0f,EAAKL,GAE7D,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAIX,EAAKW,IACvBgT,GAAyB,EAARvD,EAAGzP,GAEpB+e,EAAI,EAAI/e,GAAa,KAARgT,EAAgBA,KAAkB,GAC/C+L,EAAI,EAAI/e,EAAI,GAAa,KAARgT,EAAgBA,KAAkB,GAIrD,IAAKhT,EAAI,EAAIX,EAAKW,EAAI0e,IAAK1e,EACzB+e,EAAI/e,GAAK,EAGXuO,EAAiB,IAAVyE,GACPzE,EAA6B,MAAb,KAARyE,KAGVoL,EAAKjiB,UAAUokB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAI1gB,MAAM4e,GACV1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBwgB,EAAGxgB,GAAK,EAGV,OAAOwgB,GAGTpC,EAAKjiB,UAAUkiB,KAAO,SAAezV,EAAGC,EAAGqB,GACzC,IAAIwU,EAAI,EAAI/f,KAAKshB,YAAYrX,EAAExL,OAAQyL,EAAEzL,QAErC0hB,EAAMngB,KAAK8f,QAAQC,GAEnB+B,EAAI9hB,KAAK4hB,KAAK7B,GAEdK,EAAM,IAAIjf,MAAM4e,GAChBgC,EAAO,IAAI5gB,MAAM4e,GACjBiC,EAAO,IAAI7gB,MAAM4e,GAEjBkC,EAAO,IAAI9gB,MAAM4e,GACjBmC,EAAQ,IAAI/gB,MAAM4e,GAClBoC,EAAQ,IAAIhhB,MAAM4e,GAElBqC,EAAO7W,EAAI4J,MACfiN,EAAK3jB,OAASshB,EAEd/f,KAAK2hB,WAAW1X,EAAEkL,MAAOlL,EAAExL,OAAQ2hB,EAAKL,GACxC/f,KAAK2hB,WAAWzX,EAAEiL,MAAOjL,EAAEzL,OAAQwjB,EAAMlC,GAEzC/f,KAAKwgB,UAAUJ,EAAK0B,EAAGC,EAAMC,EAAMjC,EAAGI,GACtCngB,KAAKwgB,UAAUyB,EAAMH,EAAGI,EAAOC,EAAOpC,EAAGI,GAEzC,IAAK,IAAI9e,EAAI,EAAGA,EAAI0e,EAAG1e,IAAK,CAC1B,IAAIggB,EAAKU,EAAK1gB,GAAK6gB,EAAM7gB,GAAK2gB,EAAK3gB,GAAK8gB,EAAM9gB,GAC9C2gB,EAAK3gB,GAAK0gB,EAAK1gB,GAAK8gB,EAAM9gB,GAAK2gB,EAAK3gB,GAAK6gB,EAAM7gB,GAC/C0gB,EAAK1gB,GAAKggB,EAUZ,OAPArhB,KAAKwhB,UAAUO,EAAMC,EAAMjC,GAC3B/f,KAAKwgB,UAAUuB,EAAMC,EAAMI,EAAMN,EAAG/B,EAAGI,GACvCngB,KAAKwhB,UAAUY,EAAMN,EAAG/B,GACxB/f,KAAKyhB,aAAaW,EAAMrC,GAExBxU,EAAI2J,SAAWjL,EAAEiL,SAAWhL,EAAEgL,SAC9B3J,EAAI9M,OAASwL,EAAExL,OAASyL,EAAEzL,OACnB8M,EAAI6K,SAIblG,EAAG1S,UAAU+O,IAAM,SAAckE,GAC/B,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjCuB,KAAK2f,MAAMlP,EAAKlF,IAIzB2E,EAAG1S,UAAU6kB,KAAO,SAAe5R,GACjC,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjC+gB,EAAWxf,KAAMyQ,EAAKlF,IAI/B2E,EAAG1S,UAAU6gB,KAAO,SAAe5N,GACjC,OAAOzQ,KAAKgR,QAAQ2O,MAAMlP,EAAKzQ,OAGjCkQ,EAAG1S,UAAUgZ,MAAQ,SAAgB/F,GACnCb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UAIb,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAUoP,EAC1BtI,GAAU,SAAJuI,IAA0B,SAAR2D,GAC5BA,IAAU,GACVA,GAAU3D,EAAI,SAAa,EAE3B2D,GAASlM,IAAO,GAChBnI,KAAKmV,MAAM9T,GAAU,SAAL8G,EAQlB,OALc,IAAVkM,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAGAuB,MAGTkQ,EAAG1S,UAAU8kB,KAAO,SAAe7R,GACjC,OAAOzQ,KAAKgR,QAAQwF,MAAM/F,IAI5BP,EAAG1S,UAAU+kB,IAAM,WACjB,OAAOviB,KAAKuM,IAAIvM,OAIlBkQ,EAAG1S,UAAUglB,KAAO,WAClB,OAAOxiB,KAAKqe,KAAKre,KAAKgR,UAIxBd,EAAG1S,UAAUsP,IAAM,SAAc2D,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIvP,MAAMsP,EAAII,aAEbmJ,EAAM,EAAGA,EAAMtJ,EAAEjS,OAAQub,IAAO,CACvC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtJ,EAAEsJ,IAAQvJ,EAAI0E,MAAMlT,GAAQ,GAAKgY,KAAWA,EAG9C,OAAOvJ,EA8wCC+R,CAAWhS,GACnB,GAAiB,IAAbC,EAAEjS,OAAc,OAAO,IAAIyR,EAAG,GAIlC,IADA,IAAI1H,EAAMxI,KACDqB,EAAI,EAAGA,EAAIqP,EAAEjS,QACP,IAATiS,EAAErP,GADsBA,IAAKmH,EAAMA,EAAI+Z,OAI7C,KAAMlhB,EAAIqP,EAAEjS,OACV,IAAK,IAAIuZ,EAAIxP,EAAI+Z,MAAOlhB,EAAIqP,EAAEjS,OAAQ4C,IAAK2W,EAAIA,EAAEuK,MAClC,IAAT7R,EAAErP,KAENmH,EAAMA,EAAI+D,IAAIyL,IAIlB,OAAOxP,GAIT0H,EAAG1S,UAAUklB,OAAS,SAAiB/R,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAGItP,EAHA2O,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GACjB2S,EAAa,WAAe,GAAK3S,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIqE,EAAQ,EAEZ,IAAKhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAChC,IAAIuhB,EAAW5iB,KAAKmV,MAAM9T,GAAKshB,EAC3B1a,GAAsB,EAAhBjI,KAAKmV,MAAM9T,IAAUuhB,GAAa5S,EAC5ChQ,KAAKmV,MAAM9T,GAAK4G,EAAIoM,EACpBA,EAAQuO,IAAc,GAAK5S,EAGzBqE,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAIT,GAAU,IAANgiB,EAAS,CACX,IAAKpf,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAChCrB,KAAKmV,MAAM9T,EAAIof,GAAKzgB,KAAKmV,MAAM9T,GAGjC,IAAKA,EAAI,EAAGA,EAAIof,EAAGpf,IACjBrB,KAAKmV,MAAM9T,GAAK,EAGlBrB,KAAKvB,QAAUgiB,EAGjB,OAAOzgB,KAAKoW,SAGdlG,EAAG1S,UAAUqlB,MAAQ,SAAgBlS,GAGnC,OADAf,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAK0iB,OAAO/R,IAMrBT,EAAG1S,UAAU8T,OAAS,SAAiBX,EAAMmS,EAAMC,GAEjD,IAAIC,EADJpT,EAAuB,kBAATe,GAAqBA,GAAQ,GAGzCqS,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9S,EAAIW,EAAO,GACX8P,EAAInY,KAAKC,KAAKoI,EAAOX,GAAK,GAAIhQ,KAAKvB,QACnCwkB,EAAO,SAAc,WAAcjT,GAAMA,EACzCkT,EAAcH,EAMlB,GAJAC,GAAKvC,EACLuC,EAAI1a,KAAKoC,IAAI,EAAGsY,GAGZE,EAAa,CACf,IAAK,IAAI7hB,EAAI,EAAGA,EAAIof,EAAGpf,IACrB6hB,EAAY/N,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAEpC6hB,EAAYzkB,OAASgiB,EAGvB,GAAU,IAANA,QAEG,GAAIzgB,KAAKvB,OAASgiB,EAEvB,IADAzgB,KAAKvB,QAAUgiB,EACVpf,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC3BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,EAAIof,QAGjCzgB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,EAGhB,IAAI4V,EAAQ,EACZ,IAAKhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,IAAgB,IAAVgT,GAAehT,GAAK2hB,GAAI3hB,IAAK,CAChE,IAAIqR,EAAuB,EAAhB1S,KAAKmV,MAAM9T,GACtBrB,KAAKmV,MAAM9T,GAAMgT,GAAU,GAAKrE,EAAO0C,IAAS1C,EAChDqE,EAAQ3B,EAAOuQ,EAajB,OATIC,GAAyB,IAAV7O,IACjB6O,EAAY/N,MAAM+N,EAAYzkB,UAAY4V,GAGxB,IAAhBrU,KAAKvB,SACPuB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,GAGTuB,KAAKoW,SAGdlG,EAAG1S,UAAU2lB,MAAQ,SAAgBxS,EAAMmS,EAAMC,GAG/C,OADAnT,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAKsR,OAAOX,EAAMmS,EAAMC,IAIjC7S,EAAG1S,UAAU4lB,KAAO,SAAezS,GACjC,OAAO3Q,KAAKgR,QAAQ6R,MAAMlS,IAG5BT,EAAG1S,UAAU6lB,MAAQ,SAAgB1S,GACnC,OAAO3Q,KAAKgR,QAAQ0R,OAAO/R,IAI7BT,EAAG1S,UAAU8lB,KAAO,SAAe3S,GACjC,OAAO3Q,KAAKgR,QAAQmS,MAAMxS,IAG5BT,EAAG1S,UAAU+lB,MAAQ,SAAgB5S,GACnC,OAAO3Q,KAAKgR,QAAQM,OAAOX,IAI7BT,EAAG1S,UAAUob,MAAQ,SAAgBoB,GACnCpK,EAAsB,kBAARoK,GAAoBA,GAAO,GACzC,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,QAAIhQ,KAAKvB,QAAUgiB,OAGXzgB,KAAKmV,MAAMsL,GAELzI,IAIhB9H,EAAG1S,UAAUgmB,OAAS,SAAiB7S,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAAIX,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GAIrB,GAFAJ,EAAyB,IAAlB5P,KAAKkV,SAAgB,2CAExBlV,KAAKvB,QAAUgiB,EACjB,OAAOzgB,KAQT,GALU,IAANgQ,GACFyQ,IAEFzgB,KAAKvB,OAAS6J,KAAKC,IAAIkY,EAAGzgB,KAAKvB,QAErB,IAANuR,EAAS,CACX,IAAIiT,EAAO,SAAc,WAAcjT,GAAMA,EAC7ChQ,KAAKmV,MAAMnV,KAAKvB,OAAS,IAAMwkB,EAGjC,OAAOjjB,KAAKoW,SAIdlG,EAAG1S,UAAUimB,MAAQ,SAAgB9S,GACnC,OAAO3Q,KAAKgR,QAAQwS,OAAO7S,IAI7BT,EAAG1S,UAAUkb,MAAQ,SAAgBjI,GAGnC,OAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAUzQ,KAAKqR,OAAOZ,GAGV,IAAlBzQ,KAAKkV,SACa,IAAhBlV,KAAKvB,SAAiC,EAAhBuB,KAAKmV,MAAM,IAAU1E,GAC7CzQ,KAAKmV,MAAM,GAAK1E,GAAuB,EAAhBzQ,KAAKmV,MAAM,IAClCnV,KAAKkV,SAAW,EACTlV,OAGTA,KAAKkV,SAAW,EAChBlV,KAAKqR,MAAMZ,GACXzQ,KAAKkV,SAAW,EACTlV,MAIFA,KAAKyW,OAAOhG,IAGrBP,EAAG1S,UAAUiZ,OAAS,SAAiBhG,GACrCzQ,KAAKmV,MAAM,IAAM1E,EAGjB,IAAK,IAAIpP,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,IAAM,SAAWA,IAC7DrB,KAAKmV,MAAM9T,IAAM,SACbA,IAAMrB,KAAKvB,OAAS,EACtBuB,KAAKmV,MAAM9T,EAAI,GAAK,EAEpBrB,KAAKmV,MAAM9T,EAAI,KAKnB,OAFArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,EAAI,GAEjCrB,MAITkQ,EAAG1S,UAAU6T,MAAQ,SAAgBZ,GAGnC,GAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAG,OAAOzQ,KAAK0Y,OAAOjI,GAEhC,GAAsB,IAAlBzQ,KAAKkV,SAIP,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAK0Y,MAAMjI,GACXzQ,KAAKkV,SAAW,EACTlV,KAKT,GAFAA,KAAKmV,MAAM,IAAM1E,EAEG,IAAhBzQ,KAAKvB,QAAgBuB,KAAKmV,MAAM,GAAK,EACvCnV,KAAKmV,MAAM,IAAMnV,KAAKmV,MAAM,GAC5BnV,KAAKkV,SAAW,OAGhB,IAAK,IAAI7T,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,GAAK,EAAGA,IACpDrB,KAAKmV,MAAM9T,IAAM,SACjBrB,KAAKmV,MAAM9T,EAAI,IAAM,EAIzB,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAUkmB,KAAO,SAAejT,GACjC,OAAOzQ,KAAKgR,QAAQ0H,MAAMjI,IAG5BP,EAAG1S,UAAUmmB,KAAO,SAAelT,GACjC,OAAOzQ,KAAKgR,QAAQK,MAAMZ,IAG5BP,EAAG1S,UAAUomB,KAAO,WAGlB,OAFA5jB,KAAKkV,SAAW,EAETlV,MAGTkQ,EAAG1S,UAAUgb,IAAM,WACjB,OAAOxY,KAAKgR,QAAQ4S,QAGtB1T,EAAG1S,UAAUqmB,aAAe,SAAuBpT,EAAKlE,EAAKuX,GAC3D,IACIziB,EAIAqP,EALAhQ,EAAM+P,EAAIhS,OAASqlB,EAGvB9jB,KAAK2W,QAAQjW,GAGb,IAAI2T,EAAQ,EACZ,IAAKhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CAC/BqP,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,EAClC,IAAIwB,GAAwB,EAAfpF,EAAI0E,MAAM9T,IAAUkL,EAEjC8H,IADA3D,GAAa,SAARmF,IACS,KAAQA,EAAQ,SAAa,GAC3C7V,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAE1B,KAAOrP,EAAIrB,KAAKvB,OAASqlB,EAAOziB,IAE9BgT,GADA3D,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,IACrB,GACbrU,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAG1B,GAAc,IAAV2D,EAAa,OAAOrU,KAAKoW,QAK7B,IAFAxG,GAAkB,IAAXyE,GACPA,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAE3BgT,GADA3D,IAAsB,EAAhB1Q,KAAKmV,MAAM9T,IAAUgT,IACd,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJqP,EAIlB,OAFA1Q,KAAKkV,SAAW,EAETlV,KAAKoW,SAGdlG,EAAG1S,UAAUumB,SAAW,SAAmBtT,EAAKuT,GAC9C,IAAIF,GAAQ9jB,KAAKvB,OAASgS,EAAIhS,QAE1BuL,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAGJwT,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,GAGf,KADdqlB,EAAQ,GADM9jB,KAAKkY,WAAW+L,MAG5Bre,EAAIA,EAAEyd,MAAMS,GACZ9Z,EAAE0Y,OAAOoB,GACTG,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,IAI3B,IACIuZ,EADAlS,EAAIkE,EAAEvL,OAASmH,EAAEnH,OAGrB,GAAa,QAATulB,EAAgB,EAClBhM,EAAI,IAAI9H,EAAG,OACTzR,OAASqH,EAAI,EACfkS,EAAE7C,MAAQ,IAAIhU,MAAM6W,EAAEvZ,QACtB,IAAK,IAAI4C,EAAI,EAAGA,EAAI2W,EAAEvZ,OAAQ4C,IAC5B2W,EAAE7C,MAAM9T,GAAK,EAIjB,IAAI6iB,EAAOla,EAAEgH,QAAQ6S,aAAaje,EAAG,EAAGE,GAClB,IAAlBoe,EAAKhP,WACPlL,EAAIka,EACAlM,IACFA,EAAE7C,MAAMrP,GAAK,IAIjB,IAAK,IAAIe,EAAIf,EAAI,EAAGe,GAAK,EAAGA,IAAK,CAC/B,IAAIsd,EAAmC,UAAL,EAAxBna,EAAEmL,MAAMvP,EAAEnH,OAASoI,KACE,EAA5BmD,EAAEmL,MAAMvP,EAAEnH,OAASoI,EAAI,IAO1B,IAHAsd,EAAK7b,KAAKC,IAAK4b,EAAKF,EAAO,EAAG,UAE9Bja,EAAE6Z,aAAaje,EAAGue,EAAItd,GACA,IAAfmD,EAAEkL,UACPiP,IACAna,EAAEkL,SAAW,EACblL,EAAE6Z,aAAaje,EAAG,EAAGiB,GAChBmD,EAAEwN,WACLxN,EAAEkL,UAAY,GAGd8C,IACFA,EAAE7C,MAAMtO,GAAKsd,GAajB,OAVInM,GACFA,EAAE5B,QAEJpM,EAAEoM,QAGW,QAAT4N,GAA4B,IAAVF,GACpB9Z,EAAEsH,OAAOwS,GAGJ,CACLM,IAAKpM,GAAK,KACV9G,IAAKlH,IAQTkG,EAAG1S,UAAU6mB,OAAS,SAAiB5T,EAAKuT,EAAMM,GAGhD,OAFA1U,GAAQa,EAAI+G,UAERxX,KAAKwX,SACA,CACL4M,IAAK,IAAIlU,EAAG,GACZgB,IAAK,IAAIhB,EAAG,IAKM,IAAlBlQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAKuT,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGH,QAATgL,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIgJ,KAAKzJ,IAIN,CACL2T,IAAKA,EACLlT,IAAKA,IAIa,IAAlBlR,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKqkB,OAAO5T,EAAIuI,MAAOgL,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGT,CACLoL,IAAKA,EACLlT,IAAK1I,EAAI0I,MAI0B,KAAlClR,KAAKkV,SAAWzE,EAAIyE,WACvB1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAIuI,MAAOgL,GAEtB,QAATA,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIiJ,KAAK1J,IAIN,CACL2T,IAAK5b,EAAI4b,IACTlT,IAAKA,IAOLT,EAAIhS,OAASuB,KAAKvB,QAAUuB,KAAK8V,IAAIrF,GAAO,EACvC,CACL2T,IAAK,IAAIlU,EAAG,GACZgB,IAAKlR,MAKU,IAAfyQ,EAAIhS,OACO,QAATulB,EACK,CACLI,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,MAII,QAAT8S,EACK,CACLI,IAAK,KACLlT,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7B,CACLiP,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7BnV,KAAK+jB,SAAStT,EAAKuT,GAlF1B,IAAII,EAAKlT,EAAK1I,GAsFhB0H,EAAG1S,UAAU4mB,IAAM,SAAc3T,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAO2T,KAIxClU,EAAG1S,UAAU0T,IAAM,SAAcT,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAOS,KAGxChB,EAAG1S,UAAUgnB,KAAO,SAAe/T,GACjC,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAMS,KAIvChB,EAAG1S,UAAUinB,SAAW,SAAmBhU,GACzC,IAAIiU,EAAK1kB,KAAKqkB,OAAO5T,GAGrB,GAAIiU,EAAGxT,IAAIsG,SAAU,OAAOkN,EAAGN,IAE/B,IAAIlT,EAA0B,IAApBwT,EAAGN,IAAIlP,SAAiBwP,EAAGxT,IAAIiJ,KAAK1J,GAAOiU,EAAGxT,IAEpDyT,EAAOlU,EAAI8S,MAAM,GACjBqB,EAAKnU,EAAIU,MAAM,GACf2E,EAAM5E,EAAI4E,IAAI6O,GAGlB,OAAI7O,EAAM,GAAY,IAAP8O,GAAoB,IAAR9O,EAAkB4O,EAAGN,IAGrB,IAApBM,EAAGN,IAAIlP,SAAiBwP,EAAGN,IAAI/S,MAAM,GAAKqT,EAAGN,IAAI1L,MAAM,IAGhExI,EAAG1S,UAAUia,KAAO,SAAehH,GACjCb,EAAOa,GAAO,UAId,IAHA,IAAIoC,GAAK,GAAK,IAAMpC,EAEhBoU,EAAM,EACDxjB,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IACpCwjB,GAAOhS,EAAIgS,GAAuB,EAAhB7kB,KAAKmV,MAAM9T,KAAWoP,EAG1C,OAAOoU,GAIT3U,EAAG1S,UAAUka,MAAQ,SAAgBjH,GACnCb,EAAOa,GAAO,UAGd,IADA,IAAI4D,EAAQ,EACHhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAkB,SAARgT,EAC9BrU,KAAKmV,MAAM9T,GAAMqP,EAAID,EAAO,EAC5B4D,EAAQ3D,EAAID,EAGd,OAAOzQ,KAAKoW,SAGdlG,EAAG1S,UAAU+mB,KAAO,SAAe9T,GACjC,OAAOzQ,KAAKgR,QAAQ0G,MAAMjH,IAG5BP,EAAG1S,UAAUsnB,KAAO,SAAejS,GACjCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIvN,EAAIjK,KACJkK,EAAI2I,EAAE7B,QAGR/G,EADiB,IAAfA,EAAEiL,SACAjL,EAAEua,KAAK3R,GAEP5I,EAAE+G,QAaR,IATA,IAAI+T,EAAI,IAAI7U,EAAG,GACX8U,EAAI,IAAI9U,EAAG,GAGX+U,EAAI,IAAI/U,EAAG,GACXgV,EAAI,IAAIhV,EAAG,GAEXT,EAAI,EAEDxF,EAAEkb,UAAYjb,EAAEib,UACrBlb,EAAEqH,OAAO,GACTpH,EAAEoH,OAAO,KACP7B,EAMJ,IAHA,IAAI2V,EAAKlb,EAAE8G,QACPqU,EAAKpb,EAAE+G,SAEH/G,EAAEuN,UAAU,CAClB,IAAK,IAAInW,EAAI,EAAGikB,EAAK,EAAyB,KAArBrb,EAAEkL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA4I,EAAEqH,OAAOjQ,GACFA,KAAM,IACP0jB,EAAE3T,SAAW4T,EAAE5T,WACjB2T,EAAE7K,KAAKkL,GACPJ,EAAE7K,KAAKkL,IAGTN,EAAEzT,OAAO,GACT0T,EAAE1T,OAAO,GAIb,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArBrb,EAAEiL,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAqD,EAAEoH,OAAOzK,GACFA,KAAM,IACPoe,EAAE7T,SAAW8T,EAAE9T,WACjB6T,EAAE/K,KAAKkL,GACPF,EAAE/K,KAAKkL,IAGTJ,EAAE3T,OAAO,GACT4T,EAAE5T,OAAO,GAITrH,EAAE6L,IAAI5L,IAAM,GACdD,EAAEkQ,KAAKjQ,GACP6a,EAAE5K,KAAK8K,GACPD,EAAE7K,KAAK+K,KAEPhb,EAAEiQ,KAAKlQ,GACPgb,EAAE9K,KAAK4K,GACPG,EAAE/K,KAAK6K,IAIX,MAAO,CACLhb,EAAGib,EACHrf,EAAGsf,EACHM,IAAKtb,EAAEwY,OAAOjT,KAOlBS,EAAG1S,UAAUioB,OAAS,SAAiB5S,GACrCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIxN,EAAIhK,KACJ4F,EAAIiN,EAAE7B,QAGRhH,EADiB,IAAfA,EAAEkL,SACAlL,EAAEwa,KAAK3R,GAEP7I,EAAEgH,QAQR,IALA,IAuCIxI,EAvCAkd,EAAK,IAAIxV,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GAEZ0V,EAAQhgB,EAAEoL,QAEPhH,EAAE8H,KAAK,GAAK,GAAKlM,EAAEkM,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzQ,EAAI,EAAGikB,EAAK,EAAyB,KAArBtb,EAAEmL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA2I,EAAEsH,OAAOjQ,GACFA,KAAM,GACPqkB,EAAGtU,SACLsU,EAAGxL,KAAK0L,GAGVF,EAAGpU,OAAO,GAId,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArB3f,EAAEuP,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAjB,EAAE0L,OAAOzK,GACFA,KAAM,GACP8e,EAAGvU,SACLuU,EAAGzL,KAAK0L,GAGVD,EAAGrU,OAAO,GAIVtH,EAAE8L,IAAIlQ,IAAM,GACdoE,EAAEmQ,KAAKvU,GACP8f,EAAGvL,KAAKwL,KAER/f,EAAEuU,KAAKnQ,GACP2b,EAAGxL,KAAKuL,IAeZ,OATEld,EADgB,IAAdwB,EAAE8H,KAAK,GACH4T,EAEAC,GAGA7T,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKrH,GAGJrK,GAGT0H,EAAG1S,UAAUgoB,IAAM,SAAc/U,GAC/B,GAAIzQ,KAAKwX,SAAU,OAAO/G,EAAI+H,MAC9B,GAAI/H,EAAI+G,SAAU,OAAOxX,KAAKwY,MAE9B,IAAIxO,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAAIO,QACZhH,EAAEkL,SAAW,EACbtP,EAAEsP,SAAW,EAGb,IAAK,IAAI4O,EAAQ,EAAG9Z,EAAEmb,UAAYvf,EAAEuf,SAAUrB,IAC5C9Z,EAAEsH,OAAO,GACT1L,EAAE0L,OAAO,GAGX,OAAG,CACD,KAAOtH,EAAEmb,UACPnb,EAAEsH,OAAO,GAEX,KAAO1L,EAAEuf,UACPvf,EAAE0L,OAAO,GAGX,IAAItB,EAAIhG,EAAE8L,IAAIlQ,GACd,GAAIoK,EAAI,EAAG,CAET,IAAImI,EAAInO,EACRA,EAAIpE,EACJA,EAAIuS,OACC,GAAU,IAANnI,GAAyB,IAAdpK,EAAEkM,KAAK,GAC3B,MAGF9H,EAAEmQ,KAAKvU,GAGT,OAAOA,EAAE8c,OAAOoB,IAIlB5T,EAAG1S,UAAUqoB,KAAO,SAAepV,GACjC,OAAOzQ,KAAK8kB,KAAKrU,GAAKzG,EAAEwa,KAAK/T,IAG/BP,EAAG1S,UAAU2nB,OAAS,WACpB,OAA+B,KAAP,EAAhBnlB,KAAKmV,MAAM,KAGrBjF,EAAG1S,UAAU4T,MAAQ,WACnB,OAA+B,KAAP,EAAhBpR,KAAKmV,MAAM,KAIrBjF,EAAG1S,UAAU2T,MAAQ,SAAgBV,GACnC,OAAOzQ,KAAKmV,MAAM,GAAK1E,GAIzBP,EAAG1S,UAAUsoB,MAAQ,SAAgB9L,GACnCpK,EAAsB,kBAARoK,GACd,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,GAAIhQ,KAAKvB,QAAUgiB,EAGjB,OAFAzgB,KAAK2W,QAAQ8J,EAAI,GACjBzgB,KAAKmV,MAAMsL,IAAMzI,EACVhY,KAKT,IADA,IAAIqU,EAAQ2D,EACH3W,EAAIof,EAAa,IAAVpM,GAAehT,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACnD,IAAIqP,EAAoB,EAAhB1Q,KAAKmV,MAAM9T,GAEnBgT,GADA3D,GAAK2D,KACS,GACd3D,GAAK,SACL1Q,KAAKmV,MAAM9T,GAAKqP,EAMlB,OAJc,IAAV2D,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAEAuB,MAGTkQ,EAAG1S,UAAUga,OAAS,WACpB,OAAuB,IAAhBxX,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,IAGzCjF,EAAG1S,UAAUsU,KAAO,SAAerB,GACjC,IAOIjI,EAPA0M,EAAWzE,EAAM,EAErB,GAAsB,IAAlBzQ,KAAKkV,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBlV,KAAKkV,UAAkBA,EAAU,OAAO,EAK5C,GAHAlV,KAAKoW,QAGDpW,KAAKvB,OAAS,EAChB+J,EAAM,MACD,CACD0M,IACFzE,GAAOA,GAGTb,EAAOa,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhB1Q,KAAKmV,MAAM,GACnB3M,EAAMkI,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAOT0H,EAAG1S,UAAUsY,IAAM,SAAcrF,GAC/B,GAAsB,IAAlBzQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAQ,EACvD,GAAsB,IAAlBlV,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAO,EAEtD,IAAI1M,EAAMxI,KAAK+lB,KAAKtV,GACpB,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAIT0H,EAAG1S,UAAUuoB,KAAO,SAAetV,GAEjC,GAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAO,EACrC,GAAIuB,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAQ,EAGtC,IADA,IAAI+J,EAAM,EACDnH,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAI2I,EAAoB,EAAhBhK,KAAKmV,MAAM9T,GACfuE,EAAmB,EAAf6K,EAAI0E,MAAM9T,GAElB,GAAI2I,IAAMpE,EAAV,CACIoE,EAAIpE,EACN4C,GAAO,EACEwB,EAAIpE,IACb4C,EAAM,GAER,OAEF,OAAOA,GAGT0H,EAAG1S,UAAUwoB,IAAM,SAAcvV,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUyoB,GAAK,SAAaxV,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU0oB,KAAO,SAAezV,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU2oB,IAAM,SAAc1V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAU4oB,IAAM,SAAc3V,GAC/B,OAA2B,IAApBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAU6oB,GAAK,SAAa5V,GAC7B,OAA0B,IAAnBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU8oB,KAAO,SAAe7V,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU+oB,IAAM,SAAc9V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAUgpB,IAAM,SAAc/V,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUipB,GAAK,SAAahW,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAOlBP,EAAGkF,IAAM,SAAc3E,GACrB,OAAO,IAAIiW,EAAIjW,IAGjBP,EAAG1S,UAAUmpB,MAAQ,SAAgBC,GAGnC,OAFAhX,GAAQ5P,KAAKoV,IAAK,yCAClBxF,EAAyB,IAAlB5P,KAAKkV,SAAgB,iCACrB0R,EAAIC,UAAU7mB,MAAM8mB,UAAUF,IAGvC1W,EAAG1S,UAAUupB,QAAU,WAErB,OADAnX,EAAO5P,KAAKoV,IAAK,wDACVpV,KAAKoV,IAAI4R,YAAYhnB,OAG9BkQ,EAAG1S,UAAUspB,UAAY,SAAoBF,GAE3C,OADA5mB,KAAKoV,IAAMwR,EACJ5mB,MAGTkQ,EAAG1S,UAAUypB,SAAW,SAAmBL,GAEzC,OADAhX,GAAQ5P,KAAKoV,IAAK,yCACXpV,KAAK8mB,UAAUF,IAGxB1W,EAAG1S,UAAU0pB,OAAS,SAAiBzW,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIgF,IAAIpa,KAAMyQ,IAG5BP,EAAG1S,UAAU2pB,QAAU,SAAkB1W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI8E,KAAKla,KAAMyQ,IAG7BP,EAAG1S,UAAU4pB,OAAS,SAAiB3W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIjH,IAAInO,KAAMyQ,IAG5BP,EAAG1S,UAAU6pB,QAAU,SAAkB5W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI+E,KAAKna,KAAMyQ,IAG7BP,EAAG1S,UAAU8pB,OAAS,SAAiB7W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAImS,IAAIvnB,KAAMyQ,IAG5BP,EAAG1S,UAAUgqB,OAAS,SAAiB/W,GAGrC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAI7I,IAAIvM,KAAMyQ,IAG5BP,EAAG1S,UAAUkqB,QAAU,SAAkBjX,GAGvC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAIiJ,KAAKre,KAAMyQ,IAG7BP,EAAG1S,UAAUmqB,OAAS,WAGpB,OAFA/X,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAImN,IAAIviB,OAGtBkQ,EAAG1S,UAAUqqB,QAAU,WAGrB,OAFAjY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIoN,KAAKxiB,OAIvBkQ,EAAG1S,UAAUsqB,QAAU,WAGrB,OAFAlY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI2S,KAAK/nB,OAGvBkQ,EAAG1S,UAAUwqB,QAAU,WAGrB,OAFApY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIyQ,KAAK7lB,OAIvBkQ,EAAG1S,UAAUyqB,OAAS,WAGpB,OAFArY,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI4D,IAAIhZ,OAGtBkQ,EAAG1S,UAAU0qB,OAAS,SAAiBzX,GAGrC,OAFAb,EAAO5P,KAAKoV,MAAQ3E,EAAI2E,IAAK,qBAC7BpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAItI,IAAI9M,KAAMyQ,IAI5B,IAAI0X,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQhmB,EAAMqQ,GAErB7S,KAAKwC,KAAOA,EACZxC,KAAK6S,EAAI,IAAI3C,EAAG2C,EAAG,IACnB7S,KAAK6F,EAAI7F,KAAK6S,EAAEhC,YAChB7Q,KAAK+Q,EAAI,IAAIb,EAAG,GAAGwS,OAAO1iB,KAAK6F,GAAGsU,KAAKna,KAAK6S,GAE5C7S,KAAKyoB,IAAMzoB,KAAK0oB,OAiDlB,SAASC,IACPH,EAAOzoB,KACLC,KACA,OACA,2EA+DJ,SAAS4oB,IACPJ,EAAOzoB,KACLC,KACA,OACA,kEAIJ,SAAS6oB,IACPL,EAAOzoB,KACLC,KACA,OACA,yDAIJ,SAAS8oB,IAEPN,EAAOzoB,KACLC,KACA,QACA,uEA8CJ,SAAS0mB,EAAK5gB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIijB,EAAQ7Y,EAAG8Y,OAAOljB,GACtB9F,KAAK8F,EAAIijB,EAAMlW,EACf7S,KAAK+oB,MAAQA,OAEbnZ,EAAO9J,EAAEkgB,IAAI,GAAI,kCACjBhmB,KAAK8F,EAAIA,EACT9F,KAAK+oB,MAAQ,KAkOjB,SAASE,EAAMnjB,GACb4gB,EAAI3mB,KAAKC,KAAM8F,GAEf9F,KAAK8jB,MAAQ9jB,KAAK8F,EAAE+K,YAChB7Q,KAAK8jB,MAAQ,KAAO,IACtB9jB,KAAK8jB,OAAS,GAAM9jB,KAAK8jB,MAAQ,IAGnC9jB,KAAKgQ,EAAI,IAAIE,EAAG,GAAGwS,OAAO1iB,KAAK8jB,OAC/B9jB,KAAK4kB,GAAK5kB,KAAKkpB,KAAKlpB,KAAKgQ,EAAEuS,OAC3BviB,KAAKmpB,KAAOnpB,KAAKgQ,EAAEyV,OAAOzlB,KAAK8F,GAE/B9F,KAAKopB,KAAOppB,KAAKmpB,KAAK5c,IAAIvM,KAAKgQ,GAAGqB,MAAM,GAAG+S,IAAIpkB,KAAK8F,GACpD9F,KAAKopB,KAAOppB,KAAKopB,KAAK5E,KAAKxkB,KAAKgQ,GAChChQ,KAAKopB,KAAOppB,KAAKgQ,EAAE7B,IAAInO,KAAKopB,MA5a9BZ,EAAOhrB,UAAUkrB,KAAO,WACtB,IAAID,EAAM,IAAIvY,EAAG,MAEjB,OADAuY,EAAItT,MAAQ,IAAIhU,MAAMmH,KAAK6N,KAAKnW,KAAK6F,EAAI,KAClC4iB,GAGTD,EAAOhrB,UAAU6rB,QAAU,SAAkB5Y,GAG3C,IACI6Y,EADAtZ,EAAIS,EAGR,GACEzQ,KAAKupB,MAAMvZ,EAAGhQ,KAAKyoB,KAGnBa,GADAtZ,GADAA,EAAIhQ,KAAKwpB,MAAMxZ,IACTkK,KAAKla,KAAKyoB,MACP5X,kBACFyY,EAAOtpB,KAAK6F,GAErB,IAAIiQ,EAAMwT,EAAOtpB,KAAK6F,GAAK,EAAImK,EAAE+V,KAAK/lB,KAAK6S,GAgB3C,OAfY,IAARiD,GACF9F,EAAEmF,MAAM,GAAK,EACbnF,EAAEvR,OAAS,GACFqX,EAAM,EACf9F,EAAEmK,KAAKna,KAAK6S,QAEI1T,IAAZ6Q,EAAEoG,MAEJpG,EAAEoG,QAGFpG,EAAEyZ,SAICzZ,GAGTwY,EAAOhrB,UAAU+rB,MAAQ,SAAgBG,EAAOne,GAC9Cme,EAAMpY,OAAOtR,KAAK6F,EAAG,EAAG0F,IAG1Bid,EAAOhrB,UAAUgsB,MAAQ,SAAgB/Y,GACvC,OAAOA,EAAI4N,KAAKre,KAAK+Q,IASvBwB,EAASoW,EAAMH,GAEfG,EAAKnrB,UAAU+rB,MAAQ,SAAgBG,EAAOC,GAK5C,IAHA,IAAI1G,EAAO,QAEP2G,EAASthB,KAAKC,IAAImhB,EAAMjrB,OAAQ,GAC3B4C,EAAI,EAAGA,EAAIuoB,EAAQvoB,IAC1BsoB,EAAOxU,MAAM9T,GAAKqoB,EAAMvU,MAAM9T,GAIhC,GAFAsoB,EAAOlrB,OAASmrB,EAEZF,EAAMjrB,QAAU,EAGlB,OAFAirB,EAAMvU,MAAM,GAAK,OACjBuU,EAAMjrB,OAAS,GAKjB,IAAIorB,EAAOH,EAAMvU,MAAM,GAGvB,IAFAwU,EAAOxU,MAAMwU,EAAOlrB,UAAYorB,EAAO5G,EAElC5hB,EAAI,GAAIA,EAAIqoB,EAAMjrB,OAAQ4C,IAAK,CAClC,IAAIyoB,EAAwB,EAAjBJ,EAAMvU,MAAM9T,GACvBqoB,EAAMvU,MAAM9T,EAAI,KAAQyoB,EAAO7G,IAAS,EAAM4G,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMvU,MAAM9T,EAAI,IAAMwoB,EACT,IAATA,GAAcH,EAAMjrB,OAAS,GAC/BirB,EAAMjrB,QAAU,GAEhBirB,EAAMjrB,QAAU,GAIpBkqB,EAAKnrB,UAAUgsB,MAAQ,SAAgB/Y,GAErCA,EAAI0E,MAAM1E,EAAIhS,QAAU,EACxBgS,EAAI0E,MAAM1E,EAAIhS,OAAS,GAAK,EAC5BgS,EAAIhS,QAAU,EAId,IADA,IAAI0J,EAAK,EACA9G,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAIqP,EAAmB,EAAfD,EAAI0E,MAAM9T,GAClB8G,GAAU,IAAJuI,EACND,EAAI0E,MAAM9T,GAAU,SAAL8G,EACfA,EAAS,GAAJuI,GAAavI,EAAK,SAAa,GAUtC,OANkC,IAA9BsI,EAAI0E,MAAM1E,EAAIhS,OAAS,KACzBgS,EAAIhS,SAC8B,IAA9BgS,EAAI0E,MAAM1E,EAAIhS,OAAS,IACzBgS,EAAIhS,UAGDgS,GAST8B,EAASqW,EAAMJ,GAQfjW,EAASsW,EAAML,GASfjW,EAASuW,EAAQN,GAEjBM,EAAOtrB,UAAUgsB,MAAQ,SAAgB/Y,GAGvC,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAI6G,EAA0B,IAAL,EAAfuI,EAAI0E,MAAM9T,IAAiBgT,EACjClM,EAAU,SAALD,EACTA,KAAQ,GAERuI,EAAI0E,MAAM9T,GAAK8G,EACfkM,EAAQnM,EAKV,OAHc,IAAVmM,IACF5D,EAAI0E,MAAM1E,EAAIhS,UAAY4V,GAErB5D,GAITP,EAAG8Y,OAAS,SAAgBxmB,GAE1B,GAAI2lB,EAAO3lB,GAAO,OAAO2lB,EAAO3lB,GAEhC,IAAIumB,EACJ,GAAa,SAATvmB,EACFumB,EAAQ,IAAIJ,OACP,GAAa,SAATnmB,EACTumB,EAAQ,IAAIH,OACP,GAAa,SAATpmB,EACTumB,EAAQ,IAAIF,MACP,IAAa,WAATrmB,EAGT,MAAM,IAAI/C,MAAM,iBAAmB+C,GAFnCumB,EAAQ,IAAID,EAMd,OAFAX,EAAO3lB,GAAQumB,EAERA,GAkBTrC,EAAIlpB,UAAUoqB,SAAW,SAAmB5d,GAC1C4F,EAAsB,IAAf5F,EAAEkL,SAAgB,iCACzBtF,EAAO5F,EAAEoL,IAAK,oCAGhBsR,EAAIlpB,UAAUiqB,SAAW,SAAmBzd,EAAGpE,GAC7CgK,EAAqC,KAA7B5F,EAAEkL,SAAWtP,EAAEsP,UAAiB,iCACxCtF,EAAO5F,EAAEoL,KAAOpL,EAAEoL,MAAQxP,EAAEwP,IAC1B,oCAGJsR,EAAIlpB,UAAU0rB,KAAO,SAAelf,GAClC,OAAIhK,KAAK+oB,MAAc/oB,KAAK+oB,MAAMM,QAAQrf,GAAG8c,UAAU9mB,MAChDgK,EAAEwa,KAAKxkB,KAAK8F,GAAGghB,UAAU9mB,OAGlC0mB,EAAIlpB,UAAUwb,IAAM,SAAchP,GAChC,OAAIA,EAAEwN,SACGxN,EAAEgH,QAGJhR,KAAK8F,EAAEqI,IAAInE,GAAG8c,UAAU9mB,OAGjC0mB,EAAIlpB,UAAU4c,IAAM,SAAcpQ,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEoQ,IAAIxU,GAIhB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU0c,KAAO,SAAelQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEkQ,KAAKtU,GAIjB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU2Q,IAAM,SAAcnE,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmE,IAAIvI,GAIhB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU2c,KAAO,SAAenQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmQ,KAAKvU,GAIjB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU+pB,IAAM,SAAcvd,EAAGyG,GAEnC,OADAzQ,KAAK4nB,SAAS5d,GACPhK,KAAKkpB,KAAKlf,EAAEqZ,MAAM5S,KAG3BiW,EAAIlpB,UAAU6gB,KAAO,SAAerU,EAAGpE,GAErC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEqU,KAAKzY,KAG1B8gB,EAAIlpB,UAAU+O,IAAM,SAAcvC,EAAGpE,GAEnC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEuC,IAAI3G,KAGzB8gB,EAAIlpB,UAAUglB,KAAO,SAAexY,GAClC,OAAOhK,KAAKqe,KAAKrU,EAAGA,EAAEgH,UAGxB0V,EAAIlpB,UAAU+kB,IAAM,SAAcvY,GAChC,OAAOhK,KAAKuM,IAAIvC,EAAGA,IAGrB0c,EAAIlpB,UAAUuqB,KAAO,SAAe/d,GAClC,GAAIA,EAAEwN,SAAU,OAAOxN,EAAEgH,QAEzB,IAAI+Y,EAAO/pB,KAAK8F,EAAEqL,MAAM,GAIxB,GAHAvB,EAAOma,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAIjd,EAAM9M,KAAK8F,EAAEsU,IAAI,IAAIlK,EAAG,IAAIoB,OAAO,GACvC,OAAOtR,KAAK8M,IAAI9C,EAAG8C,GAQrB,IAFA,IAAIkL,EAAIhY,KAAK8F,EAAE6d,KAAK,GAChBlD,EAAI,GACAzI,EAAER,UAA2B,IAAfQ,EAAE7G,MAAM,IAC5BsP,IACAzI,EAAE1G,OAAO,GAEX1B,GAAQoI,EAAER,UAEV,IAAIwS,EAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,MACtBiqB,EAAOD,EAAI/B,SAIXiC,EAAOlqB,KAAK8F,EAAE6d,KAAK,GAAGrS,OAAO,GAC7BL,EAAIjR,KAAK8F,EAAE+K,YAGf,IAFAI,EAAI,IAAIf,EAAG,EAAIe,EAAIA,GAAG0V,MAAM3mB,MAEW,IAAhCA,KAAK8M,IAAImE,EAAGiZ,GAAMpU,IAAImU,IAC3BhZ,EAAEkW,QAAQ8C,GAOZ,IAJA,IAAIhiB,EAAIjI,KAAK8M,IAAImE,EAAG+G,GAChBhI,EAAIhQ,KAAK8M,IAAI9C,EAAGgO,EAAE0L,KAAK,GAAGpS,OAAO,IACjC6G,EAAInY,KAAK8M,IAAI9C,EAAGgO,GAChBlS,EAAI2a,EACc,IAAftI,EAAErC,IAAIkU,IAAY,CAEvB,IADA,IAAIvB,EAAMtQ,EACD9W,EAAI,EAAoB,IAAjBonB,EAAI3S,IAAIkU,GAAY3oB,IAClConB,EAAMA,EAAId,SAEZ/X,EAAOvO,EAAIyE,GACX,IAAIF,EAAI5F,KAAK8M,IAAI7E,EAAG,IAAIiI,EAAG,GAAGwS,OAAO5c,EAAIzE,EAAI,IAE7C2O,EAAIA,EAAEwX,OAAO5hB,GACbqC,EAAIrC,EAAE+hB,SACNxP,EAAIA,EAAEqP,OAAOvf,GACbnC,EAAIzE,EAGN,OAAO2O,GAGT0W,EAAIlpB,UAAUqoB,KAAO,SAAe7b,GAClC,IAAImgB,EAAMngB,EAAEyb,OAAOzlB,KAAK8F,GACxB,OAAqB,IAAjBqkB,EAAIjV,UACNiV,EAAIjV,SAAW,EACRlV,KAAKkpB,KAAKiB,GAAKlC,UAEfjoB,KAAKkpB,KAAKiB,IAIrBzD,EAAIlpB,UAAUsP,IAAM,SAAc9C,EAAGyG,GACnC,GAAIA,EAAI+G,SAAU,OAAO,IAAItH,EAAG,GAAGyW,MAAM3mB,MACzC,GAAoB,IAAhByQ,EAAIqB,KAAK,GAAU,OAAO9H,EAAEgH,QAEhC,IACIoZ,EAAM,IAAIjpB,MAAM,IACpBipB,EAAI,GAAK,IAAIla,EAAG,GAAGyW,MAAM3mB,MACzBoqB,EAAI,GAAKpgB,EACT,IAAK,IAAI3I,EAAI,EAAGA,EAAI+oB,EAAI3rB,OAAQ4C,IAC9B+oB,EAAI/oB,GAAKrB,KAAKuM,IAAI6d,EAAI/oB,EAAI,GAAI2I,GAGhC,IAAIxB,EAAM4hB,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnlB,EAAQsL,EAAII,YAAc,GAK9B,IAJc,IAAV1L,IACFA,EAAQ,IAGL9D,EAAIoP,EAAIhS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIqR,EAAOjC,EAAI0E,MAAM9T,GACZwF,EAAI1B,EAAQ,EAAG0B,GAAK,EAAGA,IAAK,CACnC,IAAImT,EAAOtH,GAAQ7L,EAAK,EACpB2B,IAAQ4hB,EAAI,KACd5hB,EAAMxI,KAAKuiB,IAAI/Z,IAGL,IAARwR,GAAyB,IAAZqQ,GAKjBA,IAAY,EACZA,GAAWrQ,GA9BE,MA+BbsQ,GACwC,IAANjpB,GAAiB,IAANwF,KAE7C2B,EAAMxI,KAAKuM,IAAI/D,EAAK4hB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnlB,EAAQ,GAGV,OAAOqD,GAGTke,EAAIlpB,UAAUqpB,UAAY,SAAoBpW,GAC5C,IAAIT,EAAIS,EAAI+T,KAAKxkB,KAAK8F,GAEtB,OAAOkK,IAAMS,EAAMT,EAAEgB,QAAUhB,GAGjC0W,EAAIlpB,UAAUwpB,YAAc,SAAsBvW,GAChD,IAAIjI,EAAMiI,EAAIO,QAEd,OADAxI,EAAI4M,IAAM,KACH5M,GAOT0H,EAAGqa,KAAO,SAAe9Z,GACvB,OAAO,IAAIwY,EAAKxY,IAmBlB8B,EAAS0W,EAAMvC,GAEfuC,EAAKzrB,UAAUqpB,UAAY,SAAoBpW,GAC7C,OAAOzQ,KAAKkpB,KAAKzY,EAAI4S,MAAMrjB,KAAK8jB,SAGlCmF,EAAKzrB,UAAUwpB,YAAc,SAAsBvW,GACjD,IAAIT,EAAIhQ,KAAKkpB,KAAKzY,EAAIlE,IAAIvM,KAAKmpB,OAE/B,OADAnZ,EAAEoF,IAAM,KACDpF,GAGTiZ,EAAKzrB,UAAU6gB,KAAO,SAAerU,EAAGpE,GACtC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAGlB,OAFAxN,EAAEmL,MAAM,GAAK,EACbnL,EAAEvL,OAAS,EACJuL,EAGT,IAAImO,EAAInO,EAAEqU,KAAKzY,GACXqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAQV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAU+O,IAAM,SAAcvC,EAAGpE,GACpC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAAU,OAAO,IAAItH,EAAG,GAAG4W,UAAU9mB,MAEzD,IAAImY,EAAInO,EAAEuC,IAAI3G,GACVqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAOV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAUqoB,KAAO,SAAe7b,GAGnC,OADUhK,KAAKkpB,KAAKlf,EAAEyb,OAAOzlB,KAAK8F,GAAGyG,IAAIvM,KAAK4kB,KACnCkC,UAAU9mB,OAn3GzB,CAq3GoC7C,EAAQ6C,Q,mCCr3G5C7C,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAOstB,kBACXttB,EAAOutB,UAAY,aACnBvtB,EAAOwtB,MAAQ,GAEVxtB,EAAOytB,WAAUztB,EAAOytB,SAAW,IACxC3tB,OAAO4M,eAAe1M,EAAQ,SAAU,CACvCQ,YAAY,EACZktB,IAAK,WACJ,OAAO1tB,EAAO4S,KAGhB9S,OAAO4M,eAAe1M,EAAQ,KAAM,CACnCQ,YAAY,EACZktB,IAAK,WACJ,OAAO1tB,EAAOkE,KAGhBlE,EAAOstB,gBAAkB,GAEnBttB,I,gBCpBR,IAAIc,EAASD,EAAQ,GAAeC,OAChC6sB,EAAY9sB,EAAQ,KAAU8sB,UAC9BC,EAAgB/sB,EAAQ,IAAkB+sB,cAG9C,SAASC,EAAYC,GACnBH,EAAU/qB,KAAKC,MACfA,KAAKirB,SAA+B,kBAAbA,EACnBjrB,KAAKirB,SACPjrB,KAAKirB,GAAYjrB,KAAKkrB,eAEtBlrB,KAAKmrB,MAAQnrB,KAAKkrB,eAEhBlrB,KAAKorB,SACPprB,KAAKqrB,QAAUrrB,KAAKorB,OACpBprB,KAAKorB,OAAS,MAEhBprB,KAAKsrB,SAAW,KAChBtrB,KAAKurB,UAAY,KAfJvtB,EAAQ,EAiBvBuU,CAASyY,EAAYF,GAErBE,EAAWxtB,UAAUguB,OAAS,SAAU/mB,EAAMgnB,EAAUC,GAClC,kBAATjnB,IACTA,EAAOxG,EAAOS,KAAK+F,EAAMgnB,IAG3B,IAAIE,EAAU3rB,KAAK4rB,QAAQnnB,GAC3B,OAAIzE,KAAKirB,SAAiBjrB,MAEtB0rB,IACFC,EAAU3rB,KAAK6rB,UAAUF,EAASD,IAG7BC,IAGTX,EAAWxtB,UAAUsuB,eAAiB,aACtCd,EAAWxtB,UAAUuuB,WAAa,WAChC,MAAM,IAAItsB,MAAM,gDAGlBurB,EAAWxtB,UAAUwuB,WAAa,WAChC,MAAM,IAAIvsB,MAAM,gDAGlBurB,EAAWxtB,UAAUyuB,OAAS,WAC5B,MAAM,IAAIxsB,MAAM,2CAGlBurB,EAAWxtB,UAAU0uB,WAAa,SAAUznB,EAAMqd,EAAGgI,GACnD,IAAIqC,EACJ,IACMnsB,KAAKirB,SACPjrB,KAAK4rB,QAAQnnB,GAEbzE,KAAKsB,KAAKtB,KAAK4rB,QAAQnnB,IAEzB,MAAO3E,GACPqsB,EAAMrsB,EAPR,QASEgqB,EAAKqC,KAGTnB,EAAWxtB,UAAU4uB,OAAS,SAAUC,GACtC,IAAIF,EACJ,IACEnsB,KAAKsB,KAAKtB,KAAKqrB,WACf,MAAOvrB,GACPqsB,EAAMrsB,EAGRusB,EAAKF,IAEPnB,EAAWxtB,UAAU0tB,eAAiB,SAAUQ,GAC9C,IAAIC,EAAU3rB,KAAKqrB,WAAaptB,EAAOU,MAAM,GAI7C,OAHI+sB,IACFC,EAAU3rB,KAAK6rB,UAAUF,EAASD,GAAW,IAExCC,GAGTX,EAAWxtB,UAAUquB,UAAY,SAAUnuB,EAAOkV,EAAK0Z,GAMrD,GALKtsB,KAAKsrB,WACRtrB,KAAKsrB,SAAW,IAAIP,EAAcnY,GAClC5S,KAAKurB,UAAY3Y,GAGf5S,KAAKurB,YAAc3Y,EAAK,MAAM,IAAInT,MAAM,0BAE5C,IAAI8L,EAAMvL,KAAKsrB,SAAStnB,MAAMtG,GAK9B,OAJI4uB,IACF/gB,GAAOvL,KAAKsrB,SAASlmB,OAGhBmG,GAGTpO,EAAOC,QAAU4tB,G,6BC3EjB,IAOIuB,EAPAC,EAAuB,kBAAZC,QAAuBA,QAAU,KAC5CC,EAAeF,GAAwB,oBAAZA,EAAEjrB,MAC7BirB,EAAEjrB,MACF,SAAsBsJ,EAAQ8hB,EAAUzrB,GACxC,OAAOwO,SAASlS,UAAU+D,MAAMxB,KAAK8K,EAAQ8hB,EAAUzrB,IAKzDqrB,EADEC,GAA0B,oBAAdA,EAAEI,QACCJ,EAAEI,QACV3vB,OAAO4vB,sBACC,SAAwBhiB,GACvC,OAAO5N,OAAO6vB,oBAAoBjiB,GAC/BtK,OAAOtD,OAAO4vB,sBAAsBhiB,KAGxB,SAAwBA,GACvC,OAAO5N,OAAO6vB,oBAAoBjiB,IAQtC,IAAIkiB,EAAc/lB,OAAOhB,OAAS,SAAqBtI,GACrD,OAAOA,IAAUA,GAGnB,SAASsvB,IACPA,EAAaC,KAAKltB,KAAKC,MAEzB7C,EAAOC,QAAU4vB,EACjB7vB,EAAOC,QAAQ4E,KAwYf,SAAckrB,EAAS1qB,GACrB,OAAO,IAAI2qB,SAAQ,SAAUC,EAASC,GACpC,SAASC,EAAcnB,GACrBe,EAAQhrB,eAAeM,EAAM+qB,GAC7BF,EAAOlB,GAGT,SAASoB,IAC+B,oBAA3BL,EAAQhrB,gBACjBgrB,EAAQhrB,eAAe,QAASorB,GAElCF,EAAQ,GAAGnpB,MAAMlE,KAAKqB,YAGxBosB,EAA+BN,EAAS1qB,EAAM+qB,EAAU,CAAEvrB,MAAM,IACnD,UAATQ,GAMR,SAAuC0qB,EAASO,EAASC,GAC7B,oBAAfR,EAAQprB,IACjB0rB,EAA+BN,EAAS,QAASO,EAASC,GAPxDC,CAA8BT,EAASI,EAAe,CAAEtrB,MAAM,QArZpEgrB,EAAaA,aAAeA,EAE5BA,EAAaxvB,UAAUowB,aAAUzuB,EACjC6tB,EAAaxvB,UAAUqwB,aAAe,EACtCb,EAAaxvB,UAAUswB,mBAAgB3uB,EAIvC,IAAI4uB,EAAsB,GAE1B,SAASC,EAAcC,GACrB,GAAwB,oBAAbA,EACT,MAAM,IAAInvB,UAAU,0EAA4EmvB,GAsCpG,SAASC,EAAiB9qB,GACxB,YAA2BjE,IAAvBiE,EAAK0qB,cACAd,EAAae,oBACf3qB,EAAK0qB,cAmDd,SAASK,EAAatjB,EAAQrG,EAAMypB,EAAUG,GAC5C,IAAItoB,EACAuoB,EACAC,EA1HsBC,EAgJ1B,GApBAP,EAAcC,QAGC9uB,KADfkvB,EAASxjB,EAAO+iB,UAEdS,EAASxjB,EAAO+iB,QAAU3wB,OAAOC,OAAO,MACxC2N,EAAOgjB,aAAe,SAIK1uB,IAAvBkvB,EAAOG,cACT3jB,EAAOzI,KAAK,cAAeoC,EACfypB,EAASA,SAAWA,EAASA,SAAWA,GAIpDI,EAASxjB,EAAO+iB,SAElBU,EAAWD,EAAO7pB,SAGHrF,IAAbmvB,EAEFA,EAAWD,EAAO7pB,GAAQypB,IACxBpjB,EAAOgjB,kBAeT,GAbwB,oBAAbS,EAETA,EAAWD,EAAO7pB,GAChB4pB,EAAU,CAACH,EAAUK,GAAY,CAACA,EAAUL,GAErCG,EACTE,EAASG,QAAQR,GAEjBK,EAAShtB,KAAK2sB,IAIhBnoB,EAAIooB,EAAiBrjB,IACb,GAAKyjB,EAAS7vB,OAASqH,IAAMwoB,EAASI,OAAQ,CACpDJ,EAASI,QAAS,EAGlB,IAAIhe,EAAI,IAAIjR,MAAM,+CACE6uB,EAAS7vB,OAAS,IAAM+H,OAAOhC,GADjC,qEAIlBkM,EAAElO,KAAO,8BACTkO,EAAEwc,QAAUriB,EACZ6F,EAAElM,KAAOA,EACTkM,EAAEie,MAAQL,EAAS7vB,OA7KG8vB,EA8KH7d,EA7KnBke,SAAWA,QAAQC,MAAMD,QAAQC,KAAKN,GAiL1C,OAAO1jB,EAcT,SAASikB,IACP,IAAK9uB,KAAK+uB,MAGR,OAFA/uB,KAAK6K,OAAO3I,eAAelC,KAAKwE,KAAMxE,KAAKgvB,QAC3ChvB,KAAK+uB,OAAQ,EACY,IAArB3tB,UAAU3C,OACLuB,KAAKiuB,SAASluB,KAAKC,KAAK6K,QAC1B7K,KAAKiuB,SAAS1sB,MAAMvB,KAAK6K,OAAQzJ,WAI5C,SAAS6tB,EAAUpkB,EAAQrG,EAAMypB,GAC/B,IAAIiB,EAAQ,CAAEH,OAAO,EAAOC,YAAQ7vB,EAAW0L,OAAQA,EAAQrG,KAAMA,EAAMypB,SAAUA,GACjFkB,EAAUL,EAAYM,KAAKF,GAG/B,OAFAC,EAAQlB,SAAWA,EACnBiB,EAAMF,OAASG,EACRA,EA0HT,SAASE,EAAWxkB,EAAQrG,EAAM8qB,GAChC,IAAIjB,EAASxjB,EAAO+iB,QAEpB,QAAezuB,IAAXkvB,EACF,MAAO,GAET,IAAIkB,EAAalB,EAAO7pB,GACxB,YAAmBrF,IAAfowB,EACK,GAEiB,oBAAfA,EACFD,EAAS,CAACC,EAAWtB,UAAYsB,GAAc,CAACA,GAElDD,EAsDT,SAAyBlpB,GAEvB,IADA,IAAIkF,EAAM,IAAInK,MAAMiF,EAAI3H,QACf4C,EAAI,EAAGA,EAAIiK,EAAI7M,SAAU4C,EAChCiK,EAAIjK,GAAK+E,EAAI/E,GAAG4sB,UAAY7nB,EAAI/E,GAElC,OAAOiK,EA1DLkkB,CAAgBD,GAAcE,EAAWF,EAAYA,EAAW9wB,QAoBpE,SAASixB,EAAclrB,GACrB,IAAI6pB,EAASruB,KAAK4tB,QAElB,QAAezuB,IAAXkvB,EAAsB,CACxB,IAAIkB,EAAalB,EAAO7pB,GAExB,GAA0B,oBAAf+qB,EACT,OAAO,EACF,QAAmBpwB,IAAfowB,EACT,OAAOA,EAAW9wB,OAItB,OAAO,EAOT,SAASgxB,EAAWrpB,EAAKP,GAEvB,IADA,IAAIvB,EAAO,IAAInD,MAAM0E,GACZxE,EAAI,EAAGA,EAAIwE,IAAKxE,EACvBiD,EAAKjD,GAAK+E,EAAI/E,GAChB,OAAOiD,EA4CT,SAASkpB,EAA+BN,EAAS1qB,EAAMyrB,EAAUP,GAC/D,GAA0B,oBAAfR,EAAQprB,GACb4rB,EAAM1rB,KACRkrB,EAAQlrB,KAAKQ,EAAMyrB,GAEnBf,EAAQprB,GAAGU,EAAMyrB,OAEd,IAAwC,oBAA7Bf,EAAQyC,iBAYxB,MAAM,IAAI7wB,UAAU,6EAA+EouB,GATnGA,EAAQyC,iBAAiBntB,GAAM,SAASotB,EAAarxB,GAG/CmvB,EAAM1rB,MACRkrB,EAAQ2C,oBAAoBrtB,EAAMotB,GAEpC3B,EAAS1vB,OAhaftB,OAAO4M,eAAemjB,EAAc,sBAAuB,CACzDrvB,YAAY,EACZktB,IAAK,WACH,OAAOkD,GAEThf,IAAK,SAASxQ,GACZ,GAAmB,kBAARA,GAAoBA,EAAM,GAAKwuB,EAAYxuB,GACpD,MAAM,IAAI8E,WAAW,kGAAoG9E,EAAM,KAEjIwvB,EAAsBxvB,KAI1ByuB,EAAaC,KAAO,gBAEG9tB,IAAjBa,KAAK4tB,SACL5tB,KAAK4tB,UAAY3wB,OAAO6yB,eAAe9vB,MAAM4tB,UAC/C5tB,KAAK4tB,QAAU3wB,OAAOC,OAAO,MAC7B8C,KAAK6tB,aAAe,GAGtB7tB,KAAK8tB,cAAgB9tB,KAAK8tB,oBAAiB3uB,GAK7C6tB,EAAaxvB,UAAUuyB,gBAAkB,SAAyBlqB,GAChE,GAAiB,kBAANA,GAAkBA,EAAI,GAAKknB,EAAYlnB,GAChD,MAAM,IAAIxC,WAAW,gFAAkFwC,EAAI,KAG7G,OADA7F,KAAK8tB,cAAgBjoB,EACd7F,MASTgtB,EAAaxvB,UAAUwyB,gBAAkB,WACvC,OAAO9B,EAAiBluB,OAG1BgtB,EAAaxvB,UAAU4E,KAAO,SAAcoC,GAE1C,IADA,IAAItD,EAAO,GACFG,EAAI,EAAGA,EAAID,UAAU3C,OAAQ4C,IAAKH,EAAKI,KAAKF,UAAUC,IAC/D,IAAI4uB,EAAoB,UAATzrB,EAEX6pB,EAASruB,KAAK4tB,QAClB,QAAezuB,IAAXkvB,EACF4B,EAAWA,QAA4B9wB,IAAjBkvB,EAAO6B,WAC1B,IAAKD,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAIE,EAGJ,GAFIjvB,EAAKzC,OAAS,IAChB0xB,EAAKjvB,EAAK,IACRivB,aAAc1wB,MAGhB,MAAM0wB,EAGR,IAAIhE,EAAM,IAAI1sB,MAAM,oBAAsB0wB,EAAK,KAAOA,EAAGC,QAAU,IAAM,KAEzE,MADAjE,EAAIkE,QAAUF,EACRhE,EAGR,IAAIsB,EAAUY,EAAO7pB,GAErB,QAAgBrF,IAAZsuB,EACF,OAAO,EAET,GAAuB,oBAAZA,EACTf,EAAae,EAASztB,KAAMkB,OAE5B,KAAIR,EAAM+sB,EAAQhvB,OACd8D,EAAYktB,EAAWhC,EAAS/sB,GACpC,IAASW,EAAI,EAAGA,EAAIX,IAAOW,EACzBqrB,EAAanqB,EAAUlB,GAAIrB,KAAMkB,GAGrC,OAAO,GAiET8rB,EAAaxvB,UAAUuE,YAAc,SAAqByC,EAAMypB,GAC9D,OAAOE,EAAanuB,KAAMwE,EAAMypB,GAAU,IAG5CjB,EAAaxvB,UAAUsE,GAAKkrB,EAAaxvB,UAAUuE,YAEnDirB,EAAaxvB,UAAU6E,gBACnB,SAAyBmC,EAAMypB,GAC7B,OAAOE,EAAanuB,KAAMwE,EAAMypB,GAAU,IAqBhDjB,EAAaxvB,UAAUwE,KAAO,SAAcwC,EAAMypB,GAGhD,OAFAD,EAAcC,GACdjuB,KAAK8B,GAAG0C,EAAMyqB,EAAUjvB,KAAMwE,EAAMypB,IAC7BjuB,MAGTgtB,EAAaxvB,UAAU8E,oBACnB,SAA6BkC,EAAMypB,GAGjC,OAFAD,EAAcC,GACdjuB,KAAKqC,gBAAgBmC,EAAMyqB,EAAUjvB,KAAMwE,EAAMypB,IAC1CjuB,MAIbgtB,EAAaxvB,UAAU0E,eACnB,SAAwBsC,EAAMypB,GAC5B,IAAI9jB,EAAMkkB,EAAQiC,EAAUjvB,EAAGkvB,EAK/B,GAHAvC,EAAcC,QAGC9uB,KADfkvB,EAASruB,KAAK4tB,SAEZ,OAAO5tB,KAGT,QAAab,KADbgL,EAAOkkB,EAAO7pB,IAEZ,OAAOxE,KAET,GAAImK,IAAS8jB,GAAY9jB,EAAK8jB,WAAaA,EACb,MAAtBjuB,KAAK6tB,aACT7tB,KAAK4tB,QAAU3wB,OAAOC,OAAO,cAEtBmxB,EAAO7pB,GACV6pB,EAAOnsB,gBACTlC,KAAKoC,KAAK,iBAAkBoC,EAAM2F,EAAK8jB,UAAYA,SAElD,GAAoB,oBAAT9jB,EAAqB,CAGrC,IAFAmmB,GAAY,EAEPjvB,EAAI8I,EAAK1L,OAAS,EAAG4C,GAAK,EAAGA,IAChC,GAAI8I,EAAK9I,KAAO4sB,GAAY9jB,EAAK9I,GAAG4sB,WAAaA,EAAU,CACzDsC,EAAmBpmB,EAAK9I,GAAG4sB,SAC3BqC,EAAWjvB,EACX,MAIJ,GAAIivB,EAAW,EACb,OAAOtwB,KAEQ,IAAbswB,EACFnmB,EAAK2Z,QAiIf,SAAmB3Z,EAAMqL,GACvB,KAAOA,EAAQ,EAAIrL,EAAK1L,OAAQ+W,IAC9BrL,EAAKqL,GAASrL,EAAKqL,EAAQ,GAC7BrL,EAAKqmB,MAlIGC,CAAUtmB,EAAMmmB,GAGE,IAAhBnmB,EAAK1L,SACP4vB,EAAO7pB,GAAQ2F,EAAK,SAEQhL,IAA1BkvB,EAAOnsB,gBACTlC,KAAKoC,KAAK,iBAAkBoC,EAAM+rB,GAAoBtC,GAG1D,OAAOjuB,MAGbgtB,EAAaxvB,UAAUyE,IAAM+qB,EAAaxvB,UAAU0E,eAEpD8qB,EAAaxvB,UAAU2E,mBACnB,SAA4BqC,GAC1B,IAAIjC,EAAW8rB,EAAQhtB,EAGvB,QAAelC,KADfkvB,EAASruB,KAAK4tB,SAEZ,OAAO5tB,KAGT,QAA8Bb,IAA1BkvB,EAAOnsB,eAUT,OATyB,IAArBd,UAAU3C,QACZuB,KAAK4tB,QAAU3wB,OAAOC,OAAO,MAC7B8C,KAAK6tB,aAAe,QACM1uB,IAAjBkvB,EAAO7pB,KACY,MAAtBxE,KAAK6tB,aACT7tB,KAAK4tB,QAAU3wB,OAAOC,OAAO,aAEtBmxB,EAAO7pB,IAEXxE,KAIT,GAAyB,IAArBoB,UAAU3C,OAAc,CAC1B,IACIJ,EADAqyB,EAAOzzB,OAAOyzB,KAAKrC,GAEvB,IAAKhtB,EAAI,EAAGA,EAAIqvB,EAAKjyB,SAAU4C,EAEjB,oBADZhD,EAAMqyB,EAAKrvB,KAEXrB,KAAKmC,mBAAmB9D,GAK1B,OAHA2B,KAAKmC,mBAAmB,kBACxBnC,KAAK4tB,QAAU3wB,OAAOC,OAAO,MAC7B8C,KAAK6tB,aAAe,EACb7tB,KAKT,GAAyB,oBAFzBuC,EAAY8rB,EAAO7pB,IAGjBxE,KAAKkC,eAAesC,EAAMjC,QACrB,QAAkBpD,IAAdoD,EAET,IAAKlB,EAAIkB,EAAU9D,OAAS,EAAG4C,GAAK,EAAGA,IACrCrB,KAAKkC,eAAesC,EAAMjC,EAAUlB,IAIxC,OAAOrB,MAoBbgtB,EAAaxvB,UAAU+E,UAAY,SAAmBiC,GACpD,OAAO6qB,EAAWrvB,KAAMwE,GAAM,IAGhCwoB,EAAaxvB,UAAUmzB,aAAe,SAAsBnsB,GAC1D,OAAO6qB,EAAWrvB,KAAMwE,GAAM,IAGhCwoB,EAAa0C,cAAgB,SAASxC,EAAS1oB,GAC7C,MAAqC,oBAA1B0oB,EAAQwC,cACVxC,EAAQwC,cAAclrB,GAEtBkrB,EAAc3vB,KAAKmtB,EAAS1oB,IAIvCwoB,EAAaxvB,UAAUkyB,cAAgBA,EAiBvC1C,EAAaxvB,UAAUozB,WAAa,WAClC,OAAO5wB,KAAK6tB,aAAe,EAAItB,EAAevsB,KAAK4tB,SAAW,K,6BC/YhE,IAAI3vB,EAASD,EAAQ,KAAeC,OAGhC6F,EAAa7F,EAAO6F,YAAc,SAAU7E,GAE9C,QADAA,EAAW,GAAKA,IACIA,EAASgG,eAC3B,IAAK,MAAM,IAAK,OAAO,IAAK,QAAQ,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,OAAO,IAAK,QAAQ,IAAK,UAAU,IAAK,WAAW,IAAK,MACxI,OAAO,EACT,QACE,OAAO,IA4Cb,SAAS8lB,EAAc9rB,GAErB,IAAI4xB,EACJ,OAFA7wB,KAAKf,SAXP,SAA2B2T,GACzB,IAAIke,EA/BN,SAA4Ble,GAC1B,IAAKA,EAAK,MAAO,OAEjB,IADA,IAAIme,IAEF,OAAQne,GACN,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,UACT,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,SACL,IAAK,QACL,IAAK,MACH,OAAOA,EACT,QACE,GAAIme,EAAS,OACbne,GAAO,GAAKA,GAAK3N,cACjB8rB,GAAU,GAQLC,CAAmBpe,GAC9B,GAAoB,kBAATke,IAAsB7yB,EAAO6F,aAAeA,IAAeA,EAAW8O,IAAO,MAAM,IAAInT,MAAM,qBAAuBmT,GAC/H,OAAOke,GAAQle,EAQCqe,CAAkBhyB,GAE1Be,KAAKf,UACX,IAAK,UACHe,KAAKkxB,KAAOC,EACZnxB,KAAKoF,IAAMgsB,EACXP,EAAK,EACL,MACF,IAAK,OACH7wB,KAAKqxB,SAAWC,EAChBT,EAAK,EACL,MACF,IAAK,SACH7wB,KAAKkxB,KAAOK,EACZvxB,KAAKoF,IAAMosB,EACXX,EAAK,EACL,MACF,QAGE,OAFA7wB,KAAKgE,MAAQytB,OACbzxB,KAAKoF,IAAMssB,GAGf1xB,KAAK2xB,SAAW,EAChB3xB,KAAK4xB,UAAY,EACjB5xB,KAAK6xB,SAAW5zB,EAAOW,YAAYiyB,GAoCrC,SAASiB,EAAcC,GACrB,OAAIA,GAAQ,IAAa,EAAWA,GAAQ,IAAM,EAAa,EAAWA,GAAQ,IAAM,GAAa,EAAWA,GAAQ,IAAM,GAAa,EACpIA,GAAQ,IAAM,GAAQ,GAAK,EA2DpC,SAAST,EAAapyB,GACpB,IAAI2T,EAAI7S,KAAK4xB,UAAY5xB,KAAK2xB,SAC1B3hB,EAtBN,SAA6BiH,EAAM/X,EAAK2T,GACtC,GAAwB,OAAV,IAAT3T,EAAI,IAEP,OADA+X,EAAK0a,SAAW,EACT,SAET,GAAI1a,EAAK0a,SAAW,GAAKzyB,EAAIT,OAAS,EAAG,CACvC,GAAwB,OAAV,IAATS,EAAI,IAEP,OADA+X,EAAK0a,SAAW,EACT,SAET,GAAI1a,EAAK0a,SAAW,GAAKzyB,EAAIT,OAAS,GACZ,OAAV,IAATS,EAAI,IAEP,OADA+X,EAAK0a,SAAW,EACT,UASLK,CAAoBhyB,KAAMd,GAClC,YAAUC,IAAN6Q,EAAwBA,EACxBhQ,KAAK2xB,UAAYzyB,EAAIT,QACvBS,EAAIoF,KAAKtE,KAAK6xB,SAAUhf,EAAG,EAAG7S,KAAK2xB,UAC5B3xB,KAAK6xB,SAASjtB,SAAS5E,KAAKf,SAAU,EAAGe,KAAK4xB,aAEvD1yB,EAAIoF,KAAKtE,KAAK6xB,SAAUhf,EAAG,EAAG3T,EAAIT,aAClCuB,KAAK2xB,UAAYzyB,EAAIT,SA2BvB,SAAS0yB,EAAUjyB,EAAKmC,GACtB,IAAKnC,EAAIT,OAAS4C,GAAK,IAAM,EAAG,CAC9B,IAAI2O,EAAI9Q,EAAI0F,SAAS,UAAWvD,GAChC,GAAI2O,EAAG,CACL,IAAI/H,EAAI+H,EAAErI,WAAWqI,EAAEvR,OAAS,GAChC,GAAIwJ,GAAK,OAAUA,GAAK,MAKtB,OAJAjI,KAAK2xB,SAAW,EAChB3xB,KAAK4xB,UAAY,EACjB5xB,KAAK6xB,SAAS,GAAK3yB,EAAIA,EAAIT,OAAS,GACpCuB,KAAK6xB,SAAS,GAAK3yB,EAAIA,EAAIT,OAAS,GAC7BuR,EAAE/L,MAAM,GAAI,GAGvB,OAAO+L,EAKT,OAHAhQ,KAAK2xB,SAAW,EAChB3xB,KAAK4xB,UAAY,EACjB5xB,KAAK6xB,SAAS,GAAK3yB,EAAIA,EAAIT,OAAS,GAC7BS,EAAI0F,SAAS,UAAWvD,EAAGnC,EAAIT,OAAS,GAKjD,SAAS2yB,EAASlyB,GAChB,IAAI8Q,EAAI9Q,GAAOA,EAAIT,OAASuB,KAAKgE,MAAM9E,GAAO,GAC9C,GAAIc,KAAK2xB,SAAU,CACjB,IAAIvsB,EAAMpF,KAAK4xB,UAAY5xB,KAAK2xB,SAChC,OAAO3hB,EAAIhQ,KAAK6xB,SAASjtB,SAAS,UAAW,EAAGQ,GAElD,OAAO4K,EAGT,SAASuhB,EAAWryB,EAAKmC,GACvB,IAAIwE,GAAK3G,EAAIT,OAAS4C,GAAK,EAC3B,OAAU,IAANwE,EAAgB3G,EAAI0F,SAAS,SAAUvD,IAC3CrB,KAAK2xB,SAAW,EAAI9rB,EACpB7F,KAAK4xB,UAAY,EACP,IAAN/rB,EACF7F,KAAK6xB,SAAS,GAAK3yB,EAAIA,EAAIT,OAAS,IAEpCuB,KAAK6xB,SAAS,GAAK3yB,EAAIA,EAAIT,OAAS,GACpCuB,KAAK6xB,SAAS,GAAK3yB,EAAIA,EAAIT,OAAS,IAE/BS,EAAI0F,SAAS,SAAUvD,EAAGnC,EAAIT,OAASoH,IAGhD,SAAS2rB,EAAUtyB,GACjB,IAAI8Q,EAAI9Q,GAAOA,EAAIT,OAASuB,KAAKgE,MAAM9E,GAAO,GAC9C,OAAIc,KAAK2xB,SAAiB3hB,EAAIhQ,KAAK6xB,SAASjtB,SAAS,SAAU,EAAG,EAAI5E,KAAK2xB,UACpE3hB,EAIT,SAASyhB,EAAYvyB,GACnB,OAAOA,EAAI0F,SAAS5E,KAAKf,UAG3B,SAASyyB,EAAUxyB,GACjB,OAAOA,GAAOA,EAAIT,OAASuB,KAAKgE,MAAM9E,GAAO,GAzN/C9B,EAAQ2tB,cAAgBA,EA6BxBA,EAAcvtB,UAAUwG,MAAQ,SAAU9E,GACxC,GAAmB,IAAfA,EAAIT,OAAc,MAAO,GAC7B,IAAIuR,EACA3O,EACJ,GAAIrB,KAAK2xB,SAAU,CAEjB,QAAUxyB,KADV6Q,EAAIhQ,KAAKqxB,SAASnyB,IACG,MAAO,GAC5BmC,EAAIrB,KAAK2xB,SACT3xB,KAAK2xB,SAAW,OAEhBtwB,EAAI,EAEN,OAAIA,EAAInC,EAAIT,OAAeuR,EAAIA,EAAIhQ,KAAKkxB,KAAKhyB,EAAKmC,GAAKrB,KAAKkxB,KAAKhyB,EAAKmC,GAC/D2O,GAAK,IAGd+a,EAAcvtB,UAAU4H,IAwGxB,SAAiBlG,GACf,IAAI8Q,EAAI9Q,GAAOA,EAAIT,OAASuB,KAAKgE,MAAM9E,GAAO,GAC9C,OAAIc,KAAK2xB,SAAiB3hB,EAAI,SACvBA,GAxGT+a,EAAcvtB,UAAU0zB,KA0FxB,SAAkBhyB,EAAKmC,GACrB,IAAIkV,EArEN,SAA6BU,EAAM/X,EAAKmC,GACtC,IAAIwF,EAAI3H,EAAIT,OAAS,EACrB,GAAIoI,EAAIxF,EAAG,OAAO,EAClB,IAAIwvB,EAAKiB,EAAc5yB,EAAI2H,IAC3B,GAAIgqB,GAAM,EAER,OADIA,EAAK,IAAG5Z,EAAK0a,SAAWd,EAAK,GAC1BA,EAET,KAAMhqB,EAAIxF,IAAa,IAARwvB,EAAW,OAAO,EAEjC,IADAA,EAAKiB,EAAc5yB,EAAI2H,MACb,EAER,OADIgqB,EAAK,IAAG5Z,EAAK0a,SAAWd,EAAK,GAC1BA,EAET,KAAMhqB,EAAIxF,IAAa,IAARwvB,EAAW,OAAO,EAEjC,IADAA,EAAKiB,EAAc5yB,EAAI2H,MACb,EAIR,OAHIgqB,EAAK,IACI,IAAPA,EAAUA,EAAK,EAAO5Z,EAAK0a,SAAWd,EAAK,GAE1CA,EAET,OAAO,EA+CKoB,CAAoBjyB,KAAMd,EAAKmC,GAC3C,IAAKrB,KAAK2xB,SAAU,OAAOzyB,EAAI0F,SAAS,OAAQvD,GAChDrB,KAAK4xB,UAAYrb,EACjB,IAAInR,EAAMlG,EAAIT,QAAU8X,EAAQvW,KAAK2xB,UAErC,OADAzyB,EAAIoF,KAAKtE,KAAK6xB,SAAU,EAAGzsB,GACpBlG,EAAI0F,SAAS,OAAQvD,EAAG+D,IA7FjC2lB,EAAcvtB,UAAU6zB,SAAW,SAAUnyB,GAC3C,GAAIc,KAAK2xB,UAAYzyB,EAAIT,OAEvB,OADAS,EAAIoF,KAAKtE,KAAK6xB,SAAU7xB,KAAK4xB,UAAY5xB,KAAK2xB,SAAU,EAAG3xB,KAAK2xB,UACzD3xB,KAAK6xB,SAASjtB,SAAS5E,KAAKf,SAAU,EAAGe,KAAK4xB,WAEvD1yB,EAAIoF,KAAKtE,KAAK6xB,SAAU7xB,KAAK4xB,UAAY5xB,KAAK2xB,SAAU,EAAGzyB,EAAIT,QAC/DuB,KAAK2xB,UAAYzyB,EAAIT,S,6BCxGvB,IAAIyzB,EAAMl0B,EAAQ,IAIdm0B,EAAal1B,OAAOyzB,MAAQ,SAAUvsB,GACxC,IAAIusB,EAAO,GACX,IAAK,IAAIryB,KAAO8F,EACdusB,EAAKpvB,KAAKjD,GACX,OAAOqyB,GAIVvzB,EAAOC,QAAUg1B,EAGjB,IAAIC,EAAOp1B,OAAOC,OAAOc,EAAQ,KACjCq0B,EAAK9f,SAAWvU,EAAQ,GAGxB,IAAIs0B,EAAWt0B,EAAQ,IACnBu0B,EAAWv0B,EAAQ,IAEvBq0B,EAAK9f,SAAS6f,EAAQE,GAKpB,IADA,IAAI5B,EAAOyB,EAAWI,EAAS/0B,WACtBg1B,EAAI,EAAGA,EAAI9B,EAAKjyB,OAAQ+zB,IAAK,CACpC,IAAIC,EAAS/B,EAAK8B,GACbJ,EAAO50B,UAAUi1B,KAASL,EAAO50B,UAAUi1B,GAAUF,EAAS/0B,UAAUi1B,IAIjF,SAASL,EAAOM,GACd,KAAM1yB,gBAAgBoyB,GAAS,OAAO,IAAIA,EAAOM,GAEjDJ,EAASvyB,KAAKC,KAAM0yB,GACpBH,EAASxyB,KAAKC,KAAM0yB,GAEhBA,IAAgC,IAArBA,EAAQC,WAAoB3yB,KAAK2yB,UAAW,GAEvDD,IAAgC,IAArBA,EAAQ90B,WAAoBoC,KAAKpC,UAAW,GAE3DoC,KAAK4yB,eAAgB,EACjBF,IAAqC,IAA1BA,EAAQE,gBAAyB5yB,KAAK4yB,eAAgB,GAErE5yB,KAAKgC,KAAK,MAAO6wB,GAcnB,SAASA,IAGH7yB,KAAK4yB,eAAiB5yB,KAAK8yB,eAAeC,OAI9Cb,EAAIjxB,SAAS+xB,EAAShzB,MAGxB,SAASgzB,EAAQ/b,GACfA,EAAK7R,MAtBPnI,OAAO4M,eAAeuoB,EAAO50B,UAAW,wBAAyB,CAI/DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAeG,iBAmB/Bh2B,OAAO4M,eAAeuoB,EAAO50B,UAAW,YAAa,CACnDqtB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAKkzB,qBAAwD/zB,IAAxBa,KAAK8yB,iBAGvC9yB,KAAKkzB,eAAeC,WAAanzB,KAAK8yB,eAAeK,YAE9DpkB,IAAK,SAAUrR,QAGeyB,IAAxBa,KAAKkzB,qBAAwD/zB,IAAxBa,KAAK8yB,iBAM9C9yB,KAAKkzB,eAAeC,UAAYz1B,EAChCsC,KAAK8yB,eAAeK,UAAYz1B,MAIpC00B,EAAO50B,UAAU41B,SAAW,SAAUjH,EAAKkH,GACzCrzB,KAAKsB,KAAK,MACVtB,KAAKoF,MAEL8sB,EAAIjxB,SAASoyB,EAAIlH,K,8BCjInB,cAIA,IAAImH,EAAY,MAIZC,EAAa,WAMjB,IAAIt1B,EAASD,EAAQ,GAAeC,OAChCu1B,EAASnqB,EAAOmqB,QAAUnqB,EAAOoqB,SAEjCD,GAAUA,EAAOE,gBACnBv2B,EAAOC,QAKT,SAAsB2B,EAAMs0B,GAE1B,GAAIt0B,EAAOw0B,EAAY,MAAM,IAAIlwB,WAAW,mCAE5C,IAAIoI,EAAQxN,EAAOW,YAAYG,GAE/B,GAAIA,EAAO,EACT,GAAIA,EAAOu0B,EAET,IAAK,IAAIK,EAAY,EAAGA,EAAY50B,EAAM40B,GAAaL,EAGrDE,EAAOE,gBAAgBjoB,EAAMxH,MAAM0vB,EAAWA,EAAYL,SAG5DE,EAAOE,gBAAgBjoB,GAI3B,GAAkB,oBAAP4nB,EACT,OAAO9zB,EAAQ0B,UAAS,WACtBoyB,EAAG,KAAM5nB,MAIb,OAAOA,GA5BPtO,EAAOC,QAVT,WACE,MAAM,IAAIqC,MAAM,qH,mDCPlB,IAAIm0B,EAAQ,GAEZ,SAASC,EAAgB7kB,EAAMohB,EAAS0D,GACjCA,IACHA,EAAOr0B,OAWT,IAAIs0B,EAEJ,SAAUC,GAnBZ,IAAwBC,EAAUC,EAsB9B,SAASH,EAAUI,EAAMC,EAAMC,GAC7B,OAAOL,EAAMj0B,KAAKC,KAdtB,SAAoBm0B,EAAMC,EAAMC,GAC9B,MAAuB,kBAAZjE,EACFA,EAEAA,EAAQ+D,EAAMC,EAAMC,GAUHC,CAAWH,EAAMC,EAAMC,KAAUr0B,KAG3D,OA1B8Bk0B,EAoBJF,GApBNC,EAoBLF,GApBsCv2B,UAAYP,OAAOC,OAAOg3B,EAAW12B,WAAYy2B,EAASz2B,UAAUC,YAAcw2B,EAAUA,EAAS1wB,UAAY2wB,EA0B/JH,EAPT,CAQED,GAEFC,EAAUv2B,UAAUgF,KAAOsxB,EAAKtxB,KAChCuxB,EAAUv2B,UAAUwR,KAAOA,EAC3B4kB,EAAM5kB,GAAQ+kB,EAIhB,SAASQ,EAAMC,EAAUC,GACvB,GAAItzB,MAAM6B,QAAQwxB,GAAW,CAC3B,IAAI9zB,EAAM8zB,EAAS/1B,OAKnB,OAJA+1B,EAAWA,EAASE,KAAI,SAAUrzB,GAChC,OAAOmF,OAAOnF,MAGZX,EAAM,EACD,UAAUH,OAAOk0B,EAAO,KAAKl0B,OAAOi0B,EAASvwB,MAAM,EAAGvD,EAAM,GAAGkK,KAAK,MAAO,SAAW4pB,EAAS9zB,EAAM,GAC3F,IAARA,EACF,UAAUH,OAAOk0B,EAAO,KAAKl0B,OAAOi0B,EAAS,GAAI,QAAQj0B,OAAOi0B,EAAS,IAEzE,MAAMj0B,OAAOk0B,EAAO,KAAKl0B,OAAOi0B,EAAS,IAGlD,MAAO,MAAMj0B,OAAOk0B,EAAO,KAAKl0B,OAAOiG,OAAOguB,IA+BlDX,EAAgB,yBAAyB,SAAUrxB,EAAM9E,GACvD,MAAO,cAAgBA,EAAQ,4BAA8B8E,EAAO,MACnE1D,WACH+0B,EAAgB,wBAAwB,SAAUrxB,EAAMgyB,EAAUzwB,GAEhE,IAAI4wB,EA/BmBC,EAAQxqB,EAwC3ByF,EAEJ,GATwB,kBAAb2kB,IAjCYI,EAiCkC,OAAVJ,EAhCpCntB,QAAQ+C,GAAOA,EAAM,EAAI,GAAKA,EAAKwqB,EAAOn2B,UAAYm2B,IAiC/DD,EAAa,cACbH,EAAWA,EAASllB,QAAQ,QAAS,KAErCqlB,EAAa,UAhCjB,SAAkBltB,EAAKmtB,EAAQC,GAK7B,YAJiB11B,IAAb01B,GAA0BA,EAAWptB,EAAIhJ,UAC3Co2B,EAAWptB,EAAIhJ,QAGVgJ,EAAIqtB,UAAUD,EAAWD,EAAOn2B,OAAQo2B,KAAcD,EAgCzDG,CAASvyB,EAAM,aAEjBqN,EAAM,OAAOtP,OAAOiC,EAAM,KAAKjC,OAAOo0B,EAAY,KAAKp0B,OAAOg0B,EAAMC,EAAU,aACzE,CACL,IAAIhwB,EAhCR,SAAkBiD,EAAKmtB,EAAQzvB,GAK7B,MAJqB,kBAAVA,IACTA,EAAQ,KAGNA,EAAQyvB,EAAOn2B,OAASgJ,EAAIhJ,UAGS,IAAhCgJ,EAAIvB,QAAQ0uB,EAAQzvB,GAwBhB+F,CAAS1I,EAAM,KAAO,WAAa,WAC9CqN,EAAM,QAAStP,OAAOiC,EAAM,MAAOjC,OAAOiE,EAAM,KAAKjE,OAAOo0B,EAAY,KAAKp0B,OAAOg0B,EAAMC,EAAU,SAItG,OADA3kB,GAAO,mBAAmBtP,cAAcwD,KAEvCjF,WACH+0B,EAAgB,4BAA6B,2BAC7CA,EAAgB,8BAA8B,SAAUrxB,GACtD,MAAO,OAASA,EAAO,gCAEzBqxB,EAAgB,6BAA8B,mBAC9CA,EAAgB,wBAAwB,SAAUrxB,GAChD,MAAO,eAAiBA,EAAO,mCAEjCqxB,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuC/0B,WACjF+0B,EAAgB,wBAAwB,SAAUt1B,GAChD,MAAO,qBAAuBA,IAC7BO,WACH+0B,EAAgB,qCAAsC,oCACtD12B,EAAOC,QAAQw2B,MAAQA,G,8BC9HvB,YA2BA,IAAIzB,EAAal1B,OAAOyzB,MAAQ,SAAUvsB,GACxC,IAAIusB,EAAO,GAEX,IAAK,IAAIryB,KAAO8F,EACdusB,EAAKpvB,KAAKjD,GAGZ,OAAOqyB,GAKTvzB,EAAOC,QAAUg1B,EAEjB,IAAIE,EAAWt0B,EAAQ,IAEnBu0B,EAAWv0B,EAAQ,IAEvBA,EAAQ,EAARA,CAAoBo0B,EAAQE,GAM1B,IAFA,IAAI5B,EAAOyB,EAAWI,EAAS/0B,WAEtBg1B,EAAI,EAAGA,EAAI9B,EAAKjyB,OAAQ+zB,IAAK,CACpC,IAAIC,EAAS/B,EAAK8B,GACbJ,EAAO50B,UAAUi1B,KAASL,EAAO50B,UAAUi1B,GAAUF,EAAS/0B,UAAUi1B,IAIjF,SAASL,EAAOM,GACd,KAAM1yB,gBAAgBoyB,GAAS,OAAO,IAAIA,EAAOM,GACjDJ,EAASvyB,KAAKC,KAAM0yB,GACpBH,EAASxyB,KAAKC,KAAM0yB,GACpB1yB,KAAK4yB,eAAgB,EAEjBF,KACuB,IAArBA,EAAQC,WAAoB3yB,KAAK2yB,UAAW,IACvB,IAArBD,EAAQ90B,WAAoBoC,KAAKpC,UAAW,IAElB,IAA1B80B,EAAQE,gBACV5yB,KAAK4yB,eAAgB,EACrB5yB,KAAKgC,KAAK,MAAO6wB,KAiCvB,SAASA,IAEH7yB,KAAK8yB,eAAeC,OAGxBxzB,EAAQ0B,SAAS+xB,EAAShzB,MAG5B,SAASgzB,EAAQ/b,GACfA,EAAK7R,MArCPnI,OAAO4M,eAAeuoB,EAAO50B,UAAW,wBAAyB,CAI/DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAeG,iBAG/Bh2B,OAAO4M,eAAeuoB,EAAO50B,UAAW,iBAAkB,CAIxDG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAekC,eAGtD/3B,OAAO4M,eAAeuoB,EAAO50B,UAAW,iBAAkB,CAIxDG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAer0B,UAgB/BxB,OAAO4M,eAAeuoB,EAAO50B,UAAW,YAAa,CAInDG,YAAY,EACZktB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAKkzB,qBAAwD/zB,IAAxBa,KAAK8yB,iBAIvC9yB,KAAKkzB,eAAeC,WAAanzB,KAAK8yB,eAAeK,YAE9DpkB,IAAK,SAAarR,QAGYyB,IAAxBa,KAAKkzB,qBAAwD/zB,IAAxBa,KAAK8yB,iBAM9C9yB,KAAKkzB,eAAeC,UAAYz1B,EAChCsC,KAAK8yB,eAAeK,UAAYz1B,Q,iCCxIpC,IAAIO,EAASD,EAAQ,GAAeC,OAGpC,SAASg3B,EAAMC,EAAWC,GACxBn1B,KAAKo1B,OAASn3B,EAAOU,MAAMu2B,GAC3Bl1B,KAAKq1B,WAAaF,EAClBn1B,KAAKs1B,WAAaJ,EAClBl1B,KAAKu1B,KAAO,EAGdN,EAAKz3B,UAAUguB,OAAS,SAAU/mB,EAAMmO,GAClB,kBAATnO,IACTmO,EAAMA,GAAO,OACbnO,EAAOxG,EAAOS,KAAK+F,EAAMmO,IAQ3B,IALA,IAAI4iB,EAAQx1B,KAAKo1B,OACbF,EAAYl1B,KAAKs1B,WACjB72B,EAASgG,EAAKhG,OACdg3B,EAAQz1B,KAAKu1B,KAERxuB,EAAS,EAAGA,EAAStI,GAAS,CAIrC,IAHA,IAAIi3B,EAAWD,EAAQP,EACnBS,EAAYrtB,KAAKC,IAAI9J,EAASsI,EAAQmuB,EAAYQ,GAE7Cr0B,EAAI,EAAGA,EAAIs0B,EAAWt0B,IAC7Bm0B,EAAME,EAAWr0B,GAAKoD,EAAKsC,EAAS1F,GAItC0F,GAAU4uB,GADVF,GAASE,GAGIT,IAAe,GAC1Bl1B,KAAK4rB,QAAQ4J,GAKjB,OADAx1B,KAAKu1B,MAAQ92B,EACNuB,MAGTi1B,EAAKz3B,UAAUo4B,OAAS,SAAUhjB,GAChC,IAAIijB,EAAM71B,KAAKu1B,KAAOv1B,KAAKs1B,WAE3Bt1B,KAAKo1B,OAAOS,GAAO,IAInB71B,KAAKo1B,OAAOp2B,KAAK,EAAG62B,EAAM,GAEtBA,GAAO71B,KAAKq1B,aACdr1B,KAAK4rB,QAAQ5rB,KAAKo1B,QAClBp1B,KAAKo1B,OAAOp2B,KAAK,IAGnB,IAAI2R,EAAmB,EAAZ3Q,KAAKu1B,KAGhB,GAAI5kB,GAAQ,WACV3Q,KAAKo1B,OAAOpnB,cAAc2C,EAAM3Q,KAAKs1B,WAAa,OAG7C,CACL,IAAIQ,GAAkB,WAAPnlB,KAAuB,EAClColB,GAAYplB,EAAOmlB,GAAW,WAElC91B,KAAKo1B,OAAOpnB,cAAc+nB,EAAU/1B,KAAKs1B,WAAa,GACtDt1B,KAAKo1B,OAAOpnB,cAAc8nB,EAAS91B,KAAKs1B,WAAa,GAGvDt1B,KAAK4rB,QAAQ5rB,KAAKo1B,QAClB,IAAIY,EAAOh2B,KAAKi2B,QAEhB,OAAOrjB,EAAMojB,EAAKpxB,SAASgO,GAAOojB,GAGpCf,EAAKz3B,UAAUouB,QAAU,WACvB,MAAM,IAAInsB,MAAM,4CAGlBtC,EAAOC,QAAU63B,G,6BC5EjB,IAAIrB,EAAQ,GAEZ,SAASC,EAAgB7kB,EAAMohB,EAAS0D,GACjCA,IACHA,EAAOr0B,OAWT,IAAIs0B,EAEJ,SAAUC,GAnBZ,IAAwBC,EAAUC,EAsB9B,SAASH,EAAUI,EAAMC,EAAMC,GAC7B,OAAOL,EAAMj0B,KAAKC,KAdtB,SAAoBm0B,EAAMC,EAAMC,GAC9B,MAAuB,kBAAZjE,EACFA,EAEAA,EAAQ+D,EAAMC,EAAMC,GAUHC,CAAWH,EAAMC,EAAMC,KAAUr0B,KAG3D,OA1B8Bk0B,EAoBJF,GApBNC,EAoBLF,GApBsCv2B,UAAYP,OAAOC,OAAOg3B,EAAW12B,WAAYy2B,EAASz2B,UAAUC,YAAcw2B,EAAUA,EAAS1wB,UAAY2wB,EA0B/JH,EAPT,CAQED,GAEFC,EAAUv2B,UAAUgF,KAAOsxB,EAAKtxB,KAChCuxB,EAAUv2B,UAAUwR,KAAOA,EAC3B4kB,EAAM5kB,GAAQ+kB,EAIhB,SAASQ,EAAMC,EAAUC,GACvB,GAAItzB,MAAM6B,QAAQwxB,GAAW,CAC3B,IAAI9zB,EAAM8zB,EAAS/1B,OAKnB,OAJA+1B,EAAWA,EAASE,KAAI,SAAUrzB,GAChC,OAAOmF,OAAOnF,MAGZX,EAAM,EACD,UAAUH,OAAOk0B,EAAO,KAAKl0B,OAAOi0B,EAASvwB,MAAM,EAAGvD,EAAM,GAAGkK,KAAK,MAAO,SAAW4pB,EAAS9zB,EAAM,GAC3F,IAARA,EACF,UAAUH,OAAOk0B,EAAO,KAAKl0B,OAAOi0B,EAAS,GAAI,QAAQj0B,OAAOi0B,EAAS,IAEzE,MAAMj0B,OAAOk0B,EAAO,KAAKl0B,OAAOi0B,EAAS,IAGlD,MAAO,MAAMj0B,OAAOk0B,EAAO,KAAKl0B,OAAOiG,OAAOguB,IA+BlDX,EAAgB,yBAAyB,SAAUrxB,EAAM9E,GACvD,MAAO,cAAgBA,EAAQ,4BAA8B8E,EAAO,MACnE1D,WACH+0B,EAAgB,wBAAwB,SAAUrxB,EAAMgyB,EAAUzwB,GAEhE,IAAI4wB,EA/BmBC,EAAQxqB,EAwC3ByF,EAEJ,GATwB,kBAAb2kB,IAjCYI,EAiCkC,OAAVJ,EAhCpCntB,QAAQ+C,GAAOA,EAAM,EAAI,GAAKA,EAAKwqB,EAAOn2B,UAAYm2B,IAiC/DD,EAAa,cACbH,EAAWA,EAASllB,QAAQ,QAAS,KAErCqlB,EAAa,UAhCjB,SAAkBltB,EAAKmtB,EAAQC,GAK7B,YAJiB11B,IAAb01B,GAA0BA,EAAWptB,EAAIhJ,UAC3Co2B,EAAWptB,EAAIhJ,QAGVgJ,EAAIqtB,UAAUD,EAAWD,EAAOn2B,OAAQo2B,KAAcD,EAgCzDG,CAASvyB,EAAM,aAEjBqN,EAAM,OAAOtP,OAAOiC,EAAM,KAAKjC,OAAOo0B,EAAY,KAAKp0B,OAAOg0B,EAAMC,EAAU,aACzE,CACL,IAAIhwB,EAhCR,SAAkBiD,EAAKmtB,EAAQzvB,GAK7B,MAJqB,kBAAVA,IACTA,EAAQ,KAGNA,EAAQyvB,EAAOn2B,OAASgJ,EAAIhJ,UAGS,IAAhCgJ,EAAIvB,QAAQ0uB,EAAQzvB,GAwBhB+F,CAAS1I,EAAM,KAAO,WAAa,WAC9CqN,EAAM,QAAStP,OAAOiC,EAAM,MAAOjC,OAAOiE,EAAM,KAAKjE,OAAOo0B,EAAY,KAAKp0B,OAAOg0B,EAAMC,EAAU,SAItG,OADA3kB,GAAO,mBAAmBtP,cAAcwD,KAEvCjF,WACH+0B,EAAgB,4BAA6B,2BAC7CA,EAAgB,8BAA8B,SAAUrxB,GACtD,MAAO,OAASA,EAAO,gCAEzBqxB,EAAgB,6BAA8B,mBAC9CA,EAAgB,wBAAwB,SAAUrxB,GAChD,MAAO,eAAiBA,EAAO,mCAEjCqxB,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuC/0B,WACjF+0B,EAAgB,wBAAwB,SAAUt1B,GAChD,MAAO,qBAAuBA,IAC7BO,WACH+0B,EAAgB,qCAAsC,oCACtD12B,EAAOC,QAAQw2B,MAAQA,G,8BC9HvB,YA2BA,IAAIzB,EAAal1B,OAAOyzB,MAAQ,SAAUvsB,GACxC,IAAIusB,EAAO,GAEX,IAAK,IAAIryB,KAAO8F,EACdusB,EAAKpvB,KAAKjD,GAGZ,OAAOqyB,GAKTvzB,EAAOC,QAAUg1B,EAEjB,IAAIE,EAAWt0B,EAAQ,IAEnBu0B,EAAWv0B,EAAQ,IAEvBA,EAAQ,EAARA,CAAoBo0B,EAAQE,GAM1B,IAFA,IAAI5B,EAAOyB,EAAWI,EAAS/0B,WAEtBg1B,EAAI,EAAGA,EAAI9B,EAAKjyB,OAAQ+zB,IAAK,CACpC,IAAIC,EAAS/B,EAAK8B,GACbJ,EAAO50B,UAAUi1B,KAASL,EAAO50B,UAAUi1B,GAAUF,EAAS/0B,UAAUi1B,IAIjF,SAASL,EAAOM,GACd,KAAM1yB,gBAAgBoyB,GAAS,OAAO,IAAIA,EAAOM,GACjDJ,EAASvyB,KAAKC,KAAM0yB,GACpBH,EAASxyB,KAAKC,KAAM0yB,GACpB1yB,KAAK4yB,eAAgB,EAEjBF,KACuB,IAArBA,EAAQC,WAAoB3yB,KAAK2yB,UAAW,IACvB,IAArBD,EAAQ90B,WAAoBoC,KAAKpC,UAAW,IAElB,IAA1B80B,EAAQE,gBACV5yB,KAAK4yB,eAAgB,EACrB5yB,KAAKgC,KAAK,MAAO6wB,KAiCvB,SAASA,IAEH7yB,KAAK8yB,eAAeC,OAGxBxzB,EAAQ0B,SAAS+xB,EAAShzB,MAG5B,SAASgzB,EAAQ/b,GACfA,EAAK7R,MArCPnI,OAAO4M,eAAeuoB,EAAO50B,UAAW,wBAAyB,CAI/DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAeG,iBAG/Bh2B,OAAO4M,eAAeuoB,EAAO50B,UAAW,iBAAkB,CAIxDG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAekC,eAGtD/3B,OAAO4M,eAAeuoB,EAAO50B,UAAW,iBAAkB,CAIxDG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAer0B,UAgB/BxB,OAAO4M,eAAeuoB,EAAO50B,UAAW,YAAa,CAInDG,YAAY,EACZktB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAKkzB,qBAAwD/zB,IAAxBa,KAAK8yB,iBAIvC9yB,KAAKkzB,eAAeC,WAAanzB,KAAK8yB,eAAeK,YAE9DpkB,IAAK,SAAarR,QAGYyB,IAAxBa,KAAKkzB,qBAAwD/zB,IAAxBa,KAAK8yB,iBAM9C9yB,KAAKkzB,eAAeC,UAAYz1B,EAChCsC,KAAK8yB,eAAeK,UAAYz1B,Q,8CCvIpC,IAAI6U,EAAWvU,EAAQ,GACnBk4B,EAAMl4B,EAAQ,IACdm4B,EAAYn4B,EAAQ,IACpBo4B,EAAMp4B,EAAQ,IACd81B,EAAO91B,EAAQ,IAEnB,SAASi3B,EAAMe,GACblC,EAAK/zB,KAAKC,KAAM,UAEhBA,KAAKi2B,MAAQD,EAGfzjB,EAAS0iB,EAAMnB,GAEfmB,EAAKz3B,UAAUouB,QAAU,SAAUnnB,GACjCzE,KAAKi2B,MAAMzK,OAAO/mB,IAGpBwwB,EAAKz3B,UAAU4tB,OAAS,WACtB,OAAOprB,KAAKi2B,MAAML,UAGpBz4B,EAAOC,QAAU,SAAqBi5B,GAEpC,MAAY,SADZA,EAAMA,EAAIpxB,eACgB,IAAIixB,EAClB,WAARG,GAA4B,cAARA,EAA4B,IAAIF,EAEjD,IAAIlB,EAAKmB,EAAIC,M,gBC4EtB,SAASC,EAAe/b,GACtB,OAAOtd,OAAOO,UAAUoH,SAAS7E,KAAKwa,GA3ExCnd,EAAQ4F,QANR,SAAiBzE,GACf,OAAI4C,MAAM6B,QACD7B,MAAM6B,QAAQzE,GAEQ,mBAAxB+3B,EAAe/3B,IAOxBnB,EAAQm5B,UAHR,SAAmBh4B,GACjB,MAAsB,mBAARA,GAOhBnB,EAAQo5B,OAHR,SAAgBj4B,GACd,OAAe,OAARA,GAOTnB,EAAQq5B,kBAHR,SAA2Bl4B,GACzB,OAAc,MAAPA,GAOTnB,EAAQs5B,SAHR,SAAkBn4B,GAChB,MAAsB,kBAARA,GAOhBnB,EAAQu5B,SAHR,SAAkBp4B,GAChB,MAAsB,kBAARA,GAOhBnB,EAAQw5B,SAHR,SAAkBr4B,GAChB,MAAsB,kBAARA,GAOhBnB,EAAQy5B,YAHR,SAAqBt4B,GACnB,YAAe,IAARA,GAOTnB,EAAQ05B,SAHR,SAAkB7V,GAChB,MAA8B,oBAAvBqV,EAAerV,IAOxB7jB,EAAQ25B,SAHR,SAAkBx4B,GAChB,MAAsB,kBAARA,GAA4B,OAARA,GAOpCnB,EAAQ45B,OAHR,SAAgBzjB,GACd,MAA6B,kBAAtB+iB,EAAe/iB,IAOxBnW,EAAQ65B,QAHR,SAAiBn3B,GACf,MAA8B,mBAAtBw2B,EAAex2B,IAA2BA,aAAaL,OAOjErC,EAAQ85B,WAHR,SAAoB34B,GAClB,MAAsB,oBAARA,GAYhBnB,EAAQ+5B,YARR,SAAqB54B,GACnB,OAAe,OAARA,GACe,mBAARA,GACQ,kBAARA,GACQ,kBAARA,GACQ,kBAARA,GACQ,qBAARA,GAIhBnB,EAAQgH,SAAWpG,EAAQ,GAAUC,OAAOmG,U,iBCtG5CjH,cAAOC,QAAU,SAAc4M,EAAGpE,GAIhC,IAHA,IAAInH,EAAS6J,KAAKC,IAAIyB,EAAEvL,OAAQmH,EAAEnH,QAC9BV,EAAS,IAAIE,EAAOQ,GAEf4C,EAAI,EAAGA,EAAI5C,IAAU4C,EAC5BtD,EAAOsD,GAAK2I,EAAE3I,GAAKuE,EAAEvE,GAGvB,OAAOtD,K,qDCNT,IAAIkS,EAAQjS,EAAQ,GAChB4R,EAAS5R,EAAQ,GAErB,SAASo5B,IACPp3B,KAAKq3B,QAAU,KACfr3B,KAAKs3B,aAAe,EACpBt3B,KAAKk1B,UAAYl1B,KAAKvC,YAAYy3B,UAClCl1B,KAAKu3B,QAAUv3B,KAAKvC,YAAY85B,QAChCv3B,KAAKw3B,aAAex3B,KAAKvC,YAAY+5B,aACrCx3B,KAAKy3B,UAAYz3B,KAAKvC,YAAYg6B,UAAY,EAC9Cz3B,KAAK+S,OAAS,MAEd/S,KAAK03B,QAAU13B,KAAKk1B,UAAY,EAChCl1B,KAAK23B,SAAW33B,KAAKk1B,UAAY,GAEnC93B,EAAQg6B,UAAYA,EAEpBA,EAAU55B,UAAUguB,OAAS,SAAgB3b,EAAK+C,GAUhD,GARA/C,EAAMI,EAAMI,QAAQR,EAAK+C,GACpB5S,KAAKq3B,QAGRr3B,KAAKq3B,QAAUr3B,KAAKq3B,QAAQ92B,OAAOsP,GAFnC7P,KAAKq3B,QAAUxnB,EAGjB7P,KAAKs3B,cAAgBznB,EAAIpR,OAGrBuB,KAAKq3B,QAAQ54B,QAAUuB,KAAK03B,QAAS,CAIvC,IAAI1nB,GAHJH,EAAM7P,KAAKq3B,SAGC54B,OAASuB,KAAK03B,QAC1B13B,KAAKq3B,QAAUxnB,EAAI5L,MAAM4L,EAAIpR,OAASuR,EAAGH,EAAIpR,QACjB,IAAxBuB,KAAKq3B,QAAQ54B,SACfuB,KAAKq3B,QAAU,MAEjBxnB,EAAMI,EAAM+C,OAAOnD,EAAK,EAAGA,EAAIpR,OAASuR,EAAGhQ,KAAK+S,QAChD,IAAK,IAAI1R,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,GAAKrB,KAAK23B,SACxC33B,KAAK4rB,QAAQ/b,EAAKxO,EAAGA,EAAIrB,KAAK23B,UAGlC,OAAO33B,MAGTo3B,EAAU55B,UAAUo4B,OAAS,SAAgBhjB,GAI3C,OAHA5S,KAAKwrB,OAAOxrB,KAAK43B,QACjBhoB,EAAwB,OAAjB5P,KAAKq3B,SAELr3B,KAAK63B,QAAQjlB,IAGtBwkB,EAAU55B,UAAUo6B,KAAO,WACzB,IAAIl3B,EAAMV,KAAKs3B,aACX7rB,EAAQzL,KAAK03B,QACb3mB,EAAItF,GAAU/K,EAAMV,KAAKy3B,WAAahsB,EACtCjD,EAAM,IAAIrH,MAAM4P,EAAI/Q,KAAKy3B,WAC7BjvB,EAAI,GAAK,IACT,IAAK,IAAInH,EAAI,EAAGA,EAAI0P,EAAG1P,IACrBmH,EAAInH,GAAK,EAIX,GADAX,IAAQ,EACY,QAAhBV,KAAK+S,OAAkB,CACzB,IAAK,IAAIoF,EAAI,EAAGA,EAAInY,KAAKy3B,UAAWtf,IAClC3P,EAAInH,KAAO,EAEbmH,EAAInH,KAAO,EACXmH,EAAInH,KAAO,EACXmH,EAAInH,KAAO,EACXmH,EAAInH,KAAO,EACXmH,EAAInH,KAAQX,IAAQ,GAAM,IAC1B8H,EAAInH,KAAQX,IAAQ,GAAM,IAC1B8H,EAAInH,KAAQX,IAAQ,EAAK,IACzB8H,EAAInH,KAAa,IAANX,OAWX,IATA8H,EAAInH,KAAa,IAANX,EACX8H,EAAInH,KAAQX,IAAQ,EAAK,IACzB8H,EAAInH,KAAQX,IAAQ,GAAM,IAC1B8H,EAAInH,KAAQX,IAAQ,GAAM,IAC1B8H,EAAInH,KAAO,EACXmH,EAAInH,KAAO,EACXmH,EAAInH,KAAO,EACXmH,EAAInH,KAAO,EAEN8W,EAAI,EAAGA,EAAInY,KAAKy3B,UAAWtf,IAC9B3P,EAAInH,KAAO,EAGf,OAAOmH,I,6BCxFT,IAAM+J,EAAWvU,EAAQ,GACnB85B,EAAW95B,EAAQ,IAAoB85B,SACvC75B,EAASD,EAAQ,IAAgBC,OAEvC,SAAS85B,EAAc/iB,EAAM0d,GAC3BoF,EAAS/3B,KAAKC,KAAM0yB,GACfz0B,EAAOmG,SAAS4Q,IAKrBhV,KAAKgV,KAAOA,EACZhV,KAAK+G,OAAS,EACd/G,KAAKvB,OAASuW,EAAKvW,QANjBuB,KAAKkwB,MAAM,oBA8Ef,SAAS8H,EAAct6B,EAAOu6B,GAC5B,GAAI92B,MAAM6B,QAAQtF,GAChBsC,KAAKvB,OAAS,EACduB,KAAKtC,MAAQA,EAAMg3B,KAAI,SAASwD,GAI9B,OAHKF,EAAcG,gBAAgBD,KACjCA,EAAO,IAAIF,EAAcE,EAAMD,IACjCj4B,KAAKvB,QAAUy5B,EAAKz5B,OACby5B,IACNl4B,WACE,GAAqB,kBAAVtC,EAAoB,CACpC,KAAM,GAAKA,GAASA,GAAS,KAC3B,OAAOu6B,EAAS/H,MAAM,gCACxBlwB,KAAKtC,MAAQA,EACbsC,KAAKvB,OAAS,OACT,GAAqB,kBAAVf,EAChBsC,KAAKtC,MAAQA,EACbsC,KAAKvB,OAASR,EAAOyF,WAAWhG,OAC3B,KAAIO,EAAOmG,SAAS1G,GAIzB,OAAOu6B,EAAS/H,MAAM,4BAA8BxyB,GAHpDsC,KAAKtC,MAAQA,EACbsC,KAAKvB,OAASf,EAAMe,QAzFxB8T,EAASwlB,EAAeD,GACxB16B,EAAQ26B,cAAgBA,EAExBA,EAAcK,gBAAkB,SAAyB3zB,GACvD,OAAIA,aAAgBszB,GAKiB,kBAATtzB,GAC1BxG,EAAOmG,SAASK,EAAKuQ,OACK,kBAA1BvQ,EAAKhH,YAAY+E,MACM,kBAAhBiC,EAAKsC,QACW,kBAAhBtC,EAAKhG,QACS,oBAAdgG,EAAK4zB,MACY,oBAAjB5zB,EAAK6zB,SACY,oBAAjB7zB,EAAK8zB,SACc,oBAAnB9zB,EAAKgI,WACS,oBAAdhI,EAAK+zB,MACQ,oBAAb/zB,EAAKg0B,KAKhBV,EAAcv6B,UAAU66B,KAAO,WAC7B,MAAO,CAAEtxB,OAAQ/G,KAAK+G,OAAQkxB,SAAUH,EAASt6B,UAAU66B,KAAKt4B,KAAKC,QAGvE+3B,EAAcv6B,UAAU86B,QAAU,SAAiBD,GAEjD,IAAM7vB,EAAM,IAAIuvB,EAAc/3B,KAAKgV,MAOnC,OANAxM,EAAIzB,OAASsxB,EAAKtxB,OAClByB,EAAI/J,OAASuB,KAAK+G,OAElB/G,KAAK+G,OAASsxB,EAAKtxB,OACnB+wB,EAASt6B,UAAU86B,QAAQv4B,KAAKC,KAAMq4B,EAAKJ,UAEpCzvB,GAGTuvB,EAAcv6B,UAAU+6B,QAAU,WAChC,OAAOv4B,KAAK+G,SAAW/G,KAAKvB,QAG9Bs5B,EAAcv6B,UAAUiP,UAAY,SAAmBisB,GACrD,OAAI14B,KAAK+G,OAAS,GAAK/G,KAAKvB,OACnBuB,KAAKgV,KAAKvI,UAAUzM,KAAK+G,UAAU,GAEnC/G,KAAKkwB,MAAMwI,GAAQ,0BAG9BX,EAAcv6B,UAAUg7B,KAAO,SAAc/sB,EAAOitB,GAClD,KAAM14B,KAAK+G,OAAS0E,GAASzL,KAAKvB,QAChC,OAAOuB,KAAKkwB,MAAMwI,GAAQ,yBAE5B,IAAMlwB,EAAM,IAAIuvB,EAAc/3B,KAAKgV,MAQnC,OALAxM,EAAImwB,eAAiB34B,KAAK24B,eAE1BnwB,EAAIzB,OAAS/G,KAAK+G,OAClByB,EAAI/J,OAASuB,KAAK+G,OAAS0E,EAC3BzL,KAAK+G,QAAU0E,EACRjD,GAGTuvB,EAAcv6B,UAAUi7B,IAAM,SAAaJ,GACzC,OAAOr4B,KAAKgV,KAAK/Q,MAAMo0B,EAAOA,EAAKtxB,OAAS/G,KAAK+G,OAAQ/G,KAAKvB,SA2BhErB,EAAQ46B,cAAgBA,EAExBA,EAAcG,gBAAkB,SAAyB1zB,GACvD,OAAIA,aAAgBuzB,GAKiB,kBAATvzB,GACA,kBAA1BA,EAAKhH,YAAY+E,MACM,kBAAhBiC,EAAKhG,QACS,oBAAdgG,EAAKmG,MAKhBotB,EAAcx6B,UAAUoN,KAAO,SAAcW,EAAKxE,GAMhD,OALKwE,IACHA,EAAMtN,EAAOU,MAAMqB,KAAKvB,SACrBsI,IACHA,EAAS,GAES,IAAhB/G,KAAKvB,SAGL0C,MAAM6B,QAAQhD,KAAKtC,OACrBsC,KAAKtC,MAAMk7B,SAAQ,SAASV,GAC1BA,EAAKttB,KAAKW,EAAKxE,GACfA,GAAUmxB,EAAKz5B,WAGS,kBAAfuB,KAAKtC,MACd6N,EAAIxE,GAAU/G,KAAKtC,MACU,kBAAfsC,KAAKtC,MACnB6N,EAAIvH,MAAMhE,KAAKtC,MAAOqJ,GACf9I,EAAOmG,SAASpE,KAAKtC,QAC5BsC,KAAKtC,MAAM4G,KAAKiH,EAAKxE,GACvBA,GAAU/G,KAAKvB,SAdR8M,I,6BCtII,SAASstB,EAAkBzyB,EAAK1F,IAClC,MAAPA,GAAeA,EAAM0F,EAAI3H,UAAQiC,EAAM0F,EAAI3H,QAE/C,IAAK,IAAI4C,EAAI,EAAGy3B,EAAO,IAAI33B,MAAMT,GAAMW,EAAIX,EAAKW,IAC9Cy3B,EAAKz3B,GAAK+E,EAAI/E,GAGhB,OAAOy3B,ECHM,SAASC,EAAe3yB,EAAK/E,GAC1C,OCLa,SAAyB+E,GACtC,GAAIjF,MAAM6B,QAAQoD,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAK/E,GACjD,IAAI23B,EAAY,MAAP5yB,EAAc,KAAyB,qBAAXuD,QAA0BvD,EAAIuD,OAAOsvB,WAAa7yB,EAAI,cAE3F,GAAU,MAAN4yB,EAAJ,CACA,IAIIE,EAAIC,EAJJ9tB,EAAO,GACP+tB,GAAK,EACLC,GAAK,EAIT,IACE,IAAKL,EAAKA,EAAGj5B,KAAKqG,KAAQgzB,GAAMF,EAAKF,EAAGlP,QAAQuC,QAC9ChhB,EAAK/J,KAAK43B,EAAGx7B,QAET2D,GAAKgK,EAAK5M,SAAW4C,GAH4B+3B,GAAK,IAK5D,MAAOjN,GACPkN,GAAK,EACLF,EAAKhN,EACL,QACA,IACOiN,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIK,EAAI,MAAMF,GAIlB,OAAO9tB,GFtBuB,CAAqBjF,EAAK/E,IGJ3C,SAAqCkZ,EAAG+e,GACrD,GAAK/e,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,EAAiBA,EAAG+e,GACtD,IAAIzzB,EAAI5I,OAAOO,UAAUoH,SAAS7E,KAAKwa,GAAGtW,MAAM,GAAI,GAEpD,MADU,WAAN4B,GAAkB0U,EAAE9c,cAAaoI,EAAI0U,EAAE9c,YAAY+E,MAC7C,QAANqD,GAAqB,QAANA,EAAoB1E,MAAMzC,KAAK6b,GACxC,cAAN1U,GAAqB,2CAA2C0zB,KAAK1zB,GAAW,EAAiB0U,EAAG+e,QAAxG,GHF8D,CAA2BlzB,EAAK/E,IILjF,WACb,MAAM,IAAIvC,UAAU,6IJIgF,G,iEKLtG,YAEuB,qBAAZS,IACNA,EAAQqC,SAC0B,IAAnCrC,EAAQqC,QAAQsE,QAAQ,QACW,IAAnC3G,EAAQqC,QAAQsE,QAAQ,QAAqD,IAArC3G,EAAQqC,QAAQsE,QAAQ,SAClE/I,EAAOC,QAAU,CAAE6D,SAKrB,SAAkBu4B,EAAIrF,EAAMC,EAAMC,GAChC,GAAkB,oBAAPmF,EACT,MAAM,IAAI16B,UAAU,0CAEtB,IACIoC,EAAMG,EADNX,EAAMU,UAAU3C,OAEpB,OAAQiC,GACR,KAAK,EACL,KAAK,EACH,OAAOnB,EAAQ0B,SAASu4B,GAC1B,KAAK,EACH,OAAOj6B,EAAQ0B,UAAS,WACtBu4B,EAAGz5B,KAAK,KAAMo0B,MAElB,KAAK,EACH,OAAO50B,EAAQ0B,UAAS,WACtBu4B,EAAGz5B,KAAK,KAAMo0B,EAAMC,MAExB,KAAK,EACH,OAAO70B,EAAQ0B,UAAS,WACtBu4B,EAAGz5B,KAAK,KAAMo0B,EAAMC,EAAMC,MAE9B,QAGE,IAFAnzB,EAAO,IAAIC,MAAMT,EAAM,GACvBW,EAAI,EACGA,EAAIH,EAAKzC,QACdyC,EAAKG,KAAOD,UAAUC,GAExB,OAAO9B,EAAQ0B,UAAS,WACtBu4B,EAAGj4B,MAAM,KAAML,SAhCnB/D,EAAOC,QAAUmC,I,iCCHnB,IAAItB,EAASD,EAAQ,GAAeC,OAEpC,SAASw7B,EAAev6B,GACjBjB,EAAOmG,SAASlF,KAAMA,EAAMjB,EAAOS,KAAKQ,IAK7C,IAHA,IAAIwB,EAAOxB,EAAIT,OAAS,EAAK,EACzB8M,EAAM,IAAIpK,MAAMT,GAEXW,EAAI,EAAGA,EAAIX,EAAKW,IACvBkK,EAAIlK,GAAKnC,EAAI0N,aAAiB,EAAJvL,GAG5B,OAAOkK,EAGT,SAASmuB,EAAUlH,GACjB,KAAa,EAAOA,EAAE/zB,OAAQ+zB,IAC5BA,EADW,GACJ,EAIX,SAASmH,EAAYC,EAAGC,EAAaC,EAASC,EAAMC,GAalD,IAZA,IASIC,EAAIC,EAAIC,EAAIC,EATZC,EAAWP,EAAQ,GACnBQ,EAAWR,EAAQ,GACnBS,EAAWT,EAAQ,GACnBU,EAAWV,EAAQ,GAEnBW,EAAKb,EAAE,GAAKC,EAAY,GACxBa,EAAKd,EAAE,GAAKC,EAAY,GACxBc,EAAKf,EAAE,GAAKC,EAAY,GACxBe,EAAKhB,EAAE,GAAKC,EAAY,GAExBgB,EAAQ,EAEHnZ,EAAQ,EAAGA,EAAQsY,EAAStY,IACnCuY,EAAKI,EAASI,IAAO,IAAMH,EAAUI,IAAO,GAAM,KAAQH,EAAUI,IAAO,EAAK,KAAQH,EAAc,IAALI,GAAaf,EAAYgB,KAC1HX,EAAKG,EAASK,IAAO,IAAMJ,EAAUK,IAAO,GAAM,KAAQJ,EAAUK,IAAO,EAAK,KAAQJ,EAAc,IAALC,GAAaZ,EAAYgB,KAC1HV,EAAKE,EAASM,IAAO,IAAML,EAAUM,IAAO,GAAM,KAAQL,EAAUE,IAAO,EAAK,KAAQD,EAAc,IAALE,GAAab,EAAYgB,KAC1HT,EAAKC,EAASO,IAAO,IAAMN,EAAUG,IAAO,GAAM,KAAQF,EAAUG,IAAO,EAAK,KAAQF,EAAc,IAALG,GAAad,EAAYgB,KAC1HJ,EAAKR,EACLS,EAAKR,EACLS,EAAKR,EACLS,EAAKR,EAYP,OATAH,GAAOF,EAAKU,IAAO,KAAO,GAAOV,EAAMW,IAAO,GAAM,MAAS,GAAOX,EAAMY,IAAO,EAAK,MAAS,EAAKZ,EAAU,IAALa,IAAcf,EAAYgB,KACnIX,GAAOH,EAAKW,IAAO,KAAO,GAAOX,EAAMY,IAAO,GAAM,MAAS,GAAOZ,EAAMa,IAAO,EAAK,MAAS,EAAKb,EAAU,IAALU,IAAcZ,EAAYgB,KACnIV,GAAOJ,EAAKY,IAAO,KAAO,GAAOZ,EAAMa,IAAO,GAAM,MAAS,GAAOb,EAAMU,IAAO,EAAK,MAAS,EAAKV,EAAU,IAALW,IAAcb,EAAYgB,KACnIT,GAAOL,EAAKa,IAAO,KAAO,GAAOb,EAAMU,IAAO,GAAM,MAAS,GAAOV,EAAMW,IAAO,EAAK,MAAS,EAAKX,EAAU,IAALY,IAAcd,EAAYgB,KAM5H,CALPZ,KAAY,EACZC,KAAY,EACZC,KAAY,EACZC,KAAY,GAMd,IAAIU,EAAO,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IACpEC,EAAK,WAGP,IADA,IAAIxnB,EAAI,IAAIpS,MAAM,KACT0F,EAAI,EAAGA,EAAI,IAAKA,IAErB0M,EAAE1M,GADAA,EAAI,IACCA,GAAK,EAEJA,GAAK,EAAK,IAYtB,IARA,IAAIkzB,EAAO,GACPiB,EAAW,GACXlB,EAAU,CAAC,GAAI,GAAI,GAAI,IACvBmB,EAAc,CAAC,GAAI,GAAI,GAAI,IAG3BhxB,EAAI,EACJixB,EAAK,EACA75B,EAAI,EAAGA,EAAI,MAAOA,EAAG,CAE5B,IAAI85B,EAAKD,EAAMA,GAAM,EAAMA,GAAM,EAAMA,GAAM,EAAMA,GAAM,EACzDC,EAAMA,IAAO,EAAW,IAALA,EAAa,GAChCpB,EAAK9vB,GAAKkxB,EACVH,EAASG,GAAMlxB,EAGf,IAAI0b,EAAKpS,EAAEtJ,GACPmxB,EAAK7nB,EAAEoS,GACP0V,EAAK9nB,EAAE6nB,GAGPjjB,EAAa,IAAR5E,EAAE4nB,GAAqB,SAALA,EAC3BrB,EAAQ,GAAG7vB,GAAMkO,GAAK,GAAOA,IAAM,EACnC2hB,EAAQ,GAAG7vB,GAAMkO,GAAK,GAAOA,IAAM,GACnC2hB,EAAQ,GAAG7vB,GAAMkO,GAAK,EAAMA,IAAM,GAClC2hB,EAAQ,GAAG7vB,GAAKkO,EAGhBA,EAAU,SAALkjB,EAAwB,MAALD,EAAsB,IAALzV,EAAmB,SAAJ1b,EACxDgxB,EAAY,GAAGE,GAAOhjB,GAAK,GAAOA,IAAM,EACxC8iB,EAAY,GAAGE,GAAOhjB,GAAK,GAAOA,IAAM,GACxC8iB,EAAY,GAAGE,GAAOhjB,GAAK,EAAMA,IAAM,GACvC8iB,EAAY,GAAGE,GAAMhjB,EAEX,IAANlO,EACFA,EAAIixB,EAAK,GAETjxB,EAAI0b,EAAKpS,EAAEA,EAAEA,EAAE8nB,EAAK1V,KACpBuV,GAAM3nB,EAAEA,EAAE2nB,KAId,MAAO,CACLnB,KAAMA,EACNiB,SAAUA,EACVlB,QAASA,EACTmB,YAAaA,GAzDR,GA6DT,SAASK,EAAKj9B,GACZ2B,KAAKu7B,KAAO9B,EAAcp7B,GAC1B2B,KAAKw7B,SAGPF,EAAIpG,UAAY,GAChBoG,EAAIG,QAAU,GACdH,EAAI99B,UAAU03B,UAAYoG,EAAIpG,UAC9BoG,EAAI99B,UAAUi+B,QAAUH,EAAIG,QAC5BH,EAAI99B,UAAUg+B,OAAS,WAOrB,IANA,IAAIE,EAAW17B,KAAKu7B,KAChBE,EAAUC,EAASj9B,OACnBu7B,EAAUyB,EAAU,EACpBE,EAAyB,GAAf3B,EAAU,GAEpBH,EAAc,GACT9oB,EAAI,EAAGA,EAAI0qB,EAAS1qB,IAC3B8oB,EAAY9oB,GAAK2qB,EAAS3qB,GAG5B,IAAKA,EAAI0qB,EAAS1qB,EAAI4qB,EAAQ5qB,IAAK,CACjC,IAAIoH,EAAI0hB,EAAY9oB,EAAI,GAEpBA,EAAI0qB,IAAY,GAClBtjB,EAAKA,GAAK,EAAMA,IAAM,GACtBA,EACG4iB,EAAEhB,KAAK5hB,IAAM,KAAO,GACpB4iB,EAAEhB,KAAM5hB,IAAM,GAAM,MAAS,GAC7B4iB,EAAEhB,KAAM5hB,IAAM,EAAK,MAAS,EAC5B4iB,EAAEhB,KAAS,IAAJ5hB,GAEVA,GAAK2iB,EAAM/pB,EAAI0qB,EAAW,IAAM,IACvBA,EAAU,GAAK1qB,EAAI0qB,IAAY,IACxCtjB,EACG4iB,EAAEhB,KAAK5hB,IAAM,KAAO,GACpB4iB,EAAEhB,KAAM5hB,IAAM,GAAM,MAAS,GAC7B4iB,EAAEhB,KAAM5hB,IAAM,EAAK,MAAS,EAC5B4iB,EAAEhB,KAAS,IAAJ5hB,IAGZ0hB,EAAY9oB,GAAK8oB,EAAY9oB,EAAI0qB,GAAWtjB,EAI9C,IADA,IAAIyjB,EAAiB,GACZC,EAAK,EAAGA,EAAKF,EAAQE,IAAM,CAClC,IAAIC,EAAMH,EAASE,EACfE,EAAKlC,EAAYiC,GAAOD,EAAK,EAAI,EAAI,IAGvCD,EAAeC,GADbA,EAAK,GAAKC,GAAO,EACEC,EAGnBhB,EAAEE,YAAY,GAAGF,EAAEhB,KAAKgC,IAAO,KAC/BhB,EAAEE,YAAY,GAAGF,EAAEhB,KAAMgC,IAAO,GAAM,MACtChB,EAAEE,YAAY,GAAGF,EAAEhB,KAAMgC,IAAO,EAAK,MACrChB,EAAEE,YAAY,GAAGF,EAAEhB,KAAU,IAALgC,IAI9B/7B,KAAKg8B,SAAWhC,EAChBh6B,KAAKi8B,aAAepC,EACpB75B,KAAKk8B,gBAAkBN,GAGzBN,EAAI99B,UAAU2+B,gBAAkB,SAAUvC,GAExC,OAAOD,EADPC,EAAIH,EAAcG,GACG55B,KAAKi8B,aAAclB,EAAEjB,QAASiB,EAAEhB,KAAM/5B,KAAKg8B,WAGlEV,EAAI99B,UAAU4+B,aAAe,SAAUxC,GACrC,IAAIruB,EAAMvL,KAAKm8B,gBAAgBvC,GAC3B16B,EAAMjB,EAAOW,YAAY,IAK7B,OAJAM,EAAI8O,cAAczC,EAAI,GAAI,GAC1BrM,EAAI8O,cAAczC,EAAI,GAAI,GAC1BrM,EAAI8O,cAAczC,EAAI,GAAI,GAC1BrM,EAAI8O,cAAczC,EAAI,GAAI,IACnBrM,GAGTo8B,EAAI99B,UAAU6+B,aAAe,SAAUzC,GAIrC,IAAI0C,GAHJ1C,EAAIH,EAAcG,IAGP,GACXA,EAAE,GAAKA,EAAE,GACTA,EAAE,GAAK0C,EAEP,IAAI/wB,EAAMouB,EAAWC,EAAG55B,KAAKk8B,gBAAiBnB,EAAEE,YAAaF,EAAEC,SAAUh7B,KAAKg8B,UAC1E98B,EAAMjB,EAAOW,YAAY,IAK7B,OAJAM,EAAI8O,cAAczC,EAAI,GAAI,GAC1BrM,EAAI8O,cAAczC,EAAI,GAAI,GAC1BrM,EAAI8O,cAAczC,EAAI,GAAI,GAC1BrM,EAAI8O,cAAczC,EAAI,GAAI,IACnBrM,GAGTo8B,EAAI99B,UAAU++B,MAAQ,WACpB7C,EAAS15B,KAAKi8B,cACdvC,EAAS15B,KAAKk8B,iBACdxC,EAAS15B,KAAKu7B,OAGhBp+B,EAAOC,QAAQk+B,IAAMA,G,gBCnOrB,IAAIr9B,EAASD,EAAQ,GAAeC,OAChCi4B,EAAMl4B,EAAQ,IA2ClBb,EAAOC,QAxCP,SAAyBo/B,EAAUC,EAAMC,EAASC,GAEhD,GADK1+B,EAAOmG,SAASo4B,KAAWA,EAAWv+B,EAAOS,KAAK89B,EAAU,WAC7DC,IACGx+B,EAAOmG,SAASq4B,KAAOA,EAAOx+B,EAAOS,KAAK+9B,EAAM,WACjC,IAAhBA,EAAKh+B,QAAc,MAAM,IAAI4E,WAAW,4CAQ9C,IALA,IAAIu5B,EAASF,EAAU,EACnBr+B,EAAMJ,EAAOU,MAAMi+B,GACnBC,EAAK5+B,EAAOU,MAAMg+B,GAAS,GAC3BlU,EAAMxqB,EAAOU,MAAM,GAEhBi+B,EAAS,GAAKD,EAAQ,GAAG,CAC9B,IAAI3G,EAAO,IAAIE,EACfF,EAAKxK,OAAO/C,GACZuN,EAAKxK,OAAOgR,GACRC,GAAMzG,EAAKxK,OAAOiR,GACtBhU,EAAMuN,EAAKJ,SAEX,IAAIkH,EAAO,EAEX,GAAIF,EAAS,EAAG,CACd,IAAIG,EAAW1+B,EAAII,OAASm+B,EAC5BE,EAAOx0B,KAAKC,IAAIq0B,EAAQnU,EAAIhqB,QAC5BgqB,EAAInkB,KAAKjG,EAAK0+B,EAAU,EAAGD,GAC3BF,GAAUE,EAGZ,GAAIA,EAAOrU,EAAIhqB,QAAUk+B,EAAQ,EAAG,CAClC,IAAIK,EAAUH,EAAGp+B,OAASk+B,EACtBl+B,EAAS6J,KAAKC,IAAIo0B,EAAOlU,EAAIhqB,OAASq+B,GAC1CrU,EAAInkB,KAAKu4B,EAAIG,EAASF,EAAMA,EAAOr+B,GACnCk+B,GAASl+B,GAKb,OADAgqB,EAAIzpB,KAAK,GACF,CAAEX,IAAKA,EAAKw+B,GAAIA,K,6BCvCzB,IAAI3sB,EAAKlS,EAAQ,IACbiS,EAAQjS,EAAQ,GAChBwS,EAASP,EAAMO,OACfe,EAAStB,EAAMsB,OACf3B,EAASK,EAAML,OAEnB,SAASqtB,EAAUz4B,EAAM04B,GACvBl9B,KAAKwE,KAAOA,EACZxE,KAAK6S,EAAI,IAAI3C,EAAGgtB,EAAKrqB,EAAG,IAGxB7S,KAAKoV,IAAM8nB,EAAKnU,MAAQ7Y,EAAGkF,IAAI8nB,EAAKnU,OAAS7Y,EAAGqa,KAAKvqB,KAAK6S,GAG1D7S,KAAKm9B,KAAO,IAAIjtB,EAAG,GAAGyW,MAAM3mB,KAAKoV,KACjCpV,KAAKgqB,IAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,KAAKoV,KAChCpV,KAAKo9B,IAAM,IAAIltB,EAAG,GAAGyW,MAAM3mB,KAAKoV,KAGhCpV,KAAK6F,EAAIq3B,EAAKr3B,GAAK,IAAIqK,EAAGgtB,EAAKr3B,EAAG,IAClC7F,KAAKyP,EAAIytB,EAAKztB,GAAKzP,KAAKq9B,cAAcH,EAAKztB,EAAGytB,EAAKI,MAGnDt9B,KAAKu9B,QAAU,IAAIp8B,MAAM,GACzBnB,KAAKw9B,QAAU,IAAIr8B,MAAM,GACzBnB,KAAKy9B,QAAU,IAAIt8B,MAAM,GACzBnB,KAAK09B,QAAU,IAAIv8B,MAAM,GAEzBnB,KAAK29B,WAAa39B,KAAK6F,EAAI7F,KAAK6F,EAAEgL,YAAc,EAGhD,IAAI+sB,EAAc59B,KAAK6F,GAAK7F,KAAK6S,EAAEuR,IAAIpkB,KAAK6F,IACvC+3B,GAAeA,EAAY9rB,KAAK,KAAO,EAC1C9R,KAAK69B,KAAO,MAEZ79B,KAAK89B,eAAgB,EACrB99B,KAAK69B,KAAO79B,KAAK6F,EAAE8gB,MAAM3mB,KAAKoV,MAwNlC,SAAS2oB,EAAUC,EAAOx5B,GACxBxE,KAAKg+B,MAAQA,EACbh+B,KAAKwE,KAAOA,EACZxE,KAAKi+B,YAAc,KAxNrB9gC,EAAOC,QAAU6/B,EAEjBA,EAAUz/B,UAAU0gC,MAAQ,WAC1B,MAAM,IAAIz+B,MAAM,oBAGlBw9B,EAAUz/B,UAAU2gC,SAAW,WAC7B,MAAM,IAAI1+B,MAAM,oBAGlBw9B,EAAUz/B,UAAU4gC,aAAe,SAAsBvrB,EAAG9B,GAC1DnB,EAAOiD,EAAEorB,aACT,IAAII,EAAUxrB,EAAEyrB,cAEZ1tB,EAAMJ,EAAOO,EAAG,EAAG/Q,KAAK29B,YACxBY,GAAK,GAAMF,EAAQG,KAAO,IAAOH,EAAQG,KAAO,IAAM,EAAI,EAAI,GAClED,GAAK,EAGL,IACI13B,EACA43B,EAFAC,EAAO,GAGX,IAAK73B,EAAI,EAAGA,EAAI+J,EAAInS,OAAQoI,GAAKw3B,EAAQG,KAAM,CAC7CC,EAAO,EACP,IAAK,IAAI1uB,EAAIlJ,EAAIw3B,EAAQG,KAAO,EAAGzuB,GAAKlJ,EAAGkJ,IACzC0uB,GAAQA,GAAQ,GAAK7tB,EAAIb,GAC3B2uB,EAAKp9B,KAAKm9B,GAKZ,IAFA,IAAIz0B,EAAIhK,KAAK2+B,OAAO,KAAM,KAAM,MAC5B/4B,EAAI5F,KAAK2+B,OAAO,KAAM,KAAM,MACvBt9B,EAAIk9B,EAAGl9B,EAAI,EAAGA,IAAK,CAC1B,IAAKwF,EAAI,EAAGA,EAAI63B,EAAKjgC,OAAQoI,KAC3B43B,EAAOC,EAAK73B,MACCxF,EACXuE,EAAIA,EAAEg5B,SAASP,EAAQQ,OAAOh4B,IACvB43B,KAAUp9B,IACjBuE,EAAIA,EAAEg5B,SAASP,EAAQQ,OAAOh4B,GAAGmS,QAErChP,EAAIA,EAAEoQ,IAAIxU,GAEZ,OAAOoE,EAAE80B,OAGX7B,EAAUz/B,UAAUuhC,SAAW,SAAkBlsB,EAAG9B,GAClD,IAAIL,EAAI,EAGJsuB,EAAYnsB,EAAEosB,cAAcvuB,GAChCA,EAAIsuB,EAAU5U,IAQd,IAPA,IAAIA,EAAM4U,EAAUH,OAGhBjuB,EAAMJ,EAAOO,EAAGL,EAAG1Q,KAAK29B,YAGxB9Y,EAAM7kB,KAAK2+B,OAAO,KAAM,KAAM,MACzBt9B,EAAIuP,EAAInS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAExC,IAAK,IAAI0O,EAAI,EAAG1O,GAAK,GAAgB,IAAXuP,EAAIvP,GAAUA,IACtC0O,IAKF,GAJI1O,GAAK,GACP0O,IACF8U,EAAMA,EAAIqa,KAAKnvB,GAEX1O,EAAI,EACN,MACF,IAAI4P,EAAIL,EAAIvP,GACZuO,EAAa,IAANqB,GAIH4T,EAHW,WAAXhS,EAAErO,KAEAyM,EAAI,EACA4T,EAAI+Z,SAASxU,EAAKnZ,EAAI,GAAM,IAE5B4T,EAAI+Z,SAASxU,GAAMnZ,EAAI,GAAM,GAAG+H,OAGpC/H,EAAI,EACA4T,EAAIzK,IAAIgQ,EAAKnZ,EAAI,GAAM,IAEvB4T,EAAIzK,IAAIgQ,GAAMnZ,EAAI,GAAM,GAAG+H,OAGvC,MAAkB,WAAXnG,EAAErO,KAAoBqgB,EAAIia,MAAQja,GAG3CoY,EAAUz/B,UAAU2hC,YAAc,SAAqBC,EACrDP,EACAQ,EACA3+B,EACA4+B,GACA,IAMIj+B,EACAwF,EACAgM,EARA0sB,EAAWv/B,KAAKu9B,QAChBnT,EAAMpqB,KAAKw9B,QACX5sB,EAAM5Q,KAAKy9B,QAGX/yB,EAAM,EAIV,IAAKrJ,EAAI,EAAGA,EAAIX,EAAKW,IAAK,CAExB,IAAI29B,GADJnsB,EAAIgsB,EAAOx9B,IACO49B,cAAcG,GAChCG,EAASl+B,GAAK29B,EAAU5U,IACxBA,EAAI/oB,GAAK29B,EAAUH,OAIrB,IAAKx9B,EAAIX,EAAM,EAAGW,GAAK,EAAGA,GAAK,EAAG,CAChC,IAAI2I,EAAI3I,EAAI,EACRuE,EAAIvE,EACR,GAAoB,IAAhBk+B,EAASv1B,IAA4B,IAAhBu1B,EAAS35B,GAAlC,CAQA,IAAI45B,EAAO,CACTX,EAAO70B,GACP,KACA,KACA60B,EAAOj5B,IAI4B,IAAjCi5B,EAAO70B,GAAGE,EAAE4L,IAAI+oB,EAAOj5B,GAAGsE,IAC5Bs1B,EAAK,GAAKX,EAAO70B,GAAGoQ,IAAIykB,EAAOj5B,IAC/B45B,EAAK,GAAKX,EAAO70B,GAAGy1B,MAAMb,SAASC,EAAOj5B,GAAGoT,QACM,IAA1C6lB,EAAO70B,GAAGE,EAAE4L,IAAI+oB,EAAOj5B,GAAGsE,EAAE+d,WACrCuX,EAAK,GAAKX,EAAO70B,GAAGy1B,MAAMb,SAASC,EAAOj5B,IAC1C45B,EAAK,GAAKX,EAAO70B,GAAGoQ,IAAIykB,EAAOj5B,GAAGoT,SAElCwmB,EAAK,GAAKX,EAAO70B,GAAGy1B,MAAMb,SAASC,EAAOj5B,IAC1C45B,EAAK,GAAKX,EAAO70B,GAAGy1B,MAAMb,SAASC,EAAOj5B,GAAGoT,QAG/C,IAAIxD,EAAQ,EACT,GACA,GACA,GACA,EACD,EACA,EACA,EACA,EACA,GAGE9D,EAAMH,EAAO8tB,EAAOr1B,GAAIq1B,EAAOz5B,IAInC,IAHA8E,EAAMpC,KAAKoC,IAAIgH,EAAI,GAAGjT,OAAQiM,GAC9BkG,EAAI5G,GAAK,IAAI7I,MAAMuJ,GACnBkG,EAAIhL,GAAK,IAAIzE,MAAMuJ,GACd7D,EAAI,EAAGA,EAAI6D,EAAK7D,IAAK,CACxB,IAAI64B,EAAiB,EAAZhuB,EAAI,GAAG7K,GACZ84B,EAAiB,EAAZjuB,EAAI,GAAG7K,GAEhB+J,EAAI5G,GAAGnD,GAAK2O,EAAiB,GAAVkqB,EAAK,IAAUC,EAAK,IACvC/uB,EAAIhL,GAAGiB,GAAK,EACZujB,EAAIpgB,GAAKw1B,QAhDT5uB,EAAI5G,GAAKwG,EAAO6uB,EAAOr1B,GAAIu1B,EAASv1B,GAAIhK,KAAK29B,YAC7C/sB,EAAIhL,GAAK4K,EAAO6uB,EAAOz5B,GAAI25B,EAAS35B,GAAI5F,KAAK29B,YAC7CjzB,EAAMpC,KAAKoC,IAAIkG,EAAI5G,GAAGvL,OAAQiM,GAC9BA,EAAMpC,KAAKoC,IAAIkG,EAAIhL,GAAGnH,OAAQiM,GAiDlC,IAAIma,EAAM7kB,KAAK2+B,OAAO,KAAM,KAAM,MAC9BlW,EAAMzoB,KAAK09B,QACf,IAAKr8B,EAAIqJ,EAAKrJ,GAAK,EAAGA,IAAK,CAGzB,IAFA,IAAI0P,EAAI,EAED1P,GAAK,GAAG,CACb,IAAI87B,GAAO,EACX,IAAKt2B,EAAI,EAAGA,EAAInG,EAAKmG,IACnB4hB,EAAI5hB,GAAiB,EAAZ+J,EAAI/J,GAAGxF,GACD,IAAXonB,EAAI5hB,KACNs2B,GAAO,GAEX,IAAKA,EACH,MACFpsB,IACA1P,IAKF,GAHIA,GAAK,GACP0P,IACF8T,EAAMA,EAAIqa,KAAKnuB,GACX1P,EAAI,EACN,MAEF,IAAKwF,EAAI,EAAGA,EAAInG,EAAKmG,IAAK,CACxB,IAAIoK,EAAIwX,EAAI5hB,GAEF,IAANoK,IAEKA,EAAI,EACX4B,EAAIuX,EAAIvjB,GAAIoK,EAAI,GAAM,GACfA,EAAI,IACX4B,EAAIuX,EAAIvjB,IAAKoK,EAAI,GAAM,GAAG+H,OAG1B6L,EADa,WAAXhS,EAAErO,KACEqgB,EAAI+Z,SAAS/rB,GAEbgS,EAAIzK,IAAIvH,KAIpB,IAAKxR,EAAI,EAAGA,EAAIX,EAAKW,IACnB+oB,EAAI/oB,GAAK,KAEX,OAAIi+B,EACKza,EAEAA,EAAIia,OAQf7B,EAAUc,UAAYA,EAEtBA,EAAUvgC,UAAUipB,GAAK,WACvB,MAAM,IAAIhnB,MAAM,oBAGlBs+B,EAAUvgC,UAAU2gC,SAAW,WAC7B,OAAOn+B,KAAKg+B,MAAMG,SAASn+B,OAG7Bi9B,EAAUz/B,UAAUoiC,YAAc,SAAqBn0B,EAAOmH,GAC5DnH,EAAQwE,EAAMI,QAAQ5E,EAAOmH,GAE7B,IAAIlS,EAAMV,KAAK6S,EAAEnP,aAGjB,IAAkB,IAAb+H,EAAM,IAA4B,IAAbA,EAAM,IAA4B,IAAbA,EAAM,KACjDA,EAAMhN,OAAS,IAAM,EAAIiC,EAS3B,OARiB,IAAb+K,EAAM,GACRmE,EAAOnE,EAAMA,EAAMhN,OAAS,GAAK,IAAM,GACnB,IAAbgN,EAAM,IACbmE,EAAOnE,EAAMA,EAAMhN,OAAS,GAAK,IAAM,GAE9BuB,KAAKk+B,MAAMzyB,EAAMxH,MAAM,EAAG,EAAIvD,GACvC+K,EAAMxH,MAAM,EAAIvD,EAAK,EAAI,EAAIA,IAG1B,IAAkB,IAAb+K,EAAM,IAA4B,IAAbA,EAAM,KAC3BA,EAAMhN,OAAS,IAAMiC,EAC/B,OAAOV,KAAK6/B,WAAWp0B,EAAMxH,MAAM,EAAG,EAAIvD,GAAmB,IAAb+K,EAAM,IAExD,MAAM,IAAIhM,MAAM,yBAGlBs+B,EAAUvgC,UAAUsiC,iBAAmB,SAA0BltB,GAC/D,OAAO5S,KAAKuQ,OAAOqC,GAAK,IAG1BmrB,EAAUvgC,UAAUuiC,QAAU,SAAiBC,GAC7C,IAAIt/B,EAAMV,KAAKg+B,MAAMnrB,EAAEnP,aACnBuG,EAAIjK,KAAKigC,OAAO5vB,QAAQ,KAAM3P,GAElC,OAAIs/B,EACK,CAAEhgC,KAAKkgC,OAAO/a,SAAW,EAAO,GAAO5kB,OAAO0J,GAEhD,CAAE,GAAO1J,OAAO0J,EAAGjK,KAAKkgC,OAAO7vB,QAAQ,KAAM3P,KAGtDq9B,EAAUvgC,UAAU+S,OAAS,SAAgBqC,EAAKotB,GAChD,OAAO/vB,EAAMM,OAAOvQ,KAAK+/B,QAAQC,GAAUptB,IAG7CmrB,EAAUvgC,UAAU2iC,WAAa,SAAoBC,GACnD,GAAIpgC,KAAKi+B,YACP,OAAOj+B,KAET,IAAIi+B,EAAc,CAChBI,QAAS,KACTztB,IAAK,KACLyvB,KAAM,MAOR,OALApC,EAAYrtB,IAAM5Q,KAAKi/B,cAAc,GACrChB,EAAYI,QAAUr+B,KAAKs+B,YAAY,EAAG8B,GAC1CnC,EAAYoC,KAAOrgC,KAAKsgC,WACxBtgC,KAAKi+B,YAAcA,EAEZj+B,MAGT+9B,EAAUvgC,UAAU+iC,YAAc,SAAqBxvB,GACrD,IAAK/Q,KAAKi+B,YACR,OAAO,EAET,IAAII,EAAUr+B,KAAKi+B,YAAYI,QAC/B,QAAKA,GAGEA,EAAQQ,OAAOpgC,QAAU6J,KAAK6N,MAAMpF,EAAEF,YAAc,GAAKwtB,EAAQG,OAG1ET,EAAUvgC,UAAU8gC,YAAc,SAAqBE,EAAM4B,GAC3D,GAAIpgC,KAAKi+B,aAAej+B,KAAKi+B,YAAYI,QACvC,OAAOr+B,KAAKi+B,YAAYI,QAI1B,IAFA,IAAIA,EAAU,CAAEr+B,MACZ6kB,EAAM7kB,KACDqB,EAAI,EAAGA,EAAI++B,EAAO/+B,GAAKm9B,EAAM,CACpC,IAAK,IAAI33B,EAAI,EAAGA,EAAI23B,EAAM33B,IACxBge,EAAMA,EAAI2b,MACZnC,EAAQ/8B,KAAKujB,GAEf,MAAO,CACL2Z,KAAMA,EACNK,OAAQR,IAIZN,EAAUvgC,UAAUyhC,cAAgB,SAAuB7U,GACzD,GAAIpqB,KAAKi+B,aAAej+B,KAAKi+B,YAAYrtB,IACvC,OAAO5Q,KAAKi+B,YAAYrtB,IAK1B,IAHA,IAAIpI,EAAM,CAAExI,MACR0K,GAAO,GAAK0f,GAAO,EACnBoW,EAAc,IAAR91B,EAAY,KAAO1K,KAAKwgC,MACzBn/B,EAAI,EAAGA,EAAIqJ,EAAKrJ,IACvBmH,EAAInH,GAAKmH,EAAInH,EAAI,GAAG+Y,IAAIomB,GAC1B,MAAO,CACLpW,IAAKA,EACLyU,OAAQr2B,IAIZu1B,EAAUvgC,UAAU8iC,SAAW,WAC7B,OAAO,MAGTvC,EAAUvgC,UAAU0hC,KAAO,SAAcnuB,GAEvC,IADA,IAAIf,EAAIhQ,KACCqB,EAAI,EAAGA,EAAI0P,EAAG1P,IACrB2O,EAAIA,EAAEwwB,MACR,OAAOxwB,I,gBC3XT,IAAIywB,EAAOziC,EAAQ,KACf0iC,EAAQ1iC,EAAQ,KAChB2iC,EAAU3iC,EAAQ,KAClB4iC,EAAU5iC,EAAQ,IAClB6iC,EAAS7iC,EAAQ,IACjBC,EAASD,EAAQ,GAAeC,OAGpC,SAAS6iC,EAAW/iC,GAClB,IAAIy+B,EACkB,kBAAXz+B,GAAwBE,EAAOmG,SAASrG,KACjDy+B,EAAWz+B,EAAOgjC,WAClBhjC,EAASA,EAAOM,KAEI,kBAAXN,IACTA,EAASE,EAAOS,KAAKX,IAGvB,IAIIijC,EAASC,EAJTC,EAAWP,EAAQ5iC,EAAQy+B,GAE3Bh4B,EAAO08B,EAASC,IAChB18B,EAAOy8B,EAASz8B,KAEpB,OAAQD,GACN,IAAK,cACHy8B,EAAQR,EAAKW,YAAYC,OAAO58B,EAAM,OAAO68B,eAAeC,qBAE9D,IAAK,aAKH,OAJKN,IACHA,EAAQR,EAAKe,UAAUH,OAAO58B,EAAM,QAEtCu8B,EAAUC,EAAMQ,UAAUA,UAAU72B,KAAK,MAEvC,IAAK,uBACH,OAAO61B,EAAKiB,aAAaL,OAAOJ,EAAMU,iBAAiBl9B,KAAM,OAC/D,IAAK,oBAEH,OADAw8B,EAAMW,kBAAoBX,EAAMU,iBACzB,CACLn9B,KAAM,KACNC,KAAMw8B,GAEV,IAAK,oBAEH,OADAA,EAAMQ,UAAUI,OAAOC,QAAUrB,EAAKsB,SAASV,OAAOJ,EAAMU,iBAAiBl9B,KAAM,OAC5E,CACLD,KAAM,MACNC,KAAMw8B,EAAMQ,UAAUI,QAE1B,QAAS,MAAM,IAAIpiC,MAAM,kBAAoBuhC,GAGjD,IAAK,wBAEHv8B,EAyCN,SAAkBA,EAAM+3B,GACtB,IAAIC,EAAOh4B,EAAKg9B,UAAUO,QAAQC,IAAIC,UAAUzF,KAC5C0F,EAAQ/6B,SAAS3C,EAAKg9B,UAAUO,QAAQC,IAAIC,UAAUC,MAAMv9B,WAAY,IACxEw9B,EAAO1B,EAAMj8B,EAAKg9B,UAAUO,QAAQK,OAAOD,KAAKx3B,KAAK,MACrDiyB,EAAKp4B,EAAKg9B,UAAUO,QAAQK,OAAOxF,GACnCyF,EAAa79B,EAAKm9B,kBAClBW,EAASn7B,SAASg7B,EAAK7Y,MAAM,KAAK,GAAI,IAAM,EAC5ClrB,EAAMwiC,EAAO2B,WAAWhG,EAAUC,EAAM0F,EAAOI,EAAQ,QACvDF,EAASzB,EAAQ6B,iBAAiBL,EAAM/jC,EAAKw+B,GAC7CtxB,EAAM,GAGV,OAFAA,EAAIjK,KAAK+gC,EAAO7W,OAAO8W,IACvB/2B,EAAIjK,KAAK+gC,EAAOlX,SACTltB,EAAOsC,OAAOgL,GArDVy2B,CADPv9B,EAAOg8B,EAAKiC,oBAAoBrB,OAAO58B,EAAM,OACxB+3B,GAEvB,IAAK,cAGH,OADAwE,GADAC,EAAQR,EAAKkC,WAAWtB,OAAO58B,EAAM,QACrBg9B,UAAUA,UAAU72B,KAAK,MAEvC,IAAK,uBACH,OAAO61B,EAAKmC,cAAcvB,OAAOJ,EAAMW,kBAAmB,OAC5D,IAAK,oBACH,MAAO,CACL5D,MAAOiD,EAAMQ,UAAUzD,MACvB6E,WAAYpC,EAAKqC,aAAazB,OAAOJ,EAAMW,kBAAmB,OAAOiB,YAEzE,IAAK,oBAEH,OADA5B,EAAMQ,UAAUI,OAAOkB,SAAWtC,EAAKsB,SAASV,OAAOJ,EAAMW,kBAAmB,OACzE,CACLp9B,KAAM,MACNq9B,OAAQZ,EAAMQ,UAAUI,QAE5B,QAAS,MAAM,IAAIpiC,MAAM,kBAAoBuhC,GAGjD,IAAK,iBACH,OAAOP,EAAKiB,aAAaL,OAAO58B,EAAM,OACxC,IAAK,kBACH,OAAOg8B,EAAKmC,cAAcvB,OAAO58B,EAAM,OACzC,IAAK,kBACH,MAAO,CACLD,KAAM,MACNq9B,OAAQpB,EAAKuC,cAAc3B,OAAO58B,EAAM,QAE5C,IAAK,iBAEH,MAAO,CACLu5B,OAFFv5B,EAAOg8B,EAAKqC,aAAazB,OAAO58B,EAAM,QAExBw+B,WAAWvlC,MACvBmlC,WAAYp+B,EAAKo+B,YAErB,QAAS,MAAM,IAAIpjC,MAAM,oBAAsB+E,IAnFnDrH,EAAOC,QAAU0jC,EAsFjBA,EAAUoC,UAAYzC,EAAKyC,W,6BCpF3B,IAAIrW,EAAwB5vB,OAAO4vB,sBAC/BsW,EAAiBlmC,OAAOO,UAAU2lC,eAClCC,EAAmBnmC,OAAOO,UAAU6lC,qBAExC,SAASC,EAAS/+B,GACjB,GAAY,OAARA,QAAwBpF,IAARoF,EACnB,MAAM,IAAIzF,UAAU,yDAGrB,OAAO7B,OAAOsH,GA+CfpH,EAAOC,QA5CP,WACC,IACC,IAAKH,OAAOsmC,OACX,OAAO,EAMR,IAAIC,EAAQ,IAAIh9B,OAAO,OAEvB,GADAg9B,EAAM,GAAK,KACkC,MAAzCvmC,OAAO6vB,oBAAoB0W,GAAO,GACrC,OAAO,EAKR,IADA,IAAIC,EAAQ,GACHpiC,EAAI,EAAGA,EAAI,GAAIA,IACvBoiC,EAAM,IAAMj9B,OAAO0C,aAAa7H,IAAMA,EAKvC,GAAwB,eAHXpE,OAAO6vB,oBAAoB2W,GAAO/O,KAAI,SAAU7uB,GAC5D,OAAO49B,EAAM59B,MAEH+E,KAAK,IACf,OAAO,EAIR,IAAI84B,EAAQ,GAIZ,MAHA,uBAAuBna,MAAM,IAAIqP,SAAQ,SAAU+K,GAClDD,EAAMC,GAAUA,KAGf,yBADE1mC,OAAOyzB,KAAKzzB,OAAOsmC,OAAO,GAAIG,IAAQ94B,KAAK,IAM9C,MAAOuhB,GAER,OAAO,GAIQyX,GAAoB3mC,OAAOsmC,OAAS,SAAU14B,EAAQg5B,GAKtE,IAJA,IAAInlC,EAEAolC,EADAC,EAAKT,EAASz4B,GAGT4V,EAAI,EAAGA,EAAIrf,UAAU3C,OAAQgiB,IAAK,CAG1C,IAAK,IAAIpiB,KAFTK,EAAOzB,OAAOmE,UAAUqf,IAGnB0iB,EAAepjC,KAAKrB,EAAML,KAC7B0lC,EAAG1lC,GAAOK,EAAKL,IAIjB,GAAIwuB,EAAuB,CAC1BiX,EAAUjX,EAAsBnuB,GAChC,IAAK,IAAI2C,EAAI,EAAGA,EAAIyiC,EAAQrlC,OAAQ4C,IAC/B+hC,EAAiBrjC,KAAKrB,EAAMolC,EAAQziC,MACvC0iC,EAAGD,EAAQziC,IAAM3C,EAAKolC,EAAQziC,MAMlC,OAAO0iC,I,iBCxFR,YA4BA,SAASC,EAAeC,EAAOC,GAG7B,IADA,IAAIC,EAAK,EACA9iC,EAAI4iC,EAAMxlC,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAC1C,IAAI+iC,EAAOH,EAAM5iC,GACJ,MAAT+iC,EACFH,EAAMI,OAAOhjC,EAAG,GACE,OAAT+iC,GACTH,EAAMI,OAAOhjC,EAAG,GAChB8iC,KACSA,IACTF,EAAMI,OAAOhjC,EAAG,GAChB8iC,KAKJ,GAAID,EACF,KAAOC,IAAMA,EACXF,EAAMxV,QAAQ,MAIlB,OAAOwV,EA0OT,SAASK,EAAQC,EAAIC,GACjB,GAAID,EAAGD,OAAQ,OAAOC,EAAGD,OAAOE,GAEhC,IADA,IAAIh8B,EAAM,GACDnH,EAAI,EAAGA,EAAIkjC,EAAG9lC,OAAQ4C,IACvBmjC,EAAED,EAAGljC,GAAIA,EAAGkjC,IAAK/7B,EAAIlH,KAAKijC,EAAGljC,IAErC,OAAOmH,EA3OXpL,EAAQgwB,QAAU,WAIhB,IAHA,IAAIqX,EAAe,GACfC,GAAmB,EAEdrjC,EAAID,UAAU3C,OAAS,EAAG4C,IAAM,IAAMqjC,EAAkBrjC,IAAK,CACpE,IAAIsjC,EAAQtjC,GAAK,EAAKD,UAAUC,GAAK9B,EAAQmD,MAG7C,GAAoB,kBAATiiC,EACT,MAAM,IAAI7lC,UAAU,6CACV6lC,IAIZF,EAAeE,EAAO,IAAMF,EAC5BC,EAAsC,MAAnBC,EAAKC,OAAO,IAWjC,OAASF,EAAmB,IAAM,KAJlCD,EAAeT,EAAeM,EAAOG,EAAalb,MAAM,MAAM,SAAS1W,GACrE,QAASA,MACN6xB,GAAkB95B,KAAK,OAE6B,KAK3DxN,EAAQynC,UAAY,SAASF,GAC3B,IAAIG,EAAa1nC,EAAQ0nC,WAAWH,GAChCI,EAAqC,MAArB19B,EAAOs9B,GAAO,GAclC,OAXAA,EAAOX,EAAeM,EAAOK,EAAKpb,MAAM,MAAM,SAAS1W,GACrD,QAASA,MACNiyB,GAAYl6B,KAAK,OAERk6B,IACZH,EAAO,KAELA,GAAQI,IACVJ,GAAQ,MAGFG,EAAa,IAAM,IAAMH,GAInCvnC,EAAQ0nC,WAAa,SAASH,GAC5B,MAA0B,MAAnBA,EAAKC,OAAO,IAIrBxnC,EAAQwN,KAAO,WACb,IAAI+f,EAAQxpB,MAAM3D,UAAUyG,MAAMlE,KAAKqB,UAAW,GAClD,OAAOhE,EAAQynC,UAAUP,EAAO3Z,GAAO,SAAS9X,EAAG2C,GACjD,GAAiB,kBAAN3C,EACT,MAAM,IAAI/T,UAAU,0CAEtB,OAAO+T,KACNjI,KAAK,OAMVxN,EAAQ4nC,SAAW,SAAStmC,EAAMqlC,GAIhC,SAAS10B,EAAKjJ,GAEZ,IADA,IAAIjB,EAAQ,EACLA,EAAQiB,EAAI3H,QACE,KAAf2H,EAAIjB,GADiBA,KAK3B,IADA,IAAIC,EAAMgB,EAAI3H,OAAS,EAChB2G,GAAO,GACK,KAAbgB,EAAIhB,GADOA,KAIjB,OAAID,EAAQC,EAAY,GACjBgB,EAAInC,MAAMkB,EAAOC,EAAMD,EAAQ,GAfxCzG,EAAOtB,EAAQgwB,QAAQ1uB,GAAM2I,OAAO,GACpC08B,EAAK3mC,EAAQgwB,QAAQ2W,GAAI18B,OAAO,GAsBhC,IALA,IAAI49B,EAAY51B,EAAK3Q,EAAK6qB,MAAM,MAC5B2b,EAAU71B,EAAK00B,EAAGxa,MAAM,MAExB9qB,EAAS6J,KAAKC,IAAI08B,EAAUxmC,OAAQymC,EAAQzmC,QAC5C0mC,EAAkB1mC,EACb4C,EAAI,EAAGA,EAAI5C,EAAQ4C,IAC1B,GAAI4jC,EAAU5jC,KAAO6jC,EAAQ7jC,GAAI,CAC/B8jC,EAAkB9jC,EAClB,MAIJ,IAAI+jC,EAAc,GAClB,IAAS/jC,EAAI8jC,EAAiB9jC,EAAI4jC,EAAUxmC,OAAQ4C,IAClD+jC,EAAY9jC,KAAK,MAKnB,OAFA8jC,EAAcA,EAAY7kC,OAAO2kC,EAAQjhC,MAAMkhC,KAE5Bv6B,KAAK,MAG1BxN,EAAQioC,IAAM,IACdjoC,EAAQkoC,UAAY,IAEpBloC,EAAQmoC,QAAU,SAAUZ,GAE1B,GADoB,kBAATA,IAAmBA,GAAc,IACxB,IAAhBA,EAAKlmC,OAAc,MAAO,IAK9B,IAJA,IAAIuQ,EAAO21B,EAAKh9B,WAAW,GACvB69B,EAAmB,KAATx2B,EACV5J,GAAO,EACPqgC,GAAe,EACVpkC,EAAIsjC,EAAKlmC,OAAS,EAAG4C,GAAK,IAAKA,EAEtC,GAAa,MADb2N,EAAO21B,EAAKh9B,WAAWtG,KAEnB,IAAKokC,EAAc,CACjBrgC,EAAM/D,EACN,YAIJokC,GAAe,EAInB,OAAa,IAATrgC,EAAmBogC,EAAU,IAAM,IACnCA,GAAmB,IAARpgC,EAGN,IAEFu/B,EAAK1gC,MAAM,EAAGmB,IAiCvBhI,EAAQsoC,SAAW,SAAUf,EAAMh5B,GACjC,IAAI64B,EA/BN,SAAkBG,GACI,kBAATA,IAAmBA,GAAc,IAE5C,IAGItjC,EAHA8D,EAAQ,EACRC,GAAO,EACPqgC,GAAe,EAGnB,IAAKpkC,EAAIsjC,EAAKlmC,OAAS,EAAG4C,GAAK,IAAKA,EAClC,GAA2B,KAAvBsjC,EAAKh9B,WAAWtG,IAGhB,IAAKokC,EAAc,CACjBtgC,EAAQ9D,EAAI,EACZ,YAEgB,IAAT+D,IAGXqgC,GAAe,EACfrgC,EAAM/D,EAAI,GAId,OAAa,IAAT+D,EAAmB,GAChBu/B,EAAK1gC,MAAMkB,EAAOC,GAMjBsgC,CAASf,GAIjB,OAHIh5B,GAAO64B,EAAEn9B,QAAQ,EAAIsE,EAAIlN,UAAYkN,IACvC64B,EAAIA,EAAEn9B,OAAO,EAAGm9B,EAAE/lC,OAASkN,EAAIlN,SAE1B+lC,GAGTpnC,EAAQuoC,QAAU,SAAUhB,GACN,kBAATA,IAAmBA,GAAc,IAQ5C,IAPA,IAAIiB,GAAY,EACZC,EAAY,EACZzgC,GAAO,EACPqgC,GAAe,EAGfK,EAAc,EACTzkC,EAAIsjC,EAAKlmC,OAAS,EAAG4C,GAAK,IAAKA,EAAG,CACzC,IAAI2N,EAAO21B,EAAKh9B,WAAWtG,GAC3B,GAAa,KAAT2N,GASS,IAAT5J,IAGFqgC,GAAe,EACfrgC,EAAM/D,EAAI,GAEC,KAAT2N,GAEkB,IAAd42B,EACFA,EAAWvkC,EACY,IAAhBykC,IACPA,EAAc,IACK,IAAdF,IAGTE,GAAe,QArBb,IAAKL,EAAc,CACjBI,EAAYxkC,EAAI,EAChB,OAuBR,OAAkB,IAAdukC,IAA4B,IAATxgC,GAEH,IAAhB0gC,GAEgB,IAAhBA,GAAqBF,IAAaxgC,EAAM,GAAKwgC,IAAaC,EAAY,EACjE,GAEFlB,EAAK1gC,MAAM2hC,EAAUxgC,IAa9B,IAAIiC,EAA6B,MAApB,KAAKA,QAAQ,GACpB,SAAUI,EAAKtC,EAAOzE,GAAO,OAAO+G,EAAIJ,OAAOlC,EAAOzE,IACtD,SAAU+G,EAAKtC,EAAOzE,GAEpB,OADIyE,EAAQ,IAAGA,EAAQsC,EAAIhJ,OAAS0G,GAC7BsC,EAAIJ,OAAOlC,EAAOzE,M,8CC1SjC,IAAI6R,EAAWvU,EAAQ,GACnB+nC,EAAW/nC,EAAQ,IACnBC,EAASD,EAAQ,GAAeC,OAEhC+nC,EAAU,IAAI7kC,MAAM,IAExB,SAAS+0B,IACP6P,EAAShmC,KAAKC,KAAM,IAGpBA,KAAKimC,GAAK,WACVjmC,KAAKkmC,GAAK,WACVlmC,KAAKmmC,GAAK,WACVnmC,KAAKq5B,GAAK,UA+GZ,SAAS+M,EAAMn8B,EAAGpE,GAChB,OAAQoE,GAAKpE,EAAMoE,IAAO,GAAKpE,EAGjC,SAASwgC,EAAKr8B,EAAGpE,EAAGqC,EAAGsL,EAAGzN,EAAGiL,EAAG0P,GAC9B,OAAQ2lB,EAAMp8B,GAAMpE,EAAIqC,GAAQrC,EAAK2N,GAAMzN,EAAIiL,EAAK,EAAG0P,GAAK7a,EAAK,EAGnE,SAAS0gC,EAAKt8B,EAAGpE,EAAGqC,EAAGsL,EAAGzN,EAAGiL,EAAG0P,GAC9B,OAAQ2lB,EAAMp8B,GAAMpE,EAAI2N,EAAMtL,GAAMsL,GAAOzN,EAAIiL,EAAK,EAAG0P,GAAK7a,EAAK,EAGnE,SAAS2gC,EAAKv8B,EAAGpE,EAAGqC,EAAGsL,EAAGzN,EAAGiL,EAAG0P,GAC9B,OAAQ2lB,EAAMp8B,GAAKpE,EAAIqC,EAAIsL,GAAKzN,EAAIiL,EAAK,EAAG0P,GAAK7a,EAAK,EAGxD,SAAS4gC,EAAKx8B,EAAGpE,EAAGqC,EAAGsL,EAAGzN,EAAGiL,EAAG0P,GAC9B,OAAQ2lB,EAAMp8B,GAAM/B,GAAKrC,GAAM2N,IAAQzN,EAAIiL,EAAK,EAAG0P,GAAK7a,EAAK,EA7H/D2M,EAAS2jB,EAAK6P,GAEd7P,EAAI14B,UAAUouB,QAAU,WAEtB,IADA,IAAIgO,EAAIoM,EACC3kC,EAAI,EAAGA,EAAI,KAAMA,EAAGu4B,EAAEv4B,GAAKrB,KAAKo1B,OAAOjoB,YAAgB,EAAJ9L,GAE5D,IAAI2I,EAAIhK,KAAKimC,GACTrgC,EAAI5F,KAAKkmC,GACTj+B,EAAIjI,KAAKmmC,GACT5yB,EAAIvT,KAAKq5B,GAEbrvB,EAAIq8B,EAAIr8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAI8yB,EAAI9yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIo+B,EAAIp+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,UAAY,IACtCh0B,EAAIygC,EAAIzgC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIq8B,EAAIr8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAI8yB,EAAI9yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIo+B,EAAIp+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,WAAY,IACtCh0B,EAAIygC,EAAIzgC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIq8B,EAAIr8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAI8yB,EAAI9yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIo+B,EAAIp+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,WAAY,IACvCh0B,EAAIygC,EAAIzgC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,IAAK,WAAY,IACvC5vB,EAAIq8B,EAAIr8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,IAAK,WAAY,GACvCrmB,EAAI8yB,EAAI9yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,IAAK,WAAY,IACvC3xB,EAAIo+B,EAAIp+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,WAAY,IAGvC5vB,EAAIs8B,EAAIt8B,EAFRpE,EAAIygC,EAAIzgC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,IAAK,WAAY,IAEzB3xB,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAI+yB,EAAI/yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,GACtC3xB,EAAIq+B,EAAIr+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,UAAY,IACvCh0B,EAAI0gC,EAAI1gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIs8B,EAAIt8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAI+yB,EAAI/yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,IAAK,SAAY,GACvC3xB,EAAIq+B,EAAIr+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,WAAY,IACvCh0B,EAAI0gC,EAAI1gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIs8B,EAAIt8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,UAAY,GACtCrmB,EAAI+yB,EAAI/yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,IAAK,WAAY,GACvC3xB,EAAIq+B,EAAIr+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,WAAY,IACtCh0B,EAAI0gC,EAAI1gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIs8B,EAAIt8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,IAAK,WAAY,GACvCrmB,EAAI+yB,EAAI/yB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,GACtC3xB,EAAIq+B,EAAIr+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,WAAY,IAGtC5vB,EAAIu8B,EAAIv8B,EAFRpE,EAAI0gC,EAAI1gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,IAAK,WAAY,IAEzB3xB,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAIgzB,EAAIhzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIs+B,EAAIt+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,WAAY,IACvCh0B,EAAI2gC,EAAI3gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,IAAK,WAAY,IACvC5vB,EAAIu8B,EAAIv8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAIgzB,EAAIhzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIs+B,EAAIt+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,WAAY,IACtCh0B,EAAI2gC,EAAI3gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,IAAK,WAAY,IACvC5vB,EAAIu8B,EAAIv8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,IAAK,UAAY,GACvCrmB,EAAIgzB,EAAIhzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIs+B,EAAIt+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,WAAY,IACtCh0B,EAAI2gC,EAAI3gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,SAAY,IACtC5vB,EAAIu8B,EAAIv8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAIgzB,EAAIhzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,IAAK,WAAY,IACvC3xB,EAAIs+B,EAAIt+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,UAAY,IAGvC5vB,EAAIw8B,EAAIx8B,EAFRpE,EAAI2gC,EAAI3gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IAExB3xB,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAIizB,EAAIjzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIu+B,EAAIv+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,WAAY,IACvCh0B,EAAI4gC,EAAI5gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIw8B,EAAIx8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,IAAK,WAAY,GACvCrmB,EAAIizB,EAAIjzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,GAAI,WAAY,IACtC3xB,EAAIu+B,EAAIv+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,IAAK,WAAY,IACvCh0B,EAAI4gC,EAAI5gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IACtC5vB,EAAIw8B,EAAIx8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAIizB,EAAIjzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,IAAK,WAAY,IACvC3xB,EAAIu+B,EAAIv+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,WAAY,IACtCh0B,EAAI4gC,EAAI5gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,IAAK,WAAY,IACvC5vB,EAAIw8B,EAAIx8B,EAAGpE,EAAGqC,EAAGsL,EAAGqmB,EAAE,GAAI,WAAY,GACtCrmB,EAAIizB,EAAIjzB,EAAGvJ,EAAGpE,EAAGqC,EAAG2xB,EAAE,IAAK,WAAY,IACvC3xB,EAAIu+B,EAAIv+B,EAAGsL,EAAGvJ,EAAGpE,EAAGg0B,EAAE,GAAI,UAAY,IACtCh0B,EAAI4gC,EAAI5gC,EAAGqC,EAAGsL,EAAGvJ,EAAG4vB,EAAE,GAAI,WAAY,IAEtC55B,KAAKimC,GAAMjmC,KAAKimC,GAAKj8B,EAAK,EAC1BhK,KAAKkmC,GAAMlmC,KAAKkmC,GAAKtgC,EAAK,EAC1B5F,KAAKmmC,GAAMnmC,KAAKmmC,GAAKl+B,EAAK,EAC1BjI,KAAKq5B,GAAMr5B,KAAKq5B,GAAK9lB,EAAK,GAG5B2iB,EAAI14B,UAAUq6B,QAAU,WAEtB73B,KAAKo1B,OAAOp1B,KAAKymC,gBAAkB,IAC/BzmC,KAAKymC,aAAe,KACtBzmC,KAAKo1B,OAAOp2B,KAAK,EAAGgB,KAAKymC,aAAc,IACvCzmC,KAAK4rB,UACL5rB,KAAKymC,aAAe,GAGtBzmC,KAAKo1B,OAAOp2B,KAAK,EAAGgB,KAAKymC,aAAc,IACvCzmC,KAAKo1B,OAAOrnB,cAAc/N,KAAK0mC,QAAQ,GAAI,IAC3C1mC,KAAKo1B,OAAOrnB,cAAc/N,KAAK0mC,QAAQ,GAAI,IAC3C1mC,KAAK4rB,UAGL,IAAI7tB,EAASE,EAAOW,YAAY,IAKhC,OAJAb,EAAOyQ,aAAaxO,KAAKimC,GAAI,GAC7BloC,EAAOyQ,aAAaxO,KAAKkmC,GAAI,GAC7BnoC,EAAOyQ,aAAaxO,KAAKmmC,GAAI,GAC7BpoC,EAAOyQ,aAAaxO,KAAKq5B,GAAI,IACtBt7B,GAuBTZ,EAAOC,QAAU84B,G,iBChJjB,YAuDA,SAASyQ,EAAQnkC,GAEf,IACE,IAAK6G,EAAOu9B,aAAc,OAAO,EACjC,MAAO9kB,GACP,OAAO,EAET,IAAIvd,EAAM8E,EAAOu9B,aAAapkC,GAC9B,OAAI,MAAQ+B,GACyB,SAA9BiC,OAAOjC,GAAKU,cA5DrB9H,EAAOC,QAoBP,SAAoBo8B,EAAI3pB,GACtB,GAAI82B,EAAO,iBACT,OAAOnN,EAGT,IAAI9K,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAIiY,EAAO,oBACT,MAAM,IAAIlnC,MAAMoQ,GACP82B,EAAO,oBAChB/X,QAAQiY,MAAMh3B,GAEd+e,QAAQC,KAAKhf,GAEf6e,GAAS,EAEX,OAAO8K,EAAGj4B,MAAMvB,KAAMoB,e,8CCtC1B,IAAI0lC,EAA6B9oC,EAAQ,IAAmB41B,MAAMkT,2BAgBlE,SAAS9lC,KAmFT7D,EAAOC,QA7EP,SAAS2pC,EAAIC,EAAQC,EAAMC,GACzB,GAAoB,oBAATD,EAAqB,OAAOF,EAAIC,EAAQ,KAAMC,GACpDA,IAAMA,EAAO,IAClBC,EAvBF,SAAcA,GACZ,IAAIC,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EAET,IAAK,IAAI5R,EAAOn0B,UAAU3C,OAAQyC,EAAO,IAAIC,MAAMo0B,GAAOgG,EAAO,EAAGA,EAAOhG,EAAMgG,IAC/Er6B,EAAKq6B,GAAQn6B,UAAUm6B,GAGzB2L,EAAS3lC,MAAMvB,KAAMkB,KAaZc,CAAKklC,GAAYlmC,GAC5B,IAAI2xB,EAAWsU,EAAKtU,WAA8B,IAAlBsU,EAAKtU,UAAsBqU,EAAOrU,SAC9D/0B,EAAWqpC,EAAKrpC,WAA8B,IAAlBqpC,EAAKrpC,UAAsBopC,EAAOppC,SAE9DwpC,EAAiB,WACdJ,EAAOppC,UAAUypC,KAGpBC,EAAgBN,EAAOlU,gBAAkBkU,EAAOlU,eAAeyU,SAE/DF,EAAW,WACbzpC,GAAW,EACX0pC,GAAgB,EACX3U,GAAUuU,EAASnnC,KAAKinC,IAG3BQ,EAAgBR,EAAO9T,gBAAkB8T,EAAO9T,eAAeuU,WAE/D5U,EAAQ,WACVF,GAAW,EACX6U,GAAgB,EACX5pC,GAAUspC,EAASnnC,KAAKinC,IAG3BU,EAAU,SAAiBvb,GAC7B+a,EAASnnC,KAAKinC,EAAQ7a,IAGpBwb,EAAU,WACZ,IAAIxb,EAEJ,OAAIwG,IAAa6U,GACVR,EAAO9T,gBAAmB8T,EAAO9T,eAAeH,QAAO5G,EAAM,IAAI2a,GAC/DI,EAASnnC,KAAKinC,EAAQ7a,IAG3BvuB,IAAa0pC,GACVN,EAAOlU,gBAAmBkU,EAAOlU,eAAeC,QAAO5G,EAAM,IAAI2a,GAC/DI,EAASnnC,KAAKinC,EAAQ7a,SAF/B,GAMEyb,EAAY,WACdZ,EAAOa,IAAI/lC,GAAG,SAAUulC,IAiB1B,OAnEF,SAAmBL,GACjB,OAAOA,EAAOc,WAAqC,oBAAjBd,EAAOe,MAoDrCC,CAAUhB,GAIHppC,IAAaopC,EAAOlU,iBAE7BkU,EAAOllC,GAAG,MAAOslC,GACjBJ,EAAOllC,GAAG,QAASslC,KANnBJ,EAAOllC,GAAG,WAAYulC,GACtBL,EAAOllC,GAAG,QAAS6lC,GACfX,EAAOa,IAAKD,IAAiBZ,EAAOllC,GAAG,UAAW8lC,IAOxDZ,EAAOllC,GAAG,MAAO+wB,GACjBmU,EAAOllC,GAAG,SAAUulC,IACD,IAAfJ,EAAK/W,OAAiB8W,EAAOllC,GAAG,QAAS4lC,GAC7CV,EAAOllC,GAAG,QAAS6lC,GACZ,WACLX,EAAO9kC,eAAe,WAAYmlC,GAClCL,EAAO9kC,eAAe,QAASylC,GAC/BX,EAAO9kC,eAAe,UAAW0lC,GAC7BZ,EAAOa,KAAKb,EAAOa,IAAI3lC,eAAe,SAAUmlC,GACpDL,EAAO9kC,eAAe,MAAOklC,GAC7BJ,EAAO9kC,eAAe,QAASklC,GAC/BJ,EAAO9kC,eAAe,SAAUmlC,GAChCL,EAAO9kC,eAAe,MAAO2wB,GAC7BmU,EAAO9kC,eAAe,QAASwlC,GAC/BV,EAAO9kC,eAAe,QAASylC,M,6BClGnC,IAAI1pC,EAASD,EAAQ,GAAUC,OAC3BsU,EAAWvU,EAAQ,GACnB+nC,EAAW/nC,EAAQ,IAEnBgoC,EAAU,IAAI7kC,MAAM,IAEpB8mC,EAAK,CACP,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhDC,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDC,EAAK,CACP,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAGnDC,EAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,IAGlDC,EAAK,CAAC,EAAY,WAAY,WAAY,WAAY,YACtDC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,GAE1D,SAASnS,IACP4P,EAAShmC,KAAKC,KAAM,IAGpBA,KAAKimC,GAAK,WACVjmC,KAAKkmC,GAAK,WACVlmC,KAAKmmC,GAAK,WACVnmC,KAAKq5B,GAAK,UACVr5B,KAAKm5B,GAAK,WAwFZ,SAASiN,EAAMn8B,EAAGpE,GAChB,OAAQoE,GAAKpE,EAAMoE,IAAO,GAAKpE,EAGjC,SAAS0iC,EAAKv+B,EAAGpE,EAAGqC,EAAGsL,EAAGzT,EAAGgG,EAAGiL,EAAG0P,GACjC,OAAQ2lB,EAAMp8B,GAAKpE,EAAIqC,EAAIsL,GAAKzN,EAAIiL,EAAK,EAAG0P,GAAK3gB,EAAK,EAGxD,SAAS0oC,EAAKx+B,EAAGpE,EAAGqC,EAAGsL,EAAGzT,EAAGgG,EAAGiL,EAAG0P,GACjC,OAAQ2lB,EAAMp8B,GAAMpE,EAAIqC,GAAQrC,EAAK2N,GAAMzN,EAAIiL,EAAK,EAAG0P,GAAK3gB,EAAK,EAGnE,SAAS2oC,EAAKz+B,EAAGpE,EAAGqC,EAAGsL,EAAGzT,EAAGgG,EAAGiL,EAAG0P,GACjC,OAAQ2lB,EAAMp8B,IAAMpE,GAAMqC,GAAMsL,GAAKzN,EAAIiL,EAAK,EAAG0P,GAAK3gB,EAAK,EAG7D,SAAS4oC,EAAK1+B,EAAGpE,EAAGqC,EAAGsL,EAAGzT,EAAGgG,EAAGiL,EAAG0P,GACjC,OAAQ2lB,EAAMp8B,GAAMpE,EAAI2N,EAAMtL,GAAMsL,GAAOzN,EAAIiL,EAAK,EAAG0P,GAAK3gB,EAAK,EAGnE,SAAS6oC,EAAK3+B,EAAGpE,EAAGqC,EAAGsL,EAAGzT,EAAGgG,EAAGiL,EAAG0P,GACjC,OAAQ2lB,EAAMp8B,GAAKpE,GAAKqC,GAAMsL,IAAOzN,EAAIiL,EAAK,EAAG0P,GAAK3gB,EAAK,EA1G7DyS,EAAS4jB,EAAW4P,GAEpB5P,EAAU34B,UAAUouB,QAAU,WAE5B,IADA,IAAIzW,EAAQ6wB,EACHn/B,EAAI,EAAGA,EAAI,KAAMA,EAAGsO,EAAMtO,GAAK7G,KAAKo1B,OAAOjoB,YAAgB,EAAJtG,GAehE,IAbA,IAAI8M,EAAe,EAAV3T,KAAKimC,GACVnyB,EAAe,EAAV9T,KAAKkmC,GACVhyB,EAAe,EAAVlU,KAAKmmC,GACV/xB,EAAe,EAAVpU,KAAKq5B,GACV5kB,EAAe,EAAVzU,KAAKm5B,GAEVyP,EAAe,EAAV5oC,KAAKimC,GACV4C,EAAe,EAAV7oC,KAAKkmC,GACV4C,EAAe,EAAV9oC,KAAKmmC,GACV4C,EAAe,EAAV/oC,KAAKq5B,GACVlJ,EAAe,EAAVnwB,KAAKm5B,GAGL93B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,IAAI2nC,EACAC,EACA5nC,EAAI,IACN2nC,EAAKT,EAAI50B,EAAIG,EAAII,EAAIE,EAAIK,EAAIU,EAAM8yB,EAAG5mC,IAAKgnC,EAAG,GAAIF,EAAG9mC,IACrD4nC,EAAKN,EAAIC,EAAIC,EAAIC,EAAIC,EAAI5Y,EAAIhb,EAAM+yB,EAAG7mC,IAAKinC,EAAG,GAAIF,EAAG/mC,KAC5CA,EAAI,IACb2nC,EAAKR,EAAI70B,EAAIG,EAAII,EAAIE,EAAIK,EAAIU,EAAM8yB,EAAG5mC,IAAKgnC,EAAG,GAAIF,EAAG9mC,IACrD4nC,EAAKP,EAAIE,EAAIC,EAAIC,EAAIC,EAAI5Y,EAAIhb,EAAM+yB,EAAG7mC,IAAKinC,EAAG,GAAIF,EAAG/mC,KAC5CA,EAAI,IACb2nC,EAAKP,EAAI90B,EAAIG,EAAII,EAAIE,EAAIK,EAAIU,EAAM8yB,EAAG5mC,IAAKgnC,EAAG,GAAIF,EAAG9mC,IACrD4nC,EAAKR,EAAIG,EAAIC,EAAIC,EAAIC,EAAI5Y,EAAIhb,EAAM+yB,EAAG7mC,IAAKinC,EAAG,GAAIF,EAAG/mC,KAC5CA,EAAI,IACb2nC,EAAKN,EAAI/0B,EAAIG,EAAII,EAAIE,EAAIK,EAAIU,EAAM8yB,EAAG5mC,IAAKgnC,EAAG,GAAIF,EAAG9mC,IACrD4nC,EAAKT,EAAII,EAAIC,EAAIC,EAAIC,EAAI5Y,EAAIhb,EAAM+yB,EAAG7mC,IAAKinC,EAAG,GAAIF,EAAG/mC,MAErD2nC,EAAKL,EAAIh1B,EAAIG,EAAII,EAAIE,EAAIK,EAAIU,EAAM8yB,EAAG5mC,IAAKgnC,EAAG,GAAIF,EAAG9mC,IACrD4nC,EAAKV,EAAIK,EAAIC,EAAIC,EAAIC,EAAI5Y,EAAIhb,EAAM+yB,EAAG7mC,IAAKinC,EAAG,GAAIF,EAAG/mC,KAGvDsS,EAAKc,EACLA,EAAKL,EACLA,EAAKgyB,EAAKlyB,EAAI,IACdA,EAAKJ,EACLA,EAAKk1B,EAELJ,EAAKzY,EACLA,EAAK4Y,EACLA,EAAK3C,EAAK0C,EAAI,IACdA,EAAKD,EACLA,EAAKI,EAIP,IAAI9wB,EAAKnY,KAAKkmC,GAAKhyB,EAAK60B,EAAM,EAC9B/oC,KAAKkmC,GAAMlmC,KAAKmmC,GAAK/xB,EAAK+b,EAAM,EAChCnwB,KAAKmmC,GAAMnmC,KAAKq5B,GAAK5kB,EAAKm0B,EAAM,EAChC5oC,KAAKq5B,GAAMr5B,KAAKm5B,GAAKxlB,EAAKk1B,EAAM,EAChC7oC,KAAKm5B,GAAMn5B,KAAKimC,GAAKnyB,EAAKg1B,EAAM,EAChC9oC,KAAKimC,GAAK9tB,GAGZge,EAAU34B,UAAUq6B,QAAU,WAE5B73B,KAAKo1B,OAAOp1B,KAAKymC,gBAAkB,IAC/BzmC,KAAKymC,aAAe,KACtBzmC,KAAKo1B,OAAOp2B,KAAK,EAAGgB,KAAKymC,aAAc,IACvCzmC,KAAK4rB,UACL5rB,KAAKymC,aAAe,GAGtBzmC,KAAKo1B,OAAOp2B,KAAK,EAAGgB,KAAKymC,aAAc,IACvCzmC,KAAKo1B,OAAOrnB,cAAc/N,KAAK0mC,QAAQ,GAAI,IAC3C1mC,KAAKo1B,OAAOrnB,cAAc/N,KAAK0mC,QAAQ,GAAI,IAC3C1mC,KAAK4rB,UAGL,IAAI7tB,EAASE,EAAOU,MAAQV,EAAOU,MAAM,IAAM,IAAIV,EAAO,IAM1D,OALAF,EAAOyQ,aAAaxO,KAAKimC,GAAI,GAC7BloC,EAAOyQ,aAAaxO,KAAKkmC,GAAI,GAC7BnoC,EAAOyQ,aAAaxO,KAAKmmC,GAAI,GAC7BpoC,EAAOyQ,aAAaxO,KAAKq5B,GAAI,IAC7Bt7B,EAAOyQ,aAAaxO,KAAKm5B,GAAI,IACtBp7B,GA2BTZ,EAAOC,QAAU+4B,G,iBClKb/4B,EAAUD,EAAOC,QAAU,SAAcqkC,GAC3CA,EAAYA,EAAUx8B,cAEtB,IAAIikC,EAAY9rC,EAAQqkC,GACxB,IAAKyH,EAAW,MAAM,IAAIzpC,MAAMgiC,EAAY,+CAE5C,OAAO,IAAIyH,IAGL9S,IAAMp4B,EAAQ,KACtBZ,EAAQ+rC,KAAOnrC,EAAQ,KACvBZ,EAAQgsC,OAASprC,EAAQ,KACzBZ,EAAQisC,OAASrrC,EAAQ,IACzBZ,EAAQksC,OAAStrC,EAAQ,KACzBZ,EAAQmsC,OAASvrC,EAAQ,K,iBCdzBZ,EAAUD,EAAOC,QAAUY,EAAQ,KAC3BwrC,OAASpsC,EACjBA,EAAQk1B,SAAWl1B,EACnBA,EAAQm1B,SAAWv0B,EAAQ,IAC3BZ,EAAQg1B,OAASp0B,EAAQ,IACzBZ,EAAQ0tB,UAAY9sB,EAAQ,IAC5BZ,EAAQqsC,YAAczrC,EAAQ,M,8BCN9B,gBA6BA,IAAIk0B,EAAMl0B,EAAQ,IAelB,SAAS0rC,EAAcxa,GACrB,IAAIya,EAAQ3pC,KAEZA,KAAK8pB,KAAO,KACZ9pB,KAAK4pC,MAAQ,KACb5pC,KAAK6pC,OAAS,YAolBhB,SAAwBC,EAAS5a,EAAO/C,GACtC,IAAIyd,EAAQE,EAAQF,MACpBE,EAAQF,MAAQ,KAChB,KAAOA,GAAO,CACZ,IAAIvW,EAAKuW,EAAM1C,SACfhY,EAAM6a,YACN1W,EAAGlH,GACHyd,EAAQA,EAAM9f,KAEZoF,EAAM8a,mBACR9a,EAAM8a,mBAAmBlgB,KAAOggB,EAEhC5a,EAAM8a,mBAAqBF,EA/lB3BG,CAAeN,EAAOza,IAlB1B/xB,EAAOC,QAAUm1B,EAwBjB,IAIIH,EAJA8X,GAAc3qC,EAAQkC,SAAW,CAAC,QAAS,SAASyE,QAAQ3G,EAAQqC,QAAQqC,MAAM,EAAG,KAAO,EAAIkmC,EAAejY,EAAIjxB,SAOvHsxB,EAAS6X,cAAgBA,EAGzB,IAAI/X,EAAOp1B,OAAOC,OAAOc,EAAQ,KACjCq0B,EAAK9f,SAAWvU,EAAQ,GAIxB,IAAIqsC,EAAe,CACjB3f,UAAW1sB,EAAQ,KAKjBwrC,EAASxrC,EAAQ,IAKjBC,EAASD,EAAQ,GAAeC,OAChCqsC,EAAgBjhC,EAAO/F,YAAc,aAUzC,IA2IIinC,EA3IAC,EAAcxsC,EAAQ,IAI1B,SAASysC,KAET,SAASL,EAAc1X,EAASsU,GAC9B5U,EAASA,GAAUp0B,EAAQ,IAE3B00B,EAAUA,GAAW,GAOrB,IAAIgY,EAAW1D,aAAkB5U,EAIjCpyB,KAAK2qC,aAAejY,EAAQiY,WAExBD,IAAU1qC,KAAK2qC,WAAa3qC,KAAK2qC,cAAgBjY,EAAQkY,oBAK7D,IAAIC,EAAMnY,EAAQO,cACd6X,EAAcpY,EAAQqY,sBACtBC,EAAahrC,KAAK2qC,WAAa,GAAK,MAElB3qC,KAAKizB,cAAvB4X,GAAe,IAARA,EAAgCA,EAAaH,IAAaI,GAA+B,IAAhBA,GAAyCA,EAAsCE,EAGnKhrC,KAAKizB,cAAgB3qB,KAAKsF,MAAM5N,KAAKizB,eAGrCjzB,KAAKirC,aAAc,EAGnBjrC,KAAKkrC,WAAY,EAEjBlrC,KAAKmrC,QAAS,EAEdnrC,KAAK+yB,OAAQ,EAEb/yB,KAAKunC,UAAW,EAGhBvnC,KAAKmzB,WAAY,EAKjB,IAAIiY,GAAqC,IAA1B1Y,EAAQ2Y,cACvBrrC,KAAKqrC,eAAiBD,EAKtBprC,KAAKsrC,gBAAkB5Y,EAAQ4Y,iBAAmB,OAKlDtrC,KAAKvB,OAAS,EAGduB,KAAKurC,SAAU,EAGfvrC,KAAKwrC,OAAS,EAMdxrC,KAAKyrC,MAAO,EAKZzrC,KAAK0rC,kBAAmB,EAGxB1rC,KAAK2rC,QAAU,SAAUxb,IA4R3B,SAAiB6W,EAAQ7W,GACvB,IAAIjB,EAAQ8X,EAAOlU,eACf2Y,EAAOvc,EAAMuc,KACbpY,EAAKnE,EAAM0c,QAIf,GAdF,SAA4B1c,GAC1BA,EAAMqc,SAAU,EAChBrc,EAAM0c,QAAU,KAChB1c,EAAMzwB,QAAUywB,EAAM2c,SACtB3c,EAAM2c,SAAW,EAQjBC,CAAmB5c,GAEfiB,GAtCN,SAAsB6W,EAAQ9X,EAAOuc,EAAMtb,EAAIkD,KAC3CnE,EAAM6a,UAEJ0B,GAGFvZ,EAAIjxB,SAASoyB,EAAIlD,GAGjB+B,EAAIjxB,SAAS8qC,EAAa/E,EAAQ9X,GAClC8X,EAAOlU,eAAekZ,cAAe,EACrChF,EAAO5kC,KAAK,QAAS+tB,KAIrBkD,EAAGlD,GACH6W,EAAOlU,eAAekZ,cAAe,EACrChF,EAAO5kC,KAAK,QAAS+tB,GAGrB4b,EAAY/E,EAAQ9X,IAkBd+c,CAAajF,EAAQ9X,EAAOuc,EAAMtb,EAAIkD,OAAS,CAErD,IAAIkU,EAAW2E,EAAWhd,GAErBqY,GAAarY,EAAMsc,QAAWtc,EAAMwc,mBAAoBxc,EAAMid,iBACjEC,EAAYpF,EAAQ9X,GAGlBuc,EAEFvB,EAAWmC,EAAYrF,EAAQ9X,EAAOqY,EAAUlU,GAGhDgZ,EAAWrF,EAAQ9X,EAAOqY,EAAUlU,IA/StCsY,CAAQ3E,EAAQ7W,IAIlBnwB,KAAK4rC,QAAU,KAGf5rC,KAAK6rC,SAAW,EAEhB7rC,KAAKmsC,gBAAkB,KACvBnsC,KAAKssC,oBAAsB,KAI3BtsC,KAAK+pC,UAAY,EAIjB/pC,KAAKusC,aAAc,EAGnBvsC,KAAKgsC,cAAe,EAGpBhsC,KAAKwsC,qBAAuB,EAI5BxsC,KAAKgqC,mBAAqB,IAAIN,EAAc1pC,MA0C9C,SAASuyB,EAASG,GAUhB,GATAN,EAASA,GAAUp0B,EAAQ,KAStBusC,EAAgBxqC,KAAKwyB,EAAUvyB,SAAWA,gBAAgBoyB,GAC7D,OAAO,IAAIG,EAASG,GAGtB1yB,KAAK8yB,eAAiB,IAAIsX,EAAc1X,EAAS1yB,MAGjDA,KAAKpC,UAAW,EAEZ80B,IAC2B,oBAAlBA,EAAQ1uB,QAAsBhE,KAAKysC,OAAS/Z,EAAQ1uB,OAEjC,oBAAnB0uB,EAAQga,SAAuB1sC,KAAK2sC,QAAUja,EAAQga,QAElC,oBAApBha,EAAQka,UAAwB5sC,KAAKozB,SAAWV,EAAQka,SAEtC,oBAAlBla,EAAQvH,QAAsBnrB,KAAKorB,OAASsH,EAAQvH,QAGjEqe,EAAOzpC,KAAKC,MAgJd,SAAS6sC,EAAQ7F,EAAQ9X,EAAOwd,EAAQhsC,EAAKosC,EAAO7tC,EAAUo0B,GAC5DnE,EAAM2c,SAAWnrC,EACjBwuB,EAAM0c,QAAUvY,EAChBnE,EAAMqc,SAAU,EAChBrc,EAAMuc,MAAO,EACTiB,EAAQ1F,EAAO2F,QAAQG,EAAO5d,EAAMyc,SAAc3E,EAAOyF,OAAOK,EAAO7tC,EAAUiwB,EAAMyc,SAC3Fzc,EAAMuc,MAAO,EA2Df,SAASY,EAAWrF,EAAQ9X,EAAOqY,EAAUlU,GACtCkU,GASP,SAAsBP,EAAQ9X,GACP,IAAjBA,EAAMzwB,QAAgBywB,EAAMgc,YAC9Bhc,EAAMgc,WAAY,EAClBlE,EAAO5kC,KAAK,UAZC2qC,CAAa/F,EAAQ9X,GACpCA,EAAM6a,YACN1W,IACA0Y,EAAY/E,EAAQ9X,GActB,SAASkd,EAAYpF,EAAQ9X,GAC3BA,EAAMwc,kBAAmB,EACzB,IAAI9B,EAAQ1a,EAAMid,gBAElB,GAAInF,EAAO2F,SAAW/C,GAASA,EAAM9f,KAAM,CAEzC,IAAI/Z,EAAImf,EAAMsd,qBACVzuC,EAAS,IAAIoD,MAAM4O,GACnBi9B,EAAS9d,EAAM8a,mBACnBgD,EAAOpD,MAAQA,EAIf,IAFA,IAAIjb,EAAQ,EACRse,GAAa,EACVrD,GACL7rC,EAAO4wB,GAASib,EACXA,EAAMsD,QAAOD,GAAa,GAC/BrD,EAAQA,EAAM9f,KACd6E,GAAS,EAEX5wB,EAAOkvC,WAAaA,EAEpBJ,EAAQ7F,EAAQ9X,GAAO,EAAMA,EAAMzwB,OAAQV,EAAQ,GAAIivC,EAAOnD,QAI9D3a,EAAM6a,YACN7a,EAAMod,oBAAsB,KACxBU,EAAOljB,MACToF,EAAM8a,mBAAqBgD,EAAOljB,KAClCkjB,EAAOljB,KAAO,MAEdoF,EAAM8a,mBAAqB,IAAIN,EAAcxa,GAE/CA,EAAMsd,qBAAuB,MACxB,CAEL,KAAO5C,GAAO,CACZ,IAAIkD,EAAQlD,EAAMkD,MACd7tC,EAAW2qC,EAAM3qC,SACjBo0B,EAAKuW,EAAM1C,SAUf,GAPA2F,EAAQ7F,EAAQ9X,GAAO,EAFbA,EAAMyb,WAAa,EAAImC,EAAMruC,OAEJquC,EAAO7tC,EAAUo0B,GACpDuW,EAAQA,EAAM9f,KACdoF,EAAMsd,uBAKFtd,EAAMqc,QACR,MAIU,OAAV3B,IAAgB1a,EAAMod,oBAAsB,MAGlDpd,EAAMid,gBAAkBvC,EACxB1a,EAAMwc,kBAAmB,EAiC3B,SAASQ,EAAWhd,GAClB,OAAOA,EAAMic,QAA2B,IAAjBjc,EAAMzwB,QAA0C,OAA1BywB,EAAMid,kBAA6Bjd,EAAMqY,WAAarY,EAAMqc,QAE3G,SAAS4B,EAAUnG,EAAQ9X,GACzB8X,EAAO5b,QAAO,SAAUe,GACtB+C,EAAM6a,YACF5d,GACF6a,EAAO5kC,KAAK,QAAS+pB,GAEvB+C,EAAMqd,aAAc,EACpBvF,EAAO5kC,KAAK,aACZ2pC,EAAY/E,EAAQ9X,MAgBxB,SAAS6c,EAAY/E,EAAQ9X,GAC3B,IAAIke,EAAOlB,EAAWhd,GAQtB,OAPIke,KAfN,SAAmBpG,EAAQ9X,GACpBA,EAAMqd,aAAgBrd,EAAM+b,cACF,oBAAlBjE,EAAO5b,QAChB8D,EAAM6a,YACN7a,EAAM+b,aAAc,EACpB/Y,EAAIjxB,SAASksC,EAAWnG,EAAQ9X,KAEhCA,EAAMqd,aAAc,EACpBvF,EAAO5kC,KAAK,eAQdirC,CAAUrG,EAAQ9X,GACM,IAApBA,EAAM6a,YACR7a,EAAMqY,UAAW,EACjBP,EAAO5kC,KAAK,YAGTgrC,EAzhBT/a,EAAK9f,SAASggB,EAAUiX,GAmHxBY,EAAc5sC,UAAUw3B,UAAY,WAGlC,IAFA,IAAI3K,EAAUrqB,KAAKmsC,gBACf5gC,EAAM,GACH8e,GACL9e,EAAIjK,KAAK+oB,GACTA,EAAUA,EAAQP,KAEpB,OAAOve,GAGT,WACE,IACEtO,OAAO4M,eAAeugC,EAAc5sC,UAAW,SAAU,CACvDqtB,IAAKwf,EAAa3f,WAAU,WAC1B,OAAO1qB,KAAKg1B,cACX,6EAAmF,aAExF,MAAOlT,KAPX,GAasB,oBAAXnY,QAAyBA,OAAO2jC,aAAiE,oBAA3C59B,SAASlS,UAAUmM,OAAO2jC,cACzF/C,EAAkB76B,SAASlS,UAAUmM,OAAO2jC,aAC5CrwC,OAAO4M,eAAe0oB,EAAU5oB,OAAO2jC,YAAa,CAClD5vC,MAAO,SAAU6vC,GACf,QAAIhD,EAAgBxqC,KAAKC,KAAMutC,IAC3BvtC,OAASuyB,IAENgb,GAAUA,EAAOza,0BAA0BsX,OAItDG,EAAkB,SAAUgD,GAC1B,OAAOA,aAAkBvtC,MAqC7BuyB,EAAS/0B,UAAUgwC,KAAO,WACxBxtC,KAAKoC,KAAK,QAAS,IAAI3C,MAAM,+BA8B/B8yB,EAAS/0B,UAAUwG,MAAQ,SAAU8oC,EAAO7tC,EAAUo0B,GACpD,IAnOqBlvB,EAmOjB+qB,EAAQlvB,KAAK8yB,eACbxnB,GAAM,EACN4hC,GAAShe,EAAMyb,aArOExmC,EAqO0B2oC,EApOxC7uC,EAAOmG,SAASD,IAAQA,aAAemmC,GAwP9C,OAlBI4C,IAAUjvC,EAAOmG,SAAS0oC,KAC5BA,EA3OJ,SAA6BA,GAC3B,OAAO7uC,EAAOS,KAAKouC,GA0OTW,CAAoBX,IAGN,oBAAb7tC,IACTo0B,EAAKp0B,EACLA,EAAW,MAGTiuC,EAAOjuC,EAAW,SAAmBA,IAAUA,EAAWiwB,EAAMoc,iBAElD,oBAAPjY,IAAmBA,EAAKoX,GAE/Bvb,EAAM6D,MA7CZ,SAAuBiU,EAAQ3T,GAC7B,IAAIlD,EAAK,IAAI1wB,MAAM,mBAEnBunC,EAAO5kC,KAAK,QAAS+tB,GACrB+B,EAAIjxB,SAASoyB,EAAIlD,GAyCAud,CAAc1tC,KAAMqzB,IAAa6Z,GAnCpD,SAAoBlG,EAAQ9X,EAAO4d,EAAOzZ,GACxC,IAAIsa,GAAQ,EACRxd,GAAK,EAYT,OAVc,OAAV2c,EACF3c,EAAK,IAAIrxB,UAAU,uCACO,kBAAVguC,QAAgC3tC,IAAV2tC,GAAwB5d,EAAMyb,aACpExa,EAAK,IAAIrxB,UAAU,oCAEjBqxB,IACF6W,EAAO5kC,KAAK,QAAS+tB,GACrB+B,EAAIjxB,SAASoyB,EAAIlD,GACjBwd,GAAQ,GAEHA,EAqBoDC,CAAW5tC,KAAMkvB,EAAO4d,EAAOzZ,MACxFnE,EAAM6a,YACNz+B,EAkDJ,SAAuB07B,EAAQ9X,EAAOge,EAAOJ,EAAO7tC,EAAUo0B,GAC5D,IAAK6Z,EAAO,CACV,IAAIW,EAtBR,SAAqB3e,EAAO4d,EAAO7tC,GAC5BiwB,EAAMyb,aAAsC,IAAxBzb,EAAMmc,eAA4C,kBAAVyB,IAC/DA,EAAQ7uC,EAAOS,KAAKouC,EAAO7tC,IAE7B,OAAO6tC,EAkBUgB,CAAY5e,EAAO4d,EAAO7tC,GACrC6tC,IAAUe,IACZX,GAAQ,EACRjuC,EAAW,SACX6tC,EAAQe,GAGZ,IAAIntC,EAAMwuB,EAAMyb,WAAa,EAAImC,EAAMruC,OAEvCywB,EAAMzwB,QAAUiC,EAEhB,IAAI4K,EAAM4jB,EAAMzwB,OAASywB,EAAM+D,cAE1B3nB,IAAK4jB,EAAMgc,WAAY,GAE5B,GAAIhc,EAAMqc,SAAWrc,EAAMsc,OAAQ,CACjC,IAAIpH,EAAOlV,EAAMod,oBACjBpd,EAAMod,oBAAsB,CAC1BQ,MAAOA,EACP7tC,SAAUA,EACViuC,MAAOA,EACPhG,SAAU7T,EACVvJ,KAAM,MAEJsa,EACFA,EAAKta,KAAOoF,EAAMod,oBAElBpd,EAAMid,gBAAkBjd,EAAMod,oBAEhCpd,EAAMsd,sBAAwB,OAE9BK,EAAQ7F,EAAQ9X,GAAO,EAAOxuB,EAAKosC,EAAO7tC,EAAUo0B,GAGtD,OAAO/nB,EAtFCyiC,CAAc/tC,KAAMkvB,EAAOge,EAAOJ,EAAO7tC,EAAUo0B,IAGpD/nB,GAGTinB,EAAS/0B,UAAUwwC,KAAO,WACZhuC,KAAK8yB,eAEX0Y,UAGRjZ,EAAS/0B,UAAUywC,OAAS,WAC1B,IAAI/e,EAAQlvB,KAAK8yB,eAEb5D,EAAMsc,SACRtc,EAAMsc,SAEDtc,EAAMqc,SAAYrc,EAAMsc,QAAWtc,EAAMqY,UAAarY,EAAMwc,mBAAoBxc,EAAMid,iBAAiBC,EAAYpsC,KAAMkvB,KAIlIqD,EAAS/0B,UAAU0wC,mBAAqB,SAA4BjvC,GAGlE,GADwB,kBAAbA,IAAuBA,EAAWA,EAASgG,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOiB,SAASjH,EAAW,IAAIgG,gBAAkB,GAAI,MAAM,IAAInG,UAAU,qBAAuBG,GAEpM,OADAe,KAAK8yB,eAAewY,gBAAkBrsC,EAC/Be,MAUT/C,OAAO4M,eAAe0oB,EAAS/0B,UAAW,wBAAyB,CAIjEG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAeG,iBA8L/BV,EAAS/0B,UAAUivC,OAAS,SAAUK,EAAO7tC,EAAUo0B,GACrDA,EAAG,IAAI5zB,MAAM,iCAGf8yB,EAAS/0B,UAAUmvC,QAAU,KAE7Bpa,EAAS/0B,UAAU4H,IAAM,SAAU0nC,EAAO7tC,EAAUo0B,GAClD,IAAInE,EAAQlvB,KAAK8yB,eAEI,oBAAVga,GACTzZ,EAAKyZ,EACLA,EAAQ,KACR7tC,EAAW,MACkB,oBAAbA,IAChBo0B,EAAKp0B,EACLA,EAAW,MAGC,OAAV6tC,QAA4B3tC,IAAV2tC,GAAqB9sC,KAAKgE,MAAM8oC,EAAO7tC,GAGzDiwB,EAAMsc,SACRtc,EAAMsc,OAAS,EACfxrC,KAAKiuC,UAIF/e,EAAMic,QAAWjc,EAAMqY,UA0C9B,SAAqBP,EAAQ9X,EAAOmE,GAClCnE,EAAMic,QAAS,EACfY,EAAY/E,EAAQ9X,GAChBmE,IACEnE,EAAMqY,SAAUrV,EAAIjxB,SAASoyB,GAAS2T,EAAOhlC,KAAK,SAAUqxB,IAElEnE,EAAM6D,OAAQ,EACdiU,EAAOppC,UAAW,EAjDoBuwC,CAAYnuC,KAAMkvB,EAAOmE,IAoEjEp2B,OAAO4M,eAAe0oB,EAAS/0B,UAAW,YAAa,CACrDqtB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAK8yB,gBAGF9yB,KAAK8yB,eAAeK,WAE7BpkB,IAAK,SAAUrR,GAGRsC,KAAK8yB,iBAMV9yB,KAAK8yB,eAAeK,UAAYz1B,MAIpC60B,EAAS/0B,UAAUovC,QAAUpC,EAAYoC,QACzCra,EAAS/0B,UAAU4wC,WAAa5D,EAAY6D,UAC5C9b,EAAS/0B,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC3CrzB,KAAKoF,MACLiuB,EAAGlH,M,uEC3qBL,IAAIvc,EAAS5R,EAAQ,GAErB,SAASswC,EAAO5b,GACd1yB,KAAK0yB,QAAUA,EAEf1yB,KAAKwE,KAAOxE,KAAK0yB,QAAQluB,KACzBxE,KAAKk1B,UAAY,EACjBl1B,KAAKqV,QAELrV,KAAKjC,OAAS,IAAIoD,MAAMnB,KAAKk1B,WAC7Bl1B,KAAKuuC,UAAY,EAEnBpxC,EAAOC,QAAUkxC,EAEjBA,EAAO9wC,UAAU6X,MAAQ,aAIzBi5B,EAAO9wC,UAAUguB,OAAS,SAAgB/mB,GACxC,OAAoB,IAAhBA,EAAKhG,OACA,GAES,YAAduB,KAAKwE,KACAxE,KAAKwuC,eAAe/pC,GAEpBzE,KAAKyuC,eAAehqC,IAG/B6pC,EAAO9wC,UAAUkxC,QAAU,SAAiBjqC,EAAMxC,GAGhD,IADA,IAAIsG,EAAMD,KAAKC,IAAIvI,KAAKjC,OAAOU,OAASuB,KAAKuuC,UAAW9pC,EAAKhG,OAASwD,GAC7DZ,EAAI,EAAGA,EAAIkH,EAAKlH,IACvBrB,KAAKjC,OAAOiC,KAAKuuC,UAAYltC,GAAKoD,EAAKxC,EAAMZ,GAI/C,OAHArB,KAAKuuC,WAAahmC,EAGXA,GAGT+lC,EAAO9wC,UAAUmxC,aAAe,SAAsBpjC,EAAKtJ,GAGzD,OAFAjC,KAAK4rB,QAAQ5rB,KAAKjC,OAAQ,EAAGwN,EAAKtJ,GAClCjC,KAAKuuC,UAAY,EACVvuC,KAAKk1B,WAGdoZ,EAAO9wC,UAAUixC,eAAiB,SAAwBhqC,GACxD,IAAImqC,EAAW,EACXC,EAAY,EAEZlgB,GAAU3uB,KAAKuuC,UAAY9pC,EAAKhG,QAAUuB,KAAKk1B,UAAa,EAC5D3pB,EAAM,IAAIpK,MAAMwtB,EAAQ3uB,KAAKk1B,WAEV,IAAnBl1B,KAAKuuC,YACPK,GAAY5uC,KAAK0uC,QAAQjqC,EAAMmqC,GAE3B5uC,KAAKuuC,YAAcvuC,KAAKjC,OAAOU,SACjCowC,GAAa7uC,KAAK2uC,aAAapjC,EAAKsjC,KAKxC,IADA,IAAInkC,EAAMjG,EAAKhG,QAAWgG,EAAKhG,OAASmwC,GAAY5uC,KAAKk1B,UAClD0Z,EAAWlkC,EAAKkkC,GAAY5uC,KAAKk1B,UACtCl1B,KAAK4rB,QAAQnnB,EAAMmqC,EAAUrjC,EAAKsjC,GAClCA,GAAa7uC,KAAKk1B,UAIpB,KAAO0Z,EAAWnqC,EAAKhG,OAAQmwC,IAAY5uC,KAAKuuC,YAC9CvuC,KAAKjC,OAAOiC,KAAKuuC,WAAa9pC,EAAKmqC,GAErC,OAAOrjC,GAGT+iC,EAAO9wC,UAAUgxC,eAAiB,SAAwB/pC,GAQxD,IAPA,IAAImqC,EAAW,EACXC,EAAY,EAEZlgB,EAAQrmB,KAAK6N,MAAMnW,KAAKuuC,UAAY9pC,EAAKhG,QAAUuB,KAAKk1B,WAAa,EACrE3pB,EAAM,IAAIpK,MAAMwtB,EAAQ3uB,KAAKk1B,WAG1BvG,EAAQ,EAAGA,IAChBigB,GAAY5uC,KAAK0uC,QAAQjqC,EAAMmqC,GAC/BC,GAAa7uC,KAAK2uC,aAAapjC,EAAKsjC,GAMtC,OAFAD,GAAY5uC,KAAK0uC,QAAQjqC,EAAMmqC,GAExBrjC,GAGT+iC,EAAO9wC,UAAU2tB,MAAQ,SAAeptB,GACtC,IAAI+wC,EAIA1K,EAMJ,OATIrmC,IACF+wC,EAAQ9uC,KAAKwrB,OAAOztB,IAIpBqmC,EADgB,YAAdpkC,KAAKwE,KACAxE,KAAK+uC,gBAEL/uC,KAAKgvC,gBAEVF,EACKA,EAAMvuC,OAAO6jC,GAEbA,GAGXkK,EAAO9wC,UAAUo6B,KAAO,SAAc75B,EAAQkE,GAC5C,GAAY,IAARA,EACF,OAAO,EAET,KAAOA,EAAMlE,EAAOU,QAClBV,EAAOkE,KAAS,EAElB,OAAO,GAGTqsC,EAAO9wC,UAAUuxC,cAAgB,WAC/B,IAAK/uC,KAAK43B,KAAK53B,KAAKjC,OAAQiC,KAAKuuC,WAC/B,MAAO,GAET,IAAIhjC,EAAM,IAAIpK,MAAMnB,KAAKk1B,WAEzB,OADAl1B,KAAK4rB,QAAQ5rB,KAAKjC,OAAQ,EAAGwN,EAAK,GAC3BA,GAGT+iC,EAAO9wC,UAAUyxC,OAAS,SAAgBlxC,GACxC,OAAOA,GAGTuwC,EAAO9wC,UAAUwxC,cAAgB,WAC/Bp/B,EAAOE,MAAM9P,KAAKuuC,UAAWvuC,KAAKk1B,UAAW,8BAC7C,IAAI3pB,EAAM,IAAIpK,MAAMnB,KAAKk1B,WAGzB,OAFAl1B,KAAK2uC,aAAapjC,EAAK,GAEhBvL,KAAKivC,OAAO1jC,K,gBC3IrB,IAAIq1B,EAAU5iC,EAAQ,KAClBkxC,EAAYlxC,EAAQ,KACpBmxC,EAAQnxC,EAAQ,IAMpBZ,EAAQgyC,aAAehyC,EAAQkxC,OAAS1N,EAAQwO,aAChDhyC,EAAQiyC,eAAiBjyC,EAAQkyC,SAAW1O,EAAQyO,eACpDjyC,EAAQmyC,eAAiBnyC,EAAQoyC,SAAWN,EAAUK,eACtDnyC,EAAQqlC,iBAAmBrlC,EAAQqyC,WAAaP,EAAUzM,iBAC1DrlC,EAAQsyC,YAActyC,EAAQuyC,WAR9B,WACE,OAAO1yC,OAAOyzB,KAAKye,K,gBCLrB,IAAIS,EAAc,CAChBC,IAAK7xC,EAAQ,KACb8xC,IAAK9xC,EAAQ,KACb+xC,IAAK/xC,EAAQ,KACbgyC,KAAMhyC,EAAQ,KACdiyC,KAAMjyC,EAAQ,KACdkyC,IAAKlyC,EAAQ,KACbmyC,IAAKnyC,EAAQ,IACboyC,IAAKpyC,EAAQ,KAGXmxC,EAAQnxC,EAAQ,IAEpB,IAAK,IAAIK,KAAO8wC,EACdA,EAAM9wC,GAAKlB,OAASyyC,EAAYT,EAAM9wC,GAAK2lB,MAG7C7mB,EAAOC,QAAU+xC,G,gBCjBjB,IAAIn/B,EASJ,SAASqgC,EAAKC,GACZtwC,KAAKswC,KAAOA,EAmBd,GA3BAnzC,EAAOC,QAAU,SAAcsD,GAI7B,OAHKsP,IACHA,EAAI,IAAIqgC,EAAK,OAERrgC,EAAEugC,SAAS7vC,IAMpBvD,EAAOC,QAAQizC,KAAOA,EAEtBA,EAAK7yC,UAAU+yC,SAAW,SAAkB7vC,GAC1C,OAAOV,KAAKwwC,MAAM9vC,IAIpB2vC,EAAK7yC,UAAUgzC,MAAQ,SAAe3qC,GACpC,GAAI7F,KAAKswC,KAAKG,SACZ,OAAOzwC,KAAKswC,KAAKG,SAAS5qC,GAG5B,IADA,IAAI2C,EAAM,IAAIlF,WAAWuC,GAChBxE,EAAI,EAAGA,EAAImH,EAAI/J,OAAQ4C,IAC9BmH,EAAInH,GAAKrB,KAAKswC,KAAKI,UACrB,OAAOloC,GAGW,kBAATyO,KACLA,KAAKuc,QAAUvc,KAAKuc,OAAOE,gBAE7B2c,EAAK7yC,UAAUgzC,MAAQ,SAAe3qC,GACpC,IAAIO,EAAM,IAAI9C,WAAWuC,GAEzB,OADAoR,KAAKuc,OAAOE,gBAAgBttB,GACrBA,GAEA6Q,KAAKwc,UAAYxc,KAAKwc,SAASC,gBAExC2c,EAAK7yC,UAAUgzC,MAAQ,SAAe3qC,GACpC,IAAIO,EAAM,IAAI9C,WAAWuC,GAEzB,OADAoR,KAAKwc,SAASC,gBAAgBttB,GACvBA,GAIkB,kBAAXuJ,SAEhB0gC,EAAK7yC,UAAUgzC,MAAQ,WACrB,MAAM,IAAI/wC,MAAM,8BAKpB,IACE,IAAI+zB,EAASx1B,EAAQ,KACrB,GAAkC,oBAAvBw1B,EAAOmd,YAChB,MAAM,IAAIlxC,MAAM,iBAElB4wC,EAAK7yC,UAAUgzC,MAAQ,SAAe3qC,GACpC,OAAO2tB,EAAOmd,YAAY9qC,IAE5B,MAAO/F,M,gBC5DX,IAAI/B,EAASC,EAAQ,GACjBC,EAASF,EAAOE,OAGpB,SAASC,EAAWC,EAAKC,GACvB,IAAK,IAAIC,KAAOF,EACdC,EAAIC,GAAOF,EAAIE,GAWnB,SAASC,EAAYC,EAAKC,EAAkBC,GAC1C,OAAOR,EAAOM,EAAKC,EAAkBC,GATnCR,EAAOS,MAAQT,EAAOU,OAASV,EAAOW,aAAeX,EAAOY,gBAC9D1B,EAAOC,QAAUW,GAGjBG,EAAUH,EAAQX,GAClBA,EAAQa,OAASK,GAOnBA,EAAWd,UAAYP,OAAOC,OAAOe,EAAOT,WAG5CU,EAAUD,EAAQK,GAElBA,EAAWI,KAAO,SAAUH,EAAKC,EAAkBC,GACjD,GAAmB,kBAARF,EACT,MAAM,IAAIO,UAAU,iCAEtB,OAAOb,EAAOM,EAAKC,EAAkBC,IAGvCH,EAAWK,MAAQ,SAAUI,EAAMC,EAAMC,GACvC,GAAoB,kBAATF,EACT,MAAM,IAAID,UAAU,6BAEtB,IAAII,EAAMjB,EAAOc,GAUjB,YATaI,IAATH,EACsB,kBAAbC,EACTC,EAAIF,KAAKA,EAAMC,GAEfC,EAAIF,KAAKA,GAGXE,EAAIF,KAAK,GAEJE,GAGTZ,EAAWM,YAAc,SAAUG,GACjC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOb,EAAOc,IAGhBT,EAAWO,gBAAkB,SAAUE,GACrC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOf,EAAOqB,WAAWL,K,6BC3D3B,IAAI+nC,EAA6B9oC,EAAQ,IAAmB41B,MAAMkT,2BAgBlE,SAAS9lC,KAmFT7D,EAAOC,QA7EP,SAAS2pC,EAAIC,EAAQC,EAAMC,GACzB,GAAoB,oBAATD,EAAqB,OAAOF,EAAIC,EAAQ,KAAMC,GACpDA,IAAMA,EAAO,IAClBC,EAvBF,SAAcA,GACZ,IAAIC,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EAET,IAAK,IAAI5R,EAAOn0B,UAAU3C,OAAQyC,EAAO,IAAIC,MAAMo0B,GAAOgG,EAAO,EAAGA,EAAOhG,EAAMgG,IAC/Er6B,EAAKq6B,GAAQn6B,UAAUm6B,GAGzB2L,EAAS3lC,MAAMvB,KAAMkB,KAaZc,CAAKklC,GAAYlmC,GAC5B,IAAI2xB,EAAWsU,EAAKtU,WAA8B,IAAlBsU,EAAKtU,UAAsBqU,EAAOrU,SAC9D/0B,EAAWqpC,EAAKrpC,WAA8B,IAAlBqpC,EAAKrpC,UAAsBopC,EAAOppC,SAE9DwpC,EAAiB,WACdJ,EAAOppC,UAAUypC,KAGpBC,EAAgBN,EAAOlU,gBAAkBkU,EAAOlU,eAAeyU,SAE/DF,EAAW,WACbzpC,GAAW,EACX0pC,GAAgB,EACX3U,GAAUuU,EAASnnC,KAAKinC,IAG3BQ,EAAgBR,EAAO9T,gBAAkB8T,EAAO9T,eAAeuU,WAE/D5U,EAAQ,WACVF,GAAW,EACX6U,GAAgB,EACX5pC,GAAUspC,EAASnnC,KAAKinC,IAG3BU,EAAU,SAAiBvb,GAC7B+a,EAASnnC,KAAKinC,EAAQ7a,IAGpBwb,EAAU,WACZ,IAAIxb,EAEJ,OAAIwG,IAAa6U,GACVR,EAAO9T,gBAAmB8T,EAAO9T,eAAeH,QAAO5G,EAAM,IAAI2a,GAC/DI,EAASnnC,KAAKinC,EAAQ7a,IAG3BvuB,IAAa0pC,GACVN,EAAOlU,gBAAmBkU,EAAOlU,eAAeC,QAAO5G,EAAM,IAAI2a,GAC/DI,EAASnnC,KAAKinC,EAAQ7a,SAF/B,GAMEyb,EAAY,WACdZ,EAAOa,IAAI/lC,GAAG,SAAUulC,IAiB1B,OAnEF,SAAmBL,GACjB,OAAOA,EAAOc,WAAqC,oBAAjBd,EAAOe,MAoDrCC,CAAUhB,GAIHppC,IAAaopC,EAAOlU,iBAE7BkU,EAAOllC,GAAG,MAAOslC,GACjBJ,EAAOllC,GAAG,QAASslC,KANnBJ,EAAOllC,GAAG,WAAYulC,GACtBL,EAAOllC,GAAG,QAAS6lC,GACfX,EAAOa,IAAKD,IAAiBZ,EAAOllC,GAAG,UAAW8lC,IAOxDZ,EAAOllC,GAAG,MAAO+wB,GACjBmU,EAAOllC,GAAG,SAAUulC,IACD,IAAfJ,EAAK/W,OAAiB8W,EAAOllC,GAAG,QAAS4lC,GAC7CV,EAAOllC,GAAG,QAAS6lC,GACZ,WACLX,EAAO9kC,eAAe,WAAYmlC,GAClCL,EAAO9kC,eAAe,QAASylC,GAC/BX,EAAO9kC,eAAe,UAAW0lC,GAC7BZ,EAAOa,KAAKb,EAAOa,IAAI3lC,eAAe,SAAUmlC,GACpDL,EAAO9kC,eAAe,MAAOklC,GAC7BJ,EAAO9kC,eAAe,QAASklC,GAC/BJ,EAAO9kC,eAAe,SAAUmlC,GAChCL,EAAO9kC,eAAe,MAAO2wB,GAC7BmU,EAAO9kC,eAAe,QAASwlC,GAC/BV,EAAO9kC,eAAe,QAASylC,M,iBCnGnC,gBAAIz3B,EAAKlS,EAAQ,IACb2yC,EAAc3yC,EAAQ,IAQ1B,SAAS4yC,EAAMC,GACb,IACI7gC,EADAtP,EAAMmwC,EAAKC,QAAQptC,aAEvB,GACEsM,EAAI,IAAIE,EAAGygC,EAAYjwC,UAChBsP,EAAE8F,IAAI+6B,EAAKC,UAAY,IAAM9gC,EAAEwU,KAAKqsB,EAAKE,UAAY/gC,EAAEwU,KAAKqsB,EAAKG,SAC1E,OAAOhhC,EAGT,SAASihC,EAAKphC,EAAKghC,GACjB,IAAIK,EAhBN,SAAgBL,GACd,IAAI7gC,EAAI4gC,EAAKC,GAEb,MAAO,CAAEM,QADKnhC,EAAE2W,MAAMzW,EAAGqa,KAAKsmB,EAAKC,UAAU5oB,OAAO,IAAIhY,EAAG2gC,EAAKO,iBAAiBrqB,UACtDsqB,UAAWrhC,EAAE6V,KAAKgrB,EAAKC,UAarCQ,CAAMT,GACfnwC,EAAMmwC,EAAKC,QAAQptC,aACnB6tC,EAAU,IAAIrhC,EAAGL,GAAKtD,IAAI2kC,EAAOC,SAAS3sB,KAAKqsB,EAAKC,SACpDU,EAAKD,EAAQ5qB,MAAMzW,EAAGqa,KAAKsmB,EAAKE,SAChCU,EAAKF,EAAQ5qB,MAAMzW,EAAGqa,KAAKsmB,EAAKG,SAChCU,EAAOb,EAAKc,YACZ9+B,EAAIg+B,EAAKE,OACT/4B,EAAI64B,EAAKG,OACT1U,EAAKkV,EAAGtpB,OAAO2oB,EAAKe,WAAW7qB,UAC/B8qB,EAAKJ,EAAGvpB,OAAO2oB,EAAKiB,WAAW/qB,UAC/B/D,EAAIsZ,EAAGniB,KAAK03B,GAAIxzB,KAAKqzB,GAAMltB,KAAK3R,GAAGwL,KAAKrG,GAC5C,OAAO65B,EAAG33B,KAAK8I,GAAG3E,KAAK6yB,EAAOG,WAAW7sB,KAAKqsB,EAAKC,SAASj5B,YAAY5Z,EAAQ,KAAMyC,GAExFuwC,EAAIL,KAAOA,EAEXzzC,EAAOC,QAAU6zC,I,yCClCjB,sBAAW9zC,EAAQC,GACjB,aAGA,SAASwS,EAAQrL,EAAKsL,GACpB,IAAKtL,EAAK,MAAM,IAAI9E,MAAMoQ,GAAO,oBAKnC,SAAS0C,EAAUlV,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,EAK/B,SAAS6S,EAAI6E,EAAQC,EAAMjC,GACzB,GAAI7C,EAAG+E,KAAKF,GACV,OAAOA,EAGT/U,KAAKkV,SAAW,EAChBlV,KAAKmV,MAAQ,KACbnV,KAAKvB,OAAS,EAGduB,KAAKoV,IAAM,KAEI,OAAXL,IACW,OAATC,GAA0B,OAATA,IACnBjC,EAASiC,EACTA,EAAO,IAGThV,KAAKqV,MAAMN,GAAU,EAAGC,GAAQ,GAAIjC,GAAU,OAYlD,IAAI9U,EATkB,kBAAXd,EACTA,EAAOC,QAAU8S,EAEjB9S,EAAQ8S,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGoF,SAAW,GAGd,IAEIrX,EADoB,qBAAX0R,QAAmD,qBAAlBA,OAAO1R,OACxC0R,OAAO1R,OAEPD,EAAQ,KAAUC,OAE7B,MAAO6B,IAgIT,SAASyV,EAAe1R,EAAQ2R,GAC9B,IAAIvN,EAAIpE,EAAO8D,WAAW6N,GAE1B,OAAIvN,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEX2H,GAAO,EAAO,wBAA0B/L,GAI5C,SAAS4R,EAAc5R,EAAQ6R,EAAYF,GACzC,IAAIxF,EAAIuF,EAAc1R,EAAQ2R,GAI9B,OAHIA,EAAQ,GAAKE,IACf1F,GAAKuF,EAAc1R,EAAQ2R,EAAQ,IAAM,GAEpCxF,EA8CT,SAAS2F,EAAWlO,EAAKtC,EAAOC,EAAKmH,GAInC,IAHA,IAAIyD,EAAI,EACJpK,EAAI,EACJlF,EAAM4H,KAAKC,IAAId,EAAIhJ,OAAQ2G,GACtB/D,EAAI8D,EAAO9D,EAAIX,EAAKW,IAAK,CAChC,IAAI4G,EAAIR,EAAIE,WAAWtG,GAAK,GAE5B2O,GAAKzD,EAIH3G,EADEqC,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAEN2H,EAAO3H,GAAK,GAAKrC,EAAI2G,EAAK,qBAC1ByD,GAAKpK,EAEP,OAAOoK,EA4DT,SAAS+hC,EAAMr7B,EAAMvY,GACnBuY,EAAKvB,MAAQhX,EAAIgX,MACjBuB,EAAKjY,OAASN,EAAIM,OAClBiY,EAAKxB,SAAW/W,EAAI+W,SACpBwB,EAAKtB,IAAMjX,EAAIiX,IAsCjB,GA9TAlF,EAAG+E,KAAO,SAAexE,GACvB,OAAIA,aAAeP,GAIJ,OAARO,GAA+B,kBAARA,GAC5BA,EAAIhT,YAAY6X,WAAapF,EAAGoF,UAAYnU,MAAM6B,QAAQyN,EAAI0E,QAGlEjF,EAAGxF,IAAM,SAAckL,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG3H,IAAM,SAAcqN,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG1S,UAAU6X,MAAQ,SAAeN,EAAQC,EAAMjC,GAChD,GAAsB,kBAAXgC,EACT,OAAO/U,KAAK+V,YAAYhB,EAAQC,EAAMjC,GAGxC,GAAsB,kBAAXgC,EACT,OAAO/U,KAAKgW,WAAWjB,EAAQC,EAAMjC,GAG1B,QAATiC,IACFA,EAAO,IAETpF,EAAOoF,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI7P,EAAQ,EACM,OAFlB4P,EAASA,EAAOnQ,WAAW0K,QAAQ,OAAQ,KAEhC,KACTnK,IACAnF,KAAKkV,SAAW,GAGd/P,EAAQ4P,EAAOtW,SACJ,KAATuW,EACFhV,KAAKiW,UAAUlB,EAAQ5P,EAAO4N,IAE9B/S,KAAKkW,WAAWnB,EAAQC,EAAM7P,GACf,OAAX4N,GACF/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,MAM9C7C,EAAG1S,UAAUuY,YAAc,SAAsBhB,EAAQC,EAAMjC,GACzDgC,EAAS,IACX/U,KAAKkV,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACX/U,KAAKmV,MAAQ,CAAU,SAATJ,GACd/U,KAAKvB,OAAS,GACLsW,EAAS,kBAClB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,UAEzB/U,KAAKvB,OAAS,IAEdmR,EAAOmF,EAAS,kBAChB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,SACvB,GAEF/U,KAAKvB,OAAS,GAGD,OAAXsU,GAGJ/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,IAGxC7C,EAAG1S,UAAUwY,WAAa,SAAqBjB,EAAQC,EAAMjC,GAG3D,GADAnD,EAAgC,kBAAlBmF,EAAOtW,QACjBsW,EAAOtW,QAAU,EAGnB,OAFAuB,KAAKmV,MAAQ,CAAC,GACdnV,KAAKvB,OAAS,EACPuB,KAGTA,KAAKvB,OAAS6J,KAAK6N,KAAKpB,EAAOtW,OAAS,GACxCuB,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAGlB,IAAIwF,EAAG6J,EACHzO,EAAM,EACV,GAAe,OAAX8Q,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAGoI,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,UAGC,GAAe,OAAXkM,EACT,IAAK1R,EAAI,EAAGwF,EAAI,EAAGxF,EAAI0T,EAAOtW,OAAQ4C,GAAK,EACzCqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,KAIN,OAAO7G,KAAKypB,UA2BdvZ,EAAG1S,UAAUyY,UAAY,SAAoBlB,EAAQ5P,EAAO4N,GAE1D/S,KAAKvB,OAAS6J,KAAK6N,MAAMpB,EAAOtW,OAAS0G,GAAS,GAClDnF,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAIlB,IAGIqP,EAHAzO,EAAM,EACN4E,EAAI,EAGR,GAAe,OAAXkM,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAG4C,GAAK8D,EAAO9D,GAAK,EAC3CqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,OAKX,IAAKZ,GADa0T,EAAOtW,OAAS0G,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO9D,EAAI0T,EAAOtW,OAAQ4C,GAAK,EAC1EqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,EAKbjC,KAAKypB,UA8BPvZ,EAAG1S,UAAU0Y,WAAa,SAAqBnB,EAAQC,EAAM7P,GAE3DnF,KAAKmV,MAAQ,CAAC,GACdnV,KAAKvB,OAAS,EAGd,IAAK,IAAI4X,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWtB,EAClEqB,IAEFA,IACAC,EAAWA,EAAUtB,EAAQ,EAO7B,IALA,IAAIuB,EAAQxB,EAAOtW,OAAS0G,EACxB+L,EAAMqF,EAAQF,EACdjR,EAAMkD,KAAKC,IAAIgO,EAAOA,EAAQrF,GAAO/L,EAErCuN,EAAO,EACFrR,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAKgV,EAChC3D,EAAOiD,EAAUZ,EAAQ1T,EAAGA,EAAIgV,EAASrB,GAEzChV,KAAKwW,MAAMF,GACPtW,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB,GAAY,IAARxB,EAAW,CACb,IAAIpE,EAAM,EAGV,IAFA4F,EAAOiD,EAAUZ,EAAQ1T,EAAG0T,EAAOtW,OAAQuW,GAEtC3T,EAAI,EAAGA,EAAI6P,EAAK7P,IACnByL,GAAOkI,EAGThV,KAAKwW,MAAM1J,GACP9M,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB1S,KAAKypB,UAGPvZ,EAAG1S,UAAU8G,KAAO,SAAeoS,GACjCA,EAAKvB,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BqV,EAAKvB,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAE7BqV,EAAKjY,OAASuB,KAAKvB,OACnBiY,EAAKxB,SAAWlV,KAAKkV,SACrBwB,EAAKtB,IAAMpV,KAAKoV,KAUlBlF,EAAG1S,UAAUw0C,MAAQ,SAAgBt7B,GACnCq7B,EAAKr7B,EAAM1W,OAGbkQ,EAAG1S,UAAUwT,MAAQ,WACnB,IAAIhB,EAAI,IAAIE,EAAG,MAEf,OADAlQ,KAAKsE,KAAK0L,GACHA,GAGTE,EAAG1S,UAAUmZ,QAAU,SAAkB5X,GACvC,KAAOiB,KAAKvB,OAASM,GACnBiB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAE9B,OAAOuB,MAITkQ,EAAG1S,UAAUisB,OAAS,WACpB,KAAOzpB,KAAKvB,OAAS,GAAqC,IAAhCuB,KAAKmV,MAAMnV,KAAKvB,OAAS,IACjDuB,KAAKvB,SAEP,OAAOuB,KAAK4W,aAGd1G,EAAG1S,UAAUoZ,UAAY,WAKvB,OAHoB,IAAhB5W,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,KAClCnV,KAAKkV,SAAW,GAEXlV,MAKa,qBAAX2J,QAAgD,oBAAfA,OAAOsoC,IACjD,IACE/hC,EAAG1S,UAAUmM,OAAOsoC,IAAI,+BAAiCxnC,EACzD,MAAO3K,GACPoQ,EAAG1S,UAAUiN,QAAUA,OAGzByF,EAAG1S,UAAUiN,QAAUA,EAGzB,SAASA,IACP,OAAQzK,KAAKoV,IAAM,UAAY,SAAWpV,KAAK4E,SAAS,IAAM,IAiChE,IAAIiS,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9D7G,EAAG1S,UAAUoH,SAAW,SAAmBoQ,EAAMqC,GAI/C,IAAI9L,EACJ,GAHA8L,EAAoB,EAAVA,GAAe,EAGZ,MAJbrC,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCzJ,EAAM,GAGN,IAFA,IAAItJ,EAAM,EACNoS,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,EAAI1Q,KAAKmV,MAAM9T,GACfqR,GAA+B,UAArBhC,GAAKzO,EAAOoS,IAAmBzP,SAAS,IAGpD2G,EADY,KADd8I,EAAS3D,IAAO,GAAKzO,EAAQ,WACVZ,IAAMrB,KAAKvB,OAAS,EAC/BoY,EAAM,EAAInE,EAAKjU,QAAUiU,EAAOnH,EAEhCmH,EAAOnH,GAEftJ,GAAO,IACI,KACTA,GAAO,GACPZ,KAMJ,IAHc,IAAVgT,IACF9I,EAAM8I,EAAMzP,SAAS,IAAM2G,GAEtBA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGT,GAAIyJ,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYR,EAAW9B,GAEvBuC,EAAYR,EAAW/B,GAC3BzJ,EAAM,GACN,IAAItD,EAAIjI,KAAKgR,QAEb,IADA/I,EAAEiN,SAAW,GACLjN,EAAEuP,UAAU,CAClB,IAAIxH,EAAI/H,EAAEiqC,MAAM36B,GAAW3S,SAASoQ,GAMlCzJ,GALFtD,EAAIA,EAAEyP,MAAMH,IAELC,SAGCxH,EAAIzE,EAFJsL,EAAMS,EAAYtH,EAAEvR,QAAUuR,EAAIzE,EAQ5C,IAHIvL,KAAKwX,WACPjM,EAAM,IAAMA,GAEPA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGTqE,GAAO,EAAO,oCAGhBM,EAAG1S,UAAUma,SAAW,WACtB,IAAIrM,EAAMtL,KAAKmV,MAAM,GASrB,OARoB,IAAhBnV,KAAKvB,OACP6M,GAAuB,SAAhBtL,KAAKmV,MAAM,GACO,IAAhBnV,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,GAEzC7J,GAAO,iBAAoC,SAAhBtL,KAAKmV,MAAM,GAC7BnV,KAAKvB,OAAS,GACvBmR,GAAO,EAAO,8CAEU,IAAlB5P,KAAKkV,UAAmB5J,EAAMA,GAGxC4E,EAAG1S,UAAU4N,OAAS,WACpB,OAAOpL,KAAK4E,SAAS,GAAI,IAGvB3G,IACFiS,EAAG1S,UAAUoa,SAAW,SAAmB7E,EAAQtU,GACjD,OAAOuB,KAAK6X,YAAY5Z,EAAQ8U,EAAQtU,KAI5CyR,EAAG1S,UAAU6S,QAAU,SAAkB0C,EAAQtU,GAC/C,OAAOuB,KAAK6X,YAAY1W,MAAO4R,EAAQtU,IA4gBzC,SAASuY,EAAYC,EAAMxG,EAAKlF,GAC9BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC,IAAIxU,EAAOuW,EAAKxY,OAASgS,EAAIhS,OAAU,EACvC8M,EAAI9M,OAASiC,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIsJ,EAAoB,EAAhBiN,EAAK9B,MAAM,GACfvP,EAAmB,EAAf6K,EAAI0E,MAAM,GACdnF,EAAIhG,EAAIpE,EAERuC,EAAS,SAAJ6H,EACLqE,EAASrE,EAAI,SAAa,EAC9BzE,EAAI4J,MAAM,GAAKhN,EAEf,IAAK,IAAI4I,EAAI,EAAGA,EAAIrQ,EAAKqQ,IAAK,CAM5B,IAHA,IAAImG,EAAS7C,IAAU,GACnB8C,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAK0P,EAAIlK,EAAK,EAIlBqQ,IADAlH,GAFAhG,EAAoB,EAAhBiN,EAAK9B,MAAM9T,KACfuE,EAAmB,EAAf6K,EAAI0E,MAAMtO,IACFsQ,GACG,SAAa,EAC5BA,EAAY,SAAJnH,EAEVzE,EAAI4J,MAAMpE,GAAa,EAARoG,EACf9C,EAAiB,EAAT6C,EAQV,OANc,IAAV7C,EACF9I,EAAI4J,MAAMpE,GAAa,EAARsD,EAEf9I,EAAI9M,SAGC8M,EAAIke,SAxiBbvZ,EAAG1S,UAAUqa,YAAc,SAAsBC,EAAW/E,EAAQtU,GAClEuB,KAAKypB,SAEL,IAAI/lB,EAAa1D,KAAK0D,aAClBqU,EAAYtZ,GAAU6J,KAAKoC,IAAI,EAAGhH,GACtCkM,EAAOlM,GAAcqU,EAAW,yCAChCnI,EAAOmI,EAAY,EAAG,+BAEtB,IAAIvP,EAfS,SAAmBsP,EAAW/Y,GAC3C,OAAI+Y,EAAUlZ,YACLkZ,EAAUlZ,YAAYG,GAExB,IAAI+Y,EAAU/Y,GAWXozC,CAASr6B,EAAWC,GAG9B,OADA/X,KAAK,gBADoB,OAAX+S,EAAkB,KAAO,OACRvK,EAAK9E,GAC7B8E,GAGT0H,EAAG1S,UAAU40C,eAAiB,SAAyB5pC,EAAK9E,GAI1D,IAHA,IAAI4sB,EAAW,EACXjc,EAAQ,EAEHhT,EAAI,EAAGyiB,EAAQ,EAAGziB,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAC/C,IAAIqR,EAAQ1S,KAAKmV,MAAM9T,IAAMyiB,EAASzP,EAEtC7L,EAAI8nB,KAAqB,IAAP5d,EACd4d,EAAW9nB,EAAI/J,SACjB+J,EAAI8nB,KAAe5d,GAAQ,EAAK,KAE9B4d,EAAW9nB,EAAI/J,SACjB+J,EAAI8nB,KAAe5d,GAAQ,GAAM,KAGrB,IAAVoR,GACEwM,EAAW9nB,EAAI/J,SACjB+J,EAAI8nB,KAAe5d,GAAQ,GAAM,KAEnC2B,EAAQ,EACRyP,EAAQ,IAERzP,EAAQ3B,IAAS,GACjBoR,GAAS,GAIb,GAAIwM,EAAW9nB,EAAI/J,OAGjB,IAFA+J,EAAI8nB,KAAcjc,EAEXic,EAAW9nB,EAAI/J,QACpB+J,EAAI8nB,KAAc,GAKxBpgB,EAAG1S,UAAU60C,eAAiB,SAAyB7pC,EAAK9E,GAI1D,IAHA,IAAI4sB,EAAW9nB,EAAI/J,OAAS,EACxB4V,EAAQ,EAEHhT,EAAI,EAAGyiB,EAAQ,EAAGziB,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAC/C,IAAIqR,EAAQ1S,KAAKmV,MAAM9T,IAAMyiB,EAASzP,EAEtC7L,EAAI8nB,KAAqB,IAAP5d,EACd4d,GAAY,IACd9nB,EAAI8nB,KAAe5d,GAAQ,EAAK,KAE9B4d,GAAY,IACd9nB,EAAI8nB,KAAe5d,GAAQ,GAAM,KAGrB,IAAVoR,GACEwM,GAAY,IACd9nB,EAAI8nB,KAAe5d,GAAQ,GAAM,KAEnC2B,EAAQ,EACRyP,EAAQ,IAERzP,EAAQ3B,IAAS,GACjBoR,GAAS,GAIb,GAAIwM,GAAY,EAGd,IAFA9nB,EAAI8nB,KAAcjc,EAEXic,GAAY,GACjB9nB,EAAI8nB,KAAc,GAKpBhoB,KAAK2P,MACP/H,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,OAAO,GAAKpI,KAAK2P,MAAMvH,IAGzBR,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,IAAIyH,EAAIzH,EACJV,EAAI,EAiBR,OAhBImI,GAAK,OACPnI,GAAK,GACLmI,KAAO,IAELA,GAAK,KACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAEFnI,EAAImI,GAIfjI,EAAG1S,UAAU4a,UAAY,SAAoB1H,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIyH,EAAIzH,EACJV,EAAI,EAoBR,OAnBqB,KAAZ,KAAJmI,KACHnI,GAAK,GACLmI,KAAO,IAEU,KAAV,IAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,GAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,IACHnI,IAEKA,GAITE,EAAG1S,UAAUqT,UAAY,WACvB,IAAIH,EAAI1Q,KAAKmV,MAAMnV,KAAKvB,OAAS,GAC7ByJ,EAAKlI,KAAKkY,WAAWxH,GACzB,OAA2B,IAAnB1Q,KAAKvB,OAAS,GAAUyJ,GAiBlCgI,EAAG1S,UAAU6a,SAAW,WACtB,GAAIrY,KAAKwX,SAAU,OAAO,EAG1B,IADA,IAAIxH,EAAI,EACC3O,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIuE,EAAI5F,KAAKoY,UAAUpY,KAAKmV,MAAM9T,IAElC,GADA2O,GAAKpK,EACK,KAANA,EAAU,MAEhB,OAAOoK,GAGTE,EAAG1S,UAAUkG,WAAa,WACxB,OAAO4E,KAAK6N,KAAKnW,KAAK6Q,YAAc,IAGtCX,EAAG1S,UAAU8a,OAAS,SAAiBC,GACrC,OAAsB,IAAlBvY,KAAKkV,SACAlV,KAAKwY,MAAMC,MAAMF,GAAOG,MAAM,GAEhC1Y,KAAKgR,SAGdd,EAAG1S,UAAUmb,SAAW,SAAmBJ,GACzC,OAAIvY,KAAK4Y,MAAML,EAAQ,GACdvY,KAAK6Y,KAAKN,GAAOG,MAAM,GAAGI,OAE5B9Y,KAAKgR,SAGdd,EAAG1S,UAAUub,MAAQ,WACnB,OAAyB,IAAlB/Y,KAAKkV,UAIdhF,EAAG1S,UAAUwb,IAAM,WACjB,OAAOhZ,KAAKgR,QAAQ8H,QAGtB5I,EAAG1S,UAAUsb,KAAO,WAKlB,OAJK9Y,KAAKwX,WACRxX,KAAKkV,UAAY,GAGZlV,MAITkQ,EAAG1S,UAAUyb,KAAO,SAAexI,GACjC,KAAOzQ,KAAKvB,OAASgS,EAAIhS,QACvBuB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAG9B,IAAK,IAAI4C,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAC9BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAG5C,OAAOrB,KAAKypB,UAGdvZ,EAAG1S,UAAU0b,IAAM,SAAczI,GAE/B,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKiZ,KAAKxI,IAInBP,EAAG1S,UAAU2b,GAAK,SAAa1I,GAC7B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkI,IAAIzI,GAC/CA,EAAIO,QAAQkI,IAAIlZ,OAGzBkQ,EAAG1S,UAAU4b,IAAM,SAAc3I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQiI,KAAKxI,GAChDA,EAAIO,QAAQiI,KAAKjZ,OAI1BkQ,EAAG1S,UAAU6b,MAAQ,SAAgB5I,GAEnC,IAAI7K,EAEFA,EADE5F,KAAKvB,OAASgS,EAAIhS,OAChBgS,EAEAzQ,KAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAK5C,OAFArB,KAAKvB,OAASmH,EAAEnH,OAETuB,KAAKypB,UAGdvZ,EAAG1S,UAAU8b,KAAO,SAAe7I,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKqZ,MAAM5I,IAIpBP,EAAG1S,UAAU+b,IAAM,SAAc9I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQsI,KAAK7I,GAChDA,EAAIO,QAAQsI,KAAKtZ,OAG1BkQ,EAAG1S,UAAUgc,KAAO,SAAe/I,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQqI,MAAM5I,GACjDA,EAAIO,QAAQqI,MAAMrZ,OAI3BkQ,EAAG1S,UAAUic,MAAQ,SAAgBhJ,GAEnC,IAAIzG,EACApE,EACA5F,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAAKuE,EAAEuP,MAAM9T,GAGvC,GAAIrB,OAASgK,EACX,KAAO3I,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAM5B,OAFArB,KAAKvB,OAASuL,EAAEvL,OAETuB,KAAKypB,UAGdvZ,EAAG1S,UAAUkc,KAAO,SAAejJ,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKyZ,MAAMhJ,IAIpBP,EAAG1S,UAAUmc,IAAM,SAAclJ,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQ0I,KAAKjJ,GAChDA,EAAIO,QAAQ0I,KAAK1Z,OAG1BkQ,EAAG1S,UAAUoc,KAAO,SAAenJ,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQyI,MAAMhJ,GACjDA,EAAIO,QAAQyI,MAAMzZ,OAI3BkQ,EAAG1S,UAAUib,MAAQ,SAAgBF,GACnC3I,EAAwB,kBAAV2I,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBvR,KAAK6N,KAAKoC,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvBvY,KAAK2W,QAAQkD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIxY,EAAI,EAAGA,EAAIwY,EAAaxY,IAC/BrB,KAAKmV,MAAM9T,GAAsB,UAAhBrB,KAAKmV,MAAM9T,GAS9B,OALIyY,EAAW,IACb9Z,KAAKmV,MAAM9T,IAAMrB,KAAKmV,MAAM9T,GAAM,UAAc,GAAKyY,GAIhD9Z,KAAKypB,UAGdvZ,EAAG1S,UAAUqb,KAAO,SAAeN,GACjC,OAAOvY,KAAKgR,QAAQyH,MAAMF,IAI5BrI,EAAG1S,UAAUuc,KAAO,SAAeC,EAAKzV,GACtCqL,EAAsB,kBAARoK,GAAoBA,GAAO,GAEzC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAha,KAAK2W,QAAQ1U,EAAM,GAGjBjC,KAAKmV,MAAMlT,GADTsC,EACgBvE,KAAKmV,MAAMlT,GAAQ,GAAKgY,EAExBja,KAAKmV,MAAMlT,KAAS,GAAKgY,GAGtCja,KAAKypB,UAIdvZ,EAAG1S,UAAU0c,KAAO,SAAezJ,GACjC,IAAIT,EAkBAhG,EAAGpE,EAfP,GAAsB,IAAlB5F,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAI7B,OAHAlV,KAAKkV,SAAW,EAChBlF,EAAIhQ,KAAKma,KAAK1J,GACdzQ,KAAKkV,UAAY,EACVlV,KAAK4W,YAGP,GAAsB,IAAlB5W,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAIpC,OAHAzE,EAAIyE,SAAW,EACflF,EAAIhQ,KAAKma,KAAK1J,GACdA,EAAIyE,SAAW,EACRlF,EAAE4G,YAKP5W,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5B2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,EAC1CrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAEhB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAClC2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,EACvBrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAIhB,GADAhQ,KAAKvB,OAASuL,EAAEvL,OACF,IAAV4V,EACFrU,KAAKmV,MAAMnV,KAAKvB,QAAU4V,EAC1BrU,KAAKvB,cAEA,GAAIuL,IAAMhK,KACf,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAI5B,OAAOrB,MAITkQ,EAAG1S,UAAU4c,IAAM,SAAc3J,GAC/B,IAAIjI,EACJ,OAAqB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UAC7BzE,EAAIyE,SAAW,EACf1M,EAAMxI,KAAKmO,IAAIsC,GACfA,EAAIyE,UAAY,EACT1M,GACmB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UACpClV,KAAKkV,SAAW,EAChB1M,EAAMiI,EAAItC,IAAInO,MACdA,KAAKkV,SAAW,EACT1M,GAGLxI,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkJ,KAAKzJ,GAEhDA,EAAIO,QAAQkJ,KAAKla,OAI1BkQ,EAAG1S,UAAU2c,KAAO,SAAe1J,GAEjC,GAAqB,IAAjBA,EAAIyE,SAAgB,CACtBzE,EAAIyE,SAAW,EACf,IAAIlF,EAAIhQ,KAAKka,KAAKzJ,GAElB,OADAA,EAAIyE,SAAW,EACRlF,EAAE4G,YAGJ,GAAsB,IAAlB5W,KAAKkV,SAId,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAKka,KAAKzJ,GACVzQ,KAAKkV,SAAW,EACTlV,KAAK4W,YAId,IAWI5M,EAAGpE,EAXHkQ,EAAM9V,KAAK8V,IAAIrF,GAGnB,GAAY,IAARqF,EAIF,OAHA9V,KAAKkV,SAAW,EAChBlV,KAAKvB,OAAS,EACduB,KAAKmV,MAAM,GAAK,EACTnV,KAKL8V,EAAM,GACR9L,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAE5BgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,IAC7B,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAElB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAElCgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,IACV,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAIlB,GAAc,IAAVqE,GAAehT,EAAI2I,EAAEvL,QAAUuL,IAAMhK,KACvC,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAU5B,OANArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,GAEhC2I,IAAMhK,OACRA,KAAKkV,SAAW,GAGXlV,KAAKypB,UAIdvZ,EAAG1S,UAAU2Q,IAAM,SAAcsC,GAC/B,OAAOzQ,KAAKgR,QAAQmJ,KAAK1J,IA+C3B,IAAI4J,EAAc,SAAsBpD,EAAMxG,EAAKlF,GACjD,IAIIpD,EACAmS,EACApS,EANA8B,EAAIiN,EAAK9B,MACTvP,EAAI6K,EAAI0E,MACRoF,EAAIhP,EAAI4J,MACRlN,EAAI,EAIJuS,EAAY,EAAPxQ,EAAE,GACPyQ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Q,EAAE,GACP4Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Q,EAAE,GACP+Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjR,EAAE,GACPkR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpR,EAAE,GACPqR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvR,EAAE,GACPwR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1R,EAAE,GACP2R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7R,EAAE,GACP8R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhS,EAAE,GACPiS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnS,EAAE,GACPoS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1W,EAAE,GACP2W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7W,EAAE,GACP8W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhX,EAAE,GACPiX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnX,EAAE,GACPoX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtX,EAAE,GACPuX,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPzX,EAAE,GACP0X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5X,EAAE,GACP6X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/X,EAAE,GACPgY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlY,EAAE,GACPmY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrY,EAAE,GACPsY,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB1S,EAAI2J,SAAW+B,EAAK/B,SAAWzE,EAAIyE,SACnC3J,EAAI9M,OAAS,GAMb,IAAI2f,IAAQnW,GAJZE,EAAKG,KAAK+V,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAMhS,KAAK+V,KAAK5D,EAAK+B,IACRlU,KAAK+V,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDtU,IAFAC,EAAKI,KAAK+V,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENjW,EAAKG,KAAK+V,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKzD,EAAK4B,IACRlU,KAAK+V,KAAKxD,EAAK0B,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQrW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKkC,GAAQ,GACvBrU,KAAK+V,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDzU,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENnW,EAAKG,KAAK+V,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKtD,EAAKyB,IACRlU,KAAK+V,KAAKrD,EAAKuB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKrD,EAAKwB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK+B,GAAQ,GACvBrU,KAAK+V,KAAKxD,EAAK6B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQtW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKqC,GAAQ,GACvBxU,KAAK+V,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD5U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENpW,EAAKG,KAAK+V,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKnD,EAAKsB,IACRlU,KAAK+V,KAAKlD,EAAKoB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKlD,EAAKqB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK4B,GAAQ,GACvBrU,KAAK+V,KAAKrD,EAAK0B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK2B,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKkC,GAAQ,GACvBxU,KAAK+V,KAAKxD,EAAKgC,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQvW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKwC,GAAQ,GACvB3U,KAAK+V,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD/U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENrW,EAAKG,KAAK+V,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKhD,EAAKmB,IACRlU,KAAK+V,KAAK/C,EAAKiB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK/C,EAAKkB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKyB,GAAQ,GACvBrU,KAAK+V,KAAKlD,EAAKuB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKwB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK+B,GAAQ,GACvBxU,KAAK+V,KAAKrD,EAAK6B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK8B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKqC,GAAQ,GACvB3U,KAAK+V,KAAKxD,EAAKmC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQxW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK2C,IAAQ,GACvB9U,KAAK+V,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDlV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENtW,EAAKG,KAAK+V,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK7C,EAAKgB,IACRlU,KAAK+V,KAAK5C,EAAKc,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK5C,EAAKe,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKsB,GAAQ,GACvBrU,KAAK+V,KAAK/C,EAAKoB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKqB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK4B,GAAQ,GACvBxU,KAAK+V,KAAKlD,EAAK0B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK2B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKkC,GAAQ,GACvB3U,KAAK+V,KAAKrD,EAAKgC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKiC,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKwC,IAAQ,GACvB9U,KAAK+V,KAAKxD,EAAKsC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQzW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK8C,IAAQ,GACvBjV,KAAK+V,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDrV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENvW,EAAKG,KAAK+V,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK1C,EAAKa,IACRlU,KAAK+V,KAAKzC,EAAKW,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKzC,EAAKY,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKmB,GAAQ,GACvBrU,KAAK+V,KAAK5C,EAAKiB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKkB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKyB,GAAQ,GACvBxU,KAAK+V,KAAK/C,EAAKuB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKwB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK+B,GAAQ,GACvB3U,KAAK+V,KAAKlD,EAAK6B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK8B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKqC,IAAQ,GACvB9U,KAAK+V,KAAKrD,EAAKmC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKoC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK2C,IAAQ,GACvBjV,KAAK+V,KAAKxD,EAAKyC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ1W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKiD,IAAQ,GACvBpV,KAAK+V,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDxV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENxW,EAAKG,KAAK+V,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKvC,EAAKU,IACRlU,KAAK+V,KAAKtC,EAAKQ,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKtC,EAAKS,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKgB,GAAQ,GACvBrU,KAAK+V,KAAKzC,EAAKc,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKe,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKsB,GAAQ,GACvBxU,KAAK+V,KAAK5C,EAAKoB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKqB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK4B,GAAQ,GACvB3U,KAAK+V,KAAK/C,EAAK0B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK2B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKkC,IAAQ,GACvB9U,KAAK+V,KAAKlD,EAAKgC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKiC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKwC,IAAQ,GACvBjV,KAAK+V,KAAKrD,EAAKsC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKuC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK8C,IAAQ,GACvBpV,KAAK+V,KAAKxD,EAAK4C,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ3W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKoD,IAAQ,GACvBvV,KAAK+V,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD3V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENzW,EAAKG,KAAK+V,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKpC,EAAKO,IACRlU,KAAK+V,KAAKnC,EAAKK,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKnC,EAAKM,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKa,GAAQ,GACvBrU,KAAK+V,KAAKtC,EAAKW,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKY,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKmB,GAAQ,GACvBxU,KAAK+V,KAAKzC,EAAKiB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKkB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKyB,GAAQ,GACvB3U,KAAK+V,KAAK5C,EAAKuB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKwB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK+B,IAAQ,GACvB9U,KAAK+V,KAAK/C,EAAK6B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK8B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKqC,IAAQ,GACvBjV,KAAK+V,KAAKlD,EAAKmC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKoC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK2C,IAAQ,GACvBpV,KAAK+V,KAAKrD,EAAKyC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK0C,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKiD,IAAQ,GACvBvV,KAAK+V,KAAKxD,EAAK+C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ5W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKuD,IAAQ,GACvB1V,KAAK+V,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD9V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN1W,EAAKG,KAAK+V,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKI,IACRlU,KAAK+V,KAAKhC,EAAKE,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKhC,EAAKG,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKU,GAAQ,GACvBrU,KAAK+V,KAAKnC,EAAKQ,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKS,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKgB,GAAQ,GACvBxU,KAAK+V,KAAKtC,EAAKc,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKe,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKsB,GAAQ,GACvB3U,KAAK+V,KAAKzC,EAAKoB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKqB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK4B,IAAQ,GACvB9U,KAAK+V,KAAK5C,EAAK0B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK2B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKkC,IAAQ,GACvBjV,KAAK+V,KAAK/C,EAAKgC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKiC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKwC,IAAQ,GACvBpV,KAAK+V,KAAKlD,EAAKsC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKuC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK8C,IAAQ,GACvBvV,KAAK+V,KAAKrD,EAAK4C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK6C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKoD,IAAQ,GACvB1V,KAAK+V,KAAKxD,EAAKkD,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ7W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK0D,IAAQ,GACvB7V,KAAK+V,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAEN3W,EAAKG,KAAK+V,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKO,IACRrU,KAAK+V,KAAKhC,EAAKK,GAAQ,EACpCxU,EAAKI,KAAK+V,KAAKhC,EAAKM,GACpBxU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKa,GAAQ,GACvBxU,KAAK+V,KAAKnC,EAAKW,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKY,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKmB,GAAQ,GACvB3U,KAAK+V,KAAKtC,EAAKiB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKkB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKyB,IAAQ,GACvB9U,KAAK+V,KAAKzC,EAAKuB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKwB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK+B,IAAQ,GACvBjV,KAAK+V,KAAK5C,EAAK6B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK8B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKqC,IAAQ,GACvBpV,KAAK+V,KAAK/C,EAAKmC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKoC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK2C,IAAQ,GACvBvV,KAAK+V,KAAKlD,EAAKyC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK0C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKiD,IAAQ,GACvB1V,KAAK+V,KAAKrD,EAAK+C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS9W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKuD,IAAQ,GACvB7V,KAAK+V,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP5W,EAAKG,KAAK+V,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKU,IACRxU,KAAK+V,KAAKhC,EAAKQ,GAAQ,EACpC3U,EAAKI,KAAK+V,KAAKhC,EAAKS,GACpB3U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKgB,GAAQ,GACvB3U,KAAK+V,KAAKnC,EAAKc,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKe,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKsB,IAAQ,GACvB9U,KAAK+V,KAAKtC,EAAKoB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKqB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK4B,IAAQ,GACvBjV,KAAK+V,KAAKzC,EAAK0B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK2B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKkC,IAAQ,GACvBpV,KAAK+V,KAAK5C,EAAKgC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKiC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKwC,IAAQ,GACvBvV,KAAK+V,KAAK/C,EAAKsC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKuC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK8C,IAAQ,GACvB1V,KAAK+V,KAAKlD,EAAK4C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS/W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKoD,IAAQ,GACvB7V,KAAK+V,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP7W,EAAKG,KAAK+V,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKa,IACR3U,KAAK+V,KAAKhC,EAAKW,GAAQ,EACpC9U,EAAKI,KAAK+V,KAAKhC,EAAKY,GACpB9U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKmB,IAAQ,GACvB9U,KAAK+V,KAAKnC,EAAKiB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKkB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKyB,IAAQ,GACvBjV,KAAK+V,KAAKtC,EAAKuB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKwB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK+B,IAAQ,GACvBpV,KAAK+V,KAAKzC,EAAK6B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK8B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKqC,IAAQ,GACvBvV,KAAK+V,KAAK5C,EAAKmC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKoC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK2C,IAAQ,GACvB1V,KAAK+V,KAAK/C,EAAKyC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAShX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKiD,IAAQ,GACvB7V,KAAK+V,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP9W,EAAKG,KAAK+V,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKgB,KACR9U,KAAK+V,KAAKhC,EAAKc,GAAQ,EACpCjV,EAAKI,KAAK+V,KAAKhC,EAAKe,IACpBjV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKsB,IAAQ,GACvBjV,KAAK+V,KAAKnC,EAAKoB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKqB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK4B,IAAQ,GACvBpV,KAAK+V,KAAKtC,EAAK0B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK2B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKkC,IAAQ,GACvBvV,KAAK+V,KAAKzC,EAAKgC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKiC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKwC,IAAQ,GACvB1V,KAAK+V,KAAK5C,EAAKsC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASjX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK8C,IAAQ,GACvB7V,KAAK+V,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP/W,EAAKG,KAAK+V,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKmB,KACRjV,KAAK+V,KAAKhC,EAAKiB,IAAQ,EACpCpV,EAAKI,KAAK+V,KAAKhC,EAAKkB,IACpBpV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKyB,IAAQ,GACvBpV,KAAK+V,KAAKnC,EAAKuB,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKwB,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK+B,IAAQ,GACvBvV,KAAK+V,KAAKtC,EAAK6B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK8B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKqC,IAAQ,GACvB1V,KAAK+V,KAAKzC,EAAKmC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASlX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK2C,IAAQ,GACvB7V,KAAK+V,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPhX,EAAKG,KAAK+V,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKsB,KACRpV,KAAK+V,KAAKhC,EAAKoB,IAAQ,EACpCvV,EAAKI,KAAK+V,KAAKhC,EAAKqB,IACpBvV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK4B,IAAQ,GACvBvV,KAAK+V,KAAKnC,EAAK0B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK2B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKkC,IAAQ,GACvB1V,KAAK+V,KAAKtC,EAAKgC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASnX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKwC,IAAQ,GACvB7V,KAAK+V,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPjX,EAAKG,KAAK+V,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKyB,KACRvV,KAAK+V,KAAKhC,EAAKuB,IAAQ,EACpC1V,EAAKI,KAAK+V,KAAKhC,EAAKwB,IACpB1V,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK+B,IAAQ,GACvB1V,KAAK+V,KAAKnC,EAAK6B,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASpX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKqC,IAAQ,GACvB7V,KAAK+V,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPlX,EAAKG,KAAK+V,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK4B,KACR1V,KAAK+V,KAAKhC,EAAK0B,IAAQ,EACpC7V,EAAKI,KAAK+V,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASrX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKkC,IAAQ,GACvB7V,KAAK+V,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAStX,GAJbE,EAAKG,KAAK+V,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK+B,KACR7V,KAAK+V,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAjW,IAFAC,EAAKI,KAAK+V,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANtX,IACFsS,EAAE,IAAMtS,EACRsD,EAAI9M,UAEC8M,GAQT,SAASsU,EAAU5I,EAAMxG,EAAKlF,GAC5BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC3J,EAAI9M,OAASwY,EAAKxY,OAASgS,EAAIhS,OAI/B,IAFA,IAAI4V,EAAQ,EACRuL,EAAU,EACL7O,EAAI,EAAGA,EAAIxF,EAAI9M,OAAS,EAAGsS,IAAK,CAGvC,IAAImG,EAAS0I,EACbA,EAAU,EAGV,IAFA,IAAIzI,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAI0P,EAAIlK,EAGRmJ,GAFoB,EAAhBiH,EAAK9B,MAAM9T,KACI,EAAfoP,EAAI0E,MAAMtO,IAGdsB,EAAS,SAAJ6H,EAGTmH,EAAa,UADbhP,EAAMA,EAAKgP,EAAS,GAIpByI,IAFA1I,GAHAA,EAAUA,GAAWlH,EAAI,SAAa,GAAM,IAGxB7H,IAAO,IAAO,KAEZ,GACtB+O,GAAU,SAEZ3L,EAAI4J,MAAMpE,GAAKoG,EACf9C,EAAQ6C,EACRA,EAAS0I,EAQX,OANc,IAAVvL,EACF9I,EAAI4J,MAAMpE,GAAKsD,EAEf9I,EAAI9M,SAGC8M,EAAIke,SAGb,SAASjK,EAAYvI,EAAMxG,EAAKlF,GAI9B,OAAOsU,EAAS5I,EAAMxG,EAAKlF,GAsB7B,SAASkU,EAAMxV,EAAGC,GAChBlK,KAAKiK,EAAIA,EACTjK,KAAKkK,EAAIA,EAzEN5B,KAAK+V,OACRhE,EAAcrD,GAmDhB9G,EAAG1S,UAAUmiB,MAAQ,SAAgBlP,EAAKlF,GACxC,IACI7K,EAAMV,KAAKvB,OAASgS,EAAIhS,OAW5B,OAVoB,KAAhBuB,KAAKvB,QAAgC,KAAfgS,EAAIhS,OACtB4b,EAAYra,KAAMyQ,EAAKlF,GACpB7K,EAAM,GACTsW,EAAWhX,KAAMyQ,EAAKlF,GACnB7K,EAAM,KACTmf,EAAS7f,KAAMyQ,EAAKlF,GAEpBiU,EAAWxf,KAAMyQ,EAAKlF,IAchCkU,EAAKjiB,UAAUsiB,QAAU,SAAkBC,GAGzC,IAFA,IAAI5H,EAAI,IAAIhX,MAAM4e,GACdhQ,EAAIG,EAAG1S,UAAU0a,WAAW6H,GAAK,EAC5B1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrB8W,EAAE9W,GAAKrB,KAAKggB,OAAO3e,EAAG0O,EAAGgQ,GAG3B,OAAO5H,GAITsH,EAAKjiB,UAAUwiB,OAAS,SAAiB/V,EAAG8F,EAAGgQ,GAC7C,GAAU,IAAN9V,GAAWA,IAAM8V,EAAI,EAAG,OAAO9V,EAGnC,IADA,IAAIgW,EAAK,EACA5e,EAAI,EAAGA,EAAI0O,EAAG1O,IACrB4e,IAAW,EAAJhW,IAAW8F,EAAI1O,EAAI,EAC1B4I,IAAM,EAGR,OAAOgW,GAKTR,EAAKjiB,UAAU0iB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBif,EAAKjf,GAAK+e,EAAID,EAAI9e,IAClBkf,EAAKlf,GAAKgf,EAAIF,EAAI9e,KAItBoe,EAAKjiB,UAAUgjB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEngB,KAAKkgB,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIU,EAAI,EAAGA,EAAIV,EAAGU,IAAM,EAM3B,IALA,IAAI1Q,EAAI0Q,GAAK,EAETC,EAAQpY,KAAKqY,IAAI,EAAIrY,KAAKsY,GAAK7Q,GAC/B8Q,EAAQvY,KAAKwY,IAAI,EAAIxY,KAAKsY,GAAK7Q,GAE1B8C,EAAI,EAAGA,EAAIkN,EAAGlN,GAAK9C,EAI1B,IAHA,IAAIgR,EAASL,EACTM,EAASH,EAEJha,EAAI,EAAGA,EAAI4Z,EAAG5Z,IAAK,CAC1B,IAAIoa,EAAKX,EAAKzN,EAAIhM,GACdqa,EAAKX,EAAK1N,EAAIhM,GAEdsa,EAAKb,EAAKzN,EAAIhM,EAAI4Z,GAClBW,EAAKb,EAAK1N,EAAIhM,EAAI4Z,GAElBY,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKzN,EAAIhM,GAAKoa,EAAKE,EACnBZ,EAAK1N,EAAIhM,GAAKqa,EAAKE,EAEnBd,EAAKzN,EAAIhM,EAAI4Z,GAAKQ,EAAKE,EACvBZ,EAAK1N,EAAIhM,EAAI4Z,GAAKS,EAAKE,EAGnBva,IAAMkJ,IACRsR,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,KAOnB5B,EAAKjiB,UAAU8jB,YAAc,SAAsBzb,EAAGC,GACpD,IAAIia,EAAqB,EAAjBzX,KAAKoC,IAAI5E,EAAGD,GAChB0b,EAAU,EAAJxB,EACN1e,EAAI,EACR,IAAK0e,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B1e,IAGF,OAAO,GAAKA,EAAI,EAAIkgB,GAGtB9B,EAAKjiB,UAAUgkB,UAAY,SAAoBpB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAI8W,EAAIiI,EAAI/e,GAEZ+e,EAAI/e,GAAK+e,EAAIL,EAAI1e,EAAI,GACrB+e,EAAIL,EAAI1e,EAAI,GAAK8W,EAEjBA,EAAIkI,EAAIhf,GAERgf,EAAIhf,IAAMgf,EAAIN,EAAI1e,EAAI,GACtBgf,EAAIN,EAAI1e,EAAI,IAAM8W,IAItBsH,EAAKjiB,UAAUikB,aAAe,SAAuB3Q,EAAIiP,GAEvD,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAIqP,EAAoC,KAAhCpI,KAAKoZ,MAAM5Q,EAAG,EAAIzP,EAAI,GAAK0e,GACjCzX,KAAKoZ,MAAM5Q,EAAG,EAAIzP,GAAK0e,GACvB1L,EAEFvD,EAAGzP,GAAS,SAAJqP,EAGN2D,EADE3D,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT2O,EAAKjiB,UAAUmkB,WAAa,SAAqB7Q,EAAIpQ,EAAK0f,EAAKL,GAE7D,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAIX,EAAKW,IACvBgT,GAAyB,EAARvD,EAAGzP,GAEpB+e,EAAI,EAAI/e,GAAa,KAARgT,EAAgBA,KAAkB,GAC/C+L,EAAI,EAAI/e,EAAI,GAAa,KAARgT,EAAgBA,KAAkB,GAIrD,IAAKhT,EAAI,EAAIX,EAAKW,EAAI0e,IAAK1e,EACzB+e,EAAI/e,GAAK,EAGXuO,EAAiB,IAAVyE,GACPzE,EAA6B,MAAb,KAARyE,KAGVoL,EAAKjiB,UAAUokB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAI1gB,MAAM4e,GACV1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBwgB,EAAGxgB,GAAK,EAGV,OAAOwgB,GAGTpC,EAAKjiB,UAAUkiB,KAAO,SAAezV,EAAGC,EAAGqB,GACzC,IAAIwU,EAAI,EAAI/f,KAAKshB,YAAYrX,EAAExL,OAAQyL,EAAEzL,QAErC0hB,EAAMngB,KAAK8f,QAAQC,GAEnB+B,EAAI9hB,KAAK4hB,KAAK7B,GAEdK,EAAM,IAAIjf,MAAM4e,GAChBgC,EAAO,IAAI5gB,MAAM4e,GACjBiC,EAAO,IAAI7gB,MAAM4e,GAEjBkC,EAAO,IAAI9gB,MAAM4e,GACjBmC,EAAQ,IAAI/gB,MAAM4e,GAClBoC,EAAQ,IAAIhhB,MAAM4e,GAElBqC,EAAO7W,EAAI4J,MACfiN,EAAK3jB,OAASshB,EAEd/f,KAAK2hB,WAAW1X,EAAEkL,MAAOlL,EAAExL,OAAQ2hB,EAAKL,GACxC/f,KAAK2hB,WAAWzX,EAAEiL,MAAOjL,EAAEzL,OAAQwjB,EAAMlC,GAEzC/f,KAAKwgB,UAAUJ,EAAK0B,EAAGC,EAAMC,EAAMjC,EAAGI,GACtCngB,KAAKwgB,UAAUyB,EAAMH,EAAGI,EAAOC,EAAOpC,EAAGI,GAEzC,IAAK,IAAI9e,EAAI,EAAGA,EAAI0e,EAAG1e,IAAK,CAC1B,IAAIggB,EAAKU,EAAK1gB,GAAK6gB,EAAM7gB,GAAK2gB,EAAK3gB,GAAK8gB,EAAM9gB,GAC9C2gB,EAAK3gB,GAAK0gB,EAAK1gB,GAAK8gB,EAAM9gB,GAAK2gB,EAAK3gB,GAAK6gB,EAAM7gB,GAC/C0gB,EAAK1gB,GAAKggB,EAUZ,OAPArhB,KAAKwhB,UAAUO,EAAMC,EAAMjC,GAC3B/f,KAAKwgB,UAAUuB,EAAMC,EAAMI,EAAMN,EAAG/B,EAAGI,GACvCngB,KAAKwhB,UAAUY,EAAMN,EAAG/B,GACxB/f,KAAKyhB,aAAaW,EAAMrC,GAExBxU,EAAI2J,SAAWjL,EAAEiL,SAAWhL,EAAEgL,SAC9B3J,EAAI9M,OAASwL,EAAExL,OAASyL,EAAEzL,OACnB8M,EAAIke,UAIbvZ,EAAG1S,UAAU+O,IAAM,SAAckE,GAC/B,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjCuB,KAAK2f,MAAMlP,EAAKlF,IAIzB2E,EAAG1S,UAAU6kB,KAAO,SAAe5R,GACjC,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjC+gB,EAAWxf,KAAMyQ,EAAKlF,IAI/B2E,EAAG1S,UAAU6gB,KAAO,SAAe5N,GACjC,OAAOzQ,KAAKgR,QAAQ2O,MAAMlP,EAAKzQ,OAGjCkQ,EAAG1S,UAAUgZ,MAAQ,SAAgB/F,GACnC,IAAI6hC,EAAW7hC,EAAM,EACjB6hC,IAAU7hC,GAAOA,GAErBb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UAIb,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAUoP,EAC1BtI,GAAU,SAAJuI,IAA0B,SAAR2D,GAC5BA,IAAU,GACVA,GAAU3D,EAAI,SAAa,EAE3B2D,GAASlM,IAAO,GAChBnI,KAAKmV,MAAM9T,GAAU,SAAL8G,EAQlB,OALc,IAAVkM,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAGA6zC,EAAWtyC,KAAK8Y,OAAS9Y,MAGlCkQ,EAAG1S,UAAU8kB,KAAO,SAAe7R,GACjC,OAAOzQ,KAAKgR,QAAQwF,MAAM/F,IAI5BP,EAAG1S,UAAU+kB,IAAM,WACjB,OAAOviB,KAAKuM,IAAIvM,OAIlBkQ,EAAG1S,UAAUglB,KAAO,WAClB,OAAOxiB,KAAKqe,KAAKre,KAAKgR,UAIxBd,EAAG1S,UAAUsP,IAAM,SAAc2D,GAC/B,IAAIC,EA7xCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIvP,MAAMsP,EAAII,aAEbmJ,EAAM,EAAGA,EAAMtJ,EAAEjS,OAAQub,IAAO,CACvC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtJ,EAAEsJ,GAAQvJ,EAAI0E,MAAMlT,KAASgY,EAAQ,EAGvC,OAAOvJ,EAmxCC+R,CAAWhS,GACnB,GAAiB,IAAbC,EAAEjS,OAAc,OAAO,IAAIyR,EAAG,GAIlC,IADA,IAAI1H,EAAMxI,KACDqB,EAAI,EAAGA,EAAIqP,EAAEjS,QACP,IAATiS,EAAErP,GADsBA,IAAKmH,EAAMA,EAAI+Z,OAI7C,KAAMlhB,EAAIqP,EAAEjS,OACV,IAAK,IAAIuZ,EAAIxP,EAAI+Z,MAAOlhB,EAAIqP,EAAEjS,OAAQ4C,IAAK2W,EAAIA,EAAEuK,MAClC,IAAT7R,EAAErP,KAENmH,EAAMA,EAAI+D,IAAIyL,IAIlB,OAAOxP,GAIT0H,EAAG1S,UAAUklB,OAAS,SAAiB/R,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAGItP,EAHA2O,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GACjB2S,EAAa,WAAe,GAAK3S,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIqE,EAAQ,EAEZ,IAAKhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAChC,IAAIuhB,EAAW5iB,KAAKmV,MAAM9T,GAAKshB,EAC3B1a,GAAsB,EAAhBjI,KAAKmV,MAAM9T,IAAUuhB,GAAa5S,EAC5ChQ,KAAKmV,MAAM9T,GAAK4G,EAAIoM,EACpBA,EAAQuO,IAAc,GAAK5S,EAGzBqE,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAIT,GAAU,IAANgiB,EAAS,CACX,IAAKpf,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAChCrB,KAAKmV,MAAM9T,EAAIof,GAAKzgB,KAAKmV,MAAM9T,GAGjC,IAAKA,EAAI,EAAGA,EAAIof,EAAGpf,IACjBrB,KAAKmV,MAAM9T,GAAK,EAGlBrB,KAAKvB,QAAUgiB,EAGjB,OAAOzgB,KAAKypB,UAGdvZ,EAAG1S,UAAUqlB,MAAQ,SAAgBlS,GAGnC,OADAf,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAK0iB,OAAO/R,IAMrBT,EAAG1S,UAAU8T,OAAS,SAAiBX,EAAMmS,EAAMC,GAEjD,IAAIC,EADJpT,EAAuB,kBAATe,GAAqBA,GAAQ,GAGzCqS,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9S,EAAIW,EAAO,GACX8P,EAAInY,KAAKC,KAAKoI,EAAOX,GAAK,GAAIhQ,KAAKvB,QACnCwkB,EAAO,SAAc,WAAcjT,GAAMA,EACzCkT,EAAcH,EAMlB,GAJAC,GAAKvC,EACLuC,EAAI1a,KAAKoC,IAAI,EAAGsY,GAGZE,EAAa,CACf,IAAK,IAAI7hB,EAAI,EAAGA,EAAIof,EAAGpf,IACrB6hB,EAAY/N,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAEpC6hB,EAAYzkB,OAASgiB,EAGvB,GAAU,IAANA,QAEG,GAAIzgB,KAAKvB,OAASgiB,EAEvB,IADAzgB,KAAKvB,QAAUgiB,EACVpf,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC3BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,EAAIof,QAGjCzgB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,EAGhB,IAAI4V,EAAQ,EACZ,IAAKhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,IAAgB,IAAVgT,GAAehT,GAAK2hB,GAAI3hB,IAAK,CAChE,IAAIqR,EAAuB,EAAhB1S,KAAKmV,MAAM9T,GACtBrB,KAAKmV,MAAM9T,GAAMgT,GAAU,GAAKrE,EAAO0C,IAAS1C,EAChDqE,EAAQ3B,EAAOuQ,EAajB,OATIC,GAAyB,IAAV7O,IACjB6O,EAAY/N,MAAM+N,EAAYzkB,UAAY4V,GAGxB,IAAhBrU,KAAKvB,SACPuB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,GAGTuB,KAAKypB,UAGdvZ,EAAG1S,UAAU2lB,MAAQ,SAAgBxS,EAAMmS,EAAMC,GAG/C,OADAnT,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAKsR,OAAOX,EAAMmS,EAAMC,IAIjC7S,EAAG1S,UAAU4lB,KAAO,SAAezS,GACjC,OAAO3Q,KAAKgR,QAAQ6R,MAAMlS,IAG5BT,EAAG1S,UAAU6lB,MAAQ,SAAgB1S,GACnC,OAAO3Q,KAAKgR,QAAQ0R,OAAO/R,IAI7BT,EAAG1S,UAAU8lB,KAAO,SAAe3S,GACjC,OAAO3Q,KAAKgR,QAAQmS,MAAMxS,IAG5BT,EAAG1S,UAAU+lB,MAAQ,SAAgB5S,GACnC,OAAO3Q,KAAKgR,QAAQM,OAAOX,IAI7BT,EAAG1S,UAAUob,MAAQ,SAAgBoB,GACnCpK,EAAsB,kBAARoK,GAAoBA,GAAO,GACzC,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,QAAIhQ,KAAKvB,QAAUgiB,OAGXzgB,KAAKmV,MAAMsL,GAELzI,IAIhB9H,EAAG1S,UAAUgmB,OAAS,SAAiB7S,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAAIX,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GAIrB,GAFAJ,EAAyB,IAAlB5P,KAAKkV,SAAgB,2CAExBlV,KAAKvB,QAAUgiB,EACjB,OAAOzgB,KAQT,GALU,IAANgQ,GACFyQ,IAEFzgB,KAAKvB,OAAS6J,KAAKC,IAAIkY,EAAGzgB,KAAKvB,QAErB,IAANuR,EAAS,CACX,IAAIiT,EAAO,SAAc,WAAcjT,GAAMA,EAC7ChQ,KAAKmV,MAAMnV,KAAKvB,OAAS,IAAMwkB,EAGjC,OAAOjjB,KAAKypB,UAIdvZ,EAAG1S,UAAUimB,MAAQ,SAAgB9S,GACnC,OAAO3Q,KAAKgR,QAAQwS,OAAO7S,IAI7BT,EAAG1S,UAAUkb,MAAQ,SAAgBjI,GAGnC,OAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAUzQ,KAAKqR,OAAOZ,GAGV,IAAlBzQ,KAAKkV,SACa,IAAhBlV,KAAKvB,SAAiC,EAAhBuB,KAAKmV,MAAM,KAAW1E,GAC9CzQ,KAAKmV,MAAM,GAAK1E,GAAuB,EAAhBzQ,KAAKmV,MAAM,IAClCnV,KAAKkV,SAAW,EACTlV,OAGTA,KAAKkV,SAAW,EAChBlV,KAAKqR,MAAMZ,GACXzQ,KAAKkV,SAAW,EACTlV,MAIFA,KAAKyW,OAAOhG,IAGrBP,EAAG1S,UAAUiZ,OAAS,SAAiBhG,GACrCzQ,KAAKmV,MAAM,IAAM1E,EAGjB,IAAK,IAAIpP,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,IAAM,SAAWA,IAC7DrB,KAAKmV,MAAM9T,IAAM,SACbA,IAAMrB,KAAKvB,OAAS,EACtBuB,KAAKmV,MAAM9T,EAAI,GAAK,EAEpBrB,KAAKmV,MAAM9T,EAAI,KAKnB,OAFArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,EAAI,GAEjCrB,MAITkQ,EAAG1S,UAAU6T,MAAQ,SAAgBZ,GAGnC,GAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAG,OAAOzQ,KAAK0Y,OAAOjI,GAEhC,GAAsB,IAAlBzQ,KAAKkV,SAIP,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAK0Y,MAAMjI,GACXzQ,KAAKkV,SAAW,EACTlV,KAKT,GAFAA,KAAKmV,MAAM,IAAM1E,EAEG,IAAhBzQ,KAAKvB,QAAgBuB,KAAKmV,MAAM,GAAK,EACvCnV,KAAKmV,MAAM,IAAMnV,KAAKmV,MAAM,GAC5BnV,KAAKkV,SAAW,OAGhB,IAAK,IAAI7T,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,GAAK,EAAGA,IACpDrB,KAAKmV,MAAM9T,IAAM,SACjBrB,KAAKmV,MAAM9T,EAAI,IAAM,EAIzB,OAAOrB,KAAKypB,UAGdvZ,EAAG1S,UAAUkmB,KAAO,SAAejT,GACjC,OAAOzQ,KAAKgR,QAAQ0H,MAAMjI,IAG5BP,EAAG1S,UAAUmmB,KAAO,SAAelT,GACjC,OAAOzQ,KAAKgR,QAAQK,MAAMZ,IAG5BP,EAAG1S,UAAUomB,KAAO,WAGlB,OAFA5jB,KAAKkV,SAAW,EAETlV,MAGTkQ,EAAG1S,UAAUgb,IAAM,WACjB,OAAOxY,KAAKgR,QAAQ4S,QAGtB1T,EAAG1S,UAAUqmB,aAAe,SAAuBpT,EAAKlE,EAAKuX,GAC3D,IACIziB,EAIAqP,EALAhQ,EAAM+P,EAAIhS,OAASqlB,EAGvB9jB,KAAK2W,QAAQjW,GAGb,IAAI2T,EAAQ,EACZ,IAAKhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CAC/BqP,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,EAClC,IAAIwB,GAAwB,EAAfpF,EAAI0E,MAAM9T,IAAUkL,EAEjC8H,IADA3D,GAAa,SAARmF,IACS,KAAQA,EAAQ,SAAa,GAC3C7V,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAE1B,KAAOrP,EAAIrB,KAAKvB,OAASqlB,EAAOziB,IAE9BgT,GADA3D,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,IACrB,GACbrU,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAG1B,GAAc,IAAV2D,EAAa,OAAOrU,KAAKypB,SAK7B,IAFA7Z,GAAkB,IAAXyE,GACPA,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAE3BgT,GADA3D,IAAsB,EAAhB1Q,KAAKmV,MAAM9T,IAAUgT,IACd,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJqP,EAIlB,OAFA1Q,KAAKkV,SAAW,EAETlV,KAAKypB,UAGdvZ,EAAG1S,UAAUumB,SAAW,SAAmBtT,EAAKuT,GAC9C,IAAIF,GAAQ9jB,KAAKvB,OAASgS,EAAIhS,QAE1BuL,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAGJwT,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,GAGf,KADdqlB,EAAQ,GADM9jB,KAAKkY,WAAW+L,MAG5Bre,EAAIA,EAAEyd,MAAMS,GACZ9Z,EAAE0Y,OAAOoB,GACTG,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,IAI3B,IACIuZ,EADAlS,EAAIkE,EAAEvL,OAASmH,EAAEnH,OAGrB,GAAa,QAATulB,EAAgB,EAClBhM,EAAI,IAAI9H,EAAG,OACTzR,OAASqH,EAAI,EACfkS,EAAE7C,MAAQ,IAAIhU,MAAM6W,EAAEvZ,QACtB,IAAK,IAAI4C,EAAI,EAAGA,EAAI2W,EAAEvZ,OAAQ4C,IAC5B2W,EAAE7C,MAAM9T,GAAK,EAIjB,IAAI6iB,EAAOla,EAAEgH,QAAQ6S,aAAaje,EAAG,EAAGE,GAClB,IAAlBoe,EAAKhP,WACPlL,EAAIka,EACAlM,IACFA,EAAE7C,MAAMrP,GAAK,IAIjB,IAAK,IAAIe,EAAIf,EAAI,EAAGe,GAAK,EAAGA,IAAK,CAC/B,IAAIsd,EAAmC,UAAL,EAAxBna,EAAEmL,MAAMvP,EAAEnH,OAASoI,KACE,EAA5BmD,EAAEmL,MAAMvP,EAAEnH,OAASoI,EAAI,IAO1B,IAHAsd,EAAK7b,KAAKC,IAAK4b,EAAKF,EAAO,EAAG,UAE9Bja,EAAE6Z,aAAaje,EAAGue,EAAItd,GACA,IAAfmD,EAAEkL,UACPiP,IACAna,EAAEkL,SAAW,EACblL,EAAE6Z,aAAaje,EAAG,EAAGiB,GAChBmD,EAAEwN,WACLxN,EAAEkL,UAAY,GAGd8C,IACFA,EAAE7C,MAAMtO,GAAKsd,GAajB,OAVInM,GACFA,EAAEyR,SAEJzf,EAAEyf,SAGW,QAATzF,GAA4B,IAAVF,GACpB9Z,EAAEsH,OAAOwS,GAGJ,CACLM,IAAKpM,GAAK,KACV9G,IAAKlH,IAQTkG,EAAG1S,UAAU6mB,OAAS,SAAiB5T,EAAKuT,EAAMM,GAGhD,OAFA1U,GAAQa,EAAI+G,UAERxX,KAAKwX,SACA,CACL4M,IAAK,IAAIlU,EAAG,GACZgB,IAAK,IAAIhB,EAAG,IAKM,IAAlBlQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAKuT,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGH,QAATgL,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIgJ,KAAKzJ,IAIN,CACL2T,IAAKA,EACLlT,IAAKA,IAIa,IAAlBlR,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKqkB,OAAO5T,EAAIuI,MAAOgL,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGT,CACLoL,IAAKA,EACLlT,IAAK1I,EAAI0I,MAI0B,KAAlClR,KAAKkV,SAAWzE,EAAIyE,WACvB1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAIuI,MAAOgL,GAEtB,QAATA,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIiJ,KAAK1J,IAIN,CACL2T,IAAK5b,EAAI4b,IACTlT,IAAKA,IAOLT,EAAIhS,OAASuB,KAAKvB,QAAUuB,KAAK8V,IAAIrF,GAAO,EACvC,CACL2T,IAAK,IAAIlU,EAAG,GACZgB,IAAKlR,MAKU,IAAfyQ,EAAIhS,OACO,QAATulB,EACK,CACLI,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,MAII,QAAT8S,EACK,CACLI,IAAK,KACLlT,IAAK,IAAIhB,EAAGlQ,KAAKkyC,MAAMzhC,EAAI0E,MAAM,MAI9B,CACLiP,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,IAAIhB,EAAGlQ,KAAKkyC,MAAMzhC,EAAI0E,MAAM,MAI9BnV,KAAK+jB,SAAStT,EAAKuT,GAlF1B,IAAII,EAAKlT,EAAK1I,GAsFhB0H,EAAG1S,UAAU4mB,IAAM,SAAc3T,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAO2T,KAIxClU,EAAG1S,UAAU0T,IAAM,SAAcT,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAOS,KAGxChB,EAAG1S,UAAUgnB,KAAO,SAAe/T,GACjC,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAMS,KAIvChB,EAAG1S,UAAUinB,SAAW,SAAmBhU,GACzC,IAAIiU,EAAK1kB,KAAKqkB,OAAO5T,GAGrB,GAAIiU,EAAGxT,IAAIsG,SAAU,OAAOkN,EAAGN,IAE/B,IAAIlT,EAA0B,IAApBwT,EAAGN,IAAIlP,SAAiBwP,EAAGxT,IAAIiJ,KAAK1J,GAAOiU,EAAGxT,IAEpDyT,EAAOlU,EAAI8S,MAAM,GACjBqB,EAAKnU,EAAIU,MAAM,GACf2E,EAAM5E,EAAI4E,IAAI6O,GAGlB,OAAI7O,EAAM,GAAa,IAAP8O,GAAoB,IAAR9O,EAAmB4O,EAAGN,IAGvB,IAApBM,EAAGN,IAAIlP,SAAiBwP,EAAGN,IAAI/S,MAAM,GAAKqT,EAAGN,IAAI1L,MAAM,IAGhExI,EAAG1S,UAAU00C,MAAQ,SAAgBzhC,GACnC,IAAI6hC,EAAW7hC,EAAM,EACjB6hC,IAAU7hC,GAAOA,GAErBb,EAAOa,GAAO,UAId,IAHA,IAAIoC,GAAK,GAAK,IAAMpC,EAEhBoU,EAAM,EACDxjB,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IACpCwjB,GAAOhS,EAAIgS,GAAuB,EAAhB7kB,KAAKmV,MAAM9T,KAAWoP,EAG1C,OAAO6hC,GAAYztB,EAAMA,GAI3B3U,EAAG1S,UAAUia,KAAO,SAAehH,GACjC,OAAOzQ,KAAKkyC,MAAMzhC,IAIpBP,EAAG1S,UAAUka,MAAQ,SAAgBjH,GACnC,IAAI6hC,EAAW7hC,EAAM,EACjB6hC,IAAU7hC,GAAOA,GAErBb,EAAOa,GAAO,UAGd,IADA,IAAI4D,EAAQ,EACHhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAkB,SAARgT,EAC9BrU,KAAKmV,MAAM9T,GAAMqP,EAAID,EAAO,EAC5B4D,EAAQ3D,EAAID,EAId,OADAzQ,KAAKypB,SACE6oB,EAAWtyC,KAAK8Y,OAAS9Y,MAGlCkQ,EAAG1S,UAAU+mB,KAAO,SAAe9T,GACjC,OAAOzQ,KAAKgR,QAAQ0G,MAAMjH,IAG5BP,EAAG1S,UAAUsnB,KAAO,SAAejS,GACjCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIvN,EAAIjK,KACJkK,EAAI2I,EAAE7B,QAGR/G,EADiB,IAAfA,EAAEiL,SACAjL,EAAEua,KAAK3R,GAEP5I,EAAE+G,QAaR,IATA,IAAI+T,EAAI,IAAI7U,EAAG,GACX8U,EAAI,IAAI9U,EAAG,GAGX+U,EAAI,IAAI/U,EAAG,GACXgV,EAAI,IAAIhV,EAAG,GAEXT,EAAI,EAEDxF,EAAEkb,UAAYjb,EAAEib,UACrBlb,EAAEqH,OAAO,GACTpH,EAAEoH,OAAO,KACP7B,EAMJ,IAHA,IAAI2V,EAAKlb,EAAE8G,QACPqU,EAAKpb,EAAE+G,SAEH/G,EAAEuN,UAAU,CAClB,IAAK,IAAInW,EAAI,EAAGikB,EAAK,EAAyB,KAArBrb,EAAEkL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA4I,EAAEqH,OAAOjQ,GACFA,KAAM,IACP0jB,EAAE3T,SAAW4T,EAAE5T,WACjB2T,EAAE7K,KAAKkL,GACPJ,EAAE7K,KAAKkL,IAGTN,EAAEzT,OAAO,GACT0T,EAAE1T,OAAO,GAIb,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArBrb,EAAEiL,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAqD,EAAEoH,OAAOzK,GACFA,KAAM,IACPoe,EAAE7T,SAAW8T,EAAE9T,WACjB6T,EAAE/K,KAAKkL,GACPF,EAAE/K,KAAKkL,IAGTJ,EAAE3T,OAAO,GACT4T,EAAE5T,OAAO,GAITrH,EAAE6L,IAAI5L,IAAM,GACdD,EAAEkQ,KAAKjQ,GACP6a,EAAE5K,KAAK8K,GACPD,EAAE7K,KAAK+K,KAEPhb,EAAEiQ,KAAKlQ,GACPgb,EAAE9K,KAAK4K,GACPG,EAAE/K,KAAK6K,IAIX,MAAO,CACLhb,EAAGib,EACHrf,EAAGsf,EACHM,IAAKtb,EAAEwY,OAAOjT,KAOlBS,EAAG1S,UAAUioB,OAAS,SAAiB5S,GACrCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIxN,EAAIhK,KACJ4F,EAAIiN,EAAE7B,QAGRhH,EADiB,IAAfA,EAAEkL,SACAlL,EAAEwa,KAAK3R,GAEP7I,EAAEgH,QAQR,IALA,IAuCIxI,EAvCAkd,EAAK,IAAIxV,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GAEZ0V,EAAQhgB,EAAEoL,QAEPhH,EAAE8H,KAAK,GAAK,GAAKlM,EAAEkM,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzQ,EAAI,EAAGikB,EAAK,EAAyB,KAArBtb,EAAEmL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA2I,EAAEsH,OAAOjQ,GACFA,KAAM,GACPqkB,EAAGtU,SACLsU,EAAGxL,KAAK0L,GAGVF,EAAGpU,OAAO,GAId,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArB3f,EAAEuP,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAjB,EAAE0L,OAAOzK,GACFA,KAAM,GACP8e,EAAGvU,SACLuU,EAAGzL,KAAK0L,GAGVD,EAAGrU,OAAO,GAIVtH,EAAE8L,IAAIlQ,IAAM,GACdoE,EAAEmQ,KAAKvU,GACP8f,EAAGvL,KAAKwL,KAER/f,EAAEuU,KAAKnQ,GACP2b,EAAGxL,KAAKuL,IAeZ,OATEld,EADgB,IAAdwB,EAAE8H,KAAK,GACH4T,EAEAC,GAGA7T,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKrH,GAGJrK,GAGT0H,EAAG1S,UAAUgoB,IAAM,SAAc/U,GAC/B,GAAIzQ,KAAKwX,SAAU,OAAO/G,EAAI+H,MAC9B,GAAI/H,EAAI+G,SAAU,OAAOxX,KAAKwY,MAE9B,IAAIxO,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAAIO,QACZhH,EAAEkL,SAAW,EACbtP,EAAEsP,SAAW,EAGb,IAAK,IAAI4O,EAAQ,EAAG9Z,EAAEmb,UAAYvf,EAAEuf,SAAUrB,IAC5C9Z,EAAEsH,OAAO,GACT1L,EAAE0L,OAAO,GAGX,OAAG,CACD,KAAOtH,EAAEmb,UACPnb,EAAEsH,OAAO,GAEX,KAAO1L,EAAEuf,UACPvf,EAAE0L,OAAO,GAGX,IAAItB,EAAIhG,EAAE8L,IAAIlQ,GACd,GAAIoK,EAAI,EAAG,CAET,IAAImI,EAAInO,EACRA,EAAIpE,EACJA,EAAIuS,OACC,GAAU,IAANnI,GAAyB,IAAdpK,EAAEkM,KAAK,GAC3B,MAGF9H,EAAEmQ,KAAKvU,GAGT,OAAOA,EAAE8c,OAAOoB,IAIlB5T,EAAG1S,UAAUqoB,KAAO,SAAepV,GACjC,OAAOzQ,KAAK8kB,KAAKrU,GAAKzG,EAAEwa,KAAK/T,IAG/BP,EAAG1S,UAAU2nB,OAAS,WACpB,OAA+B,KAAP,EAAhBnlB,KAAKmV,MAAM,KAGrBjF,EAAG1S,UAAU4T,MAAQ,WACnB,OAA+B,KAAP,EAAhBpR,KAAKmV,MAAM,KAIrBjF,EAAG1S,UAAU2T,MAAQ,SAAgBV,GACnC,OAAOzQ,KAAKmV,MAAM,GAAK1E,GAIzBP,EAAG1S,UAAUsoB,MAAQ,SAAgB9L,GACnCpK,EAAsB,kBAARoK,GACd,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,GAAIhQ,KAAKvB,QAAUgiB,EAGjB,OAFAzgB,KAAK2W,QAAQ8J,EAAI,GACjBzgB,KAAKmV,MAAMsL,IAAMzI,EACVhY,KAKT,IADA,IAAIqU,EAAQ2D,EACH3W,EAAIof,EAAa,IAAVpM,GAAehT,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACnD,IAAIqP,EAAoB,EAAhB1Q,KAAKmV,MAAM9T,GAEnBgT,GADA3D,GAAK2D,KACS,GACd3D,GAAK,SACL1Q,KAAKmV,MAAM9T,GAAKqP,EAMlB,OAJc,IAAV2D,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAEAuB,MAGTkQ,EAAG1S,UAAUga,OAAS,WACpB,OAAuB,IAAhBxX,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,IAGzCjF,EAAG1S,UAAUsU,KAAO,SAAerB,GACjC,IAOIjI,EAPA0M,EAAWzE,EAAM,EAErB,GAAsB,IAAlBzQ,KAAKkV,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBlV,KAAKkV,UAAkBA,EAAU,OAAO,EAK5C,GAHAlV,KAAKypB,SAGDzpB,KAAKvB,OAAS,EAChB+J,EAAM,MACD,CACD0M,IACFzE,GAAOA,GAGTb,EAAOa,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhB1Q,KAAKmV,MAAM,GACnB3M,EAAMkI,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAOT0H,EAAG1S,UAAUsY,IAAM,SAAcrF,GAC/B,GAAsB,IAAlBzQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAQ,EACvD,GAAsB,IAAlBlV,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAO,EAEtD,IAAI1M,EAAMxI,KAAK+lB,KAAKtV,GACpB,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAIT0H,EAAG1S,UAAUuoB,KAAO,SAAetV,GAEjC,GAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAO,EACrC,GAAIuB,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAQ,EAGtC,IADA,IAAI+J,EAAM,EACDnH,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAI2I,EAAoB,EAAhBhK,KAAKmV,MAAM9T,GACfuE,EAAmB,EAAf6K,EAAI0E,MAAM9T,GAElB,GAAI2I,IAAMpE,EAAV,CACIoE,EAAIpE,EACN4C,GAAO,EACEwB,EAAIpE,IACb4C,EAAM,GAER,OAEF,OAAOA,GAGT0H,EAAG1S,UAAUwoB,IAAM,SAAcvV,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUyoB,GAAK,SAAaxV,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU0oB,KAAO,SAAezV,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU2oB,IAAM,SAAc1V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAU4oB,IAAM,SAAc3V,GAC/B,OAA2B,IAApBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAU6oB,GAAK,SAAa5V,GAC7B,OAA0B,IAAnBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU8oB,KAAO,SAAe7V,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU+oB,IAAM,SAAc9V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAUgpB,IAAM,SAAc/V,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUipB,GAAK,SAAahW,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAOlBP,EAAGkF,IAAM,SAAc3E,GACrB,OAAO,IAAIiW,EAAIjW,IAGjBP,EAAG1S,UAAUmpB,MAAQ,SAAgBC,GAGnC,OAFAhX,GAAQ5P,KAAKoV,IAAK,yCAClBxF,EAAyB,IAAlB5P,KAAKkV,SAAgB,iCACrB0R,EAAIC,UAAU7mB,MAAM8mB,UAAUF,IAGvC1W,EAAG1S,UAAUupB,QAAU,WAErB,OADAnX,EAAO5P,KAAKoV,IAAK,wDACVpV,KAAKoV,IAAI4R,YAAYhnB,OAG9BkQ,EAAG1S,UAAUspB,UAAY,SAAoBF,GAE3C,OADA5mB,KAAKoV,IAAMwR,EACJ5mB,MAGTkQ,EAAG1S,UAAUypB,SAAW,SAAmBL,GAEzC,OADAhX,GAAQ5P,KAAKoV,IAAK,yCACXpV,KAAK8mB,UAAUF,IAGxB1W,EAAG1S,UAAU0pB,OAAS,SAAiBzW,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIgF,IAAIpa,KAAMyQ,IAG5BP,EAAG1S,UAAU2pB,QAAU,SAAkB1W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI8E,KAAKla,KAAMyQ,IAG7BP,EAAG1S,UAAU4pB,OAAS,SAAiB3W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIjH,IAAInO,KAAMyQ,IAG5BP,EAAG1S,UAAU6pB,QAAU,SAAkB5W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI+E,KAAKna,KAAMyQ,IAG7BP,EAAG1S,UAAU8pB,OAAS,SAAiB7W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAImS,IAAIvnB,KAAMyQ,IAG5BP,EAAG1S,UAAUgqB,OAAS,SAAiB/W,GAGrC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAI7I,IAAIvM,KAAMyQ,IAG5BP,EAAG1S,UAAUkqB,QAAU,SAAkBjX,GAGvC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAIiJ,KAAKre,KAAMyQ,IAG7BP,EAAG1S,UAAUmqB,OAAS,WAGpB,OAFA/X,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAImN,IAAIviB,OAGtBkQ,EAAG1S,UAAUqqB,QAAU,WAGrB,OAFAjY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIoN,KAAKxiB,OAIvBkQ,EAAG1S,UAAUsqB,QAAU,WAGrB,OAFAlY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI2S,KAAK/nB,OAGvBkQ,EAAG1S,UAAUwqB,QAAU,WAGrB,OAFApY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIyQ,KAAK7lB,OAIvBkQ,EAAG1S,UAAUyqB,OAAS,WAGpB,OAFArY,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI4D,IAAIhZ,OAGtBkQ,EAAG1S,UAAU0qB,OAAS,SAAiBzX,GAGrC,OAFAb,EAAO5P,KAAKoV,MAAQ3E,EAAI2E,IAAK,qBAC7BpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAItI,IAAI9M,KAAMyQ,IAI5B,IAAI0X,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQhmB,EAAMqQ,GAErB7S,KAAKwC,KAAOA,EACZxC,KAAK6S,EAAI,IAAI3C,EAAG2C,EAAG,IACnB7S,KAAK6F,EAAI7F,KAAK6S,EAAEhC,YAChB7Q,KAAK+Q,EAAI,IAAIb,EAAG,GAAGwS,OAAO1iB,KAAK6F,GAAGsU,KAAKna,KAAK6S,GAE5C7S,KAAKyoB,IAAMzoB,KAAK0oB,OAiDlB,SAASC,IACPH,EAAOzoB,KACLC,KACA,OACA,2EA+DJ,SAAS4oB,IACPJ,EAAOzoB,KACLC,KACA,OACA,kEAIJ,SAAS6oB,IACPL,EAAOzoB,KACLC,KACA,OACA,yDAIJ,SAAS8oB,IAEPN,EAAOzoB,KACLC,KACA,QACA,uEA8CJ,SAAS0mB,EAAK5gB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIijB,EAAQ7Y,EAAG8Y,OAAOljB,GACtB9F,KAAK8F,EAAIijB,EAAMlW,EACf7S,KAAK+oB,MAAQA,OAEbnZ,EAAO9J,EAAEkgB,IAAI,GAAI,kCACjBhmB,KAAK8F,EAAIA,EACT9F,KAAK+oB,MAAQ,KAoOjB,SAASE,EAAMnjB,GACb4gB,EAAI3mB,KAAKC,KAAM8F,GAEf9F,KAAK8jB,MAAQ9jB,KAAK8F,EAAE+K,YAChB7Q,KAAK8jB,MAAQ,KAAO,IACtB9jB,KAAK8jB,OAAS,GAAM9jB,KAAK8jB,MAAQ,IAGnC9jB,KAAKgQ,EAAI,IAAIE,EAAG,GAAGwS,OAAO1iB,KAAK8jB,OAC/B9jB,KAAK4kB,GAAK5kB,KAAKkpB,KAAKlpB,KAAKgQ,EAAEuS,OAC3BviB,KAAKmpB,KAAOnpB,KAAKgQ,EAAEyV,OAAOzlB,KAAK8F,GAE/B9F,KAAKopB,KAAOppB,KAAKmpB,KAAK5c,IAAIvM,KAAKgQ,GAAGqB,MAAM,GAAG+S,IAAIpkB,KAAK8F,GACpD9F,KAAKopB,KAAOppB,KAAKopB,KAAK5E,KAAKxkB,KAAKgQ,GAChChQ,KAAKopB,KAAOppB,KAAKgQ,EAAE7B,IAAInO,KAAKopB,MA9a9BZ,EAAOhrB,UAAUkrB,KAAO,WACtB,IAAID,EAAM,IAAIvY,EAAG,MAEjB,OADAuY,EAAItT,MAAQ,IAAIhU,MAAMmH,KAAK6N,KAAKnW,KAAK6F,EAAI,KAClC4iB,GAGTD,EAAOhrB,UAAU6rB,QAAU,SAAkB5Y,GAG3C,IACI6Y,EADAtZ,EAAIS,EAGR,GACEzQ,KAAKupB,MAAMvZ,EAAGhQ,KAAKyoB,KAGnBa,GADAtZ,GADAA,EAAIhQ,KAAKwpB,MAAMxZ,IACTkK,KAAKla,KAAKyoB,MACP5X,kBACFyY,EAAOtpB,KAAK6F,GAErB,IAAIiQ,EAAMwT,EAAOtpB,KAAK6F,GAAK,EAAImK,EAAE+V,KAAK/lB,KAAK6S,GAgB3C,OAfY,IAARiD,GACF9F,EAAEmF,MAAM,GAAK,EACbnF,EAAEvR,OAAS,GACFqX,EAAM,EACf9F,EAAEmK,KAAKna,KAAK6S,QAEI1T,IAAZ6Q,EAAEoG,MAEJpG,EAAEoG,QAGFpG,EAAEyZ,SAICzZ,GAGTwY,EAAOhrB,UAAU+rB,MAAQ,SAAgBG,EAAOne,GAC9Cme,EAAMpY,OAAOtR,KAAK6F,EAAG,EAAG0F,IAG1Bid,EAAOhrB,UAAUgsB,MAAQ,SAAgB/Y,GACvC,OAAOA,EAAI4N,KAAKre,KAAK+Q,IASvBwB,EAASoW,EAAMH,GAEfG,EAAKnrB,UAAU+rB,MAAQ,SAAgBG,EAAOC,GAK5C,IAHA,IAAI1G,EAAO,QAEP2G,EAASthB,KAAKC,IAAImhB,EAAMjrB,OAAQ,GAC3B4C,EAAI,EAAGA,EAAIuoB,EAAQvoB,IAC1BsoB,EAAOxU,MAAM9T,GAAKqoB,EAAMvU,MAAM9T,GAIhC,GAFAsoB,EAAOlrB,OAASmrB,EAEZF,EAAMjrB,QAAU,EAGlB,OAFAirB,EAAMvU,MAAM,GAAK,OACjBuU,EAAMjrB,OAAS,GAKjB,IAAIorB,EAAOH,EAAMvU,MAAM,GAGvB,IAFAwU,EAAOxU,MAAMwU,EAAOlrB,UAAYorB,EAAO5G,EAElC5hB,EAAI,GAAIA,EAAIqoB,EAAMjrB,OAAQ4C,IAAK,CAClC,IAAIyoB,EAAwB,EAAjBJ,EAAMvU,MAAM9T,GACvBqoB,EAAMvU,MAAM9T,EAAI,KAAQyoB,EAAO7G,IAAS,EAAM4G,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMvU,MAAM9T,EAAI,IAAMwoB,EACT,IAATA,GAAcH,EAAMjrB,OAAS,GAC/BirB,EAAMjrB,QAAU,GAEhBirB,EAAMjrB,QAAU,GAIpBkqB,EAAKnrB,UAAUgsB,MAAQ,SAAgB/Y,GAErCA,EAAI0E,MAAM1E,EAAIhS,QAAU,EACxBgS,EAAI0E,MAAM1E,EAAIhS,OAAS,GAAK,EAC5BgS,EAAIhS,QAAU,EAId,IADA,IAAI0J,EAAK,EACA9G,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAIqP,EAAmB,EAAfD,EAAI0E,MAAM9T,GAClB8G,GAAU,IAAJuI,EACND,EAAI0E,MAAM9T,GAAU,SAAL8G,EACfA,EAAS,GAAJuI,GAAavI,EAAK,SAAa,GAUtC,OANkC,IAA9BsI,EAAI0E,MAAM1E,EAAIhS,OAAS,KACzBgS,EAAIhS,SAC8B,IAA9BgS,EAAI0E,MAAM1E,EAAIhS,OAAS,IACzBgS,EAAIhS,UAGDgS,GAST8B,EAASqW,EAAMJ,GAQfjW,EAASsW,EAAML,GASfjW,EAASuW,EAAQN,GAEjBM,EAAOtrB,UAAUgsB,MAAQ,SAAgB/Y,GAGvC,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAI6G,EAA0B,IAAL,EAAfuI,EAAI0E,MAAM9T,IAAiBgT,EACjClM,EAAU,SAALD,EACTA,KAAQ,GAERuI,EAAI0E,MAAM9T,GAAK8G,EACfkM,EAAQnM,EAKV,OAHc,IAAVmM,IACF5D,EAAI0E,MAAM1E,EAAIhS,UAAY4V,GAErB5D,GAITP,EAAG8Y,OAAS,SAAgBxmB,GAE1B,GAAI2lB,EAAO3lB,GAAO,OAAO2lB,EAAO3lB,GAEhC,IAAIumB,EACJ,GAAa,SAATvmB,EACFumB,EAAQ,IAAIJ,OACP,GAAa,SAATnmB,EACTumB,EAAQ,IAAIH,OACP,GAAa,SAATpmB,EACTumB,EAAQ,IAAIF,MACP,IAAa,WAATrmB,EAGT,MAAM,IAAI/C,MAAM,iBAAmB+C,GAFnCumB,EAAQ,IAAID,EAMd,OAFAX,EAAO3lB,GAAQumB,EAERA,GAkBTrC,EAAIlpB,UAAUoqB,SAAW,SAAmB5d,GAC1C4F,EAAsB,IAAf5F,EAAEkL,SAAgB,iCACzBtF,EAAO5F,EAAEoL,IAAK,oCAGhBsR,EAAIlpB,UAAUiqB,SAAW,SAAmBzd,EAAGpE,GAC7CgK,EAAqC,KAA7B5F,EAAEkL,SAAWtP,EAAEsP,UAAiB,iCACxCtF,EAAO5F,EAAEoL,KAAOpL,EAAEoL,MAAQxP,EAAEwP,IAC1B,oCAGJsR,EAAIlpB,UAAU0rB,KAAO,SAAelf,GAClC,OAAIhK,KAAK+oB,MAAc/oB,KAAK+oB,MAAMM,QAAQrf,GAAG8c,UAAU9mB,OAEvD+xC,EAAK/nC,EAAGA,EAAEwa,KAAKxkB,KAAK8F,GAAGghB,UAAU9mB,OAC1BgK,IAGT0c,EAAIlpB,UAAUwb,IAAM,SAAchP,GAChC,OAAIA,EAAEwN,SACGxN,EAAEgH,QAGJhR,KAAK8F,EAAEqI,IAAInE,GAAG8c,UAAU9mB,OAGjC0mB,EAAIlpB,UAAU4c,IAAM,SAAcpQ,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEoQ,IAAIxU,GAIhB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU0c,KAAO,SAAelQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEkQ,KAAKtU,GAIjB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU2Q,IAAM,SAAcnE,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmE,IAAIvI,GAIhB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU2c,KAAO,SAAenQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmQ,KAAKvU,GAIjB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU+pB,IAAM,SAAcvd,EAAGyG,GAEnC,OADAzQ,KAAK4nB,SAAS5d,GACPhK,KAAKkpB,KAAKlf,EAAEqZ,MAAM5S,KAG3BiW,EAAIlpB,UAAU6gB,KAAO,SAAerU,EAAGpE,GAErC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEqU,KAAKzY,KAG1B8gB,EAAIlpB,UAAU+O,IAAM,SAAcvC,EAAGpE,GAEnC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEuC,IAAI3G,KAGzB8gB,EAAIlpB,UAAUglB,KAAO,SAAexY,GAClC,OAAOhK,KAAKqe,KAAKrU,EAAGA,EAAEgH,UAGxB0V,EAAIlpB,UAAU+kB,IAAM,SAAcvY,GAChC,OAAOhK,KAAKuM,IAAIvC,EAAGA,IAGrB0c,EAAIlpB,UAAUuqB,KAAO,SAAe/d,GAClC,GAAIA,EAAEwN,SAAU,OAAOxN,EAAEgH,QAEzB,IAAI+Y,EAAO/pB,KAAK8F,EAAEqL,MAAM,GAIxB,GAHAvB,EAAOma,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAIjd,EAAM9M,KAAK8F,EAAEsU,IAAI,IAAIlK,EAAG,IAAIoB,OAAO,GACvC,OAAOtR,KAAK8M,IAAI9C,EAAG8C,GAQrB,IAFA,IAAIkL,EAAIhY,KAAK8F,EAAE6d,KAAK,GAChBlD,EAAI,GACAzI,EAAER,UAA2B,IAAfQ,EAAE7G,MAAM,IAC5BsP,IACAzI,EAAE1G,OAAO,GAEX1B,GAAQoI,EAAER,UAEV,IAAIwS,EAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,MACtBiqB,EAAOD,EAAI/B,SAIXiC,EAAOlqB,KAAK8F,EAAE6d,KAAK,GAAGrS,OAAO,GAC7BL,EAAIjR,KAAK8F,EAAE+K,YAGf,IAFAI,EAAI,IAAIf,EAAG,EAAIe,EAAIA,GAAG0V,MAAM3mB,MAEW,IAAhCA,KAAK8M,IAAImE,EAAGiZ,GAAMpU,IAAImU,IAC3BhZ,EAAEkW,QAAQ8C,GAOZ,IAJA,IAAIhiB,EAAIjI,KAAK8M,IAAImE,EAAG+G,GAChBhI,EAAIhQ,KAAK8M,IAAI9C,EAAGgO,EAAE0L,KAAK,GAAGpS,OAAO,IACjC6G,EAAInY,KAAK8M,IAAI9C,EAAGgO,GAChBlS,EAAI2a,EACc,IAAftI,EAAErC,IAAIkU,IAAY,CAEvB,IADA,IAAIvB,EAAMtQ,EACD9W,EAAI,EAAoB,IAAjBonB,EAAI3S,IAAIkU,GAAY3oB,IAClConB,EAAMA,EAAId,SAEZ/X,EAAOvO,EAAIyE,GACX,IAAIF,EAAI5F,KAAK8M,IAAI7E,EAAG,IAAIiI,EAAG,GAAGwS,OAAO5c,EAAIzE,EAAI,IAE7C2O,EAAIA,EAAEwX,OAAO5hB,GACbqC,EAAIrC,EAAE+hB,SACNxP,EAAIA,EAAEqP,OAAOvf,GACbnC,EAAIzE,EAGN,OAAO2O,GAGT0W,EAAIlpB,UAAUqoB,KAAO,SAAe7b,GAClC,IAAImgB,EAAMngB,EAAEyb,OAAOzlB,KAAK8F,GACxB,OAAqB,IAAjBqkB,EAAIjV,UACNiV,EAAIjV,SAAW,EACRlV,KAAKkpB,KAAKiB,GAAKlC,UAEfjoB,KAAKkpB,KAAKiB,IAIrBzD,EAAIlpB,UAAUsP,IAAM,SAAc9C,EAAGyG,GACnC,GAAIA,EAAI+G,SAAU,OAAO,IAAItH,EAAG,GAAGyW,MAAM3mB,MACzC,GAAoB,IAAhByQ,EAAIqB,KAAK,GAAU,OAAO9H,EAAEgH,QAEhC,IACIoZ,EAAM,IAAIjpB,MAAM,IACpBipB,EAAI,GAAK,IAAIla,EAAG,GAAGyW,MAAM3mB,MACzBoqB,EAAI,GAAKpgB,EACT,IAAK,IAAI3I,EAAI,EAAGA,EAAI+oB,EAAI3rB,OAAQ4C,IAC9B+oB,EAAI/oB,GAAKrB,KAAKuM,IAAI6d,EAAI/oB,EAAI,GAAI2I,GAGhC,IAAIxB,EAAM4hB,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnlB,EAAQsL,EAAII,YAAc,GAK9B,IAJc,IAAV1L,IACFA,EAAQ,IAGL9D,EAAIoP,EAAIhS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIqR,EAAOjC,EAAI0E,MAAM9T,GACZwF,EAAI1B,EAAQ,EAAG0B,GAAK,EAAGA,IAAK,CACnC,IAAImT,EAAOtH,GAAQ7L,EAAK,EACpB2B,IAAQ4hB,EAAI,KACd5hB,EAAMxI,KAAKuiB,IAAI/Z,IAGL,IAARwR,GAAyB,IAAZqQ,GAKjBA,IAAY,EACZA,GAAWrQ,GA9BE,MA+BbsQ,GACwC,IAANjpB,GAAiB,IAANwF,KAE7C2B,EAAMxI,KAAKuM,IAAI/D,EAAK4hB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnlB,EAAQ,GAGV,OAAOqD,GAGTke,EAAIlpB,UAAUqpB,UAAY,SAAoBpW,GAC5C,IAAIT,EAAIS,EAAI+T,KAAKxkB,KAAK8F,GAEtB,OAAOkK,IAAMS,EAAMT,EAAEgB,QAAUhB,GAGjC0W,EAAIlpB,UAAUwpB,YAAc,SAAsBvW,GAChD,IAAIjI,EAAMiI,EAAIO,QAEd,OADAxI,EAAI4M,IAAM,KACH5M,GAOT0H,EAAGqa,KAAO,SAAe9Z,GACvB,OAAO,IAAIwY,EAAKxY,IAmBlB8B,EAAS0W,EAAMvC,GAEfuC,EAAKzrB,UAAUqpB,UAAY,SAAoBpW,GAC7C,OAAOzQ,KAAKkpB,KAAKzY,EAAI4S,MAAMrjB,KAAK8jB,SAGlCmF,EAAKzrB,UAAUwpB,YAAc,SAAsBvW,GACjD,IAAIT,EAAIhQ,KAAKkpB,KAAKzY,EAAIlE,IAAIvM,KAAKmpB,OAE/B,OADAnZ,EAAEoF,IAAM,KACDpF,GAGTiZ,EAAKzrB,UAAU6gB,KAAO,SAAerU,EAAGpE,GACtC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAGlB,OAFAxN,EAAEmL,MAAM,GAAK,EACbnL,EAAEvL,OAAS,EACJuL,EAGT,IAAImO,EAAInO,EAAEqU,KAAKzY,GACXqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAQV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAU+O,IAAM,SAAcvC,EAAGpE,GACpC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAAU,OAAO,IAAItH,EAAG,GAAG4W,UAAU9mB,MAEzD,IAAImY,EAAInO,EAAEuC,IAAI3G,GACVqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAOV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAUqoB,KAAO,SAAe7b,GAGnC,OADUhK,KAAKkpB,KAAKlf,EAAEyb,OAAOzlB,KAAK8F,GAAGyG,IAAIvM,KAAK4kB,KACnCkC,UAAU9mB,OAx9GzB,CA09GoC7C,EAAQ6C,Q,kDCx9G5C,IAAIuyC,EAAWn1C,EAEfm1C,EAAS3wC,QAAU5D,EAAQ,KAAmB4D,QAC9C2wC,EAAStiC,MAAQjS,EAAQ,GACzBu0C,EAASjC,KAAOtyC,EAAQ,IACxBu0C,EAASvU,MAAQhgC,EAAQ,IACzBu0C,EAASC,OAASx0C,EAAQ,IAG1Bu0C,EAASE,GAAKz0C,EAAQ,KACtBu0C,EAASG,MAAQ10C,EAAQ,M,6BCVzB,IAsKI20C,EAtKAH,EAASp1C,EAET44B,EAAOh4B,EAAQ,IACfggC,EAAQhgC,EAAQ,IAGhB4R,EAFQ5R,EAAQ,GAED4R,OAEnB,SAASgjC,EAAYlgB,GACE,UAAjBA,EAAQluB,KACVxE,KAAKg+B,MAAQ,IAAIA,EAAM6U,MAAMngB,GACL,YAAjBA,EAAQluB,KACfxE,KAAKg+B,MAAQ,IAAIA,EAAM8U,QAAQpgB,GAE/B1yB,KAAKg+B,MAAQ,IAAIA,EAAMzT,KAAKmI,GAC9B1yB,KAAKyP,EAAIzP,KAAKg+B,MAAMvuB,EACpBzP,KAAK6F,EAAI7F,KAAKg+B,MAAMn4B,EACpB7F,KAAKg2B,KAAOtD,EAAQsD,KAEpBpmB,EAAO5P,KAAKyP,EAAE0uB,WAAY,iBAC1BvuB,EAAO5P,KAAKyP,EAAElD,IAAIvM,KAAK6F,GAAGktC,aAAc,2BAI1C,SAASC,EAAYxwC,EAAMkwB,GACzBz1B,OAAO4M,eAAe2oC,EAAQhwC,EAAM,CAClC3E,cAAc,EACdF,YAAY,EACZktB,IAAK,WACH,IAAImT,EAAQ,IAAI4U,EAAYlgB,GAM5B,OALAz1B,OAAO4M,eAAe2oC,EAAQhwC,EAAM,CAClC3E,cAAc,EACdF,YAAY,EACZD,MAAOsgC,IAEFA,KAbbwU,EAAOI,YAAcA,EAkBrBI,EAAY,OAAQ,CAClBxuC,KAAM,QACNukB,MAAO,OACPlW,EAAG,wDACH7I,EAAG,wDACHpE,EAAG,wDACHC,EAAG,wDACHmwB,KAAMA,EAAKqT,OACX/L,MAAM,EACN7tB,EAAG,CACD,wDACA,2DAIJujC,EAAY,OAAQ,CAClBxuC,KAAM,QACNukB,MAAO,OACPlW,EAAG,iEACH7I,EAAG,iEACHpE,EAAG,iEACHC,EAAG,iEACHmwB,KAAMA,EAAKqT,OACX/L,MAAM,EACN7tB,EAAG,CACD,iEACA,oEAIJujC,EAAY,OAAQ,CAClBxuC,KAAM,QACNukB,MAAO,KACPlW,EAAG,0EACH7I,EAAG,0EACHpE,EAAG,0EACHC,EAAG,0EACHmwB,KAAMA,EAAKqT,OACX/L,MAAM,EACN7tB,EAAG,CACD,0EACA,6EAIJujC,EAAY,OAAQ,CAClBxuC,KAAM,QACNukB,MAAO,KACPlW,EAAG,8GAEH7I,EAAG,8GAEHpE,EAAG,8GAEHC,EAAG,8GAEHmwB,KAAMA,EAAKsT,OACXhM,MAAM,EACN7tB,EAAG,CACD,8GAEA,iHAKJujC,EAAY,OAAQ,CAClBxuC,KAAM,QACNukB,MAAO,KACPlW,EAAG,2JAGH7I,EAAG,2JAGHpE,EAAG,2JAGHC,EAAG,2JAGHmwB,KAAMA,EAAKuT,OACXjM,MAAM,EACN7tB,EAAG,CACD,2JAGA,8JAMJujC,EAAY,aAAc,CACxBxuC,KAAM,OACNukB,MAAO,SACPlW,EAAG,sEACH7I,EAAG,QACHpE,EAAG,IACHC,EAAG,sEACHmwB,KAAMA,EAAKqT,OACX/L,MAAM,EACN7tB,EAAG,CACD,OAIJujC,EAAY,UAAW,CACrBxuC,KAAM,UACNukB,MAAO,SACPlW,EAAG,sEACH7I,EAAG,KACH/B,EAAG,IAEHsL,EAAG,sEACH1N,EAAG,sEACHmwB,KAAMA,EAAKqT,OACX/L,MAAM,EACN7tB,EAAG,CACD,mEAGA,sEAKJ,IACEkjC,EAAM30C,EAAQ,KACd,MAAO8B,GACP6yC,OAAMxzC,EAGR6zC,EAAY,YAAa,CACvBxuC,KAAM,QACNukB,MAAO,OACPlW,EAAG,0EACH7I,EAAG,IACHpE,EAAG,IACHC,EAAG,0EACHmd,EAAG,IACHgT,KAAMA,EAAKqT,OAGXhJ,KAAM,mEACN4S,OAAQ,mEACRC,MAAO,CACL,CACElpC,EAAG,mCACHpE,EAAG,qCAEL,CACEoE,EAAG,oCACHpE,EAAG,qCAIP03B,MAAM,EACN7tB,EAAG,CACD,mEACA,mEACAkjC,M,gBC3MJ,IAAI3c,EAAO54B,EAEX44B,EAAK/lB,MAAQjS,EAAQ,GACrBg4B,EAAKmd,OAASn1C,EAAQ,IACtBg4B,EAAKI,IAAMp4B,EAAQ,KACnBg4B,EAAKod,OAASp1C,EAAQ,KACtBg4B,EAAKqd,KAAOr1C,EAAQ,KAGpBg4B,EAAKmT,KAAOnT,EAAKI,IAAI+S,KACrBnT,EAAKqT,OAASrT,EAAKI,IAAIiT,OACvBrT,EAAKoT,OAASpT,EAAKI,IAAIgT,OACvBpT,EAAKsT,OAAStT,EAAKI,IAAIkT,OACvBtT,EAAKuT,OAASvT,EAAKI,IAAImT,OACvBvT,EAAKsd,UAAYtd,EAAKod,OAAOE,W,8BCd7B,YAIA,IAKIj1C,EALAN,EAASC,EAAQ,GACjBC,EAASF,EAAOE,OAEhBs1C,EAAQ,GAIZ,IAAKl1C,KAAON,EACLA,EAAOolC,eAAe9kC,IACf,eAARA,GAAgC,WAARA,IAC5Bk1C,EAAMl1C,GAAON,EAAOM,IAGtB,IAAIm1C,EAAQD,EAAMt1C,OAAS,GAC3B,IAAKI,KAAOJ,EACLA,EAAOklC,eAAe9kC,IACf,gBAARA,GAAiC,oBAARA,IAC7Bm1C,EAAMn1C,GAAOJ,EAAOI,IAqCtB,GAlCAk1C,EAAMt1C,OAAOT,UAAYS,EAAOT,UAE3Bg2C,EAAM90C,MAAQ80C,EAAM90C,OAAS4E,WAAW5E,OAC3C80C,EAAM90C,KAAO,SAAUhB,EAAOc,EAAkBC,GAC9C,GAAqB,kBAAVf,EACT,MAAM,IAAIoB,UAAU,yEAA2EpB,GAEjG,GAAIA,GAAiC,qBAAjBA,EAAMe,OACxB,MAAM,IAAIK,UAAU,yHAA2HpB,GAEjJ,OAAOO,EAAOP,EAAOc,EAAkBC,KAItC+0C,EAAM70C,QACT60C,EAAM70C,MAAQ,SAAUI,EAAMC,EAAMC,GAClC,GAAoB,kBAATF,EACT,MAAM,IAAID,UAAU,oEAAsEC,GAE5F,GAAIA,EAAO,GAAKA,GAAQ,GAAK,GAAK,IAChC,MAAM,IAAIsE,WAAW,cAAgBtE,EAAO,kCAE9C,IAAIG,EAAMjB,EAAOc,GAQjB,OAPKC,GAAwB,IAAhBA,EAAKP,OAEa,kBAAbQ,EAChBC,EAAIF,KAAKA,EAAMC,GAEfC,EAAIF,KAAKA,GAJTE,EAAIF,KAAK,GAMJE,KAINq0C,EAAME,iBACT,IACEF,EAAME,iBAAmBl0C,EAAQkD,QAAQ,UAAUgxC,iBACnD,MAAO3zC,IAMNyzC,EAAMG,YACTH,EAAMG,UAAY,CAChBC,WAAYJ,EAAMtwC,YAEhBswC,EAAME,mBACRF,EAAMG,UAAUE,kBAAoBL,EAAME,mBAI9Ct2C,EAAOC,QAAUm2C,I,8CC1EjB,IAAMzb,EAAW95B,EAAQ,IAAoB85B,SACvCE,EAAgBh6B,EAAQ,IAAkBg6B,cAC1CD,EAAgB/5B,EAAQ,IAAkB+5B,cAC1CnoB,EAAS5R,EAAQ,GAGjB61C,EAAO,CACX,MAAO,QAAS,MAAO,QAAS,QAAS,OACzC,UAAW,UAAW,QAAS,OAAQ,MAAO,UAC9C,SAAU,SAAU,UAAW,SAAU,WAAY,SAAU,YAC/D,SAAU,SAAU,WAAY,SAAU,SAAU,UAAW,YAI3DC,EAAU,CACd,MAAO,MAAO,MAAO,WAAY,WAAY,WAAY,MAAO,SAChE,MAAO,YACPvzC,OAAOszC,GAYT,SAASE,EAAKnhC,EAAKohC,EAAQxxC,GACzB,IAAM0sB,EAAQ,GACdlvB,KAAKi0C,WAAa/kB,EAElBA,EAAM1sB,KAAOA,EACb0sB,EAAMtc,IAAMA,EAEZsc,EAAM8kB,OAASA,GAAU,KACzB9kB,EAAMtE,SAAW,KAGjBsE,EAAMiS,IAAM,KACZjS,EAAMhuB,KAAO,KACbguB,EAAMglB,YAAc,KACpBhlB,EAAMilB,OAAS,KACfjlB,EAAMklB,UAAW,EACjBllB,EAAMmlB,KAAM,EACZnlB,EAAM/qB,KAAM,EACZ+qB,EAAMolB,IAAM,KACZplB,EAAMqlB,WAAa,KACnBrlB,EAAM7wB,IAAM,KACZ6wB,EAAK,QAAc,KACnBA,EAAMslB,SAAW,KACjBtlB,EAAMulB,SAAW,KACjBvlB,EAAMwlB,SAAW,KAGZxlB,EAAM8kB,SACT9kB,EAAMtE,SAAW,GACjB5qB,KAAK20C,SAGTx3C,EAAOC,QAAU22C,EAEjB,IAAMa,EAAa,CACjB,MAAO,SAAU,WAAY,MAAO,OAAQ,cAAe,SAC3D,WAAY,MAAO,MAAO,MAAO,aAAc,MAAO,UAAW,WACjE,WAAY,YAGdb,EAAKv2C,UAAUwT,MAAQ,WACrB,IAAMke,EAAQlvB,KAAKi0C,WACbY,EAAS,GACfD,EAAWhc,SAAQ,SAASkc,GAC1BD,EAAOC,GAAQ5lB,EAAM4lB,MAEvB,IAAMtsC,EAAM,IAAIxI,KAAKvC,YAAYo3C,EAAOb,QAExC,OADAxrC,EAAIyrC,WAAaY,EACVrsC,GAGTurC,EAAKv2C,UAAUm3C,MAAQ,WACrB,IAAMzlB,EAAQlvB,KAAKi0C,WACnBH,EAAQlb,SAAQ,SAASnG,GACvBzyB,KAAKyyB,GAAU,WACb,IAAMzhB,EAAQ,IAAIhR,KAAKvC,YAAYuC,MAEnC,OADAkvB,EAAMtE,SAAStpB,KAAK0P,GACbA,EAAMyhB,GAAQlxB,MAAMyP,EAAO5P,cAEnCpB,OAGL+zC,EAAKv2C,UAAU6X,MAAQ,SAAc0/B,GACnC,IAAM7lB,EAAQlvB,KAAKi0C,WAEnBrkC,EAAwB,OAAjBsf,EAAM8kB,QACbe,EAAKh1C,KAAKC,MAGVkvB,EAAMtE,SAAWsE,EAAMtE,SAAS0Z,QAAO,SAAS0Q,GAC9C,OAAOA,EAAMf,WAAWD,SAAWh0C,OAClCA,MACH4P,EAAOE,MAAMof,EAAMtE,SAASnsB,OAAQ,EAAG,sCAGzCs1C,EAAKv2C,UAAUy3C,SAAW,SAAiB/zC,GACzC,IAAMguB,EAAQlvB,KAAKi0C,WAGbrpB,EAAW1pB,EAAKojC,QAAO,SAAS/lC,GACpC,OAAOA,aAAeyB,KAAKvC,cAC1BuC,MACHkB,EAAOA,EAAKojC,QAAO,SAAS/lC,GAC1B,QAASA,aAAeyB,KAAKvC,eAC5BuC,MAEqB,IAApB4qB,EAASnsB,SACXmR,EAA0B,OAAnBsf,EAAMtE,UACbsE,EAAMtE,SAAWA,EAGjBA,EAASgO,SAAQ,SAASoc,GACxBA,EAAMf,WAAWD,OAASh0C,OACzBA,OAEe,IAAhBkB,EAAKzC,SACPmR,EAAsB,OAAfsf,EAAMhuB,MACbguB,EAAMhuB,KAAOA,EACbguB,EAAMglB,YAAchzC,EAAKwzB,KAAI,SAASn2B,GACpC,GAAmB,kBAARA,GAAoBA,EAAId,cAAgBR,OACjD,OAAOsB,EAET,IAAMiK,EAAM,GAOZ,OANAvL,OAAOyzB,KAAKnyB,GAAKq6B,SAAQ,SAASv6B,GAC5BA,IAAc,EAANA,KACVA,GAAO,GACT,IAAMX,EAAQa,EAAIF,GAClBmK,EAAI9K,GAASW,KAERmK,OAtHK,CAChB,WAAY,aAAc,OAC1B,aAAc,eAAgB,cAC9B,cAAe,aAAc,cAAe,cAE5C,mBAAoB,aAAc,eAAgB,cAClD,cAAe,aAAc,eAyHrBowB,SAAQ,SAASnG,GACzBshB,EAAKv2C,UAAUi1B,GAAU,WACvB,IAAMvD,EAAQlvB,KAAKi0C,WACnB,MAAM,IAAIx0C,MAAMgzB,EAAS,kCAAoCvD,EAAMtc,SAQvEihC,EAAKjb,SAAQ,SAASuI,GACpB4S,EAAKv2C,UAAU2jC,GAAO,WACpB,IAAMjS,EAAQlvB,KAAKi0C,WACb/yC,EAAOC,MAAM3D,UAAUyG,MAAMlE,KAAKqB,WAOxC,OALAwO,EAAqB,OAAdsf,EAAMiS,KACbjS,EAAMiS,IAAMA,EAEZnhC,KAAKi1C,SAAS/zC,GAEPlB,SAIX+zC,EAAKv2C,UAAU82C,IAAM,SAAapc,GAChCtoB,EAAOsoB,GACP,IAAMhJ,EAAQlvB,KAAKi0C,WAKnB,OAHArkC,EAAqB,OAAdsf,EAAMolB,KACbplB,EAAMolB,IAAMpc,EAELl4B,MAGT+zC,EAAKv2C,UAAU42C,SAAW,WAKxB,OAJcp0C,KAAKi0C,WAEbG,UAAW,EAEVp0C,MAGT+zC,EAAKv2C,UAAU03C,IAAM,SAAa3wC,GAChC,IAAM2qB,EAAQlvB,KAAKi0C,WAMnB,OAJArkC,EAA4B,OAArBsf,EAAK,SACZA,EAAK,QAAc3qB,EACnB2qB,EAAMklB,UAAW,EAEVp0C,MAGT+zC,EAAKv2C,UAAUg3C,SAAW,SAAkB/jC,GAC1C,IAAMye,EAAQlvB,KAAKi0C,WAKnB,OAHArkC,EAA0B,OAAnBsf,EAAMslB,UAAwC,OAAnBtlB,EAAMulB,UACxCvlB,EAAMslB,SAAW/jC,EAEVzQ,MAGT+zC,EAAKv2C,UAAUi3C,SAAW,SAAkBhkC,GAC1C,IAAMye,EAAQlvB,KAAKi0C,WAKnB,OAHArkC,EAA0B,OAAnBsf,EAAMslB,UAAwC,OAAnBtlB,EAAMulB,UACxCvlB,EAAMulB,SAAWhkC,EAEVzQ,MAGT+zC,EAAKv2C,UAAU2G,IAAM,WACnB,IAAM+qB,EAAQlvB,KAAKi0C,WACb/yC,EAAOC,MAAM3D,UAAUyG,MAAMlE,KAAKqB,WAOxC,OALA8tB,EAAM/qB,KAAM,EAEQ,IAAhBjD,EAAKzC,QACPuB,KAAKi1C,SAAS/zC,GAETlB,MAGT+zC,EAAKv2C,UAAUa,IAAM,SAAa82C,GAChC,IAAMjmB,EAAQlvB,KAAKi0C,WAKnB,OAHArkC,EAAqB,OAAdsf,EAAM7wB,KACb6wB,EAAM7wB,IAAM82C,EAELn1C,MAGT+zC,EAAKv2C,UAAU62C,IAAM,WAKnB,OAJcr0C,KAAKi0C,WAEbI,KAAM,EAELr0C,MAGT+zC,EAAKv2C,UAAU22C,OAAS,SAAgBhwC,GACtC,IAAM+qB,EAAQlvB,KAAKi0C,WAQnB,OANArkC,EAAwB,OAAjBsf,EAAMilB,QACbjlB,EAAMilB,OAAShwC,EACfnE,KAAKi1C,SAASh4C,OAAOyzB,KAAKvsB,GAAKuwB,KAAI,SAASr2B,GAC1C,OAAO8F,EAAI9F,OAGN2B,MAGT+zC,EAAKv2C,UAAUk3C,SAAW,SAAkBxc,GAC1C,IAAMhJ,EAAQlvB,KAAKi0C,WAKnB,OAHArkC,EAAqB,OAAdsf,EAAMolB,KACbplB,EAAMwlB,SAAWxc,EAEVl4B,MAOT+zC,EAAKv2C,UAAU43C,QAAU,SAAgB1rB,EAAOgJ,GAC9C,IAAMxD,EAAQlvB,KAAKi0C,WAGnB,GAAqB,OAAjB/kB,EAAM8kB,OACR,OAAOtqB,EAAM2rB,WAAWnmB,EAAMtE,SAAS,GAAGwqB,QAAQ1rB,EAAOgJ,IAE3D,IAuCI4iB,EAvCAC,EAASrmB,EAAK,QACdsmB,GAAU,EAEVC,EAAU,KAKd,GAJkB,OAAdvmB,EAAM7wB,MACRo3C,EAAU/rB,EAAMgsB,SAASxmB,EAAM7wB,MAG7B6wB,EAAMklB,SAAU,CAClB,IAAIjT,EAAM,KAQV,GAPuB,OAAnBjS,EAAMslB,SACRrT,EAAMjS,EAAMslB,SACc,OAAnBtlB,EAAMulB,SACbtT,EAAMjS,EAAMulB,SACS,OAAdvlB,EAAMiS,MACbA,EAAMjS,EAAMiS,KAEF,OAARA,GAAiBjS,EAAMmlB,KAgBzB,GAFAmB,EAAUx1C,KAAK21C,SAASjsB,EAAOyX,EAAKjS,EAAMmlB,KAEtC3qB,EAAMuN,QAAQue,GAChB,OAAOA,MAjBqB,CAE9B,IAAMnd,EAAO3O,EAAM2O,OACnB,IACuB,OAAjBnJ,EAAMilB,OACRn0C,KAAK41C,eAAe1mB,EAAMiS,IAAKzX,EAAOgJ,GAEtC1yB,KAAK61C,cAAcnsB,EAAOgJ,GAC5B8iB,GAAU,EACV,MAAO11C,GACP01C,GAAU,EAEZ9rB,EAAM4O,QAAQD,IAclB,GAHInJ,EAAM/qB,KAAOqxC,IACfF,EAAU5rB,EAAMosB,eAEdN,EAAS,CAEX,GAAuB,OAAnBtmB,EAAMslB,SAAmB,CAC3B,IAAMA,EAAWx0C,KAAK+1C,WAAWrsB,EAAOwF,EAAMslB,UAC9C,GAAI9qB,EAAMuN,QAAQud,GAChB,OAAOA,EACT9qB,EAAQ8qB,EAGV,IAAMrvC,EAAQukB,EAAM3iB,OAGpB,GAAkB,OAAdmoB,EAAMolB,KAAiC,OAAjBplB,EAAMilB,OAAiB,CAC/C,IAAI9b,EACAnJ,EAAMmlB,MACRhc,EAAO3O,EAAM2O,QACf,IAAM0c,EAAO/0C,KAAK+1C,WAChBrsB,EACmB,OAAnBwF,EAAMulB,SAAoBvlB,EAAMulB,SAAWvlB,EAAMiS,IACjDjS,EAAMmlB,KAER,GAAI3qB,EAAMuN,QAAQ8d,GAChB,OAAOA,EAEL7lB,EAAMmlB,IACRkB,EAAS7rB,EAAM+O,IAAIJ,GAEnB3O,EAAQqrB,EAkBZ,GAfIriB,GAAWA,EAAQsjB,OAAuB,OAAd9mB,EAAMiS,KACpCzO,EAAQsjB,MAAMtsB,EAAMib,OAAQx/B,EAAOukB,EAAMjrB,OAAQ,UAE/Ci0B,GAAWA,EAAQsjB,OAAuB,OAAd9mB,EAAMiS,KACpCzO,EAAQsjB,MAAMtsB,EAAMib,OAAQjb,EAAM3iB,OAAQ2iB,EAAMjrB,OAAQ,WAGtDywB,EAAMmlB,MAGRkB,EAD0B,OAAjBrmB,EAAMilB,OACNn0C,KAAK41C,eAAe1mB,EAAMiS,IAAKzX,EAAOgJ,GAEtC1yB,KAAK61C,cAAcnsB,EAAOgJ,IAGjChJ,EAAMuN,QAAQse,GAChB,OAAOA,EAYT,GATKrmB,EAAMmlB,KAAwB,OAAjBnlB,EAAMilB,QAAsC,OAAnBjlB,EAAMtE,UAC/CsE,EAAMtE,SAASgO,SAAQ,SAAwBoc,GAG7CA,EAAMI,QAAQ1rB,EAAOgJ,MAKrBxD,EAAMwlB,WAA2B,WAAdxlB,EAAMiS,KAAkC,WAAdjS,EAAMiS,KAAmB,CACxE,IAAM18B,EAAO,IAAIszB,EAAcwd,GAC/BA,EAASv1C,KAAKi2C,QAAQ/mB,EAAMwlB,SAAUhrB,EAAMiP,eAAex0B,KACxDixC,QAAQ3wC,EAAMiuB,IAcrB,OATIxD,EAAM/qB,KAAOqxC,IACfD,EAAS7rB,EAAMwsB,YAAYZ,IAGX,OAAdpmB,EAAM7wB,KAA4B,OAAXk3C,IAA+B,IAAZC,EAEzB,OAAZC,GACP/rB,EAAMysB,QAAQV,GAFd/rB,EAAM0sB,SAASX,EAASvmB,EAAM7wB,IAAKk3C,GAI9BA,GAGTxB,EAAKv2C,UAAUo4C,eAAiB,SAAuBzU,EAAKzX,EAAOgJ,GACjE,IAAMxD,EAAQlvB,KAAKi0C,WAEnB,MAAY,QAAR9S,GAAyB,QAARA,EACZ,KACG,UAARA,GAA2B,UAARA,EACdnhC,KAAKq2C,YAAY3sB,EAAOyX,EAAKjS,EAAMhuB,KAAK,GAAIwxB,GAC5C,OAAO6G,KAAK4H,GACZnhC,KAAKs2C,WAAW5sB,EAAOyX,EAAKzO,GACpB,UAARyO,GAAmBjS,EAAMhuB,KACzBlB,KAAKu2C,aAAa7sB,EAAOwF,EAAMhuB,KAAK,GAAIguB,EAAMhuB,KAAK,GAAIwxB,GAC/C,UAARyO,EACAnhC,KAAKu2C,aAAa7sB,EAAO,KAAM,KAAMgJ,GAC7B,YAARyO,GAA6B,YAARA,EACrBnhC,KAAKw2C,YAAY9sB,EAAOyX,EAAKzO,GACrB,UAARyO,EACAnhC,KAAKy2C,YAAY/sB,EAAOgJ,GAChB,SAARyO,EACAnhC,KAAK02C,YAAYhtB,EAAOgJ,GAChB,YAARyO,EACAnhC,KAAKs2C,WAAW5sB,EAAOyX,EAAKzO,GACpB,QAARyO,GAAyB,SAARA,EACjBnhC,KAAK22C,WAAWjtB,EAAOwF,EAAMhuB,MAAQguB,EAAMhuB,KAAK,GAAIwxB,GAE3C,OAAdxD,EAAMolB,IACDt0C,KAAKi2C,QAAQ/mB,EAAMolB,IAAK5qB,EAAMiP,eAAex0B,KACjDixC,QAAQ1rB,EAAOgJ,GAEXhJ,EAAMwG,MAAM,gBAAkBiR,IAIzC4S,EAAKv2C,UAAUy4C,QAAU,SAAiBW,EAAQzyC,GAEhD,IAAM+qB,EAAQlvB,KAAKi0C,WASnB,OAPA/kB,EAAMqlB,WAAav0C,KAAK62C,KAAKD,EAAQzyC,GACrCyL,EAA8C,OAAvCsf,EAAMqlB,WAAWN,WAAWD,QACnC9kB,EAAMqlB,WAAarlB,EAAMqlB,WAAWN,WAAWrpB,SAAS,GACpDsE,EAAMulB,WAAavlB,EAAMqlB,WAAWN,WAAWQ,WACjDvlB,EAAMqlB,WAAarlB,EAAMqlB,WAAWvjC,QACpCke,EAAMqlB,WAAWN,WAAWQ,SAAWvlB,EAAMulB,UAExCvlB,EAAMqlB,YAGfR,EAAKv2C,UAAUq4C,cAAgB,SAAsBnsB,EAAOgJ,GAC1D,IAAMxD,EAAQlvB,KAAKi0C,WACfsB,EAAS,KACT5qC,GAAQ,EAmBZ,OAjBA1N,OAAOyzB,KAAKxB,EAAMilB,QAAQ2C,MAAK,SAASz4C,GACtC,IAAMg6B,EAAO3O,EAAM2O,OACb0e,EAAO7nB,EAAMilB,OAAO91C,GAC1B,IACE,IAAMX,EAAQq5C,EAAK3B,QAAQ1rB,EAAOgJ,GAClC,GAAIhJ,EAAMuN,QAAQv5B,GAChB,OAAO,EAET63C,EAAS,CAAE/wC,KAAMnG,EAAKX,MAAOA,GAC7BiN,GAAQ,EACR,MAAO7K,GAEP,OADA4pB,EAAM4O,QAAQD,IACP,EAET,OAAO,IACNr4B,MAEE2K,EAGE4qC,EAFE7rB,EAAMwG,MAAM,uBASvB6jB,EAAKv2C,UAAUw5C,qBAAuB,SAA6BvyC,GACjE,OAAO,IAAIuzB,EAAcvzB,EAAMzE,KAAKi4B,WAGtC8b,EAAKv2C,UAAUuiC,QAAU,SAAgBt7B,EAAMwzB,EAAU+b,GACvD,IAAM9kB,EAAQlvB,KAAKi0C,WACnB,GAAyB,OAArB/kB,EAAK,SAAwBA,EAAK,UAAgBzqB,EAAtD,CAGA,IAAM8wC,EAASv1C,KAAKi3C,aAAaxyC,EAAMwzB,EAAU+b,GACjD,QAAe70C,IAAXo2C,IAGAv1C,KAAKk3C,aAAa3B,EAAQtd,EAAU+b,GAGxC,OAAOuB,IAGTxB,EAAKv2C,UAAUy5C,aAAe,SAAgBxyC,EAAMwzB,EAAU+b,GAC5D,IAAM9kB,EAAQlvB,KAAKi0C,WAGnB,GAAqB,OAAjB/kB,EAAM8kB,OACR,OAAO9kB,EAAMtE,SAAS,GAAGmV,QAAQt7B,EAAMwzB,GAAY,IAAIH,GAEzD,IAAIyd,EAAS,KAMb,GAHAv1C,KAAKi4B,SAAWA,EAGZ/I,EAAMklB,eAAqBj1C,IAATsF,EAAoB,CACxC,GAAyB,OAArByqB,EAAK,QAGP,OAFAzqB,EAAOyqB,EAAK,QAMhB,IAAIioB,EAAU,KACVC,GAAY,EAChB,GAAIloB,EAAMmlB,IAERkB,EAASv1C,KAAKg3C,qBAAqBvyC,QAC9B,GAAIyqB,EAAMilB,OACfoB,EAASv1C,KAAKq3C,cAAc5yC,EAAMwzB,QAC7B,GAAI/I,EAAMwlB,SACfyC,EAAUn3C,KAAKi2C,QAAQ/mB,EAAMwlB,SAAUV,GAAQjU,QAAQt7B,EAAMwzB,GAC7Dmf,GAAY,OACP,GAAIloB,EAAMtE,SACfusB,EAAUjoB,EAAMtE,SAAS8J,KAAI,SAASsgB,GACpC,GAA6B,UAAzBA,EAAMf,WAAW9S,IACnB,OAAO6T,EAAMjV,QAAQ,KAAM9H,EAAUxzB,GAEvC,GAA6B,OAAzBuwC,EAAMf,WAAW51C,IACnB,OAAO45B,EAAS/H,MAAM,2BACxB,IAAMulB,EAAUxd,EAASyd,SAASV,EAAMf,WAAW51C,KAEnD,GAAoB,kBAAToG,EACT,OAAOwzB,EAAS/H,MAAM,2CAExB,IAAM1nB,EAAMwsC,EAAMjV,QAAQt7B,EAAKuwC,EAAMf,WAAW51C,KAAM45B,EAAUxzB,GAGhE,OAFAwzB,EAASme,SAASX,GAEXjtC,IACNxI,MAAMskC,QAAO,SAAS0Q,GACvB,OAAOA,KAETmC,EAAUn3C,KAAKg3C,qBAAqBG,QAEpC,GAAkB,UAAdjoB,EAAMiS,KAAiC,UAAdjS,EAAMiS,IAAiB,CAElD,IAAMjS,EAAMhuB,MAA8B,IAAtBguB,EAAMhuB,KAAKzC,OAC7B,OAAOw5B,EAAS/H,MAAM,uBAAyBhB,EAAMiS,KAEvD,IAAKhgC,MAAM6B,QAAQyB,GACjB,OAAOwzB,EAAS/H,MAAM,sCAExB,IAAM8kB,EAAQh1C,KAAKgR,QACnBgkC,EAAMf,WAAWQ,SAAW,KAC5B0C,EAAUn3C,KAAKg3C,qBAAqBvyC,EAAKiwB,KAAI,SAASwD,GACpD,IAAMhJ,EAAQlvB,KAAKi0C,WAEnB,OAAOj0C,KAAKi2C,QAAQ/mB,EAAMhuB,KAAK,GAAIuD,GAAMs7B,QAAQ7H,EAAMD,KACtD+c,SACoB,OAAd9lB,EAAMolB,IACfiB,EAASv1C,KAAKi2C,QAAQ/mB,EAAMolB,IAAKN,GAAQjU,QAAQt7B,EAAMwzB,IAEvDkf,EAAUn3C,KAAKs3C,iBAAiBpoB,EAAMiS,IAAK18B,GAC3C2yC,GAAY,GAKhB,IAAKloB,EAAMmlB,KAAwB,OAAjBnlB,EAAMilB,OAAiB,CACvC,IAAMhT,EAAyB,OAAnBjS,EAAMulB,SAAoBvlB,EAAMulB,SAAWvlB,EAAMiS,IACvDoW,EAAyB,OAAnBroB,EAAMulB,SAAoB,YAAc,UAExC,OAARtT,EACgB,OAAdjS,EAAMolB,KACRrc,EAAS/H,MAAM,wCAEC,OAAdhB,EAAMolB,MACRiB,EAASv1C,KAAKw3C,iBAAiBrW,EAAKiW,EAAWG,EAAKJ,IAQ1D,OAHuB,OAAnBjoB,EAAMslB,WACRe,EAASv1C,KAAKw3C,iBAAiBtoB,EAAMslB,UAAU,EAAO,UAAWe,IAE5DA,GAGTxB,EAAKv2C,UAAU65C,cAAgB,SAAsB5yC,EAAMwzB,GACzD,IAAM/I,EAAQlvB,KAAKi0C,WAEb8C,EAAO7nB,EAAMilB,OAAO1vC,EAAKD,MAO/B,OANKuyC,GACHnnC,GACE,EACAnL,EAAKD,KAAO,iBACNizC,KAAKC,UAAUz6C,OAAOyzB,KAAKxB,EAAMilB,UAEpC4C,EAAKhX,QAAQt7B,EAAK/G,MAAOu6B,IAGlC8b,EAAKv2C,UAAU85C,iBAAmB,SAAyBnW,EAAK18B,GAC9D,IAAMyqB,EAAQlvB,KAAKi0C,WAEnB,GAAI,OAAO1a,KAAK4H,GACd,OAAOnhC,KAAK23C,WAAWlzC,EAAM08B,GAC1B,GAAY,UAARA,GAAmBjS,EAAMhuB,KAChC,OAAOlB,KAAK43C,aAAanzC,EAAMyqB,EAAMglB,YAAY,GAAIhlB,EAAMhuB,KAAK,IAC7D,GAAY,UAARigC,EACP,OAAOnhC,KAAK43C,aAAanzC,EAAM,KAAM,MAClC,GAAY,YAAR08B,GAA6B,YAARA,EAC5B,OAAOnhC,KAAK63C,YAAYpzC,EAAM08B,GAC3B,GAAY,UAARA,EACP,OAAOnhC,KAAK83C,cACT,GAAY,QAAR3W,GAAyB,SAARA,EACxB,OAAOnhC,KAAK+3C,WAAWtzC,EAAMyqB,EAAMhuB,MAAQguB,EAAMglB,YAAY,IAC1D,GAAY,SAAR/S,EACP,OAAOnhC,KAAKg4C,YAAYvzC,GACrB,GAAY,YAAR08B,EACP,OAAOnhC,KAAK23C,WAAWlzC,EAAM08B,GAE7B,MAAM,IAAI1hC,MAAM,oBAAsB0hC,IAG1C4S,EAAKv2C,UAAUy6C,UAAY,SAAkBxwC,GAC3C,MAAO,YAAY8xB,KAAK9xB,IAG1BssC,EAAKv2C,UAAU06C,YAAc,SAAoBzwC,GAC/C,MAAO,6BAA6B8xB,KAAK9xB,K,6BC1nB3C,IAAM8K,EAAWvU,EAAQ,GAEzB,SAAS85B,EAASpF,GAChB1yB,KAAK24B,eAAiB,CACpBx0B,IAAK,KACLwgC,KAAM,GACNjS,QAASA,GAAW,GACpBylB,OAAQ,IA6FZ,SAASC,EAAczT,EAAM90B,GAC3B7P,KAAK2kC,KAAOA,EACZ3kC,KAAKq4C,QAAQxoC,GA5FfzS,EAAQ06B,SAAWA,EAEnBA,EAASt6B,UAAUy5B,QAAU,SAAiB9yB,GAC5C,OAAOA,aAAei0C,GAGxBtgB,EAASt6B,UAAU66B,KAAO,WACxB,IAAMnJ,EAAQlvB,KAAK24B,eAEnB,MAAO,CAAEx0B,IAAK+qB,EAAM/qB,IAAKm0C,QAASppB,EAAMyV,KAAKlmC,SAG/Cq5B,EAASt6B,UAAU86B,QAAU,SAAiB7zB,GAC5C,IAAMyqB,EAAQlvB,KAAK24B,eAEnBzJ,EAAM/qB,IAAMM,EAAKN,IACjB+qB,EAAMyV,KAAOzV,EAAMyV,KAAK1gC,MAAM,EAAGQ,EAAK6zC,UAGxCxgB,EAASt6B,UAAUk4C,SAAW,SAAkBr3C,GAC9C,OAAO2B,KAAK24B,eAAegM,KAAKrjC,KAAKjD,IAGvCy5B,EAASt6B,UAAU24C,QAAU,SAAiB3gC,GAC5C,IAAM0Z,EAAQlvB,KAAK24B,eAEnBzJ,EAAMyV,KAAOzV,EAAMyV,KAAK1gC,MAAM,EAAGuR,EAAQ,IAG3CsiB,EAASt6B,UAAU44C,SAAW,SAAkB5gC,EAAOnX,EAAKX,GAC1D,IAAMwxB,EAAQlvB,KAAK24B,eAEnB34B,KAAKm2C,QAAQ3gC,GACK,OAAd0Z,EAAM/qB,MACR+qB,EAAM/qB,IAAI9F,GAAOX,IAGrBo6B,EAASt6B,UAAUmnC,KAAO,WACxB,OAAO3kC,KAAK24B,eAAegM,KAAK/5B,KAAK,MAGvCktB,EAASt6B,UAAUs4C,YAAc,WAC/B,IAAM5mB,EAAQlvB,KAAK24B,eAEb9O,EAAOqF,EAAM/qB,IAEnB,OADA+qB,EAAM/qB,IAAM,GACL0lB,GAGTiO,EAASt6B,UAAU04C,YAAc,SAAqBrsB,GACpD,IAAMqF,EAAQlvB,KAAK24B,eAEb4f,EAAMrpB,EAAM/qB,IAElB,OADA+qB,EAAM/qB,IAAM0lB,EACL0uB,GAGTzgB,EAASt6B,UAAU0yB,MAAQ,SAAergB,GACxC,IAAIsc,EACE+C,EAAQlvB,KAAK24B,eAEb6f,EAAY3oC,aAAeuoC,EASjC,GAPEjsB,EADEqsB,EACI3oC,EAEA,IAAIuoC,EAAclpB,EAAMyV,KAAKjQ,KAAI,SAAS+jB,GAC9C,MAAO,IAAMhB,KAAKC,UAAUe,GAAQ,OACnC7tC,KAAK,IAAKiF,EAAIugB,SAAWvgB,EAAKA,EAAI6oC,QAGlCxpB,EAAMwD,QAAQimB,QACjB,MAAMxsB,EAKR,OAHKqsB,GACHtpB,EAAMipB,OAAO72C,KAAK6qB,GAEbA,GAGT2L,EAASt6B,UAAU63C,WAAa,SAAoBE,GAClD,IAAMrmB,EAAQlvB,KAAK24B,eACnB,OAAKzJ,EAAMwD,QAAQimB,QAGZ,CACLpD,OAAQv1C,KAAKi3B,QAAQse,GAAU,KAAOA,EACtC4C,OAAQjpB,EAAMipB,QAJP5C,GAYXhjC,EAAS6lC,EAAe34C,OAExB24C,EAAc56C,UAAU66C,QAAU,SAAiBxoC,GAKjD,GAJA7P,KAAKowB,QAAUvgB,EAAM,SAAW7P,KAAK2kC,MAAQ,aACzCllC,MAAMm5C,mBACRn5C,MAAMm5C,kBAAkB54C,KAAMo4C,IAE3Bp4C,KAAK04C,MACR,IAEE,MAAM,IAAIj5C,MAAMO,KAAKowB,SACrB,MAAOtwB,GACPE,KAAK04C,MAAQ54C,EAAE44C,MAGnB,OAAO14C,O,6BCtHT,SAAS64C,EAAQnkB,GACf,IAAMlsB,EAAM,GAWZ,OATAvL,OAAOyzB,KAAKgE,GAAKkE,SAAQ,SAASv6B,IAErB,EAANA,IAAYA,IACfA,GAAY,GAEd,IAAMX,EAAQg3B,EAAIr2B,GAClBmK,EAAI9K,GAASW,KAGRmK,EAGTpL,EAAQ07C,SAAW,CACjB,EAAG,YACH,EAAG,cACH,EAAG,UACH,EAAG,WAEL17C,EAAQ27C,eAAiBF,EAAQz7C,EAAQ07C,UAEzC17C,EAAQ+jC,IAAM,CACZ,EAAM,MACN,EAAM,OACN,EAAM,MACN,EAAM,SACN,EAAM,SACN,EAAM,QACN,EAAM,QACN,EAAM,UACN,EAAM,WACN,EAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,GAAM,MACN,GAAM,MACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,UAER/jC,EAAQ47C,UAAYH,EAAQz7C,EAAQ+jC,M,iBCzDpC,sBAAWhkC,EAAQC,GACjB,aAGA,SAASwS,EAAQrL,EAAKsL,GACpB,IAAKtL,EAAK,MAAM,IAAI9E,MAAMoQ,GAAO,oBAKnC,SAAS0C,EAAUlV,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,EAK/B,SAAS6S,EAAI6E,EAAQC,EAAMjC,GACzB,GAAI7C,EAAG+E,KAAKF,GACV,OAAOA,EAGT/U,KAAKkV,SAAW,EAChBlV,KAAKmV,MAAQ,KACbnV,KAAKvB,OAAS,EAGduB,KAAKoV,IAAM,KAEI,OAAXL,IACW,OAATC,GAA0B,OAATA,IACnBjC,EAASiC,EACTA,EAAO,IAGThV,KAAKqV,MAAMN,GAAU,EAAGC,GAAQ,GAAIjC,GAAU,OAYlD,IAAI9U,EATkB,kBAAXd,EACTA,EAAOC,QAAU8S,EAEjB9S,EAAQ8S,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGoF,SAAW,GAGd,IAEIrX,EADoB,qBAAX0R,QAAmD,qBAAlBA,OAAO1R,OACxC0R,OAAO1R,OAEPD,EAAQ,KAAUC,OAE7B,MAAO6B,IAgIT,SAASyV,EAAe1R,EAAQ2R,GAC9B,IAAIvN,EAAIpE,EAAO8D,WAAW6N,GAE1B,OAAIvN,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASwN,EAAc5R,EAAQ6R,EAAYF,GACzC,IAAIxF,EAAIuF,EAAc1R,EAAQ2R,GAI9B,OAHIA,EAAQ,GAAKE,IACf1F,GAAKuF,EAAc1R,EAAQ2R,EAAQ,IAAM,GAEpCxF,EA8CT,SAAS2F,EAAWlO,EAAKtC,EAAOC,EAAKmH,GAGnC,IAFA,IAAIyD,EAAI,EACJtP,EAAM4H,KAAKC,IAAId,EAAIhJ,OAAQ2G,GACtB/D,EAAI8D,EAAO9D,EAAIX,EAAKW,IAAK,CAChC,IAAI4G,EAAIR,EAAIE,WAAWtG,GAAK,GAE5B2O,GAAKzD,EAIHyD,GADE/H,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAO+H,EAnNTE,EAAG+E,KAAO,SAAexE,GACvB,OAAIA,aAAeP,GAIJ,OAARO,GAA+B,kBAARA,GAC5BA,EAAIhT,YAAY6X,WAAapF,EAAGoF,UAAYnU,MAAM6B,QAAQyN,EAAI0E,QAGlEjF,EAAGxF,IAAM,SAAckL,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG3H,IAAM,SAAcqN,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG1S,UAAU6X,MAAQ,SAAeN,EAAQC,EAAMjC,GAChD,GAAsB,kBAAXgC,EACT,OAAO/U,KAAK+V,YAAYhB,EAAQC,EAAMjC,GAGxC,GAAsB,kBAAXgC,EACT,OAAO/U,KAAKgW,WAAWjB,EAAQC,EAAMjC,GAG1B,QAATiC,IACFA,EAAO,IAETpF,EAAOoF,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI7P,EAAQ,EACM,OAFlB4P,EAASA,EAAOnQ,WAAW0K,QAAQ,OAAQ,KAEhC,KACTnK,IACAnF,KAAKkV,SAAW,GAGd/P,EAAQ4P,EAAOtW,SACJ,KAATuW,EACFhV,KAAKiW,UAAUlB,EAAQ5P,EAAO4N,IAE9B/S,KAAKkW,WAAWnB,EAAQC,EAAM7P,GACf,OAAX4N,GACF/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,MAM9C7C,EAAG1S,UAAUuY,YAAc,SAAsBhB,EAAQC,EAAMjC,GACzDgC,EAAS,IACX/U,KAAKkV,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACX/U,KAAKmV,MAAQ,CAAW,SAATJ,GACf/U,KAAKvB,OAAS,GACLsW,EAAS,kBAClB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,UAEzB/U,KAAKvB,OAAS,IAEdmR,EAAOmF,EAAS,kBAChB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,SACvB,GAEF/U,KAAKvB,OAAS,GAGD,OAAXsU,GAGJ/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,IAGxC7C,EAAG1S,UAAUwY,WAAa,SAAqBjB,EAAQC,EAAMjC,GAG3D,GADAnD,EAAgC,kBAAlBmF,EAAOtW,QACjBsW,EAAOtW,QAAU,EAGnB,OAFAuB,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EACPuB,KAGTA,KAAKvB,OAAS6J,KAAK6N,KAAKpB,EAAOtW,OAAS,GACxCuB,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAGlB,IAAIwF,EAAG6J,EACHzO,EAAM,EACV,GAAe,OAAX8Q,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAGoI,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,UAGC,GAAe,OAAXkM,EACT,IAAK1R,EAAI,EAAGwF,EAAI,EAAGxF,EAAI0T,EAAOtW,OAAQ4C,GAAK,EACzCqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,KAIN,OAAO7G,KAAKoW,SAyBdlG,EAAG1S,UAAUyY,UAAY,SAAoBlB,EAAQ5P,EAAO4N,GAE1D/S,KAAKvB,OAAS6J,KAAK6N,MAAMpB,EAAOtW,OAAS0G,GAAS,GAClDnF,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAIlB,IAGIqP,EAHAzO,EAAM,EACN4E,EAAI,EAGR,GAAe,OAAXkM,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAG4C,GAAK8D,EAAO9D,GAAK,EAC3CqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,OAKX,IAAKZ,GADa0T,EAAOtW,OAAS0G,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO9D,EAAI0T,EAAOtW,OAAQ4C,GAAK,EAC1EqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,EAKbjC,KAAKoW,SA2BPlG,EAAG1S,UAAU0Y,WAAa,SAAqBnB,EAAQC,EAAM7P,GAE3DnF,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EAGd,IAAK,IAAI4X,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWtB,EAClEqB,IAEFA,IACAC,EAAWA,EAAUtB,EAAQ,EAO7B,IALA,IAAIuB,EAAQxB,EAAOtW,OAAS0G,EACxB+L,EAAMqF,EAAQF,EACdjR,EAAMkD,KAAKC,IAAIgO,EAAOA,EAAQrF,GAAO/L,EAErCuN,EAAO,EACFrR,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAKgV,EAChC3D,EAAOiD,EAAUZ,EAAQ1T,EAAGA,EAAIgV,EAASrB,GAEzChV,KAAKwW,MAAMF,GACPtW,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB,GAAY,IAARxB,EAAW,CACb,IAAIpE,EAAM,EAGV,IAFA4F,EAAOiD,EAAUZ,EAAQ1T,EAAG0T,EAAOtW,OAAQuW,GAEtC3T,EAAI,EAAGA,EAAI6P,EAAK7P,IACnByL,GAAOkI,EAGThV,KAAKwW,MAAM1J,GACP9M,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB1S,KAAKoW,SAGPlG,EAAG1S,UAAU8G,KAAO,SAAeoS,GACjCA,EAAKvB,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BqV,EAAKvB,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAE7BqV,EAAKjY,OAASuB,KAAKvB,OACnBiY,EAAKxB,SAAWlV,KAAKkV,SACrBwB,EAAKtB,IAAMpV,KAAKoV,KAGlBlF,EAAG1S,UAAUwT,MAAQ,WACnB,IAAIhB,EAAI,IAAIE,EAAG,MAEf,OADAlQ,KAAKsE,KAAK0L,GACHA,GAGTE,EAAG1S,UAAUmZ,QAAU,SAAkB5X,GACvC,KAAOiB,KAAKvB,OAASM,GACnBiB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAE9B,OAAOuB,MAITkQ,EAAG1S,UAAU4Y,MAAQ,WACnB,KAAOpW,KAAKvB,OAAS,GAAqC,IAAhCuB,KAAKmV,MAAMnV,KAAKvB,OAAS,IACjDuB,KAAKvB,SAEP,OAAOuB,KAAK4W,aAGd1G,EAAG1S,UAAUoZ,UAAY,WAKvB,OAHoB,IAAhB5W,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,KAClCnV,KAAKkV,SAAW,GAEXlV,MAGTkQ,EAAG1S,UAAUiN,QAAU,WACrB,OAAQzK,KAAKoV,IAAM,UAAY,SAAWpV,KAAK4E,SAAS,IAAM,KAiChE,IAAIiS,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYC,EAAMxG,EAAKlF,GAC9BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC,IAAIxU,EAAOuW,EAAKxY,OAASgS,EAAIhS,OAAU,EACvC8M,EAAI9M,OAASiC,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIsJ,EAAoB,EAAhBiN,EAAK9B,MAAM,GACfvP,EAAmB,EAAf6K,EAAI0E,MAAM,GACdnF,EAAIhG,EAAIpE,EAERuC,EAAS,SAAJ6H,EACLqE,EAASrE,EAAI,SAAa,EAC9BzE,EAAI4J,MAAM,GAAKhN,EAEf,IAAK,IAAI4I,EAAI,EAAGA,EAAIrQ,EAAKqQ,IAAK,CAM5B,IAHA,IAAImG,EAAS7C,IAAU,GACnB8C,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAK0P,EAAIlK,EAAK,EAIlBqQ,IADAlH,GAFAhG,EAAoB,EAAhBiN,EAAK9B,MAAM9T,KACfuE,EAAmB,EAAf6K,EAAI0E,MAAMtO,IACFsQ,GACG,SAAa,EAC5BA,EAAY,SAAJnH,EAEVzE,EAAI4J,MAAMpE,GAAa,EAARoG,EACf9C,EAAiB,EAAT6C,EAQV,OANc,IAAV7C,EACF9I,EAAI4J,MAAMpE,GAAa,EAARsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAzlBblG,EAAG1S,UAAUoH,SAAW,SAAmBoQ,EAAMqC,GAI/C,IAAI9L,EACJ,GAHA8L,EAAoB,EAAVA,GAAe,EAGZ,MAJbrC,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCzJ,EAAM,GAGN,IAFA,IAAItJ,EAAM,EACNoS,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,EAAI1Q,KAAKmV,MAAM9T,GACfqR,GAA+B,UAArBhC,GAAKzO,EAAOoS,IAAmBzP,SAAS,IAGpD2G,EADY,KADd8I,EAAS3D,IAAO,GAAKzO,EAAQ,WACVZ,IAAMrB,KAAKvB,OAAS,EAC/BoY,EAAM,EAAInE,EAAKjU,QAAUiU,EAAOnH,EAEhCmH,EAAOnH,GAEftJ,GAAO,IACI,KACTA,GAAO,GACPZ,KAMJ,IAHc,IAAVgT,IACF9I,EAAM8I,EAAMzP,SAAS,IAAM2G,GAEtBA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGT,GAAIyJ,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYR,EAAW9B,GAEvBuC,EAAYR,EAAW/B,GAC3BzJ,EAAM,GACN,IAAItD,EAAIjI,KAAKgR,QAEb,IADA/I,EAAEiN,SAAW,GACLjN,EAAEuP,UAAU,CAClB,IAAIxH,EAAI/H,EAAEwP,KAAKF,GAAW3S,SAASoQ,GAMjCzJ,GALFtD,EAAIA,EAAEyP,MAAMH,IAELC,SAGCxH,EAAIzE,EAFJsL,EAAMS,EAAYtH,EAAEvR,QAAUuR,EAAIzE,EAQ5C,IAHIvL,KAAKwX,WACPjM,EAAM,IAAMA,GAEPA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGTqE,GAAO,EAAO,oCAGhBM,EAAG1S,UAAUma,SAAW,WACtB,IAAIrM,EAAMtL,KAAKmV,MAAM,GASrB,OARoB,IAAhBnV,KAAKvB,OACP6M,GAAuB,SAAhBtL,KAAKmV,MAAM,GACO,IAAhBnV,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,GAEzC7J,GAAO,iBAAoC,SAAhBtL,KAAKmV,MAAM,GAC7BnV,KAAKvB,OAAS,GACvBmR,GAAO,EAAO,8CAEU,IAAlB5P,KAAKkV,UAAmB5J,EAAMA,GAGxC4E,EAAG1S,UAAU4N,OAAS,WACpB,OAAOpL,KAAK4E,SAAS,KAGvBsL,EAAG1S,UAAUoa,SAAW,SAAmB7E,EAAQtU,GAEjD,OADAmR,EAAyB,qBAAX3R,GACP+B,KAAK6X,YAAY5Z,EAAQ8U,EAAQtU,IAG1CyR,EAAG1S,UAAU6S,QAAU,SAAkB0C,EAAQtU,GAC/C,OAAOuB,KAAK6X,YAAY1W,MAAO4R,EAAQtU,IAGzCyR,EAAG1S,UAAUqa,YAAc,SAAsBC,EAAW/E,EAAQtU,GAClE,IAAIiF,EAAa1D,KAAK0D,aAClBqU,EAAYtZ,GAAU6J,KAAKoC,IAAI,EAAGhH,GACtCkM,EAAOlM,GAAcqU,EAAW,yCAChCnI,EAAOmI,EAAY,EAAG,+BAEtB/X,KAAKoW,QACL,IAGIxQ,EAAGvE,EAHHyK,EAA0B,OAAXiH,EACfvK,EAAM,IAAIsP,EAAUC,GAGpBC,EAAIhY,KAAKgR,QACb,GAAKlF,EAYE,CACL,IAAKzK,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAInH,GAAKuE,EAGX,KAAOvE,EAAI0W,EAAW1W,IACpBmH,EAAInH,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAI0W,EAAYrU,EAAYrC,IACtCmH,EAAInH,GAAK,EAGX,IAAKA,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAIuP,EAAY1W,EAAI,GAAKuE,EAe7B,OAAO4C,GAGLF,KAAK2P,MACP/H,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,OAAO,GAAKpI,KAAK2P,MAAMvH,IAGzBR,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,IAAIyH,EAAIzH,EACJV,EAAI,EAiBR,OAhBImI,GAAK,OACPnI,GAAK,GACLmI,KAAO,IAELA,GAAK,KACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAEFnI,EAAImI,GAIfjI,EAAG1S,UAAU4a,UAAY,SAAoB1H,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIyH,EAAIzH,EACJV,EAAI,EAoBR,OAnBqB,KAAZ,KAAJmI,KACHnI,GAAK,GACLmI,KAAO,IAEU,KAAV,IAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,GAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,IACHnI,IAEKA,GAITE,EAAG1S,UAAUqT,UAAY,WACvB,IAAIH,EAAI1Q,KAAKmV,MAAMnV,KAAKvB,OAAS,GAC7ByJ,EAAKlI,KAAKkY,WAAWxH,GACzB,OAA2B,IAAnB1Q,KAAKvB,OAAS,GAAUyJ,GAiBlCgI,EAAG1S,UAAU6a,SAAW,WACtB,GAAIrY,KAAKwX,SAAU,OAAO,EAG1B,IADA,IAAIxH,EAAI,EACC3O,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIuE,EAAI5F,KAAKoY,UAAUpY,KAAKmV,MAAM9T,IAElC,GADA2O,GAAKpK,EACK,KAANA,EAAU,MAEhB,OAAOoK,GAGTE,EAAG1S,UAAUkG,WAAa,WACxB,OAAO4E,KAAK6N,KAAKnW,KAAK6Q,YAAc,IAGtCX,EAAG1S,UAAU8a,OAAS,SAAiBC,GACrC,OAAsB,IAAlBvY,KAAKkV,SACAlV,KAAKwY,MAAMC,MAAMF,GAAOG,MAAM,GAEhC1Y,KAAKgR,SAGdd,EAAG1S,UAAUmb,SAAW,SAAmBJ,GACzC,OAAIvY,KAAK4Y,MAAML,EAAQ,GACdvY,KAAK6Y,KAAKN,GAAOG,MAAM,GAAGI,OAE5B9Y,KAAKgR,SAGdd,EAAG1S,UAAUub,MAAQ,WACnB,OAAyB,IAAlB/Y,KAAKkV,UAIdhF,EAAG1S,UAAUwb,IAAM,WACjB,OAAOhZ,KAAKgR,QAAQ8H,QAGtB5I,EAAG1S,UAAUsb,KAAO,WAKlB,OAJK9Y,KAAKwX,WACRxX,KAAKkV,UAAY,GAGZlV,MAITkQ,EAAG1S,UAAUyb,KAAO,SAAexI,GACjC,KAAOzQ,KAAKvB,OAASgS,EAAIhS,QACvBuB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAG9B,IAAK,IAAI4C,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAC9BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAG5C,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAU0b,IAAM,SAAczI,GAE/B,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKiZ,KAAKxI,IAInBP,EAAG1S,UAAU2b,GAAK,SAAa1I,GAC7B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkI,IAAIzI,GAC/CA,EAAIO,QAAQkI,IAAIlZ,OAGzBkQ,EAAG1S,UAAU4b,IAAM,SAAc3I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQiI,KAAKxI,GAChDA,EAAIO,QAAQiI,KAAKjZ,OAI1BkQ,EAAG1S,UAAU6b,MAAQ,SAAgB5I,GAEnC,IAAI7K,EAEFA,EADE5F,KAAKvB,OAASgS,EAAIhS,OAChBgS,EAEAzQ,KAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAK5C,OAFArB,KAAKvB,OAASmH,EAAEnH,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAU8b,KAAO,SAAe7I,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKqZ,MAAM5I,IAIpBP,EAAG1S,UAAU+b,IAAM,SAAc9I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQsI,KAAK7I,GAChDA,EAAIO,QAAQsI,KAAKtZ,OAG1BkQ,EAAG1S,UAAUgc,KAAO,SAAe/I,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQqI,MAAM5I,GACjDA,EAAIO,QAAQqI,MAAMrZ,OAI3BkQ,EAAG1S,UAAUic,MAAQ,SAAgBhJ,GAEnC,IAAIzG,EACApE,EACA5F,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAAKuE,EAAEuP,MAAM9T,GAGvC,GAAIrB,OAASgK,EACX,KAAO3I,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAM5B,OAFArB,KAAKvB,OAASuL,EAAEvL,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAUkc,KAAO,SAAejJ,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKyZ,MAAMhJ,IAIpBP,EAAG1S,UAAUmc,IAAM,SAAclJ,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQ0I,KAAKjJ,GAChDA,EAAIO,QAAQ0I,KAAK1Z,OAG1BkQ,EAAG1S,UAAUoc,KAAO,SAAenJ,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQyI,MAAMhJ,GACjDA,EAAIO,QAAQyI,MAAMzZ,OAI3BkQ,EAAG1S,UAAUib,MAAQ,SAAgBF,GACnC3I,EAAwB,kBAAV2I,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBvR,KAAK6N,KAAKoC,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvBvY,KAAK2W,QAAQkD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIxY,EAAI,EAAGA,EAAIwY,EAAaxY,IAC/BrB,KAAKmV,MAAM9T,GAAsB,UAAhBrB,KAAKmV,MAAM9T,GAS9B,OALIyY,EAAW,IACb9Z,KAAKmV,MAAM9T,IAAMrB,KAAKmV,MAAM9T,GAAM,UAAc,GAAKyY,GAIhD9Z,KAAKoW,SAGdlG,EAAG1S,UAAUqb,KAAO,SAAeN,GACjC,OAAOvY,KAAKgR,QAAQyH,MAAMF,IAI5BrI,EAAG1S,UAAUuc,KAAO,SAAeC,EAAKzV,GACtCqL,EAAsB,kBAARoK,GAAoBA,GAAO,GAEzC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAha,KAAK2W,QAAQ1U,EAAM,GAGjBjC,KAAKmV,MAAMlT,GADTsC,EACgBvE,KAAKmV,MAAMlT,GAAQ,GAAKgY,EAExBja,KAAKmV,MAAMlT,KAAS,GAAKgY,GAGtCja,KAAKoW,SAIdlG,EAAG1S,UAAU0c,KAAO,SAAezJ,GACjC,IAAIT,EAkBAhG,EAAGpE,EAfP,GAAsB,IAAlB5F,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAI7B,OAHAlV,KAAKkV,SAAW,EAChBlF,EAAIhQ,KAAKma,KAAK1J,GACdzQ,KAAKkV,UAAY,EACVlV,KAAK4W,YAGP,GAAsB,IAAlB5W,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAIpC,OAHAzE,EAAIyE,SAAW,EACflF,EAAIhQ,KAAKma,KAAK1J,GACdA,EAAIyE,SAAW,EACRlF,EAAE4G,YAKP5W,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5B2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,EAC1CrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAEhB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAClC2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,EACvBrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAIhB,GADAhQ,KAAKvB,OAASuL,EAAEvL,OACF,IAAV4V,EACFrU,KAAKmV,MAAMnV,KAAKvB,QAAU4V,EAC1BrU,KAAKvB,cAEA,GAAIuL,IAAMhK,KACf,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAI5B,OAAOrB,MAITkQ,EAAG1S,UAAU4c,IAAM,SAAc3J,GAC/B,IAAIjI,EACJ,OAAqB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UAC7BzE,EAAIyE,SAAW,EACf1M,EAAMxI,KAAKmO,IAAIsC,GACfA,EAAIyE,UAAY,EACT1M,GACmB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UACpClV,KAAKkV,SAAW,EAChB1M,EAAMiI,EAAItC,IAAInO,MACdA,KAAKkV,SAAW,EACT1M,GAGLxI,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkJ,KAAKzJ,GAEhDA,EAAIO,QAAQkJ,KAAKla,OAI1BkQ,EAAG1S,UAAU2c,KAAO,SAAe1J,GAEjC,GAAqB,IAAjBA,EAAIyE,SAAgB,CACtBzE,EAAIyE,SAAW,EACf,IAAIlF,EAAIhQ,KAAKka,KAAKzJ,GAElB,OADAA,EAAIyE,SAAW,EACRlF,EAAE4G,YAGJ,GAAsB,IAAlB5W,KAAKkV,SAId,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAKka,KAAKzJ,GACVzQ,KAAKkV,SAAW,EACTlV,KAAK4W,YAId,IAWI5M,EAAGpE,EAXHkQ,EAAM9V,KAAK8V,IAAIrF,GAGnB,GAAY,IAARqF,EAIF,OAHA9V,KAAKkV,SAAW,EAChBlV,KAAKvB,OAAS,EACduB,KAAKmV,MAAM,GAAK,EACTnV,KAKL8V,EAAM,GACR9L,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAE5BgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,IAC7B,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAElB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAElCgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,IACV,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAIlB,GAAc,IAAVqE,GAAehT,EAAI2I,EAAEvL,QAAUuL,IAAMhK,KACvC,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAU5B,OANArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,GAEhC2I,IAAMhK,OACRA,KAAKkV,SAAW,GAGXlV,KAAKoW,SAIdlG,EAAG1S,UAAU2Q,IAAM,SAAcsC,GAC/B,OAAOzQ,KAAKgR,QAAQmJ,KAAK1J,IA+C3B,IAAI4J,EAAc,SAAsBpD,EAAMxG,EAAKlF,GACjD,IAIIpD,EACAmS,EACApS,EANA8B,EAAIiN,EAAK9B,MACTvP,EAAI6K,EAAI0E,MACRoF,EAAIhP,EAAI4J,MACRlN,EAAI,EAIJuS,EAAY,EAAPxQ,EAAE,GACPyQ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Q,EAAE,GACP4Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Q,EAAE,GACP+Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjR,EAAE,GACPkR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpR,EAAE,GACPqR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvR,EAAE,GACPwR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1R,EAAE,GACP2R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7R,EAAE,GACP8R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhS,EAAE,GACPiS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnS,EAAE,GACPoS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1W,EAAE,GACP2W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7W,EAAE,GACP8W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhX,EAAE,GACPiX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnX,EAAE,GACPoX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtX,EAAE,GACPuX,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPzX,EAAE,GACP0X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5X,EAAE,GACP6X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/X,EAAE,GACPgY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlY,EAAE,GACPmY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrY,EAAE,GACPsY,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB1S,EAAI2J,SAAW+B,EAAK/B,SAAWzE,EAAIyE,SACnC3J,EAAI9M,OAAS,GAMb,IAAI2f,IAAQnW,GAJZE,EAAKG,KAAK+V,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAMhS,KAAK+V,KAAK5D,EAAK+B,IACRlU,KAAK+V,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDtU,IAFAC,EAAKI,KAAK+V,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENjW,EAAKG,KAAK+V,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKzD,EAAK4B,IACRlU,KAAK+V,KAAKxD,EAAK0B,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQrW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKkC,GAAQ,GACvBrU,KAAK+V,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDzU,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENnW,EAAKG,KAAK+V,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKtD,EAAKyB,IACRlU,KAAK+V,KAAKrD,EAAKuB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKrD,EAAKwB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK+B,GAAQ,GACvBrU,KAAK+V,KAAKxD,EAAK6B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQtW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKqC,GAAQ,GACvBxU,KAAK+V,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD5U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENpW,EAAKG,KAAK+V,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKnD,EAAKsB,IACRlU,KAAK+V,KAAKlD,EAAKoB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKlD,EAAKqB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK4B,GAAQ,GACvBrU,KAAK+V,KAAKrD,EAAK0B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK2B,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKkC,GAAQ,GACvBxU,KAAK+V,KAAKxD,EAAKgC,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQvW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKwC,GAAQ,GACvB3U,KAAK+V,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD/U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENrW,EAAKG,KAAK+V,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKhD,EAAKmB,IACRlU,KAAK+V,KAAK/C,EAAKiB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK/C,EAAKkB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKyB,GAAQ,GACvBrU,KAAK+V,KAAKlD,EAAKuB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKwB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK+B,GAAQ,GACvBxU,KAAK+V,KAAKrD,EAAK6B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK8B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKqC,GAAQ,GACvB3U,KAAK+V,KAAKxD,EAAKmC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQxW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK2C,IAAQ,GACvB9U,KAAK+V,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDlV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENtW,EAAKG,KAAK+V,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK7C,EAAKgB,IACRlU,KAAK+V,KAAK5C,EAAKc,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK5C,EAAKe,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKsB,GAAQ,GACvBrU,KAAK+V,KAAK/C,EAAKoB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKqB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK4B,GAAQ,GACvBxU,KAAK+V,KAAKlD,EAAK0B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK2B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKkC,GAAQ,GACvB3U,KAAK+V,KAAKrD,EAAKgC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKiC,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKwC,IAAQ,GACvB9U,KAAK+V,KAAKxD,EAAKsC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQzW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK8C,IAAQ,GACvBjV,KAAK+V,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDrV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENvW,EAAKG,KAAK+V,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK1C,EAAKa,IACRlU,KAAK+V,KAAKzC,EAAKW,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKzC,EAAKY,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKmB,GAAQ,GACvBrU,KAAK+V,KAAK5C,EAAKiB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKkB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKyB,GAAQ,GACvBxU,KAAK+V,KAAK/C,EAAKuB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKwB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK+B,GAAQ,GACvB3U,KAAK+V,KAAKlD,EAAK6B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK8B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKqC,IAAQ,GACvB9U,KAAK+V,KAAKrD,EAAKmC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKoC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK2C,IAAQ,GACvBjV,KAAK+V,KAAKxD,EAAKyC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ1W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKiD,IAAQ,GACvBpV,KAAK+V,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDxV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENxW,EAAKG,KAAK+V,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKvC,EAAKU,IACRlU,KAAK+V,KAAKtC,EAAKQ,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKtC,EAAKS,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKgB,GAAQ,GACvBrU,KAAK+V,KAAKzC,EAAKc,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKe,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKsB,GAAQ,GACvBxU,KAAK+V,KAAK5C,EAAKoB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKqB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK4B,GAAQ,GACvB3U,KAAK+V,KAAK/C,EAAK0B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK2B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKkC,IAAQ,GACvB9U,KAAK+V,KAAKlD,EAAKgC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKiC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKwC,IAAQ,GACvBjV,KAAK+V,KAAKrD,EAAKsC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKuC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK8C,IAAQ,GACvBpV,KAAK+V,KAAKxD,EAAK4C,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ3W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKoD,IAAQ,GACvBvV,KAAK+V,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD3V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENzW,EAAKG,KAAK+V,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKpC,EAAKO,IACRlU,KAAK+V,KAAKnC,EAAKK,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKnC,EAAKM,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKa,GAAQ,GACvBrU,KAAK+V,KAAKtC,EAAKW,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKY,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKmB,GAAQ,GACvBxU,KAAK+V,KAAKzC,EAAKiB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKkB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKyB,GAAQ,GACvB3U,KAAK+V,KAAK5C,EAAKuB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKwB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK+B,IAAQ,GACvB9U,KAAK+V,KAAK/C,EAAK6B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK8B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKqC,IAAQ,GACvBjV,KAAK+V,KAAKlD,EAAKmC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKoC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK2C,IAAQ,GACvBpV,KAAK+V,KAAKrD,EAAKyC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK0C,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKiD,IAAQ,GACvBvV,KAAK+V,KAAKxD,EAAK+C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ5W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKuD,IAAQ,GACvB1V,KAAK+V,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD9V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN1W,EAAKG,KAAK+V,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKI,IACRlU,KAAK+V,KAAKhC,EAAKE,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKhC,EAAKG,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKU,GAAQ,GACvBrU,KAAK+V,KAAKnC,EAAKQ,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKS,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKgB,GAAQ,GACvBxU,KAAK+V,KAAKtC,EAAKc,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKe,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKsB,GAAQ,GACvB3U,KAAK+V,KAAKzC,EAAKoB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKqB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK4B,IAAQ,GACvB9U,KAAK+V,KAAK5C,EAAK0B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK2B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKkC,IAAQ,GACvBjV,KAAK+V,KAAK/C,EAAKgC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKiC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKwC,IAAQ,GACvBpV,KAAK+V,KAAKlD,EAAKsC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKuC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK8C,IAAQ,GACvBvV,KAAK+V,KAAKrD,EAAK4C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK6C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKoD,IAAQ,GACvB1V,KAAK+V,KAAKxD,EAAKkD,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ7W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK0D,IAAQ,GACvB7V,KAAK+V,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAEN3W,EAAKG,KAAK+V,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKO,IACRrU,KAAK+V,KAAKhC,EAAKK,GAAQ,EACpCxU,EAAKI,KAAK+V,KAAKhC,EAAKM,GACpBxU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKa,GAAQ,GACvBxU,KAAK+V,KAAKnC,EAAKW,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKY,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKmB,GAAQ,GACvB3U,KAAK+V,KAAKtC,EAAKiB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKkB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKyB,IAAQ,GACvB9U,KAAK+V,KAAKzC,EAAKuB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKwB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK+B,IAAQ,GACvBjV,KAAK+V,KAAK5C,EAAK6B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK8B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKqC,IAAQ,GACvBpV,KAAK+V,KAAK/C,EAAKmC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKoC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK2C,IAAQ,GACvBvV,KAAK+V,KAAKlD,EAAKyC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK0C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKiD,IAAQ,GACvB1V,KAAK+V,KAAKrD,EAAK+C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS9W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKuD,IAAQ,GACvB7V,KAAK+V,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP5W,EAAKG,KAAK+V,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKU,IACRxU,KAAK+V,KAAKhC,EAAKQ,GAAQ,EACpC3U,EAAKI,KAAK+V,KAAKhC,EAAKS,GACpB3U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKgB,GAAQ,GACvB3U,KAAK+V,KAAKnC,EAAKc,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKe,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKsB,IAAQ,GACvB9U,KAAK+V,KAAKtC,EAAKoB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKqB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK4B,IAAQ,GACvBjV,KAAK+V,KAAKzC,EAAK0B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK2B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKkC,IAAQ,GACvBpV,KAAK+V,KAAK5C,EAAKgC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKiC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKwC,IAAQ,GACvBvV,KAAK+V,KAAK/C,EAAKsC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKuC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK8C,IAAQ,GACvB1V,KAAK+V,KAAKlD,EAAK4C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS/W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKoD,IAAQ,GACvB7V,KAAK+V,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP7W,EAAKG,KAAK+V,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKa,IACR3U,KAAK+V,KAAKhC,EAAKW,GAAQ,EACpC9U,EAAKI,KAAK+V,KAAKhC,EAAKY,GACpB9U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKmB,IAAQ,GACvB9U,KAAK+V,KAAKnC,EAAKiB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKkB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKyB,IAAQ,GACvBjV,KAAK+V,KAAKtC,EAAKuB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKwB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK+B,IAAQ,GACvBpV,KAAK+V,KAAKzC,EAAK6B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK8B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKqC,IAAQ,GACvBvV,KAAK+V,KAAK5C,EAAKmC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKoC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK2C,IAAQ,GACvB1V,KAAK+V,KAAK/C,EAAKyC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAShX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKiD,IAAQ,GACvB7V,KAAK+V,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP9W,EAAKG,KAAK+V,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKgB,KACR9U,KAAK+V,KAAKhC,EAAKc,GAAQ,EACpCjV,EAAKI,KAAK+V,KAAKhC,EAAKe,IACpBjV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKsB,IAAQ,GACvBjV,KAAK+V,KAAKnC,EAAKoB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKqB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK4B,IAAQ,GACvBpV,KAAK+V,KAAKtC,EAAK0B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK2B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKkC,IAAQ,GACvBvV,KAAK+V,KAAKzC,EAAKgC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKiC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKwC,IAAQ,GACvB1V,KAAK+V,KAAK5C,EAAKsC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASjX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK8C,IAAQ,GACvB7V,KAAK+V,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP/W,EAAKG,KAAK+V,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKmB,KACRjV,KAAK+V,KAAKhC,EAAKiB,IAAQ,EACpCpV,EAAKI,KAAK+V,KAAKhC,EAAKkB,IACpBpV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKyB,IAAQ,GACvBpV,KAAK+V,KAAKnC,EAAKuB,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKwB,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK+B,IAAQ,GACvBvV,KAAK+V,KAAKtC,EAAK6B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK8B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKqC,IAAQ,GACvB1V,KAAK+V,KAAKzC,EAAKmC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASlX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK2C,IAAQ,GACvB7V,KAAK+V,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPhX,EAAKG,KAAK+V,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKsB,KACRpV,KAAK+V,KAAKhC,EAAKoB,IAAQ,EACpCvV,EAAKI,KAAK+V,KAAKhC,EAAKqB,IACpBvV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK4B,IAAQ,GACvBvV,KAAK+V,KAAKnC,EAAK0B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK2B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKkC,IAAQ,GACvB1V,KAAK+V,KAAKtC,EAAKgC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASnX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKwC,IAAQ,GACvB7V,KAAK+V,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPjX,EAAKG,KAAK+V,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKyB,KACRvV,KAAK+V,KAAKhC,EAAKuB,IAAQ,EACpC1V,EAAKI,KAAK+V,KAAKhC,EAAKwB,IACpB1V,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK+B,IAAQ,GACvB1V,KAAK+V,KAAKnC,EAAK6B,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASpX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKqC,IAAQ,GACvB7V,KAAK+V,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPlX,EAAKG,KAAK+V,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK4B,KACR1V,KAAK+V,KAAKhC,EAAK0B,IAAQ,EACpC7V,EAAKI,KAAK+V,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASrX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKkC,IAAQ,GACvB7V,KAAK+V,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAStX,GAJbE,EAAKG,KAAK+V,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK+B,KACR7V,KAAK+V,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAjW,IAFAC,EAAKI,KAAK+V,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANtX,IACFsS,EAAE,IAAMtS,EACRsD,EAAI9M,UAEC8M,GAiDT,SAASiU,EAAYvI,EAAMxG,EAAKlF,GAE9B,OADW,IAAIkU,GACHC,KAAKzI,EAAMxG,EAAKlF,GAsB9B,SAASkU,EAAMxV,EAAGC,GAChBlK,KAAKiK,EAAIA,EACTjK,KAAKkK,EAAIA,EAvEN5B,KAAK+V,OACRhE,EAAcrD,GAiDhB9G,EAAG1S,UAAUmiB,MAAQ,SAAgBlP,EAAKlF,GACxC,IAAI/C,EACA9H,EAAMV,KAAKvB,OAASgS,EAAIhS,OAW5B,OATE+J,EADkB,KAAhBxI,KAAKvB,QAAgC,KAAfgS,EAAIhS,OACtB4b,EAAYra,KAAMyQ,EAAKlF,GACpB7K,EAAM,GACTsW,EAAWhX,KAAMyQ,EAAKlF,GACnB7K,EAAM,KArDnB,SAAmBuW,EAAMxG,EAAKlF,GAC5BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC3J,EAAI9M,OAASwY,EAAKxY,OAASgS,EAAIhS,OAI/B,IAFA,IAAI4V,EAAQ,EACRuL,EAAU,EACL7O,EAAI,EAAGA,EAAIxF,EAAI9M,OAAS,EAAGsS,IAAK,CAGvC,IAAImG,EAAS0I,EACbA,EAAU,EAGV,IAFA,IAAIzI,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAI0P,EAAIlK,EAGRmJ,GAFoB,EAAhBiH,EAAK9B,MAAM9T,KACI,EAAfoP,EAAI0E,MAAMtO,IAGdsB,EAAS,SAAJ6H,EAGTmH,EAAa,UADbhP,EAAMA,EAAKgP,EAAS,GAIpByI,IAFA1I,GAHAA,EAAUA,GAAWlH,EAAI,SAAa,GAAM,IAGxB7H,IAAO,IAAO,KAEZ,GACtB+O,GAAU,SAEZ3L,EAAI4J,MAAMpE,GAAKoG,EACf9C,EAAQ6C,EACRA,EAAS0I,EAQX,OANc,IAAVvL,EACF9I,EAAI4J,MAAMpE,GAAKsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAgBHyJ,CAAS7f,KAAMyQ,EAAKlF,GAEpBiU,EAAWxf,KAAMyQ,EAAKlF,GAGvB/C,GAWTiX,EAAKjiB,UAAUsiB,QAAU,SAAkBC,GAGzC,IAFA,IAAI5H,EAAI,IAAIhX,MAAM4e,GACdhQ,EAAIG,EAAG1S,UAAU0a,WAAW6H,GAAK,EAC5B1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrB8W,EAAE9W,GAAKrB,KAAKggB,OAAO3e,EAAG0O,EAAGgQ,GAG3B,OAAO5H,GAITsH,EAAKjiB,UAAUwiB,OAAS,SAAiB/V,EAAG8F,EAAGgQ,GAC7C,GAAU,IAAN9V,GAAWA,IAAM8V,EAAI,EAAG,OAAO9V,EAGnC,IADA,IAAIgW,EAAK,EACA5e,EAAI,EAAGA,EAAI0O,EAAG1O,IACrB4e,IAAW,EAAJhW,IAAW8F,EAAI1O,EAAI,EAC1B4I,IAAM,EAGR,OAAOgW,GAKTR,EAAKjiB,UAAU0iB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBif,EAAKjf,GAAK+e,EAAID,EAAI9e,IAClBkf,EAAKlf,GAAKgf,EAAIF,EAAI9e,KAItBoe,EAAKjiB,UAAUgjB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEngB,KAAKkgB,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIU,EAAI,EAAGA,EAAIV,EAAGU,IAAM,EAM3B,IALA,IAAI1Q,EAAI0Q,GAAK,EAETC,EAAQpY,KAAKqY,IAAI,EAAIrY,KAAKsY,GAAK7Q,GAC/B8Q,EAAQvY,KAAKwY,IAAI,EAAIxY,KAAKsY,GAAK7Q,GAE1B8C,EAAI,EAAGA,EAAIkN,EAAGlN,GAAK9C,EAI1B,IAHA,IAAIgR,EAASL,EACTM,EAASH,EAEJha,EAAI,EAAGA,EAAI4Z,EAAG5Z,IAAK,CAC1B,IAAIoa,EAAKX,EAAKzN,EAAIhM,GACdqa,EAAKX,EAAK1N,EAAIhM,GAEdsa,EAAKb,EAAKzN,EAAIhM,EAAI4Z,GAClBW,EAAKb,EAAK1N,EAAIhM,EAAI4Z,GAElBY,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKzN,EAAIhM,GAAKoa,EAAKE,EACnBZ,EAAK1N,EAAIhM,GAAKqa,EAAKE,EAEnBd,EAAKzN,EAAIhM,EAAI4Z,GAAKQ,EAAKE,EACvBZ,EAAK1N,EAAIhM,EAAI4Z,GAAKS,EAAKE,EAGnBva,IAAMkJ,IACRsR,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,KAOnB5B,EAAKjiB,UAAU8jB,YAAc,SAAsBzb,EAAGC,GACpD,IAAIia,EAAqB,EAAjBzX,KAAKoC,IAAI5E,EAAGD,GAChB0b,EAAU,EAAJxB,EACN1e,EAAI,EACR,IAAK0e,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B1e,IAGF,OAAO,GAAKA,EAAI,EAAIkgB,GAGtB9B,EAAKjiB,UAAUgkB,UAAY,SAAoBpB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAI8W,EAAIiI,EAAI/e,GAEZ+e,EAAI/e,GAAK+e,EAAIL,EAAI1e,EAAI,GACrB+e,EAAIL,EAAI1e,EAAI,GAAK8W,EAEjBA,EAAIkI,EAAIhf,GAERgf,EAAIhf,IAAMgf,EAAIN,EAAI1e,EAAI,GACtBgf,EAAIN,EAAI1e,EAAI,IAAM8W,IAItBsH,EAAKjiB,UAAUikB,aAAe,SAAuB3Q,EAAIiP,GAEvD,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAIqP,EAAoC,KAAhCpI,KAAKoZ,MAAM5Q,EAAG,EAAIzP,EAAI,GAAK0e,GACjCzX,KAAKoZ,MAAM5Q,EAAG,EAAIzP,GAAK0e,GACvB1L,EAEFvD,EAAGzP,GAAS,SAAJqP,EAGN2D,EADE3D,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT2O,EAAKjiB,UAAUmkB,WAAa,SAAqB7Q,EAAIpQ,EAAK0f,EAAKL,GAE7D,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAIX,EAAKW,IACvBgT,GAAyB,EAARvD,EAAGzP,GAEpB+e,EAAI,EAAI/e,GAAa,KAARgT,EAAgBA,KAAkB,GAC/C+L,EAAI,EAAI/e,EAAI,GAAa,KAARgT,EAAgBA,KAAkB,GAIrD,IAAKhT,EAAI,EAAIX,EAAKW,EAAI0e,IAAK1e,EACzB+e,EAAI/e,GAAK,EAGXuO,EAAiB,IAAVyE,GACPzE,EAA6B,MAAb,KAARyE,KAGVoL,EAAKjiB,UAAUokB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAI1gB,MAAM4e,GACV1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBwgB,EAAGxgB,GAAK,EAGV,OAAOwgB,GAGTpC,EAAKjiB,UAAUkiB,KAAO,SAAezV,EAAGC,EAAGqB,GACzC,IAAIwU,EAAI,EAAI/f,KAAKshB,YAAYrX,EAAExL,OAAQyL,EAAEzL,QAErC0hB,EAAMngB,KAAK8f,QAAQC,GAEnB+B,EAAI9hB,KAAK4hB,KAAK7B,GAEdK,EAAM,IAAIjf,MAAM4e,GAChBgC,EAAO,IAAI5gB,MAAM4e,GACjBiC,EAAO,IAAI7gB,MAAM4e,GAEjBkC,EAAO,IAAI9gB,MAAM4e,GACjBmC,EAAQ,IAAI/gB,MAAM4e,GAClBoC,EAAQ,IAAIhhB,MAAM4e,GAElBqC,EAAO7W,EAAI4J,MACfiN,EAAK3jB,OAASshB,EAEd/f,KAAK2hB,WAAW1X,EAAEkL,MAAOlL,EAAExL,OAAQ2hB,EAAKL,GACxC/f,KAAK2hB,WAAWzX,EAAEiL,MAAOjL,EAAEzL,OAAQwjB,EAAMlC,GAEzC/f,KAAKwgB,UAAUJ,EAAK0B,EAAGC,EAAMC,EAAMjC,EAAGI,GACtCngB,KAAKwgB,UAAUyB,EAAMH,EAAGI,EAAOC,EAAOpC,EAAGI,GAEzC,IAAK,IAAI9e,EAAI,EAAGA,EAAI0e,EAAG1e,IAAK,CAC1B,IAAIggB,EAAKU,EAAK1gB,GAAK6gB,EAAM7gB,GAAK2gB,EAAK3gB,GAAK8gB,EAAM9gB,GAC9C2gB,EAAK3gB,GAAK0gB,EAAK1gB,GAAK8gB,EAAM9gB,GAAK2gB,EAAK3gB,GAAK6gB,EAAM7gB,GAC/C0gB,EAAK1gB,GAAKggB,EAUZ,OAPArhB,KAAKwhB,UAAUO,EAAMC,EAAMjC,GAC3B/f,KAAKwgB,UAAUuB,EAAMC,EAAMI,EAAMN,EAAG/B,EAAGI,GACvCngB,KAAKwhB,UAAUY,EAAMN,EAAG/B,GACxB/f,KAAKyhB,aAAaW,EAAMrC,GAExBxU,EAAI2J,SAAWjL,EAAEiL,SAAWhL,EAAEgL,SAC9B3J,EAAI9M,OAASwL,EAAExL,OAASyL,EAAEzL,OACnB8M,EAAI6K,SAIblG,EAAG1S,UAAU+O,IAAM,SAAckE,GAC/B,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjCuB,KAAK2f,MAAMlP,EAAKlF,IAIzB2E,EAAG1S,UAAU6kB,KAAO,SAAe5R,GACjC,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjC+gB,EAAWxf,KAAMyQ,EAAKlF,IAI/B2E,EAAG1S,UAAU6gB,KAAO,SAAe5N,GACjC,OAAOzQ,KAAKgR,QAAQ2O,MAAMlP,EAAKzQ,OAGjCkQ,EAAG1S,UAAUgZ,MAAQ,SAAgB/F,GACnCb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UAIb,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAUoP,EAC1BtI,GAAU,SAAJuI,IAA0B,SAAR2D,GAC5BA,IAAU,GACVA,GAAU3D,EAAI,SAAa,EAE3B2D,GAASlM,IAAO,GAChBnI,KAAKmV,MAAM9T,GAAU,SAAL8G,EAQlB,OALc,IAAVkM,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAGAuB,MAGTkQ,EAAG1S,UAAU8kB,KAAO,SAAe7R,GACjC,OAAOzQ,KAAKgR,QAAQwF,MAAM/F,IAI5BP,EAAG1S,UAAU+kB,IAAM,WACjB,OAAOviB,KAAKuM,IAAIvM,OAIlBkQ,EAAG1S,UAAUglB,KAAO,WAClB,OAAOxiB,KAAKqe,KAAKre,KAAKgR,UAIxBd,EAAG1S,UAAUsP,IAAM,SAAc2D,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIvP,MAAMsP,EAAII,aAEbmJ,EAAM,EAAGA,EAAMtJ,EAAEjS,OAAQub,IAAO,CACvC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtJ,EAAEsJ,IAAQvJ,EAAI0E,MAAMlT,GAAQ,GAAKgY,KAAWA,EAG9C,OAAOvJ,EA8wCC+R,CAAWhS,GACnB,GAAiB,IAAbC,EAAEjS,OAAc,OAAO,IAAIyR,EAAG,GAIlC,IADA,IAAI1H,EAAMxI,KACDqB,EAAI,EAAGA,EAAIqP,EAAEjS,QACP,IAATiS,EAAErP,GADsBA,IAAKmH,EAAMA,EAAI+Z,OAI7C,KAAMlhB,EAAIqP,EAAEjS,OACV,IAAK,IAAIuZ,EAAIxP,EAAI+Z,MAAOlhB,EAAIqP,EAAEjS,OAAQ4C,IAAK2W,EAAIA,EAAEuK,MAClC,IAAT7R,EAAErP,KAENmH,EAAMA,EAAI+D,IAAIyL,IAIlB,OAAOxP,GAIT0H,EAAG1S,UAAUklB,OAAS,SAAiB/R,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAGItP,EAHA2O,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GACjB2S,EAAa,WAAe,GAAK3S,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIqE,EAAQ,EAEZ,IAAKhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAChC,IAAIuhB,EAAW5iB,KAAKmV,MAAM9T,GAAKshB,EAC3B1a,GAAsB,EAAhBjI,KAAKmV,MAAM9T,IAAUuhB,GAAa5S,EAC5ChQ,KAAKmV,MAAM9T,GAAK4G,EAAIoM,EACpBA,EAAQuO,IAAc,GAAK5S,EAGzBqE,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAIT,GAAU,IAANgiB,EAAS,CACX,IAAKpf,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAChCrB,KAAKmV,MAAM9T,EAAIof,GAAKzgB,KAAKmV,MAAM9T,GAGjC,IAAKA,EAAI,EAAGA,EAAIof,EAAGpf,IACjBrB,KAAKmV,MAAM9T,GAAK,EAGlBrB,KAAKvB,QAAUgiB,EAGjB,OAAOzgB,KAAKoW,SAGdlG,EAAG1S,UAAUqlB,MAAQ,SAAgBlS,GAGnC,OADAf,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAK0iB,OAAO/R,IAMrBT,EAAG1S,UAAU8T,OAAS,SAAiBX,EAAMmS,EAAMC,GAEjD,IAAIC,EADJpT,EAAuB,kBAATe,GAAqBA,GAAQ,GAGzCqS,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9S,EAAIW,EAAO,GACX8P,EAAInY,KAAKC,KAAKoI,EAAOX,GAAK,GAAIhQ,KAAKvB,QACnCwkB,EAAO,SAAc,WAAcjT,GAAMA,EACzCkT,EAAcH,EAMlB,GAJAC,GAAKvC,EACLuC,EAAI1a,KAAKoC,IAAI,EAAGsY,GAGZE,EAAa,CACf,IAAK,IAAI7hB,EAAI,EAAGA,EAAIof,EAAGpf,IACrB6hB,EAAY/N,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAEpC6hB,EAAYzkB,OAASgiB,EAGvB,GAAU,IAANA,QAEG,GAAIzgB,KAAKvB,OAASgiB,EAEvB,IADAzgB,KAAKvB,QAAUgiB,EACVpf,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC3BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,EAAIof,QAGjCzgB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,EAGhB,IAAI4V,EAAQ,EACZ,IAAKhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,IAAgB,IAAVgT,GAAehT,GAAK2hB,GAAI3hB,IAAK,CAChE,IAAIqR,EAAuB,EAAhB1S,KAAKmV,MAAM9T,GACtBrB,KAAKmV,MAAM9T,GAAMgT,GAAU,GAAKrE,EAAO0C,IAAS1C,EAChDqE,EAAQ3B,EAAOuQ,EAajB,OATIC,GAAyB,IAAV7O,IACjB6O,EAAY/N,MAAM+N,EAAYzkB,UAAY4V,GAGxB,IAAhBrU,KAAKvB,SACPuB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,GAGTuB,KAAKoW,SAGdlG,EAAG1S,UAAU2lB,MAAQ,SAAgBxS,EAAMmS,EAAMC,GAG/C,OADAnT,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAKsR,OAAOX,EAAMmS,EAAMC,IAIjC7S,EAAG1S,UAAU4lB,KAAO,SAAezS,GACjC,OAAO3Q,KAAKgR,QAAQ6R,MAAMlS,IAG5BT,EAAG1S,UAAU6lB,MAAQ,SAAgB1S,GACnC,OAAO3Q,KAAKgR,QAAQ0R,OAAO/R,IAI7BT,EAAG1S,UAAU8lB,KAAO,SAAe3S,GACjC,OAAO3Q,KAAKgR,QAAQmS,MAAMxS,IAG5BT,EAAG1S,UAAU+lB,MAAQ,SAAgB5S,GACnC,OAAO3Q,KAAKgR,QAAQM,OAAOX,IAI7BT,EAAG1S,UAAUob,MAAQ,SAAgBoB,GACnCpK,EAAsB,kBAARoK,GAAoBA,GAAO,GACzC,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,QAAIhQ,KAAKvB,QAAUgiB,OAGXzgB,KAAKmV,MAAMsL,GAELzI,IAIhB9H,EAAG1S,UAAUgmB,OAAS,SAAiB7S,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAAIX,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GAIrB,GAFAJ,EAAyB,IAAlB5P,KAAKkV,SAAgB,2CAExBlV,KAAKvB,QAAUgiB,EACjB,OAAOzgB,KAQT,GALU,IAANgQ,GACFyQ,IAEFzgB,KAAKvB,OAAS6J,KAAKC,IAAIkY,EAAGzgB,KAAKvB,QAErB,IAANuR,EAAS,CACX,IAAIiT,EAAO,SAAc,WAAcjT,GAAMA,EAC7ChQ,KAAKmV,MAAMnV,KAAKvB,OAAS,IAAMwkB,EAGjC,OAAOjjB,KAAKoW,SAIdlG,EAAG1S,UAAUimB,MAAQ,SAAgB9S,GACnC,OAAO3Q,KAAKgR,QAAQwS,OAAO7S,IAI7BT,EAAG1S,UAAUkb,MAAQ,SAAgBjI,GAGnC,OAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAUzQ,KAAKqR,OAAOZ,GAGV,IAAlBzQ,KAAKkV,SACa,IAAhBlV,KAAKvB,SAAiC,EAAhBuB,KAAKmV,MAAM,IAAU1E,GAC7CzQ,KAAKmV,MAAM,GAAK1E,GAAuB,EAAhBzQ,KAAKmV,MAAM,IAClCnV,KAAKkV,SAAW,EACTlV,OAGTA,KAAKkV,SAAW,EAChBlV,KAAKqR,MAAMZ,GACXzQ,KAAKkV,SAAW,EACTlV,MAIFA,KAAKyW,OAAOhG,IAGrBP,EAAG1S,UAAUiZ,OAAS,SAAiBhG,GACrCzQ,KAAKmV,MAAM,IAAM1E,EAGjB,IAAK,IAAIpP,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,IAAM,SAAWA,IAC7DrB,KAAKmV,MAAM9T,IAAM,SACbA,IAAMrB,KAAKvB,OAAS,EACtBuB,KAAKmV,MAAM9T,EAAI,GAAK,EAEpBrB,KAAKmV,MAAM9T,EAAI,KAKnB,OAFArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,EAAI,GAEjCrB,MAITkQ,EAAG1S,UAAU6T,MAAQ,SAAgBZ,GAGnC,GAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAG,OAAOzQ,KAAK0Y,OAAOjI,GAEhC,GAAsB,IAAlBzQ,KAAKkV,SAIP,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAK0Y,MAAMjI,GACXzQ,KAAKkV,SAAW,EACTlV,KAKT,GAFAA,KAAKmV,MAAM,IAAM1E,EAEG,IAAhBzQ,KAAKvB,QAAgBuB,KAAKmV,MAAM,GAAK,EACvCnV,KAAKmV,MAAM,IAAMnV,KAAKmV,MAAM,GAC5BnV,KAAKkV,SAAW,OAGhB,IAAK,IAAI7T,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,GAAK,EAAGA,IACpDrB,KAAKmV,MAAM9T,IAAM,SACjBrB,KAAKmV,MAAM9T,EAAI,IAAM,EAIzB,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAUkmB,KAAO,SAAejT,GACjC,OAAOzQ,KAAKgR,QAAQ0H,MAAMjI,IAG5BP,EAAG1S,UAAUmmB,KAAO,SAAelT,GACjC,OAAOzQ,KAAKgR,QAAQK,MAAMZ,IAG5BP,EAAG1S,UAAUomB,KAAO,WAGlB,OAFA5jB,KAAKkV,SAAW,EAETlV,MAGTkQ,EAAG1S,UAAUgb,IAAM,WACjB,OAAOxY,KAAKgR,QAAQ4S,QAGtB1T,EAAG1S,UAAUqmB,aAAe,SAAuBpT,EAAKlE,EAAKuX,GAC3D,IACIziB,EAIAqP,EALAhQ,EAAM+P,EAAIhS,OAASqlB,EAGvB9jB,KAAK2W,QAAQjW,GAGb,IAAI2T,EAAQ,EACZ,IAAKhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CAC/BqP,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,EAClC,IAAIwB,GAAwB,EAAfpF,EAAI0E,MAAM9T,IAAUkL,EAEjC8H,IADA3D,GAAa,SAARmF,IACS,KAAQA,EAAQ,SAAa,GAC3C7V,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAE1B,KAAOrP,EAAIrB,KAAKvB,OAASqlB,EAAOziB,IAE9BgT,GADA3D,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,IACrB,GACbrU,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAG1B,GAAc,IAAV2D,EAAa,OAAOrU,KAAKoW,QAK7B,IAFAxG,GAAkB,IAAXyE,GACPA,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAE3BgT,GADA3D,IAAsB,EAAhB1Q,KAAKmV,MAAM9T,IAAUgT,IACd,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJqP,EAIlB,OAFA1Q,KAAKkV,SAAW,EAETlV,KAAKoW,SAGdlG,EAAG1S,UAAUumB,SAAW,SAAmBtT,EAAKuT,GAC9C,IAAIF,GAAQ9jB,KAAKvB,OAASgS,EAAIhS,QAE1BuL,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAGJwT,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,GAGf,KADdqlB,EAAQ,GADM9jB,KAAKkY,WAAW+L,MAG5Bre,EAAIA,EAAEyd,MAAMS,GACZ9Z,EAAE0Y,OAAOoB,GACTG,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,IAI3B,IACIuZ,EADAlS,EAAIkE,EAAEvL,OAASmH,EAAEnH,OAGrB,GAAa,QAATulB,EAAgB,EAClBhM,EAAI,IAAI9H,EAAG,OACTzR,OAASqH,EAAI,EACfkS,EAAE7C,MAAQ,IAAIhU,MAAM6W,EAAEvZ,QACtB,IAAK,IAAI4C,EAAI,EAAGA,EAAI2W,EAAEvZ,OAAQ4C,IAC5B2W,EAAE7C,MAAM9T,GAAK,EAIjB,IAAI6iB,EAAOla,EAAEgH,QAAQ6S,aAAaje,EAAG,EAAGE,GAClB,IAAlBoe,EAAKhP,WACPlL,EAAIka,EACAlM,IACFA,EAAE7C,MAAMrP,GAAK,IAIjB,IAAK,IAAIe,EAAIf,EAAI,EAAGe,GAAK,EAAGA,IAAK,CAC/B,IAAIsd,EAAmC,UAAL,EAAxBna,EAAEmL,MAAMvP,EAAEnH,OAASoI,KACE,EAA5BmD,EAAEmL,MAAMvP,EAAEnH,OAASoI,EAAI,IAO1B,IAHAsd,EAAK7b,KAAKC,IAAK4b,EAAKF,EAAO,EAAG,UAE9Bja,EAAE6Z,aAAaje,EAAGue,EAAItd,GACA,IAAfmD,EAAEkL,UACPiP,IACAna,EAAEkL,SAAW,EACblL,EAAE6Z,aAAaje,EAAG,EAAGiB,GAChBmD,EAAEwN,WACLxN,EAAEkL,UAAY,GAGd8C,IACFA,EAAE7C,MAAMtO,GAAKsd,GAajB,OAVInM,GACFA,EAAE5B,QAEJpM,EAAEoM,QAGW,QAAT4N,GAA4B,IAAVF,GACpB9Z,EAAEsH,OAAOwS,GAGJ,CACLM,IAAKpM,GAAK,KACV9G,IAAKlH,IAQTkG,EAAG1S,UAAU6mB,OAAS,SAAiB5T,EAAKuT,EAAMM,GAGhD,OAFA1U,GAAQa,EAAI+G,UAERxX,KAAKwX,SACA,CACL4M,IAAK,IAAIlU,EAAG,GACZgB,IAAK,IAAIhB,EAAG,IAKM,IAAlBlQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAKuT,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGH,QAATgL,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIgJ,KAAKzJ,IAIN,CACL2T,IAAKA,EACLlT,IAAKA,IAIa,IAAlBlR,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKqkB,OAAO5T,EAAIuI,MAAOgL,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGT,CACLoL,IAAKA,EACLlT,IAAK1I,EAAI0I,MAI0B,KAAlClR,KAAKkV,SAAWzE,EAAIyE,WACvB1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAIuI,MAAOgL,GAEtB,QAATA,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIiJ,KAAK1J,IAIN,CACL2T,IAAK5b,EAAI4b,IACTlT,IAAKA,IAOLT,EAAIhS,OAASuB,KAAKvB,QAAUuB,KAAK8V,IAAIrF,GAAO,EACvC,CACL2T,IAAK,IAAIlU,EAAG,GACZgB,IAAKlR,MAKU,IAAfyQ,EAAIhS,OACO,QAATulB,EACK,CACLI,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,MAII,QAAT8S,EACK,CACLI,IAAK,KACLlT,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7B,CACLiP,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7BnV,KAAK+jB,SAAStT,EAAKuT,GAlF1B,IAAII,EAAKlT,EAAK1I,GAsFhB0H,EAAG1S,UAAU4mB,IAAM,SAAc3T,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAO2T,KAIxClU,EAAG1S,UAAU0T,IAAM,SAAcT,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAOS,KAGxChB,EAAG1S,UAAUgnB,KAAO,SAAe/T,GACjC,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAMS,KAIvChB,EAAG1S,UAAUinB,SAAW,SAAmBhU,GACzC,IAAIiU,EAAK1kB,KAAKqkB,OAAO5T,GAGrB,GAAIiU,EAAGxT,IAAIsG,SAAU,OAAOkN,EAAGN,IAE/B,IAAIlT,EAA0B,IAApBwT,EAAGN,IAAIlP,SAAiBwP,EAAGxT,IAAIiJ,KAAK1J,GAAOiU,EAAGxT,IAEpDyT,EAAOlU,EAAI8S,MAAM,GACjBqB,EAAKnU,EAAIU,MAAM,GACf2E,EAAM5E,EAAI4E,IAAI6O,GAGlB,OAAI7O,EAAM,GAAY,IAAP8O,GAAoB,IAAR9O,EAAkB4O,EAAGN,IAGrB,IAApBM,EAAGN,IAAIlP,SAAiBwP,EAAGN,IAAI/S,MAAM,GAAKqT,EAAGN,IAAI1L,MAAM,IAGhExI,EAAG1S,UAAUia,KAAO,SAAehH,GACjCb,EAAOa,GAAO,UAId,IAHA,IAAIoC,GAAK,GAAK,IAAMpC,EAEhBoU,EAAM,EACDxjB,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IACpCwjB,GAAOhS,EAAIgS,GAAuB,EAAhB7kB,KAAKmV,MAAM9T,KAAWoP,EAG1C,OAAOoU,GAIT3U,EAAG1S,UAAUka,MAAQ,SAAgBjH,GACnCb,EAAOa,GAAO,UAGd,IADA,IAAI4D,EAAQ,EACHhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAkB,SAARgT,EAC9BrU,KAAKmV,MAAM9T,GAAMqP,EAAID,EAAO,EAC5B4D,EAAQ3D,EAAID,EAGd,OAAOzQ,KAAKoW,SAGdlG,EAAG1S,UAAU+mB,KAAO,SAAe9T,GACjC,OAAOzQ,KAAKgR,QAAQ0G,MAAMjH,IAG5BP,EAAG1S,UAAUsnB,KAAO,SAAejS,GACjCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIvN,EAAIjK,KACJkK,EAAI2I,EAAE7B,QAGR/G,EADiB,IAAfA,EAAEiL,SACAjL,EAAEua,KAAK3R,GAEP5I,EAAE+G,QAaR,IATA,IAAI+T,EAAI,IAAI7U,EAAG,GACX8U,EAAI,IAAI9U,EAAG,GAGX+U,EAAI,IAAI/U,EAAG,GACXgV,EAAI,IAAIhV,EAAG,GAEXT,EAAI,EAEDxF,EAAEkb,UAAYjb,EAAEib,UACrBlb,EAAEqH,OAAO,GACTpH,EAAEoH,OAAO,KACP7B,EAMJ,IAHA,IAAI2V,EAAKlb,EAAE8G,QACPqU,EAAKpb,EAAE+G,SAEH/G,EAAEuN,UAAU,CAClB,IAAK,IAAInW,EAAI,EAAGikB,EAAK,EAAyB,KAArBrb,EAAEkL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA4I,EAAEqH,OAAOjQ,GACFA,KAAM,IACP0jB,EAAE3T,SAAW4T,EAAE5T,WACjB2T,EAAE7K,KAAKkL,GACPJ,EAAE7K,KAAKkL,IAGTN,EAAEzT,OAAO,GACT0T,EAAE1T,OAAO,GAIb,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArBrb,EAAEiL,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAqD,EAAEoH,OAAOzK,GACFA,KAAM,IACPoe,EAAE7T,SAAW8T,EAAE9T,WACjB6T,EAAE/K,KAAKkL,GACPF,EAAE/K,KAAKkL,IAGTJ,EAAE3T,OAAO,GACT4T,EAAE5T,OAAO,GAITrH,EAAE6L,IAAI5L,IAAM,GACdD,EAAEkQ,KAAKjQ,GACP6a,EAAE5K,KAAK8K,GACPD,EAAE7K,KAAK+K,KAEPhb,EAAEiQ,KAAKlQ,GACPgb,EAAE9K,KAAK4K,GACPG,EAAE/K,KAAK6K,IAIX,MAAO,CACLhb,EAAGib,EACHrf,EAAGsf,EACHM,IAAKtb,EAAEwY,OAAOjT,KAOlBS,EAAG1S,UAAUioB,OAAS,SAAiB5S,GACrCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIxN,EAAIhK,KACJ4F,EAAIiN,EAAE7B,QAGRhH,EADiB,IAAfA,EAAEkL,SACAlL,EAAEwa,KAAK3R,GAEP7I,EAAEgH,QAQR,IALA,IAuCIxI,EAvCAkd,EAAK,IAAIxV,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GAEZ0V,EAAQhgB,EAAEoL,QAEPhH,EAAE8H,KAAK,GAAK,GAAKlM,EAAEkM,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzQ,EAAI,EAAGikB,EAAK,EAAyB,KAArBtb,EAAEmL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA2I,EAAEsH,OAAOjQ,GACFA,KAAM,GACPqkB,EAAGtU,SACLsU,EAAGxL,KAAK0L,GAGVF,EAAGpU,OAAO,GAId,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArB3f,EAAEuP,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAjB,EAAE0L,OAAOzK,GACFA,KAAM,GACP8e,EAAGvU,SACLuU,EAAGzL,KAAK0L,GAGVD,EAAGrU,OAAO,GAIVtH,EAAE8L,IAAIlQ,IAAM,GACdoE,EAAEmQ,KAAKvU,GACP8f,EAAGvL,KAAKwL,KAER/f,EAAEuU,KAAKnQ,GACP2b,EAAGxL,KAAKuL,IAeZ,OATEld,EADgB,IAAdwB,EAAE8H,KAAK,GACH4T,EAEAC,GAGA7T,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKrH,GAGJrK,GAGT0H,EAAG1S,UAAUgoB,IAAM,SAAc/U,GAC/B,GAAIzQ,KAAKwX,SAAU,OAAO/G,EAAI+H,MAC9B,GAAI/H,EAAI+G,SAAU,OAAOxX,KAAKwY,MAE9B,IAAIxO,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAAIO,QACZhH,EAAEkL,SAAW,EACbtP,EAAEsP,SAAW,EAGb,IAAK,IAAI4O,EAAQ,EAAG9Z,EAAEmb,UAAYvf,EAAEuf,SAAUrB,IAC5C9Z,EAAEsH,OAAO,GACT1L,EAAE0L,OAAO,GAGX,OAAG,CACD,KAAOtH,EAAEmb,UACPnb,EAAEsH,OAAO,GAEX,KAAO1L,EAAEuf,UACPvf,EAAE0L,OAAO,GAGX,IAAItB,EAAIhG,EAAE8L,IAAIlQ,GACd,GAAIoK,EAAI,EAAG,CAET,IAAImI,EAAInO,EACRA,EAAIpE,EACJA,EAAIuS,OACC,GAAU,IAANnI,GAAyB,IAAdpK,EAAEkM,KAAK,GAC3B,MAGF9H,EAAEmQ,KAAKvU,GAGT,OAAOA,EAAE8c,OAAOoB,IAIlB5T,EAAG1S,UAAUqoB,KAAO,SAAepV,GACjC,OAAOzQ,KAAK8kB,KAAKrU,GAAKzG,EAAEwa,KAAK/T,IAG/BP,EAAG1S,UAAU2nB,OAAS,WACpB,OAA+B,KAAP,EAAhBnlB,KAAKmV,MAAM,KAGrBjF,EAAG1S,UAAU4T,MAAQ,WACnB,OAA+B,KAAP,EAAhBpR,KAAKmV,MAAM,KAIrBjF,EAAG1S,UAAU2T,MAAQ,SAAgBV,GACnC,OAAOzQ,KAAKmV,MAAM,GAAK1E,GAIzBP,EAAG1S,UAAUsoB,MAAQ,SAAgB9L,GACnCpK,EAAsB,kBAARoK,GACd,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,GAAIhQ,KAAKvB,QAAUgiB,EAGjB,OAFAzgB,KAAK2W,QAAQ8J,EAAI,GACjBzgB,KAAKmV,MAAMsL,IAAMzI,EACVhY,KAKT,IADA,IAAIqU,EAAQ2D,EACH3W,EAAIof,EAAa,IAAVpM,GAAehT,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACnD,IAAIqP,EAAoB,EAAhB1Q,KAAKmV,MAAM9T,GAEnBgT,GADA3D,GAAK2D,KACS,GACd3D,GAAK,SACL1Q,KAAKmV,MAAM9T,GAAKqP,EAMlB,OAJc,IAAV2D,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAEAuB,MAGTkQ,EAAG1S,UAAUga,OAAS,WACpB,OAAuB,IAAhBxX,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,IAGzCjF,EAAG1S,UAAUsU,KAAO,SAAerB,GACjC,IAOIjI,EAPA0M,EAAWzE,EAAM,EAErB,GAAsB,IAAlBzQ,KAAKkV,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBlV,KAAKkV,UAAkBA,EAAU,OAAO,EAK5C,GAHAlV,KAAKoW,QAGDpW,KAAKvB,OAAS,EAChB+J,EAAM,MACD,CACD0M,IACFzE,GAAOA,GAGTb,EAAOa,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhB1Q,KAAKmV,MAAM,GACnB3M,EAAMkI,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAOT0H,EAAG1S,UAAUsY,IAAM,SAAcrF,GAC/B,GAAsB,IAAlBzQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAQ,EACvD,GAAsB,IAAlBlV,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAO,EAEtD,IAAI1M,EAAMxI,KAAK+lB,KAAKtV,GACpB,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAIT0H,EAAG1S,UAAUuoB,KAAO,SAAetV,GAEjC,GAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAO,EACrC,GAAIuB,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAQ,EAGtC,IADA,IAAI+J,EAAM,EACDnH,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAI2I,EAAoB,EAAhBhK,KAAKmV,MAAM9T,GACfuE,EAAmB,EAAf6K,EAAI0E,MAAM9T,GAElB,GAAI2I,IAAMpE,EAAV,CACIoE,EAAIpE,EACN4C,GAAO,EACEwB,EAAIpE,IACb4C,EAAM,GAER,OAEF,OAAOA,GAGT0H,EAAG1S,UAAUwoB,IAAM,SAAcvV,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUyoB,GAAK,SAAaxV,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU0oB,KAAO,SAAezV,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU2oB,IAAM,SAAc1V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAU4oB,IAAM,SAAc3V,GAC/B,OAA2B,IAApBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAU6oB,GAAK,SAAa5V,GAC7B,OAA0B,IAAnBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU8oB,KAAO,SAAe7V,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU+oB,IAAM,SAAc9V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAUgpB,IAAM,SAAc/V,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUipB,GAAK,SAAahW,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAOlBP,EAAGkF,IAAM,SAAc3E,GACrB,OAAO,IAAIiW,EAAIjW,IAGjBP,EAAG1S,UAAUmpB,MAAQ,SAAgBC,GAGnC,OAFAhX,GAAQ5P,KAAKoV,IAAK,yCAClBxF,EAAyB,IAAlB5P,KAAKkV,SAAgB,iCACrB0R,EAAIC,UAAU7mB,MAAM8mB,UAAUF,IAGvC1W,EAAG1S,UAAUupB,QAAU,WAErB,OADAnX,EAAO5P,KAAKoV,IAAK,wDACVpV,KAAKoV,IAAI4R,YAAYhnB,OAG9BkQ,EAAG1S,UAAUspB,UAAY,SAAoBF,GAE3C,OADA5mB,KAAKoV,IAAMwR,EACJ5mB,MAGTkQ,EAAG1S,UAAUypB,SAAW,SAAmBL,GAEzC,OADAhX,GAAQ5P,KAAKoV,IAAK,yCACXpV,KAAK8mB,UAAUF,IAGxB1W,EAAG1S,UAAU0pB,OAAS,SAAiBzW,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIgF,IAAIpa,KAAMyQ,IAG5BP,EAAG1S,UAAU2pB,QAAU,SAAkB1W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI8E,KAAKla,KAAMyQ,IAG7BP,EAAG1S,UAAU4pB,OAAS,SAAiB3W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIjH,IAAInO,KAAMyQ,IAG5BP,EAAG1S,UAAU6pB,QAAU,SAAkB5W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI+E,KAAKna,KAAMyQ,IAG7BP,EAAG1S,UAAU8pB,OAAS,SAAiB7W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAImS,IAAIvnB,KAAMyQ,IAG5BP,EAAG1S,UAAUgqB,OAAS,SAAiB/W,GAGrC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAI7I,IAAIvM,KAAMyQ,IAG5BP,EAAG1S,UAAUkqB,QAAU,SAAkBjX,GAGvC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAIiJ,KAAKre,KAAMyQ,IAG7BP,EAAG1S,UAAUmqB,OAAS,WAGpB,OAFA/X,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAImN,IAAIviB,OAGtBkQ,EAAG1S,UAAUqqB,QAAU,WAGrB,OAFAjY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIoN,KAAKxiB,OAIvBkQ,EAAG1S,UAAUsqB,QAAU,WAGrB,OAFAlY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI2S,KAAK/nB,OAGvBkQ,EAAG1S,UAAUwqB,QAAU,WAGrB,OAFApY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIyQ,KAAK7lB,OAIvBkQ,EAAG1S,UAAUyqB,OAAS,WAGpB,OAFArY,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI4D,IAAIhZ,OAGtBkQ,EAAG1S,UAAU0qB,OAAS,SAAiBzX,GAGrC,OAFAb,EAAO5P,KAAKoV,MAAQ3E,EAAI2E,IAAK,qBAC7BpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAItI,IAAI9M,KAAMyQ,IAI5B,IAAI0X,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQhmB,EAAMqQ,GAErB7S,KAAKwC,KAAOA,EACZxC,KAAK6S,EAAI,IAAI3C,EAAG2C,EAAG,IACnB7S,KAAK6F,EAAI7F,KAAK6S,EAAEhC,YAChB7Q,KAAK+Q,EAAI,IAAIb,EAAG,GAAGwS,OAAO1iB,KAAK6F,GAAGsU,KAAKna,KAAK6S,GAE5C7S,KAAKyoB,IAAMzoB,KAAK0oB,OAiDlB,SAASC,IACPH,EAAOzoB,KACLC,KACA,OACA,2EA+DJ,SAAS4oB,IACPJ,EAAOzoB,KACLC,KACA,OACA,kEAIJ,SAAS6oB,IACPL,EAAOzoB,KACLC,KACA,OACA,yDAIJ,SAAS8oB,IAEPN,EAAOzoB,KACLC,KACA,QACA,uEA8CJ,SAAS0mB,EAAK5gB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIijB,EAAQ7Y,EAAG8Y,OAAOljB,GACtB9F,KAAK8F,EAAIijB,EAAMlW,EACf7S,KAAK+oB,MAAQA,OAEbnZ,EAAO9J,EAAEkgB,IAAI,GAAI,kCACjBhmB,KAAK8F,EAAIA,EACT9F,KAAK+oB,MAAQ,KAkOjB,SAASE,EAAMnjB,GACb4gB,EAAI3mB,KAAKC,KAAM8F,GAEf9F,KAAK8jB,MAAQ9jB,KAAK8F,EAAE+K,YAChB7Q,KAAK8jB,MAAQ,KAAO,IACtB9jB,KAAK8jB,OAAS,GAAM9jB,KAAK8jB,MAAQ,IAGnC9jB,KAAKgQ,EAAI,IAAIE,EAAG,GAAGwS,OAAO1iB,KAAK8jB,OAC/B9jB,KAAK4kB,GAAK5kB,KAAKkpB,KAAKlpB,KAAKgQ,EAAEuS,OAC3BviB,KAAKmpB,KAAOnpB,KAAKgQ,EAAEyV,OAAOzlB,KAAK8F,GAE/B9F,KAAKopB,KAAOppB,KAAKmpB,KAAK5c,IAAIvM,KAAKgQ,GAAGqB,MAAM,GAAG+S,IAAIpkB,KAAK8F,GACpD9F,KAAKopB,KAAOppB,KAAKopB,KAAK5E,KAAKxkB,KAAKgQ,GAChChQ,KAAKopB,KAAOppB,KAAKgQ,EAAE7B,IAAInO,KAAKopB,MA5a9BZ,EAAOhrB,UAAUkrB,KAAO,WACtB,IAAID,EAAM,IAAIvY,EAAG,MAEjB,OADAuY,EAAItT,MAAQ,IAAIhU,MAAMmH,KAAK6N,KAAKnW,KAAK6F,EAAI,KAClC4iB,GAGTD,EAAOhrB,UAAU6rB,QAAU,SAAkB5Y,GAG3C,IACI6Y,EADAtZ,EAAIS,EAGR,GACEzQ,KAAKupB,MAAMvZ,EAAGhQ,KAAKyoB,KAGnBa,GADAtZ,GADAA,EAAIhQ,KAAKwpB,MAAMxZ,IACTkK,KAAKla,KAAKyoB,MACP5X,kBACFyY,EAAOtpB,KAAK6F,GAErB,IAAIiQ,EAAMwT,EAAOtpB,KAAK6F,GAAK,EAAImK,EAAE+V,KAAK/lB,KAAK6S,GAgB3C,OAfY,IAARiD,GACF9F,EAAEmF,MAAM,GAAK,EACbnF,EAAEvR,OAAS,GACFqX,EAAM,EACf9F,EAAEmK,KAAKna,KAAK6S,QAEI1T,IAAZ6Q,EAAEoG,MAEJpG,EAAEoG,QAGFpG,EAAEyZ,SAICzZ,GAGTwY,EAAOhrB,UAAU+rB,MAAQ,SAAgBG,EAAOne,GAC9Cme,EAAMpY,OAAOtR,KAAK6F,EAAG,EAAG0F,IAG1Bid,EAAOhrB,UAAUgsB,MAAQ,SAAgB/Y,GACvC,OAAOA,EAAI4N,KAAKre,KAAK+Q,IASvBwB,EAASoW,EAAMH,GAEfG,EAAKnrB,UAAU+rB,MAAQ,SAAgBG,EAAOC,GAK5C,IAHA,IAAI1G,EAAO,QAEP2G,EAASthB,KAAKC,IAAImhB,EAAMjrB,OAAQ,GAC3B4C,EAAI,EAAGA,EAAIuoB,EAAQvoB,IAC1BsoB,EAAOxU,MAAM9T,GAAKqoB,EAAMvU,MAAM9T,GAIhC,GAFAsoB,EAAOlrB,OAASmrB,EAEZF,EAAMjrB,QAAU,EAGlB,OAFAirB,EAAMvU,MAAM,GAAK,OACjBuU,EAAMjrB,OAAS,GAKjB,IAAIorB,EAAOH,EAAMvU,MAAM,GAGvB,IAFAwU,EAAOxU,MAAMwU,EAAOlrB,UAAYorB,EAAO5G,EAElC5hB,EAAI,GAAIA,EAAIqoB,EAAMjrB,OAAQ4C,IAAK,CAClC,IAAIyoB,EAAwB,EAAjBJ,EAAMvU,MAAM9T,GACvBqoB,EAAMvU,MAAM9T,EAAI,KAAQyoB,EAAO7G,IAAS,EAAM4G,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMvU,MAAM9T,EAAI,IAAMwoB,EACT,IAATA,GAAcH,EAAMjrB,OAAS,GAC/BirB,EAAMjrB,QAAU,GAEhBirB,EAAMjrB,QAAU,GAIpBkqB,EAAKnrB,UAAUgsB,MAAQ,SAAgB/Y,GAErCA,EAAI0E,MAAM1E,EAAIhS,QAAU,EACxBgS,EAAI0E,MAAM1E,EAAIhS,OAAS,GAAK,EAC5BgS,EAAIhS,QAAU,EAId,IADA,IAAI0J,EAAK,EACA9G,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAIqP,EAAmB,EAAfD,EAAI0E,MAAM9T,GAClB8G,GAAU,IAAJuI,EACND,EAAI0E,MAAM9T,GAAU,SAAL8G,EACfA,EAAS,GAAJuI,GAAavI,EAAK,SAAa,GAUtC,OANkC,IAA9BsI,EAAI0E,MAAM1E,EAAIhS,OAAS,KACzBgS,EAAIhS,SAC8B,IAA9BgS,EAAI0E,MAAM1E,EAAIhS,OAAS,IACzBgS,EAAIhS,UAGDgS,GAST8B,EAASqW,EAAMJ,GAQfjW,EAASsW,EAAML,GASfjW,EAASuW,EAAQN,GAEjBM,EAAOtrB,UAAUgsB,MAAQ,SAAgB/Y,GAGvC,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAI6G,EAA0B,IAAL,EAAfuI,EAAI0E,MAAM9T,IAAiBgT,EACjClM,EAAU,SAALD,EACTA,KAAQ,GAERuI,EAAI0E,MAAM9T,GAAK8G,EACfkM,EAAQnM,EAKV,OAHc,IAAVmM,IACF5D,EAAI0E,MAAM1E,EAAIhS,UAAY4V,GAErB5D,GAITP,EAAG8Y,OAAS,SAAgBxmB,GAE1B,GAAI2lB,EAAO3lB,GAAO,OAAO2lB,EAAO3lB,GAEhC,IAAIumB,EACJ,GAAa,SAATvmB,EACFumB,EAAQ,IAAIJ,OACP,GAAa,SAATnmB,EACTumB,EAAQ,IAAIH,OACP,GAAa,SAATpmB,EACTumB,EAAQ,IAAIF,MACP,IAAa,WAATrmB,EAGT,MAAM,IAAI/C,MAAM,iBAAmB+C,GAFnCumB,EAAQ,IAAID,EAMd,OAFAX,EAAO3lB,GAAQumB,EAERA,GAkBTrC,EAAIlpB,UAAUoqB,SAAW,SAAmB5d,GAC1C4F,EAAsB,IAAf5F,EAAEkL,SAAgB,iCACzBtF,EAAO5F,EAAEoL,IAAK,oCAGhBsR,EAAIlpB,UAAUiqB,SAAW,SAAmBzd,EAAGpE,GAC7CgK,EAAqC,KAA7B5F,EAAEkL,SAAWtP,EAAEsP,UAAiB,iCACxCtF,EAAO5F,EAAEoL,KAAOpL,EAAEoL,MAAQxP,EAAEwP,IAC1B,oCAGJsR,EAAIlpB,UAAU0rB,KAAO,SAAelf,GAClC,OAAIhK,KAAK+oB,MAAc/oB,KAAK+oB,MAAMM,QAAQrf,GAAG8c,UAAU9mB,MAChDgK,EAAEwa,KAAKxkB,KAAK8F,GAAGghB,UAAU9mB,OAGlC0mB,EAAIlpB,UAAUwb,IAAM,SAAchP,GAChC,OAAIA,EAAEwN,SACGxN,EAAEgH,QAGJhR,KAAK8F,EAAEqI,IAAInE,GAAG8c,UAAU9mB,OAGjC0mB,EAAIlpB,UAAU4c,IAAM,SAAcpQ,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEoQ,IAAIxU,GAIhB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU0c,KAAO,SAAelQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEkQ,KAAKtU,GAIjB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU2Q,IAAM,SAAcnE,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmE,IAAIvI,GAIhB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU2c,KAAO,SAAenQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmQ,KAAKvU,GAIjB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU+pB,IAAM,SAAcvd,EAAGyG,GAEnC,OADAzQ,KAAK4nB,SAAS5d,GACPhK,KAAKkpB,KAAKlf,EAAEqZ,MAAM5S,KAG3BiW,EAAIlpB,UAAU6gB,KAAO,SAAerU,EAAGpE,GAErC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEqU,KAAKzY,KAG1B8gB,EAAIlpB,UAAU+O,IAAM,SAAcvC,EAAGpE,GAEnC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEuC,IAAI3G,KAGzB8gB,EAAIlpB,UAAUglB,KAAO,SAAexY,GAClC,OAAOhK,KAAKqe,KAAKrU,EAAGA,EAAEgH,UAGxB0V,EAAIlpB,UAAU+kB,IAAM,SAAcvY,GAChC,OAAOhK,KAAKuM,IAAIvC,EAAGA,IAGrB0c,EAAIlpB,UAAUuqB,KAAO,SAAe/d,GAClC,GAAIA,EAAEwN,SAAU,OAAOxN,EAAEgH,QAEzB,IAAI+Y,EAAO/pB,KAAK8F,EAAEqL,MAAM,GAIxB,GAHAvB,EAAOma,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAIjd,EAAM9M,KAAK8F,EAAEsU,IAAI,IAAIlK,EAAG,IAAIoB,OAAO,GACvC,OAAOtR,KAAK8M,IAAI9C,EAAG8C,GAQrB,IAFA,IAAIkL,EAAIhY,KAAK8F,EAAE6d,KAAK,GAChBlD,EAAI,GACAzI,EAAER,UAA2B,IAAfQ,EAAE7G,MAAM,IAC5BsP,IACAzI,EAAE1G,OAAO,GAEX1B,GAAQoI,EAAER,UAEV,IAAIwS,EAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,MACtBiqB,EAAOD,EAAI/B,SAIXiC,EAAOlqB,KAAK8F,EAAE6d,KAAK,GAAGrS,OAAO,GAC7BL,EAAIjR,KAAK8F,EAAE+K,YAGf,IAFAI,EAAI,IAAIf,EAAG,EAAIe,EAAIA,GAAG0V,MAAM3mB,MAEW,IAAhCA,KAAK8M,IAAImE,EAAGiZ,GAAMpU,IAAImU,IAC3BhZ,EAAEkW,QAAQ8C,GAOZ,IAJA,IAAIhiB,EAAIjI,KAAK8M,IAAImE,EAAG+G,GAChBhI,EAAIhQ,KAAK8M,IAAI9C,EAAGgO,EAAE0L,KAAK,GAAGpS,OAAO,IACjC6G,EAAInY,KAAK8M,IAAI9C,EAAGgO,GAChBlS,EAAI2a,EACc,IAAftI,EAAErC,IAAIkU,IAAY,CAEvB,IADA,IAAIvB,EAAMtQ,EACD9W,EAAI,EAAoB,IAAjBonB,EAAI3S,IAAIkU,GAAY3oB,IAClConB,EAAMA,EAAId,SAEZ/X,EAAOvO,EAAIyE,GACX,IAAIF,EAAI5F,KAAK8M,IAAI7E,EAAG,IAAIiI,EAAG,GAAGwS,OAAO5c,EAAIzE,EAAI,IAE7C2O,EAAIA,EAAEwX,OAAO5hB,GACbqC,EAAIrC,EAAE+hB,SACNxP,EAAIA,EAAEqP,OAAOvf,GACbnC,EAAIzE,EAGN,OAAO2O,GAGT0W,EAAIlpB,UAAUqoB,KAAO,SAAe7b,GAClC,IAAImgB,EAAMngB,EAAEyb,OAAOzlB,KAAK8F,GACxB,OAAqB,IAAjBqkB,EAAIjV,UACNiV,EAAIjV,SAAW,EACRlV,KAAKkpB,KAAKiB,GAAKlC,UAEfjoB,KAAKkpB,KAAKiB,IAIrBzD,EAAIlpB,UAAUsP,IAAM,SAAc9C,EAAGyG,GACnC,GAAIA,EAAI+G,SAAU,OAAO,IAAItH,EAAG,GAAGyW,MAAM3mB,MACzC,GAAoB,IAAhByQ,EAAIqB,KAAK,GAAU,OAAO9H,EAAEgH,QAEhC,IACIoZ,EAAM,IAAIjpB,MAAM,IACpBipB,EAAI,GAAK,IAAIla,EAAG,GAAGyW,MAAM3mB,MACzBoqB,EAAI,GAAKpgB,EACT,IAAK,IAAI3I,EAAI,EAAGA,EAAI+oB,EAAI3rB,OAAQ4C,IAC9B+oB,EAAI/oB,GAAKrB,KAAKuM,IAAI6d,EAAI/oB,EAAI,GAAI2I,GAGhC,IAAIxB,EAAM4hB,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnlB,EAAQsL,EAAII,YAAc,GAK9B,IAJc,IAAV1L,IACFA,EAAQ,IAGL9D,EAAIoP,EAAIhS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIqR,EAAOjC,EAAI0E,MAAM9T,GACZwF,EAAI1B,EAAQ,EAAG0B,GAAK,EAAGA,IAAK,CACnC,IAAImT,EAAOtH,GAAQ7L,EAAK,EACpB2B,IAAQ4hB,EAAI,KACd5hB,EAAMxI,KAAKuiB,IAAI/Z,IAGL,IAARwR,GAAyB,IAAZqQ,GAKjBA,IAAY,EACZA,GAAWrQ,GA9BE,MA+BbsQ,GACwC,IAANjpB,GAAiB,IAANwF,KAE7C2B,EAAMxI,KAAKuM,IAAI/D,EAAK4hB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnlB,EAAQ,GAGV,OAAOqD,GAGTke,EAAIlpB,UAAUqpB,UAAY,SAAoBpW,GAC5C,IAAIT,EAAIS,EAAI+T,KAAKxkB,KAAK8F,GAEtB,OAAOkK,IAAMS,EAAMT,EAAEgB,QAAUhB,GAGjC0W,EAAIlpB,UAAUwpB,YAAc,SAAsBvW,GAChD,IAAIjI,EAAMiI,EAAIO,QAEd,OADAxI,EAAI4M,IAAM,KACH5M,GAOT0H,EAAGqa,KAAO,SAAe9Z,GACvB,OAAO,IAAIwY,EAAKxY,IAmBlB8B,EAAS0W,EAAMvC,GAEfuC,EAAKzrB,UAAUqpB,UAAY,SAAoBpW,GAC7C,OAAOzQ,KAAKkpB,KAAKzY,EAAI4S,MAAMrjB,KAAK8jB,SAGlCmF,EAAKzrB,UAAUwpB,YAAc,SAAsBvW,GACjD,IAAIT,EAAIhQ,KAAKkpB,KAAKzY,EAAIlE,IAAIvM,KAAKmpB,OAE/B,OADAnZ,EAAEoF,IAAM,KACDpF,GAGTiZ,EAAKzrB,UAAU6gB,KAAO,SAAerU,EAAGpE,GACtC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAGlB,OAFAxN,EAAEmL,MAAM,GAAK,EACbnL,EAAEvL,OAAS,EACJuL,EAGT,IAAImO,EAAInO,EAAEqU,KAAKzY,GACXqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAQV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAU+O,IAAM,SAAcvC,EAAGpE,GACpC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAAU,OAAO,IAAItH,EAAG,GAAG4W,UAAU9mB,MAEzD,IAAImY,EAAInO,EAAEuC,IAAI3G,GACVqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAOV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAUqoB,KAAO,SAAe7b,GAGnC,OADUhK,KAAKkpB,KAAKlf,EAAEyb,OAAOzlB,KAAK8F,GAAGyG,IAAIvM,KAAK4kB,KACnCkC,UAAU9mB,OAn3GzB,CAq3GoC7C,EAAQ6C,Q,qCCr3G5C7C,EAAOC,QAAU,EAAQ,M,cCAzB,IAAIwH,EAAW,GAAGA,SAElBzH,EAAOC,QAAU+D,MAAM6B,SAAW,SAAUoD,GAC1C,MAA6B,kBAAtBxB,EAAS7E,KAAKqG,K,6CCFvB,IAAInI,EAASD,EAAQ,KAAeC,OAChC6sB,EAAY9sB,EAAQ,KAAmB8sB,UAS3C,SAASib,EAAU7Q,GACjBpK,EAAU/qB,KAAKC,MAEfA,KAAKo1B,OAASn3B,EAAOW,YAAYs2B,GACjCl1B,KAAKs1B,WAAaJ,EAClBl1B,KAAKymC,aAAe,EACpBzmC,KAAK0mC,QAAU,CAAC,EAAG,EAAG,EAAG,GAEzB1mC,KAAKi5C,YAAa,EAhBLj7C,EAAQ,EAmBvBuU,CAASwzB,EAAUjb,GAEnBib,EAASvoC,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUioC,GACzD,IAAIhX,EAAQ,KACZ,IACElwB,KAAKwrB,OAAOshB,EAAO7tC,GACnB,MAAOktB,GACP+D,EAAQ/D,EAGV+a,EAAShX,IAGX6V,EAASvoC,UAAU4uB,OAAS,SAAU8a,GACpC,IAAIhX,EAAQ,KACZ,IACElwB,KAAKsB,KAAKtB,KAAK41B,UACf,MAAOzJ,GACP+D,EAAQ/D,EAGV+a,EAAShX,IAGX6V,EAASvoC,UAAUguB,OAAS,SAAU/mB,EAAMxF,GAE1C,GA3CF,SAAmCsF,EAAK20C,GACtC,IAAKj7C,EAAOmG,SAASG,IAAuB,kBAARA,EAClC,MAAM,IAAIzF,UAAUo6C,EAAS,iCAwC/BC,CAAyB10C,EAAM,QAC3BzE,KAAKi5C,WAAY,MAAM,IAAIx5C,MAAM,yBAChCxB,EAAOmG,SAASK,KAAOA,EAAOxG,EAAOS,KAAK+F,EAAMxF,IAKrD,IAFA,IAAIu2B,EAAQx1B,KAAKo1B,OACbruB,EAAS,EACN/G,KAAKymC,aAAehiC,EAAKhG,OAASsI,GAAU/G,KAAKs1B,YAAY,CAClE,IAAK,IAAIj0B,EAAIrB,KAAKymC,aAAcplC,EAAIrB,KAAKs1B,YAAaE,EAAMn0B,KAAOoD,EAAKsC,KACxE/G,KAAK4rB,UACL5rB,KAAKymC,aAAe,EAEtB,KAAO1/B,EAAStC,EAAKhG,QAAQ+2B,EAAMx1B,KAAKymC,gBAAkBhiC,EAAKsC,KAG/D,IAAK,IAAIF,EAAI,EAAGwN,EAAsB,EAAd5P,EAAKhG,OAAY4V,EAAQ,IAAKxN,EACpD7G,KAAK0mC,QAAQ7/B,IAAMwN,GACnBA,EAASrU,KAAK0mC,QAAQ7/B,GAAK,WAAgB,GAC/B,IAAG7G,KAAK0mC,QAAQ7/B,IAAM,WAAewN,GAGnD,OAAOrU,MAGT+lC,EAASvoC,UAAUouB,QAAU,WAC3B,MAAM,IAAInsB,MAAM,+BAGlBsmC,EAASvoC,UAAUo4B,OAAS,SAAU32B,GACpC,GAAIe,KAAKi5C,WAAY,MAAM,IAAIx5C,MAAM,yBACrCO,KAAKi5C,YAAa,EAElB,IAAIrjB,EAAS51B,KAAK63B,eACD14B,IAAbF,IAAwB22B,EAASA,EAAOhxB,SAAS3F,IAGrDe,KAAKo1B,OAAOp2B,KAAK,GACjBgB,KAAKymC,aAAe,EACpB,IAAK,IAAIplC,EAAI,EAAGA,EAAI,IAAKA,EAAGrB,KAAK0mC,QAAQrlC,GAAK,EAE9C,OAAOu0B,GAGTmQ,EAASvoC,UAAUq6B,QAAU,WAC3B,MAAM,IAAIp4B,MAAM,+BAGlBtC,EAAOC,QAAU2oC,G,8BC9FjB,cAyBA,IAAI3T,EAHJj1B,EAAOC,QAAUk1B,EAMjBA,EAAS8mB,cAAgBA,EAGhBp7C,EAAQ,IAAUgvB,aAA3B,IAEIqsB,EAAkB,SAAyBnsB,EAAS1oB,GACtD,OAAO0oB,EAAQ3qB,UAAUiC,GAAM/F,QAO7B+qC,EAASxrC,EAAQ,IAIjBC,EAASD,EAAQ,GAAUC,OAE3BqsC,EAAgBjhC,EAAO/F,YAAc,aAYzC,IAEIg2C,EAFAC,EAAYv7C,EAAQ,KAKtBs7C,EADEC,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,aAKV,IAcIzuB,EACA0uB,EACA/6C,EAhBAg7C,EAAa17C,EAAQ,KAErBwsC,EAAcxsC,EAAQ,IAGtB27C,EADW37C,EAAQ,IACS27C,iBAE5BC,EAAiB57C,EAAQ,IAAa41B,MACtCimB,EAAuBD,EAAeC,qBACtCC,EAA4BF,EAAeE,0BAC3CC,EAA6BH,EAAeG,2BAC5CC,EAAqCJ,EAAeI,mCAOxDh8C,EAAQ,EAARA,CAAoBs0B,EAAUkX,GAE9B,IAAIyQ,EAAiBzP,EAAYyP,eAC7BC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAa1D,SAASd,EAAc1mB,EAASsU,EAAQ0D,GACtCtY,EAASA,GAAUp0B,EAAQ,IAC3B00B,EAAUA,GAAW,GAMG,mBAAbgY,IAAwBA,EAAW1D,aAAkB5U,GAGhEpyB,KAAK2qC,aAAejY,EAAQiY,WACxBD,IAAU1qC,KAAK2qC,WAAa3qC,KAAK2qC,cAAgBjY,EAAQynB,oBAG7Dn6C,KAAKizB,cAAgB0mB,EAAiB35C,KAAM0yB,EAAS,wBAAyBgY,GAI9E1qC,KAAKjC,OAAS,IAAI27C,EAClB15C,KAAKvB,OAAS,EACduB,KAAKo6C,MAAQ,KACbp6C,KAAKq6C,WAAa,EAClBr6C,KAAKs6C,QAAU,KACft6C,KAAK+yB,OAAQ,EACb/yB,KAAKynC,YAAa,EAClBznC,KAAKu6C,SAAU,EAKfv6C,KAAKyrC,MAAO,EAGZzrC,KAAKw6C,cAAe,EACpBx6C,KAAKy6C,iBAAkB,EACvBz6C,KAAK06C,mBAAoB,EACzB16C,KAAK26C,iBAAkB,EACvB36C,KAAK46C,QAAS,EAEd56C,KAAK66C,WAAkC,IAAtBnoB,EAAQmoB,UAEzB76C,KAAK86C,cAAgBpoB,EAAQooB,YAE7B96C,KAAKmzB,WAAY,EAIjBnzB,KAAKsrC,gBAAkB5Y,EAAQ4Y,iBAAmB,OAElDtrC,KAAK+6C,WAAa,EAElB/6C,KAAKg7C,aAAc,EACnBh7C,KAAKi7C,QAAU,KACfj7C,KAAKf,SAAW,KAEZyzB,EAAQzzB,WACL8rB,IAAeA,EAAgB/sB,EAAQ,IAAmB+sB,eAC/D/qB,KAAKi7C,QAAU,IAAIlwB,EAAc2H,EAAQzzB,UACzCe,KAAKf,SAAWyzB,EAAQzzB,UAI5B,SAASqzB,EAASI,GAEhB,GADAN,EAASA,GAAUp0B,EAAQ,MACrBgC,gBAAgBsyB,GAAW,OAAO,IAAIA,EAASI,GAGrD,IAAIgY,EAAW1qC,gBAAgBoyB,EAC/BpyB,KAAKkzB,eAAiB,IAAIkmB,EAAc1mB,EAAS1yB,KAAM0qC,GAEvD1qC,KAAK2yB,UAAW,EAEZD,IAC0B,oBAAjBA,EAAQjsB,OAAqBzG,KAAKk7C,MAAQxoB,EAAQjsB,MAC9B,oBAApBisB,EAAQka,UAAwB5sC,KAAKozB,SAAWV,EAAQka,UAGrEpD,EAAOzpC,KAAKC,MAiEd,SAASm7C,EAAiBnU,EAAQ8F,EAAO7tC,EAAUm8C,EAAYC,GAC7D/B,EAAM,mBAAoBxM,GAC1B,IAMM3c,EANFjB,EAAQ8X,EAAO9T,eAEnB,GAAc,OAAV4Z,EACF5d,EAAMqrB,SAAU,EAyOpB,SAAoBvT,EAAQ9X,GAE1B,GADAoqB,EAAM,cACFpqB,EAAM6D,MAAO,OAEjB,GAAI7D,EAAM+rB,QAAS,CACjB,IAAInO,EAAQ5d,EAAM+rB,QAAQ71C,MAEtB0nC,GAASA,EAAMruC,SACjBywB,EAAMnxB,OAAOuD,KAAKwrC,GAClB5d,EAAMzwB,QAAUywB,EAAMyb,WAAa,EAAImC,EAAMruC,QAIjDywB,EAAM6D,OAAQ,EAEV7D,EAAMuc,KAIR6P,EAAatU,IAGb9X,EAAMsrB,cAAe,EAEhBtrB,EAAMurB,kBACTvrB,EAAMurB,iBAAkB,EACxBc,EAAcvU,KAlQhBwU,CAAWxU,EAAQ9X,QAKnB,GAFKmsB,IAAgBlrB,EAmDzB,SAAsBjB,EAAO4d,GAC3B,IAAI3c,EAhQiBhsB,EAkQF2oC,EAjQZ7uC,EAAOmG,SAASD,IAAQA,aAAemmC,GAiQA,kBAAVwC,QAAgC3tC,IAAV2tC,GAAwB5d,EAAMyb,aACtFxa,EAAK,IAAI0pB,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAe/M,IAnQ/E,IAAuB3oC,EAsQrB,OAAOgsB,EA1DqBsrB,CAAavsB,EAAO4d,IAE1C3c,EACF8pB,EAAejT,EAAQ7W,QAClB,GAAIjB,EAAMyb,YAAcmC,GAASA,EAAMruC,OAAS,EAKrD,GAJqB,kBAAVquC,GAAuB5d,EAAMyb,YAAc1tC,OAAO6yB,eAAegd,KAAW7uC,EAAOT,YAC5FsvC,EAtNR,SAA6BA,GAC3B,OAAO7uC,EAAOS,KAAKouC,GAqNLW,CAAoBX,IAG1BsO,EACElsB,EAAMuY,WAAYwS,EAAejT,EAAQ,IAAIgT,GAA2C0B,EAAS1U,EAAQ9X,EAAO4d,GAAO,QACtH,GAAI5d,EAAM6D,MACfknB,EAAejT,EAAQ,IAAI8S,OACtB,IAAI5qB,EAAMiE,UACf,OAAO,EAEPjE,EAAMqrB,SAAU,EAEZrrB,EAAM+rB,UAAYh8C,GACpB6tC,EAAQ5d,EAAM+rB,QAAQj3C,MAAM8oC,GACxB5d,EAAMyb,YAA+B,IAAjBmC,EAAMruC,OAAci9C,EAAS1U,EAAQ9X,EAAO4d,GAAO,GAAY6O,EAAc3U,EAAQ9X,IAE7GwsB,EAAS1U,EAAQ9X,EAAO4d,GAAO,QAGzBsO,IACVlsB,EAAMqrB,SAAU,EAChBoB,EAAc3U,EAAQ9X,IAO1B,OAAQA,EAAM6D,QAAU7D,EAAMzwB,OAASywB,EAAM+D,eAAkC,IAAjB/D,EAAMzwB,QAGtE,SAASi9C,EAAS1U,EAAQ9X,EAAO4d,EAAOsO,GAClClsB,EAAMorB,SAA4B,IAAjBprB,EAAMzwB,SAAiBywB,EAAMuc,MAChDvc,EAAM6rB,WAAa,EACnB/T,EAAO5kC,KAAK,OAAQ0qC,KAGpB5d,EAAMzwB,QAAUywB,EAAMyb,WAAa,EAAImC,EAAMruC,OACzC28C,EAAYlsB,EAAMnxB,OAAO0wB,QAAQqe,GAAY5d,EAAMnxB,OAAOuD,KAAKwrC,GAC/D5d,EAAMsrB,cAAcc,EAAatU,IAGvC2U,EAAc3U,EAAQ9X,GAvHxBjyB,OAAO4M,eAAeyoB,EAAS90B,UAAW,YAAa,CAIrDG,YAAY,EACZktB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAKkzB,gBAIFlzB,KAAKkzB,eAAeC,WAE7BpkB,IAAK,SAAarR,GAGXsC,KAAKkzB,iBAMVlzB,KAAKkzB,eAAeC,UAAYz1B,MAGpC40B,EAAS90B,UAAUovC,QAAUpC,EAAYoC,QACzCta,EAAS90B,UAAU4wC,WAAa5D,EAAY6D,UAE5C/b,EAAS90B,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC3CA,EAAGlH,IAOLmG,EAAS90B,UAAU8D,KAAO,SAAUwrC,EAAO7tC,GACzC,IACIo8C,EADAnsB,EAAQlvB,KAAKkzB,eAkBjB,OAfKhE,EAAMyb,WAYT0Q,GAAiB,EAXI,kBAAVvO,KACT7tC,EAAWA,GAAYiwB,EAAMoc,mBAEZpc,EAAMjwB,WACrB6tC,EAAQ7uC,EAAOS,KAAKouC,EAAO7tC,GAC3BA,EAAW,IAGbo8C,GAAiB,GAMdF,EAAiBn7C,KAAM8sC,EAAO7tC,GAAU,EAAOo8C,IAIxD/oB,EAAS90B,UAAUixB,QAAU,SAAUqe,GACrC,OAAOqO,EAAiBn7C,KAAM8sC,EAAO,MAAM,GAAM,IAyEnDxa,EAAS90B,UAAUo+C,SAAW,WAC5B,OAAuC,IAAhC57C,KAAKkzB,eAAeonB,SAI7BhoB,EAAS90B,UAAUq+C,YAAc,SAAUjpC,GACpCmY,IAAeA,EAAgB/sB,EAAQ,IAAmB+sB,eAC/D,IAAIkwB,EAAU,IAAIlwB,EAAcnY,GAChC5S,KAAKkzB,eAAe+nB,QAAUA,EAE9Bj7C,KAAKkzB,eAAej0B,SAAWe,KAAKkzB,eAAe+nB,QAAQh8C,SAK3D,IAHA,IAAI4T,EAAI7S,KAAKkzB,eAAen1B,OAAO+9C,KAC/B3E,EAAU,GAED,OAANtkC,GACLskC,GAAW8D,EAAQj3C,MAAM6O,EAAEpO,MAC3BoO,EAAIA,EAAEiX,KAOR,OAJA9pB,KAAKkzB,eAAen1B,OAAOg+C,QAEX,KAAZ5E,GAAgBn3C,KAAKkzB,eAAen1B,OAAOuD,KAAK61C,GACpDn3C,KAAKkzB,eAAez0B,OAAS04C,EAAQ14C,OAC9BuB,MAIT,IAAIg8C,EAAU,WAuBd,SAASC,EAAcp2C,EAAGqpB,GACxB,OAAIrpB,GAAK,GAAsB,IAAjBqpB,EAAMzwB,QAAgBywB,EAAM6D,MAAc,EACpD7D,EAAMyb,WAAmB,EAEzB9kC,IAAMA,EAEJqpB,EAAMorB,SAAWprB,EAAMzwB,OAAeywB,EAAMnxB,OAAO+9C,KAAKr3C,KAAKhG,OAAmBywB,EAAMzwB,QAIxFoH,EAAIqpB,EAAM+D,gBAAe/D,EAAM+D,cA/BrC,SAAiCptB,GAgB/B,OAfIA,GAAKm2C,EAEPn2C,EAAIm2C,GAIJn2C,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAGKA,EAe4Cq2C,CAAwBr2C,IACvEA,GAAKqpB,EAAMzwB,OAAeoH,EAEzBqpB,EAAM6D,MAKJ7D,EAAMzwB,QAJXywB,EAAMsrB,cAAe,EACd,IAwIX,SAASc,EAAatU,GACpB,IAAI9X,EAAQ8X,EAAO9T,eACnBomB,EAAM,eAAgBpqB,EAAMsrB,aAActrB,EAAMurB,iBAChDvrB,EAAMsrB,cAAe,EAEhBtrB,EAAMurB,kBACTnB,EAAM,eAAgBpqB,EAAMorB,SAC5BprB,EAAMurB,iBAAkB,EACxBl7C,EAAQ0B,SAASs6C,EAAevU,IAIpC,SAASuU,EAAcvU,GACrB,IAAI9X,EAAQ8X,EAAO9T,eACnBomB,EAAM,gBAAiBpqB,EAAMiE,UAAWjE,EAAMzwB,OAAQywB,EAAM6D,OAEvD7D,EAAMiE,YAAcjE,EAAMzwB,SAAUywB,EAAM6D,QAC7CiU,EAAO5kC,KAAK,YACZ8sB,EAAMurB,iBAAkB,GAS1BvrB,EAAMsrB,cAAgBtrB,EAAMorB,UAAYprB,EAAM6D,OAAS7D,EAAMzwB,QAAUywB,EAAM+D,cAC7EkpB,EAAKnV,GASP,SAAS2U,EAAc3U,EAAQ9X,GACxBA,EAAM8rB,cACT9rB,EAAM8rB,aAAc,EACpBz7C,EAAQ0B,SAASm7C,EAAgBpV,EAAQ9X,IAI7C,SAASktB,EAAepV,EAAQ9X,GAwB9B,MAAQA,EAAMqrB,UAAYrrB,EAAM6D,QAAU7D,EAAMzwB,OAASywB,EAAM+D,eAAiB/D,EAAMorB,SAA4B,IAAjBprB,EAAMzwB,SAAe,CACpH,IAAIiC,EAAMwuB,EAAMzwB,OAGhB,GAFA66C,EAAM,wBACNtS,EAAOvgC,KAAK,GACR/F,IAAQwuB,EAAMzwB,OAChB,MAGJywB,EAAM8rB,aAAc,EA6QtB,SAASqB,EAAwBplC,GAC/B,IAAIiY,EAAQjY,EAAKic,eACjBhE,EAAMwrB,kBAAoBzjC,EAAKyY,cAAc,YAAc,EAEvDR,EAAMyrB,kBAAoBzrB,EAAM0rB,OAGlC1rB,EAAMorB,SAAU,EACPrjC,EAAKyY,cAAc,QAAU,GACtCzY,EAAKqlC,SAIT,SAASC,EAAiBtlC,GACxBqiC,EAAM,4BACNriC,EAAKxQ,KAAK,GA4BZ,SAAS+1C,EAAQxV,EAAQ9X,GACvBoqB,EAAM,SAAUpqB,EAAMqrB,SAEjBrrB,EAAMqrB,SACTvT,EAAOvgC,KAAK,GAGdyoB,EAAMyrB,iBAAkB,EACxB3T,EAAO5kC,KAAK,UACZ+5C,EAAKnV,GACD9X,EAAMorB,UAAYprB,EAAMqrB,SAASvT,EAAOvgC,KAAK,GAgBnD,SAAS01C,EAAKnV,GACZ,IAAI9X,EAAQ8X,EAAO9T,eAGnB,IAFAomB,EAAM,OAAQpqB,EAAMorB,SAEbprB,EAAMorB,SAA6B,OAAlBtT,EAAOvgC,UA4HjC,SAASg2C,EAAS52C,EAAGqpB,GAEnB,OAAqB,IAAjBA,EAAMzwB,OAAqB,MAE3BywB,EAAMyb,WAAYr/B,EAAM4jB,EAAMnxB,OAAO+lB,SAAkBje,GAAKA,GAAKqpB,EAAMzwB,QAEtD6M,EAAf4jB,EAAM+rB,QAAe/rB,EAAMnxB,OAAO6M,KAAK,IAAqC,IAAxBskB,EAAMnxB,OAAOU,OAAoBywB,EAAMnxB,OAAO+wC,QAAmB5f,EAAMnxB,OAAOwC,OAAO2uB,EAAMzwB,QACnJywB,EAAMnxB,OAAOg+C,SAGbzwC,EAAM4jB,EAAMnxB,OAAO2+C,QAAQ72C,EAAGqpB,EAAM+rB,SAE/B3vC,GATP,IAAIA,EAYN,SAASqxC,EAAY3V,GACnB,IAAI9X,EAAQ8X,EAAO9T,eACnBomB,EAAM,cAAepqB,EAAMuY,YAEtBvY,EAAMuY,aACTvY,EAAM6D,OAAQ,EACdxzB,EAAQ0B,SAAS27C,EAAe1tB,EAAO8X,IAI3C,SAAS4V,EAAc1tB,EAAO8X,GAG5B,GAFAsS,EAAM,gBAAiBpqB,EAAMuY,WAAYvY,EAAMzwB,SAE1CywB,EAAMuY,YAA+B,IAAjBvY,EAAMzwB,SAC7BywB,EAAMuY,YAAa,EACnBT,EAAOrU,UAAW,EAClBqU,EAAO5kC,KAAK,OAER8sB,EAAM4rB,aAAa,CAGrB,IAAI+B,EAAS7V,EAAOlU,iBAEf+pB,GAAUA,EAAO/B,aAAe+B,EAAOtV,WAC1CP,EAAO4F,WAgBf,SAAS1mC,EAAQq+B,EAAIt6B,GACnB,IAAK,IAAI5I,EAAI,EAAG0O,EAAIw0B,EAAG9lC,OAAQ4C,EAAI0O,EAAG1O,IACpC,GAAIkjC,EAAGljC,KAAO4I,EAAG,OAAO5I,EAG1B,OAAQ,EA3tBVixB,EAAS90B,UAAUiJ,KAAO,SAAUZ,GAClCyzC,EAAM,OAAQzzC,GACdA,EAAIuB,SAASvB,EAAG,IAChB,IAAIqpB,EAAQlvB,KAAKkzB,eACb4pB,EAAQj3C,EAKZ,GAJU,IAANA,IAASqpB,EAAMurB,iBAAkB,GAI3B,IAAN50C,GAAWqpB,EAAMsrB,gBAA0C,IAAxBtrB,EAAM+D,cAAsB/D,EAAMzwB,QAAUywB,EAAM+D,cAAgB/D,EAAMzwB,OAAS,IAAMywB,EAAM6D,OAGlI,OAFAumB,EAAM,qBAAsBpqB,EAAMzwB,OAAQywB,EAAM6D,OAC3B,IAAjB7D,EAAMzwB,QAAgBywB,EAAM6D,MAAO4pB,EAAY38C,MAAWs7C,EAAat7C,MACpE,KAKT,GAAU,KAFV6F,EAAIo2C,EAAcp2C,EAAGqpB,KAENA,EAAM6D,MAEnB,OADqB,IAAjB7D,EAAMzwB,QAAck+C,EAAY38C,MAC7B,KAyBT,IA4BIsL,EA5BAyxC,EAAS7tB,EAAMsrB,aAgDnB,OA/CAlB,EAAM,gBAAiByD,IAEF,IAAjB7tB,EAAMzwB,QAAgBywB,EAAMzwB,OAASoH,EAAIqpB,EAAM+D,gBAEjDqmB,EAAM,6BADNyD,GAAS,GAMP7tB,EAAM6D,OAAS7D,EAAMqrB,QAEvBjB,EAAM,mBADNyD,GAAS,GAEAA,IACTzD,EAAM,WACNpqB,EAAMqrB,SAAU,EAChBrrB,EAAMuc,MAAO,EAEQ,IAAjBvc,EAAMzwB,SAAcywB,EAAMsrB,cAAe,GAE7Cx6C,KAAKk7C,MAAMhsB,EAAM+D,eAEjB/D,EAAMuc,MAAO,EAGRvc,EAAMqrB,UAAS10C,EAAIo2C,EAAca,EAAO5tB,KAMnC,QAFD5jB,EAAPzF,EAAI,EAAS42C,EAAS52C,EAAGqpB,GAAkB,OAG7CA,EAAMsrB,aAAetrB,EAAMzwB,QAAUywB,EAAM+D,cAC3CptB,EAAI,IAEJqpB,EAAMzwB,QAAUoH,EAChBqpB,EAAM6rB,WAAa,GAGA,IAAjB7rB,EAAMzwB,SAGHywB,EAAM6D,QAAO7D,EAAMsrB,cAAe,GAEnCsC,IAAUj3C,GAAKqpB,EAAM6D,OAAO4pB,EAAY38C,OAGlC,OAARsL,GAActL,KAAKoC,KAAK,OAAQkJ,GAC7BA,GAwHTgnB,EAAS90B,UAAU09C,MAAQ,SAAUr1C,GACnCo0C,EAAej6C,KAAM,IAAI+5C,EAA2B,aAGtDznB,EAAS90B,UAAUgwC,KAAO,SAAU92B,EAAMsmC,GACxC,IAAI7+C,EAAM6B,KACNkvB,EAAQlvB,KAAKkzB,eAEjB,OAAQhE,EAAMmrB,YACZ,KAAK,EACHnrB,EAAMkrB,MAAQ1jC,EACd,MAEF,KAAK,EACHwY,EAAMkrB,MAAQ,CAAClrB,EAAMkrB,MAAO1jC,GAC5B,MAEF,QACEwY,EAAMkrB,MAAM94C,KAAKoV,GAIrBwY,EAAMmrB,YAAc,EACpBf,EAAM,wBAAyBpqB,EAAMmrB,WAAY2C,GACjD,IACIC,IADUD,IAA6B,IAAjBA,EAAS53C,MAAkBsR,IAASnX,EAAQ29C,QAAUxmC,IAASnX,EAAQ49C,OAC7EtqB,EAAQuqB,EAI5B,SAASC,EAAS1qB,EAAU2qB,GAC1BhE,EAAM,YAEF3mB,IAAax0B,GACXm/C,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5BjE,EAAM,WAEN5iC,EAAKxU,eAAe,QAASylC,GAC7BjxB,EAAKxU,eAAe,SAAUmlC,GAC9B3wB,EAAKxU,eAAe,QAASs7C,GAC7B9mC,EAAKxU,eAAe,QAASwlC,GAC7BhxB,EAAKxU,eAAe,SAAUm7C,GAC9Bl/C,EAAI+D,eAAe,MAAO2wB,GAC1B10B,EAAI+D,eAAe,MAAOk7C,GAC1Bj/C,EAAI+D,eAAe,OAAQu7C,GAC3BC,GAAY,GAMRxuB,EAAM6rB,YAAgBrkC,EAAKoc,iBAAkBpc,EAAKoc,eAAeoY,WAAYsS,KA9BnF,SAAS3qB,IACPymB,EAAM,SACN5iC,EAAKtR,MAhBH8pB,EAAMuY,WAAYloC,EAAQ0B,SAASg8C,GAAY9+C,EAAI6D,KAAK,MAAOi7C,GACnEvmC,EAAK5U,GAAG,SAAUu7C,GAsBlB,IAAIG,EAwFN,SAAqBr/C,GACnB,OAAO,WACL,IAAI+wB,EAAQ/wB,EAAI+0B,eAChBomB,EAAM,cAAepqB,EAAM6rB,YACvB7rB,EAAM6rB,YAAY7rB,EAAM6rB,aAEH,IAArB7rB,EAAM6rB,YAAoB1B,EAAgBl7C,EAAK,UACjD+wB,EAAMorB,SAAU,EAChB6B,EAAKh+C,KAhGKw/C,CAAYx/C,GAC1BuY,EAAK5U,GAAG,QAAS07C,GACjB,IAAIE,GAAY,EAwBhB,SAASD,EAAO3Q,GACdwM,EAAM,UACN,IAAIhuC,EAAMoL,EAAK1S,MAAM8oC,GACrBwM,EAAM,aAAchuC,IAER,IAARA,KAKwB,IAArB4jB,EAAMmrB,YAAoBnrB,EAAMkrB,QAAU1jC,GAAQwY,EAAMmrB,WAAa,IAAqC,IAAhCn0C,EAAQgpB,EAAMkrB,MAAO1jC,MAAkBgnC,IACpHpE,EAAM,8BAA+BpqB,EAAM6rB,YAC3C7rB,EAAM6rB,cAGR58C,EAAIy/C,SAMR,SAASlW,EAAQvX,GACfmpB,EAAM,UAAWnpB,GACjBitB,IACA1mC,EAAKxU,eAAe,QAASwlC,GACU,IAAnC2R,EAAgB3iC,EAAM,UAAgBujC,EAAevjC,EAAMyZ,GAMjE,SAASwX,IACPjxB,EAAKxU,eAAe,SAAUmlC,GAC9B+V,IAKF,SAAS/V,IACPiS,EAAM,YACN5iC,EAAKxU,eAAe,QAASylC,GAC7ByV,IAKF,SAASA,IACP9D,EAAM,UACNn7C,EAAIi/C,OAAO1mC,GAWb,OA7DAvY,EAAI2D,GAAG,OAAQ27C,GAtkBjB,SAAyBvwB,EAAS2wB,EAAOrkB,GAGvC,GAAuC,oBAA5BtM,EAAQ7qB,gBAAgC,OAAO6qB,EAAQ7qB,gBAAgBw7C,EAAOrkB,GAKpFtM,EAAQU,SAAYV,EAAQU,QAAQiwB,GAAuC18C,MAAM6B,QAAQkqB,EAAQU,QAAQiwB,IAAS3wB,EAAQU,QAAQiwB,GAAOpvB,QAAQ+K,GAAStM,EAAQU,QAAQiwB,GAAS,CAACrkB,EAAItM,EAAQU,QAAQiwB,IAA5J3wB,EAAQprB,GAAG+7C,EAAOrkB,GA6lBnEn3B,CAAgBqU,EAAM,QAASgxB,GAO/BhxB,EAAK1U,KAAK,QAAS2lC,GAQnBjxB,EAAK1U,KAAK,SAAUqlC,GAQpB3wB,EAAKtU,KAAK,OAAQjE,GAEb+wB,EAAMorB,UACThB,EAAM,eACNn7C,EAAIm+C,UAGC5lC,GAgBT4b,EAAS90B,UAAU4/C,OAAS,SAAU1mC,GACpC,IAAIwY,EAAQlvB,KAAKkzB,eACboqB,EAAa,CACfC,YAAY,GAGd,GAAyB,IAArBruB,EAAMmrB,WAAkB,OAAOr6C,KAEnC,GAAyB,IAArBkvB,EAAMmrB,WAER,OAAI3jC,GAAQA,IAASwY,EAAMkrB,QACtB1jC,IAAMA,EAAOwY,EAAMkrB,OAExBlrB,EAAMkrB,MAAQ,KACdlrB,EAAMmrB,WAAa,EACnBnrB,EAAMorB,SAAU,EACZ5jC,GAAMA,EAAKtU,KAAK,SAAUpC,KAAMs9C,IANKt9C,KAW3C,IAAK0W,EAAM,CAET,IAAIonC,EAAQ5uB,EAAMkrB,MACd15C,EAAMwuB,EAAMmrB,WAChBnrB,EAAMkrB,MAAQ,KACdlrB,EAAMmrB,WAAa,EACnBnrB,EAAMorB,SAAU,EAEhB,IAAK,IAAIj5C,EAAI,EAAGA,EAAIX,EAAKW,IACvBy8C,EAAMz8C,GAAGe,KAAK,SAAUpC,KAAM,CAC5Bu9C,YAAY,IAIhB,OAAOv9C,KAIT,IAAIwV,EAAQtP,EAAQgpB,EAAMkrB,MAAO1jC,GACjC,OAAe,IAAXlB,IACJ0Z,EAAMkrB,MAAM/V,OAAO7uB,EAAO,GAC1B0Z,EAAMmrB,YAAc,EACK,IAArBnrB,EAAMmrB,aAAkBnrB,EAAMkrB,MAAQlrB,EAAMkrB,MAAM,IACtD1jC,EAAKtU,KAAK,SAAUpC,KAAMs9C,IAJDt9C,MAU3BsyB,EAAS90B,UAAUsE,GAAK,SAAUi8C,EAAIvkB,GACpC,IAAIhxB,EAAMghC,EAAOhsC,UAAUsE,GAAG/B,KAAKC,KAAM+9C,EAAIvkB,GACzCtK,EAAQlvB,KAAKkzB,eAuBjB,MArBW,SAAP6qB,GAGF7uB,EAAMwrB,kBAAoB16C,KAAK0vB,cAAc,YAAc,GAErC,IAAlBR,EAAMorB,SAAmBt6C,KAAKs8C,UAClB,aAAPyB,IACJ7uB,EAAMuY,YAAevY,EAAMwrB,oBAC9BxrB,EAAMwrB,kBAAoBxrB,EAAMsrB,cAAe,EAC/CtrB,EAAMorB,SAAU,EAChBprB,EAAMurB,iBAAkB,EACxBnB,EAAM,cAAepqB,EAAMzwB,OAAQywB,EAAMqrB,SAErCrrB,EAAMzwB,OACR68C,EAAat7C,MACHkvB,EAAMqrB,SAChBh7C,EAAQ0B,SAASs7C,EAAkBv8C,QAKlCwI,GAGT8pB,EAAS90B,UAAUuE,YAAcuwB,EAAS90B,UAAUsE,GAEpDwwB,EAAS90B,UAAU0E,eAAiB,SAAU67C,EAAIvkB,GAChD,IAAIhxB,EAAMghC,EAAOhsC,UAAU0E,eAAenC,KAAKC,KAAM+9C,EAAIvkB,GAYzD,MAVW,aAAPukB,GAOFx+C,EAAQ0B,SAASo7C,EAAyBr8C,MAGrCwI,GAGT8pB,EAAS90B,UAAU2E,mBAAqB,SAAU47C,GAChD,IAAIv1C,EAAMghC,EAAOhsC,UAAU2E,mBAAmBZ,MAAMvB,KAAMoB,WAY1D,MAVW,aAAP28C,QAA4B5+C,IAAP4+C,GAOvBx+C,EAAQ0B,SAASo7C,EAAyBr8C,MAGrCwI,GAuBT8pB,EAAS90B,UAAU8+C,OAAS,WAC1B,IAAIptB,EAAQlvB,KAAKkzB,eAYjB,OAVKhE,EAAMorB,UACThB,EAAM,UAINpqB,EAAMorB,SAAWprB,EAAMwrB,kBAQ3B,SAAgB1T,EAAQ9X,GACjBA,EAAMyrB,kBACTzrB,EAAMyrB,iBAAkB,EACxBp7C,EAAQ0B,SAASu7C,EAASxV,EAAQ9X,IAVlCotB,CAAOt8C,KAAMkvB,IAGfA,EAAM0rB,QAAS,EACR56C,MAuBTsyB,EAAS90B,UAAUogD,MAAQ,WAUzB,OATAtE,EAAM,wBAAyBt5C,KAAKkzB,eAAeonB,UAEf,IAAhCt6C,KAAKkzB,eAAeonB,UACtBhB,EAAM,SACNt5C,KAAKkzB,eAAeonB,SAAU,EAC9Bt6C,KAAKoC,KAAK,UAGZpC,KAAKkzB,eAAe0nB,QAAS,EACtB56C,MAeTsyB,EAAS90B,UAAUwgD,KAAO,SAAUhX,GAClC,IAAI2C,EAAQ3pC,KAERkvB,EAAQlvB,KAAKkzB,eACb0nB,GAAS,EA0Bb,IAAK,IAAIv5C,KAzBT2lC,EAAOllC,GAAG,OAAO,WAGf,GAFAw3C,EAAM,eAEFpqB,EAAM+rB,UAAY/rB,EAAM6D,MAAO,CACjC,IAAI+Z,EAAQ5d,EAAM+rB,QAAQ71C,MACtB0nC,GAASA,EAAMruC,QAAQkrC,EAAMroC,KAAKwrC,GAGxCnD,EAAMroC,KAAK,SAEb0lC,EAAOllC,GAAG,QAAQ,SAAUgrC,IAC1BwM,EAAM,gBACFpqB,EAAM+rB,UAASnO,EAAQ5d,EAAM+rB,QAAQj3C,MAAM8oC,KAE3C5d,EAAMyb,YAAyB,OAAVmC,QAA4B3tC,IAAV2tC,MAAuC5d,EAAMyb,YAAgBmC,GAAUA,EAAMruC,UAE9GkrC,EAAMroC,KAAKwrC,KAGnB8N,GAAS,EACT5T,EAAO4W,cAKG5W,OACI7nC,IAAZa,KAAKqB,IAAyC,oBAAd2lC,EAAO3lC,KACzCrB,KAAKqB,GAAK,SAAoBoxB,GAC5B,OAAO,WACL,OAAOuU,EAAOvU,GAAQlxB,MAAMylC,EAAQ5lC,YAF9B,CAIRC,IAKN,IAAK,IAAIwE,EAAI,EAAGA,EAAIq0C,EAAaz7C,OAAQoH,IACvCmhC,EAAOllC,GAAGo4C,EAAar0C,GAAI7F,KAAKoC,KAAKgtB,KAAKpvB,KAAMk6C,EAAar0C,KAc/D,OATA7F,KAAKk7C,MAAQ,SAAUr1C,GACrByzC,EAAM,gBAAiBzzC,GAEnB+0C,IACFA,GAAS,EACT5T,EAAOsV,WAIJt8C,MAGa,oBAAX2J,SACT2oB,EAAS90B,UAAUmM,OAAOs0C,eAAiB,WAKzC,YAJ0C9+C,IAAtCs6C,IACFA,EAAoCz7C,EAAQ,MAGvCy7C,EAAkCz5C,QAI7C/C,OAAO4M,eAAeyoB,EAAS90B,UAAW,wBAAyB,CAIjEG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAeD,iBAG/Bh2B,OAAO4M,eAAeyoB,EAAS90B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,gBAAkBlzB,KAAKkzB,eAAen1B,UAGtDd,OAAO4M,eAAeyoB,EAAS90B,UAAW,kBAAmB,CAI3DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAeonB,SAE7BvrC,IAAK,SAAamgB,GACZlvB,KAAKkzB,iBACPlzB,KAAKkzB,eAAeonB,QAAUprB,MAKpCoD,EAAS4rB,UAAYzB,EACrBx/C,OAAO4M,eAAeyoB,EAAS90B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAez0B,UAoDT,oBAAXkL,SACT2oB,EAAS5zB,KAAO,SAAUy/C,EAAUlX,GAKlC,YAJa9nC,IAATT,IACFA,EAAOV,EAAQ,MAGVU,EAAK4zB,EAAU6rB,EAAUlX,O,sCCzlCpC9pC,EAAOC,QAAUY,EAAQ,IAAUgvB,c,8BCAnC,YAuDA,SAASoxB,EAAoBnnC,EAAMkV,GACjCkyB,EAAYpnC,EAAMkV,GAClBmyB,EAAYrnC,GAGd,SAASqnC,EAAYrnC,GACfA,EAAK6b,iBAAmB7b,EAAK6b,eAAe+nB,WAC5C5jC,EAAKic,iBAAmBjc,EAAKic,eAAe2nB,WAChD5jC,EAAK7U,KAAK,SAsBZ,SAASi8C,EAAYpnC,EAAMkV,GACzBlV,EAAK7U,KAAK,QAAS+pB,GAcrBhvB,EAAOC,QAAU,CACfwvC,QAnGF,SAAiBzgB,EAAKkH,GACpB,IAAIsW,EAAQ3pC,KAERu+C,EAAoBv+C,KAAKkzB,gBAAkBlzB,KAAKkzB,eAAeC,UAC/DqrB,EAAoBx+C,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAeK,UAEnE,OAAIorB,GAAqBC,GACnBnrB,EACFA,EAAGlH,GACMA,IACJnsB,KAAK8yB,eAEE9yB,KAAK8yB,eAAekZ,eAC9BhsC,KAAK8yB,eAAekZ,cAAe,EACnCzsC,EAAQ0B,SAASo9C,EAAar+C,KAAMmsB,IAHpC5sB,EAAQ0B,SAASo9C,EAAar+C,KAAMmsB,IAOjCnsB,OAKLA,KAAKkzB,iBACPlzB,KAAKkzB,eAAeC,WAAY,GAI9BnzB,KAAK8yB,iBACP9yB,KAAK8yB,eAAeK,WAAY,GAGlCnzB,KAAKozB,SAASjH,GAAO,MAAM,SAAUA,IAC9BkH,GAAMlH,EACJwd,EAAM7W,eAEC6W,EAAM7W,eAAekZ,aAI/BzsC,EAAQ0B,SAASq9C,EAAa3U,IAH9BA,EAAM7W,eAAekZ,cAAe,EACpCzsC,EAAQ0B,SAASm9C,EAAqBzU,EAAOxd,IAH7C5sB,EAAQ0B,SAASm9C,EAAqBzU,EAAOxd,GAOtCkH,GACT9zB,EAAQ0B,SAASq9C,EAAa3U,GAC9BtW,EAAGlH,IAEH5sB,EAAQ0B,SAASq9C,EAAa3U,MAI3B3pC,OAkDPquC,UApCF,WACMruC,KAAKkzB,iBACPlzB,KAAKkzB,eAAeC,WAAY,EAChCnzB,KAAKkzB,eAAeqnB,SAAU,EAC9Bv6C,KAAKkzB,eAAeH,OAAQ,EAC5B/yB,KAAKkzB,eAAeuU,YAAa,GAG/BznC,KAAK8yB,iBACP9yB,KAAK8yB,eAAeK,WAAY,EAChCnzB,KAAK8yB,eAAeC,OAAQ,EAC5B/yB,KAAK8yB,eAAeqY,QAAS,EAC7BnrC,KAAK8yB,eAAemY,aAAc,EAClCjrC,KAAK8yB,eAAeyZ,aAAc,EAClCvsC,KAAK8yB,eAAeyU,UAAW,EAC/BvnC,KAAK8yB,eAAekZ,cAAe,IAsBrCiO,eAdF,SAAwBjT,EAAQ7a,GAM9B,IAAIsyB,EAASzX,EAAO9T,eAChB2pB,EAAS7V,EAAOlU,eAChB2rB,GAAUA,EAAO3D,aAAe+B,GAAUA,EAAO/B,YAAa9T,EAAO4F,QAAQzgB,GAAU6a,EAAO5kC,KAAK,QAAS+pB,O,8CC/FlH,IAAIuyB,EAAwB1gD,EAAQ,IAAmB41B,MAAM8qB,sBAsB7DvhD,EAAOC,QAAU,CACfu8C,iBAjBF,SAA0BzqB,EAAOwD,EAASisB,EAAWjU,GACnD,IAAIG,EALN,SAA2BnY,EAASgY,EAAUiU,GAC5C,OAAgC,MAAzBjsB,EAAQO,cAAwBP,EAAQO,cAAgByX,EAAWhY,EAAQisB,GAAa,KAIrFC,CAAkBlsB,EAASgY,EAAUiU,GAE/C,GAAW,MAAP9T,EAAa,CACf,IAAM1/B,SAAS0/B,IAAQviC,KAAKsF,MAAMi9B,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAI6T,EADChU,EAAWiU,EAAY,gBACI9T,GAGxC,OAAOviC,KAAKsF,MAAMi9B,GAIpB,OAAO3b,EAAMyb,WAAa,GAAK,S,8BCrBjC,cAqCA,SAASjB,EAAcxa,GACrB,IAAIya,EAAQ3pC,KAEZA,KAAK8pB,KAAO,KACZ9pB,KAAK4pC,MAAQ,KAEb5pC,KAAK6pC,OAAS,YAimBhB,SAAwBC,EAAS5a,EAAO/C,GACtC,IAAIyd,EAAQE,EAAQF,MACpBE,EAAQF,MAAQ,KAEhB,KAAOA,GAAO,CACZ,IAAIvW,EAAKuW,EAAM1C,SACfhY,EAAM6a,YACN1W,EAAGlH,GACHyd,EAAQA,EAAM9f,KAIhBoF,EAAM8a,mBAAmBlgB,KAAOggB,EA5mB9BG,CAAeN,EAAOza,IAQ1B,IAAIkD,EA3BJj1B,EAAOC,QAAUm1B,EA8BjBA,EAAS6X,cAAgBA,EAGzB,IAAIC,EAAe,CACjB3f,UAAW1sB,EAAQ,KAMjBwrC,EAASxrC,EAAQ,IAIjBC,EAASD,EAAQ,GAAUC,OAE3BqsC,EAAgBjhC,EAAO/F,YAAc,aAUzC,IAkIIinC,EAlIAC,EAAcxsC,EAAQ,IAGtB27C,EADW37C,EAAQ,IACS27C,iBAE5BC,EAAiB57C,EAAQ,IAAa41B,MACtCimB,EAAuBD,EAAeC,qBACtCE,EAA6BH,EAAeG,2BAC5C8E,EAAwBjF,EAAeiF,sBACvCC,EAAyBlF,EAAekF,uBACxCC,EAAuBnF,EAAemF,qBACtCC,EAAyBpF,EAAeoF,uBACxCC,EAA6BrF,EAAeqF,2BAC5CC,EAAuBtF,EAAesF,qBAEtCjF,EAAiBzP,EAAYyP,eAIjC,SAASxP,KAET,SAASL,EAAc1X,EAASsU,EAAQ0D,GACtCtY,EAASA,GAAUp0B,EAAQ,IAC3B00B,EAAUA,GAAW,GAMG,mBAAbgY,IAAwBA,EAAW1D,aAAkB5U,GAGhEpyB,KAAK2qC,aAAejY,EAAQiY,WACxBD,IAAU1qC,KAAK2qC,WAAa3qC,KAAK2qC,cAAgBjY,EAAQkY,oBAI7D5qC,KAAKizB,cAAgB0mB,EAAiB35C,KAAM0yB,EAAS,wBAAyBgY,GAE9E1qC,KAAKirC,aAAc,EAEnBjrC,KAAKkrC,WAAY,EAEjBlrC,KAAKmrC,QAAS,EAEdnrC,KAAK+yB,OAAQ,EAEb/yB,KAAKunC,UAAW,EAEhBvnC,KAAKmzB,WAAY,EAIjB,IAAIiY,GAAqC,IAA1B1Y,EAAQ2Y,cACvBrrC,KAAKqrC,eAAiBD,EAItBprC,KAAKsrC,gBAAkB5Y,EAAQ4Y,iBAAmB,OAIlDtrC,KAAKvB,OAAS,EAEduB,KAAKurC,SAAU,EAEfvrC,KAAKwrC,OAAS,EAKdxrC,KAAKyrC,MAAO,EAIZzrC,KAAK0rC,kBAAmB,EAExB1rC,KAAK2rC,QAAU,SAAUxb,IA6R3B,SAAiB6W,EAAQ7W,GACvB,IAAIjB,EAAQ8X,EAAOlU,eACf2Y,EAAOvc,EAAMuc,KACbpY,EAAKnE,EAAM0c,QACf,GAAkB,oBAAPvY,EAAmB,MAAM,IAAIwrB,EAExC,GAbF,SAA4B3vB,GAC1BA,EAAMqc,SAAU,EAChBrc,EAAM0c,QAAU,KAChB1c,EAAMzwB,QAAUywB,EAAM2c,SACtB3c,EAAM2c,SAAW,EAQjBC,CAAmB5c,GACfiB,GArCN,SAAsB6W,EAAQ9X,EAAOuc,EAAMtb,EAAIkD,KAC3CnE,EAAM6a,UAEJ0B,GAGFlsC,EAAQ0B,SAASoyB,EAAIlD,GAGrB5wB,EAAQ0B,SAAS8qC,EAAa/E,EAAQ9X,GACtC8X,EAAOlU,eAAekZ,cAAe,EACrCiO,EAAejT,EAAQ7W,KAIvBkD,EAAGlD,GACH6W,EAAOlU,eAAekZ,cAAe,EACrCiO,EAAejT,EAAQ7W,GAGvB4b,EAAY/E,EAAQ9X,IAiBd+c,CAAajF,EAAQ9X,EAAOuc,EAAMtb,EAAIkD,OAAS,CAErD,IAAIkU,EAAW2E,EAAWhd,IAAU8X,EAAO7T,UAEtCoU,GAAarY,EAAMsc,QAAWtc,EAAMwc,mBAAoBxc,EAAMid,iBACjEC,EAAYpF,EAAQ9X,GAGlBuc,EACFlsC,EAAQ0B,SAASorC,EAAYrF,EAAQ9X,EAAOqY,EAAUlU,GAEtDgZ,EAAWrF,EAAQ9X,EAAOqY,EAAUlU,IA7StCsY,CAAQ3E,EAAQ7W,IAIlBnwB,KAAK4rC,QAAU,KAEf5rC,KAAK6rC,SAAW,EAChB7rC,KAAKmsC,gBAAkB,KACvBnsC,KAAKssC,oBAAsB,KAG3BtsC,KAAK+pC,UAAY,EAGjB/pC,KAAKusC,aAAc,EAEnBvsC,KAAKgsC,cAAe,EAEpBhsC,KAAK66C,WAAkC,IAAtBnoB,EAAQmoB,UAEzB76C,KAAK86C,cAAgBpoB,EAAQooB,YAE7B96C,KAAKwsC,qBAAuB,EAG5BxsC,KAAKgqC,mBAAqB,IAAIN,EAAc1pC,MA4C9C,SAASuyB,EAASG,GAUhB,IAAIgY,EAAW1qC,gBATfoyB,EAASA,GAAUp0B,EAAQ,KAU3B,IAAK0sC,IAAaH,EAAgBxqC,KAAKwyB,EAAUvyB,MAAO,OAAO,IAAIuyB,EAASG,GAC5E1yB,KAAK8yB,eAAiB,IAAIsX,EAAc1X,EAAS1yB,KAAM0qC,GAEvD1qC,KAAKpC,UAAW,EAEZ80B,IAC2B,oBAAlBA,EAAQ1uB,QAAsBhE,KAAKysC,OAAS/Z,EAAQ1uB,OACjC,oBAAnB0uB,EAAQga,SAAuB1sC,KAAK2sC,QAAUja,EAAQga,QAClC,oBAApBha,EAAQka,UAAwB5sC,KAAKozB,SAAWV,EAAQka,SACtC,oBAAlBla,EAAQvH,QAAsBnrB,KAAKorB,OAASsH,EAAQvH,QAGjEqe,EAAOzpC,KAAKC,MAwJd,SAAS6sC,EAAQ7F,EAAQ9X,EAAOwd,EAAQhsC,EAAKosC,EAAO7tC,EAAUo0B,GAC5DnE,EAAM2c,SAAWnrC,EACjBwuB,EAAM0c,QAAUvY,EAChBnE,EAAMqc,SAAU,EAChBrc,EAAMuc,MAAO,EACTvc,EAAMiE,UAAWjE,EAAMyc,QAAQ,IAAIoT,EAAqB,UAAmBrS,EAAQ1F,EAAO2F,QAAQG,EAAO5d,EAAMyc,SAAc3E,EAAOyF,OAAOK,EAAO7tC,EAAUiwB,EAAMyc,SACtKzc,EAAMuc,MAAO,EAwDf,SAASY,EAAWrF,EAAQ9X,EAAOqY,EAAUlU,GACtCkU,GASP,SAAsBP,EAAQ9X,GACP,IAAjBA,EAAMzwB,QAAgBywB,EAAMgc,YAC9Bhc,EAAMgc,WAAY,EAClBlE,EAAO5kC,KAAK,UAZC2qC,CAAa/F,EAAQ9X,GACpCA,EAAM6a,YACN1W,IACA0Y,EAAY/E,EAAQ9X,GActB,SAASkd,EAAYpF,EAAQ9X,GAC3BA,EAAMwc,kBAAmB,EACzB,IAAI9B,EAAQ1a,EAAMid,gBAElB,GAAInF,EAAO2F,SAAW/C,GAASA,EAAM9f,KAAM,CAEzC,IAAI/Z,EAAImf,EAAMsd,qBACVzuC,EAAS,IAAIoD,MAAM4O,GACnBi9B,EAAS9d,EAAM8a,mBACnBgD,EAAOpD,MAAQA,EAIf,IAHA,IAAIjb,EAAQ,EACRse,GAAa,EAEVrD,GACL7rC,EAAO4wB,GAASib,EACXA,EAAMsD,QAAOD,GAAa,GAC/BrD,EAAQA,EAAM9f,KACd6E,GAAS,EAGX5wB,EAAOkvC,WAAaA,EACpBJ,EAAQ7F,EAAQ9X,GAAO,EAAMA,EAAMzwB,OAAQV,EAAQ,GAAIivC,EAAOnD,QAG9D3a,EAAM6a,YACN7a,EAAMod,oBAAsB,KAExBU,EAAOljB,MACToF,EAAM8a,mBAAqBgD,EAAOljB,KAClCkjB,EAAOljB,KAAO,MAEdoF,EAAM8a,mBAAqB,IAAIN,EAAcxa,GAG/CA,EAAMsd,qBAAuB,MACxB,CAEL,KAAO5C,GAAO,CACZ,IAAIkD,EAAQlD,EAAMkD,MACd7tC,EAAW2qC,EAAM3qC,SACjBo0B,EAAKuW,EAAM1C,SASf,GAPA2F,EAAQ7F,EAAQ9X,GAAO,EADbA,EAAMyb,WAAa,EAAImC,EAAMruC,OACJquC,EAAO7tC,EAAUo0B,GACpDuW,EAAQA,EAAM9f,KACdoF,EAAMsd,uBAKFtd,EAAMqc,QACR,MAIU,OAAV3B,IAAgB1a,EAAMod,oBAAsB,MAGlDpd,EAAMid,gBAAkBvC,EACxB1a,EAAMwc,kBAAmB,EA2C3B,SAASQ,EAAWhd,GAClB,OAAOA,EAAMic,QAA2B,IAAjBjc,EAAMzwB,QAA0C,OAA1BywB,EAAMid,kBAA6Bjd,EAAMqY,WAAarY,EAAMqc,QAG3G,SAAS4B,EAAUnG,EAAQ9X,GACzB8X,EAAO5b,QAAO,SAAUe,GACtB+C,EAAM6a,YAEF5d,GACF8tB,EAAejT,EAAQ7a,GAGzB+C,EAAMqd,aAAc,EACpBvF,EAAO5kC,KAAK,aACZ2pC,EAAY/E,EAAQ9X,MAiBxB,SAAS6c,EAAY/E,EAAQ9X,GAC3B,IAAIke,EAAOlB,EAAWhd,GAEtB,GAAIke,IAhBN,SAAmBpG,EAAQ9X,GACpBA,EAAMqd,aAAgBrd,EAAM+b,cACF,oBAAlBjE,EAAO5b,QAA0B8D,EAAMiE,WAKhDjE,EAAMqd,aAAc,EACpBvF,EAAO5kC,KAAK,eALZ8sB,EAAM6a,YACN7a,EAAM+b,aAAc,EACpB1rC,EAAQ0B,SAASksC,EAAWnG,EAAQ9X,KAYtCme,CAAUrG,EAAQ9X,GAEM,IAApBA,EAAM6a,YACR7a,EAAMqY,UAAW,EACjBP,EAAO5kC,KAAK,UAER8sB,EAAM4rB,cAAa,CAGrB,IAAI2D,EAASzX,EAAO9T,iBAEfurB,GAAUA,EAAO3D,aAAe2D,EAAOhX,aAC1CT,EAAO4F,UAMf,OAAOQ,EA3hBTpvC,EAAQ,EAARA,CAAoBu0B,EAAUiX,GAyF9BY,EAAc5sC,UAAUw3B,UAAY,WAIlC,IAHA,IAAI3K,EAAUrqB,KAAKmsC,gBACf5gC,EAAM,GAEH8e,GACL9e,EAAIjK,KAAK+oB,GACTA,EAAUA,EAAQP,KAGpB,OAAOve,GAGT,WACE,IACEtO,OAAO4M,eAAeugC,EAAc5sC,UAAW,SAAU,CACvDqtB,IAAKwf,EAAa3f,WAAU,WAC1B,OAAO1qB,KAAKg1B,cACX,6EAAmF,aAExF,MAAOlT,KAPX,GAcsB,oBAAXnY,QAAyBA,OAAO2jC,aAAiE,oBAA3C59B,SAASlS,UAAUmM,OAAO2jC,cACzF/C,EAAkB76B,SAASlS,UAAUmM,OAAO2jC,aAC5CrwC,OAAO4M,eAAe0oB,EAAU5oB,OAAO2jC,YAAa,CAClD5vC,MAAO,SAAe6vC,GACpB,QAAIhD,EAAgBxqC,KAAKC,KAAMutC,IAC3BvtC,OAASuyB,IACNgb,GAAUA,EAAOza,0BAA0BsX,OAItDG,EAAkB,SAAyBgD,GACzC,OAAOA,aAAkBvtC,MA+B7BuyB,EAAS/0B,UAAUgwC,KAAO,WACxByM,EAAej6C,KAAM,IAAI8+C,IA+B3BvsB,EAAS/0B,UAAUwG,MAAQ,SAAU8oC,EAAO7tC,EAAUo0B,GACpD,IAnNqBlvB,EAmNjB+qB,EAAQlvB,KAAK8yB,eACbxnB,GAAM,EAEN4hC,GAAShe,EAAMyb,aAtNExmC,EAsN0B2oC,EArNxC7uC,EAAOmG,SAASD,IAAQA,aAAemmC,GAsO9C,OAfI4C,IAAUjvC,EAAOmG,SAAS0oC,KAC5BA,EA7NJ,SAA6BA,GAC3B,OAAO7uC,EAAOS,KAAKouC,GA4NTW,CAAoBX,IAGN,oBAAb7tC,IACTo0B,EAAKp0B,EACLA,EAAW,MAGTiuC,EAAOjuC,EAAW,SAAmBA,IAAUA,EAAWiwB,EAAMoc,iBAClD,oBAAPjY,IAAmBA,EAAKoX,GAC/Bvb,EAAMic,OA7CZ,SAAuBnE,EAAQ3T,GAC7B,IAAIlD,EAAK,IAAI8uB,EAEbhF,EAAejT,EAAQ7W,GACvB5wB,EAAQ0B,SAASoyB,EAAIlD,GAyCHud,CAAc1tC,KAAMqzB,IAAa6Z,GAnCrD,SAAoBlG,EAAQ9X,EAAO4d,EAAOzZ,GACxC,IAAIlD,EAQJ,OANc,OAAV2c,EACF3c,EAAK,IAAI6uB,EACiB,kBAAVlS,GAAuB5d,EAAMyb,aAC7Cxa,EAAK,IAAI0pB,EAAqB,QAAS,CAAC,SAAU,UAAW/M,KAG3D3c,IACF8pB,EAAejT,EAAQ7W,GACvB5wB,EAAQ0B,SAASoyB,EAAIlD,IACd,GAuBmDyd,CAAW5tC,KAAMkvB,EAAO4d,EAAOzZ,MACzFnE,EAAM6a,YACNz+B,EAwDJ,SAAuB07B,EAAQ9X,EAAOge,EAAOJ,EAAO7tC,EAAUo0B,GAC5D,IAAK6Z,EAAO,CACV,IAAIW,EAtBR,SAAqB3e,EAAO4d,EAAO7tC,GAC5BiwB,EAAMyb,aAAsC,IAAxBzb,EAAMmc,eAA4C,kBAAVyB,IAC/DA,EAAQ7uC,EAAOS,KAAKouC,EAAO7tC,IAG7B,OAAO6tC,EAiBUgB,CAAY5e,EAAO4d,EAAO7tC,GAErC6tC,IAAUe,IACZX,GAAQ,EACRjuC,EAAW,SACX6tC,EAAQe,GAIZ,IAAIntC,EAAMwuB,EAAMyb,WAAa,EAAImC,EAAMruC,OACvCywB,EAAMzwB,QAAUiC,EAChB,IAAI4K,EAAM4jB,EAAMzwB,OAASywB,EAAM+D,cAE1B3nB,IAAK4jB,EAAMgc,WAAY,GAE5B,GAAIhc,EAAMqc,SAAWrc,EAAMsc,OAAQ,CACjC,IAAIpH,EAAOlV,EAAMod,oBACjBpd,EAAMod,oBAAsB,CAC1BQ,MAAOA,EACP7tC,SAAUA,EACViuC,MAAOA,EACPhG,SAAU7T,EACVvJ,KAAM,MAGJsa,EACFA,EAAKta,KAAOoF,EAAMod,oBAElBpd,EAAMid,gBAAkBjd,EAAMod,oBAGhCpd,EAAMsd,sBAAwB,OAE9BK,EAAQ7F,EAAQ9X,GAAO,EAAOxuB,EAAKosC,EAAO7tC,EAAUo0B,GAGtD,OAAO/nB,EA9FCyiC,CAAc/tC,KAAMkvB,EAAOge,EAAOJ,EAAO7tC,EAAUo0B,IAEpD/nB,GAGTinB,EAAS/0B,UAAUwwC,KAAO,WACxBhuC,KAAK8yB,eAAe0Y,UAGtBjZ,EAAS/0B,UAAUywC,OAAS,WAC1B,IAAI/e,EAAQlvB,KAAK8yB,eAEb5D,EAAMsc,SACRtc,EAAMsc,SACDtc,EAAMqc,SAAYrc,EAAMsc,QAAWtc,EAAMwc,mBAAoBxc,EAAMid,iBAAiBC,EAAYpsC,KAAMkvB,KAI/GqD,EAAS/0B,UAAU0wC,mBAAqB,SAA4BjvC,GAGlE,GADwB,kBAAbA,IAAuBA,EAAWA,EAASgG,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOiB,SAASjH,EAAW,IAAIgG,gBAAkB,GAAI,MAAM,IAAIi6C,EAAqBjgD,GAExL,OADAe,KAAK8yB,eAAewY,gBAAkBrsC,EAC/Be,MAGT/C,OAAO4M,eAAe0oB,EAAS/0B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAekC,eAYtD/3B,OAAO4M,eAAe0oB,EAAS/0B,UAAW,wBAAyB,CAIjEG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAeG,iBA4L/BV,EAAS/0B,UAAUivC,OAAS,SAAUK,EAAO7tC,EAAUo0B,GACrDA,EAAG,IAAI0mB,EAA2B,cAGpCxnB,EAAS/0B,UAAUmvC,QAAU,KAE7Bpa,EAAS/0B,UAAU4H,IAAM,SAAU0nC,EAAO7tC,EAAUo0B,GAClD,IAAInE,EAAQlvB,KAAK8yB,eAoBjB,MAlBqB,oBAAVga,GACTzZ,EAAKyZ,EACLA,EAAQ,KACR7tC,EAAW,MACkB,oBAAbA,IAChBo0B,EAAKp0B,EACLA,EAAW,MAGC,OAAV6tC,QAA4B3tC,IAAV2tC,GAAqB9sC,KAAKgE,MAAM8oC,EAAO7tC,GAEzDiwB,EAAMsc,SACRtc,EAAMsc,OAAS,EACfxrC,KAAKiuC,UAIF/e,EAAMic,QAsEb,SAAqBnE,EAAQ9X,EAAOmE,GAClCnE,EAAMic,QAAS,EACfY,EAAY/E,EAAQ9X,GAEhBmE,IACEnE,EAAMqY,SAAUhoC,EAAQ0B,SAASoyB,GAAS2T,EAAOhlC,KAAK,SAAUqxB,IAGtEnE,EAAM6D,OAAQ,EACdiU,EAAOppC,UAAW,EA/ECuwC,CAAYnuC,KAAMkvB,EAAOmE,GACrCrzB,MAGT/C,OAAO4M,eAAe0oB,EAAS/0B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAer0B,UAuF/BxB,OAAO4M,eAAe0oB,EAAS/0B,UAAW,YAAa,CAIrDG,YAAY,EACZktB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAK8yB,gBAIF9yB,KAAK8yB,eAAeK,WAE7BpkB,IAAK,SAAarR,GAGXsC,KAAK8yB,iBAMV9yB,KAAK8yB,eAAeK,UAAYz1B,MAGpC60B,EAAS/0B,UAAUovC,QAAUpC,EAAYoC,QACzCra,EAAS/0B,UAAU4wC,WAAa5D,EAAY6D,UAE5C9b,EAAS/0B,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC3CA,EAAGlH,M,mDCxnBLhvB,EAAOC,QAAU0tB,EAEjB,IAAI8uB,EAAiB57C,EAAQ,IAAa41B,MACtCmmB,EAA6BH,EAAeG,2BAC5C8E,EAAwBjF,EAAeiF,sBACvCM,EAAqCvF,EAAeuF,mCACpDC,EAA8BxF,EAAewF,4BAE7ChtB,EAASp0B,EAAQ,IAIrB,SAASqhD,EAAelvB,EAAI1rB,GAC1B,IAAI66C,EAAKt/C,KAAKu/C,gBACdD,EAAGE,cAAe,EAClB,IAAInsB,EAAKisB,EAAG1T,QAEZ,GAAW,OAAPvY,EACF,OAAOrzB,KAAKoC,KAAK,QAAS,IAAIy8C,GAGhCS,EAAGG,WAAa,KAChBH,EAAG1T,QAAU,KACD,MAARnnC,GACFzE,KAAKsB,KAAKmD,GACZ4uB,EAAGlD,GACH,IAAIuvB,EAAK1/C,KAAKkzB,eACdwsB,EAAGnF,SAAU,GAETmF,EAAGlF,cAAgBkF,EAAGjhD,OAASihD,EAAGzsB,gBACpCjzB,KAAKk7C,MAAMwE,EAAGzsB,eAIlB,SAASnI,EAAU4H,GACjB,KAAM1yB,gBAAgB8qB,GAAY,OAAO,IAAIA,EAAU4H,GACvDN,EAAOryB,KAAKC,KAAM0yB,GAClB1yB,KAAKu/C,gBAAkB,CACrBF,eAAgBA,EAAejwB,KAAKpvB,MACpC2/C,eAAe,EACfH,cAAc,EACd5T,QAAS,KACT6T,WAAY,KACZG,cAAe,MAGjB5/C,KAAKkzB,eAAesnB,cAAe,EAInCx6C,KAAKkzB,eAAeuY,MAAO,EAEvB/Y,IAC+B,oBAAtBA,EAAQlS,YAA0BxgB,KAAKksB,WAAawG,EAAQlS,WAC1C,oBAAlBkS,EAAQmtB,QAAsB7/C,KAAKosB,OAASsG,EAAQmtB,QAIjE7/C,KAAK8B,GAAG,YAAaurC,GAGvB,SAASA,IACP,IAAI1D,EAAQ3pC,KAEe,oBAAhBA,KAAKosB,QAA0BpsB,KAAKkzB,eAAeC,UAK5D9G,EAAKrsB,KAAM,KAAM,MAJjBA,KAAKosB,QAAO,SAAU+D,EAAI1rB,GACxB4nB,EAAKsd,EAAOxZ,EAAI1rB,MA6DtB,SAAS4nB,EAAK2a,EAAQ7W,EAAI1rB,GACxB,GAAI0rB,EAAI,OAAO6W,EAAO5kC,KAAK,QAAS+tB,GAMpC,GALY,MAAR1rB,GACFuiC,EAAO1lC,KAAKmD,GAIVuiC,EAAOlU,eAAer0B,OAAQ,MAAM,IAAI2gD,EAC5C,GAAIpY,EAAOuY,gBAAgBC,aAAc,MAAM,IAAIL,EACnD,OAAOnY,EAAO1lC,KAAK,MA9HrBtD,EAAQ,EAARA,CAAoB8sB,EAAWsH,GA+D/BtH,EAAUttB,UAAU8D,KAAO,SAAUwrC,EAAO7tC,GAE1C,OADAe,KAAKu/C,gBAAgBI,eAAgB,EAC9BvtB,EAAO50B,UAAU8D,KAAKvB,KAAKC,KAAM8sC,EAAO7tC,IAajD6rB,EAAUttB,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUo0B,GAC1DA,EAAG,IAAI0mB,EAA2B,kBAGpCjvB,EAAUttB,UAAUivC,OAAS,SAAUK,EAAO7tC,EAAUo0B,GACtD,IAAIisB,EAAKt/C,KAAKu/C,gBAKd,GAJAD,EAAG1T,QAAUvY,EACbisB,EAAGG,WAAa3S,EAChBwS,EAAGM,cAAgB3gD,GAEdqgD,EAAGE,aAAc,CACpB,IAAIE,EAAK1/C,KAAKkzB,gBACVosB,EAAGK,eAAiBD,EAAGlF,cAAgBkF,EAAGjhD,OAASihD,EAAGzsB,gBAAejzB,KAAKk7C,MAAMwE,EAAGzsB,iBAO3FnI,EAAUttB,UAAU09C,MAAQ,SAAUr1C,GACpC,IAAIy5C,EAAKt/C,KAAKu/C,gBAEQ,OAAlBD,EAAGG,YAAwBH,EAAGE,aAOhCF,EAAGK,eAAgB,GANnBL,EAAGE,cAAe,EAElBx/C,KAAKksB,WAAWozB,EAAGG,WAAYH,EAAGM,cAAeN,EAAGD,kBAQxDv0B,EAAUttB,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC5CjB,EAAO50B,UAAU41B,SAASrzB,KAAKC,KAAMmsB,GAAK,SAAU2zB,GAClDzsB,EAAGysB,Q,gBClLP,IAAIvtC,EAAWvU,EAAQ,GACnBi3B,EAAOj3B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAEhC8hD,EAAI,CACN,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,YAGlCC,EAAI,IAAI7+C,MAAM,IAElB,SAAS8+C,IACPjgD,KAAKitB,OAELjtB,KAAKkgD,GAAKF,EAEV/qB,EAAKl1B,KAAKC,KAAM,GAAI,IAkBtB,SAASiU,EAAIhK,EAAGC,EAAG+G,GACjB,OAAOA,EAAKhH,GAAKC,EAAI+G,GAGvB,SAASkvC,EAAKl2C,EAAGC,EAAG+G,GAClB,OAAQhH,EAAIC,EAAM+G,GAAKhH,EAAIC,GAG7B,SAASk2C,EAAQn2C,GACf,OAAQA,IAAM,EAAIA,GAAK,KAAOA,IAAM,GAAKA,GAAK,KAAOA,IAAM,GAAKA,GAAK,IAGvE,SAASo2C,EAAQp2C,GACf,OAAQA,IAAM,EAAIA,GAAK,KAAOA,IAAM,GAAKA,GAAK,KAAOA,IAAM,GAAKA,GAAK,GAGvE,SAASq2C,EAAQr2C,GACf,OAAQA,IAAM,EAAIA,GAAK,KAAOA,IAAM,GAAKA,GAAK,IAAOA,IAAM,EAhC7DsI,EAAS0tC,EAAQhrB,GAEjBgrB,EAAOziD,UAAUyvB,KAAO,WAUtB,OATAjtB,KAAKimC,GAAK,WACVjmC,KAAKkmC,GAAK,WACVlmC,KAAKmmC,GAAK,WACVnmC,KAAKq5B,GAAK,WACVr5B,KAAKm5B,GAAK,WACVn5B,KAAKugD,GAAK,WACVvgD,KAAKwgD,GAAK,UACVxgD,KAAKygD,GAAK,WAEHzgD,MA2BTigD,EAAOziD,UAAUouB,QAAU,SAAUgO,GAYnC,IAXA,IALe3vB,EAKX+1C,EAAIhgD,KAAKkgD,GAETl2C,EAAc,EAAVhK,KAAKimC,GACTrgC,EAAc,EAAV5F,KAAKkmC,GACTj+B,EAAc,EAAVjI,KAAKmmC,GACT5yB,EAAc,EAAVvT,KAAKq5B,GACTv5B,EAAc,EAAVE,KAAKm5B,GACTqL,EAAc,EAAVxkC,KAAKugD,GACT9wC,EAAc,EAAVzP,KAAKwgD,GACTx9B,EAAc,EAAVhjB,KAAKygD,GAEJp/C,EAAI,EAAGA,EAAI,KAAMA,EAAG2+C,EAAE3+C,GAAKu4B,EAAExsB,YAAgB,EAAJ/L,GAClD,KAAOA,EAAI,KAAMA,EAAG2+C,EAAE3+C,GAAqE,KAjB5E4I,EAiBoB+1C,EAAE3+C,EAAI,MAhB3B,GAAK4I,GAAK,KAAOA,IAAM,GAAKA,GAAK,IAAOA,IAAM,IAgBb+1C,EAAE3+C,EAAI,GAAKi/C,EAAON,EAAE3+C,EAAI,KAAO2+C,EAAE3+C,EAAI,IAEpF,IAAK,IAAIwF,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,IAAI65C,EAAM19B,EAAIq9B,EAAOvgD,GAAKmU,EAAGnU,EAAG0kC,EAAG/0B,GAAKswC,EAAEl5C,GAAKm5C,EAAEn5C,GAAM,EACnD85C,EAAMP,EAAOp2C,GAAKm2C,EAAIn2C,EAAGpE,EAAGqC,GAAM,EAEtC+a,EAAIvT,EACJA,EAAI+0B,EACJA,EAAI1kC,EACJA,EAAKyT,EAAImtC,EAAM,EACfntC,EAAItL,EACJA,EAAIrC,EACJA,EAAIoE,EACJA,EAAK02C,EAAKC,EAAM,EAGlB3gD,KAAKimC,GAAMj8B,EAAIhK,KAAKimC,GAAM,EAC1BjmC,KAAKkmC,GAAMtgC,EAAI5F,KAAKkmC,GAAM,EAC1BlmC,KAAKmmC,GAAMl+B,EAAIjI,KAAKmmC,GAAM,EAC1BnmC,KAAKq5B,GAAM9lB,EAAIvT,KAAKq5B,GAAM,EAC1Br5B,KAAKm5B,GAAMr5B,EAAIE,KAAKm5B,GAAM,EAC1Bn5B,KAAKugD,GAAM/b,EAAIxkC,KAAKugD,GAAM,EAC1BvgD,KAAKwgD,GAAM/wC,EAAIzP,KAAKwgD,GAAM,EAC1BxgD,KAAKygD,GAAMz9B,EAAIhjB,KAAKygD,GAAM,GAG5BR,EAAOziD,UAAUy4B,MAAQ,WACvB,IAAI2qB,EAAI3iD,EAAOW,YAAY,IAW3B,OATAgiD,EAAEnyC,aAAazO,KAAKimC,GAAI,GACxB2a,EAAEnyC,aAAazO,KAAKkmC,GAAI,GACxB0a,EAAEnyC,aAAazO,KAAKmmC,GAAI,GACxBya,EAAEnyC,aAAazO,KAAKq5B,GAAI,IACxBunB,EAAEnyC,aAAazO,KAAKm5B,GAAI,IACxBynB,EAAEnyC,aAAazO,KAAKugD,GAAI,IACxBK,EAAEnyC,aAAazO,KAAKwgD,GAAI,IACxBI,EAAEnyC,aAAazO,KAAKygD,GAAI,IAEjBG,GAGTzjD,EAAOC,QAAU6iD,G,gBCtIjB,IAAI1tC,EAAWvU,EAAQ,GACnBi3B,EAAOj3B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAEhC8hD,EAAI,CACN,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,YAGlCC,EAAI,IAAI7+C,MAAM,KAElB,SAAS0/C,IACP7gD,KAAKitB,OACLjtB,KAAKkgD,GAAKF,EAEV/qB,EAAKl1B,KAAKC,KAAM,IAAK,KA2BvB,SAAS8gD,EAAI72C,EAAGC,EAAG+G,GACjB,OAAOA,EAAKhH,GAAKC,EAAI+G,GAGvB,SAASkvC,EAAKl2C,EAAGC,EAAG+G,GAClB,OAAQhH,EAAIC,EAAM+G,GAAKhH,EAAIC,GAG7B,SAASk2C,EAAQn2C,EAAG82C,GAClB,OAAQ92C,IAAM,GAAK82C,GAAM,IAAMA,IAAO,EAAI92C,GAAK,KAAO82C,IAAO,EAAI92C,GAAK,IAGxE,SAASo2C,EAAQp2C,EAAG82C,GAClB,OAAQ92C,IAAM,GAAK82C,GAAM,KAAO92C,IAAM,GAAK82C,GAAM,KAAOA,IAAO,EAAI92C,GAAK,IAG1E,SAAS+2C,EAAQ/2C,EAAG82C,GAClB,OAAQ92C,IAAM,EAAI82C,GAAM,KAAO92C,IAAM,EAAI82C,GAAM,IAAO92C,IAAM,EAG9D,SAASg3C,EAASh3C,EAAG82C,GACnB,OAAQ92C,IAAM,EAAI82C,GAAM,KAAO92C,IAAM,EAAI82C,GAAM,KAAO92C,IAAM,EAAI82C,GAAM,IAGxE,SAASG,EAAQj3C,EAAG82C,GAClB,OAAQ92C,IAAM,GAAK82C,GAAM,KAAOA,IAAO,GAAK92C,GAAK,GAAMA,IAAM,EAG/D,SAASk3C,EAASl3C,EAAG82C,GACnB,OAAQ92C,IAAM,GAAK82C,GAAM,KAAOA,IAAO,GAAK92C,GAAK,IAAMA,IAAM,EAAI82C,GAAM,IAGzE,SAASK,EAAUp3C,EAAGpE,GACpB,OAAQoE,IAAM,EAAMpE,IAAM,EAAK,EAAI,EAzDrC2M,EAASsuC,EAAQ5rB,GAEjB4rB,EAAOrjD,UAAUyvB,KAAO,WAmBtB,OAlBAjtB,KAAKqhD,IAAM,WACXrhD,KAAKshD,IAAM,WACXthD,KAAKuhD,IAAM,WACXvhD,KAAKwhD,IAAM,WACXxhD,KAAKyhD,IAAM,WACXzhD,KAAK0hD,IAAM,WACX1hD,KAAK2hD,IAAM,UACX3hD,KAAK4hD,IAAM,WAEX5hD,KAAK6hD,IAAM,WACX7hD,KAAK8hD,IAAM,WACX9hD,KAAK+hD,IAAM,WACX/hD,KAAKgiD,IAAM,WACXhiD,KAAKiiD,IAAM,WACXjiD,KAAKkiD,IAAM,UACXliD,KAAKmiD,IAAM,WACXniD,KAAKoiD,IAAM,UAEJpiD,MAuCT6gD,EAAOrjD,UAAUouB,QAAU,SAAUgO,GAqBnC,IApBA,IAAIomB,EAAIhgD,KAAKkgD,GAETxsC,EAAgB,EAAX1T,KAAKqhD,IACVztC,EAAgB,EAAX5T,KAAKshD,IACVrtC,EAAgB,EAAXjU,KAAKuhD,IACVptC,EAAgB,EAAXnU,KAAKwhD,IACVhtC,EAAgB,EAAXxU,KAAKyhD,IACVY,EAAgB,EAAXriD,KAAK0hD,IACVY,EAAgB,EAAXtiD,KAAK2hD,IACVY,EAAgB,EAAXviD,KAAK4hD,IAEVjuC,EAAgB,EAAX3T,KAAK6hD,IACV/tC,EAAgB,EAAX9T,KAAK8hD,IACV5tC,EAAgB,EAAXlU,KAAK+hD,IACV3tC,EAAgB,EAAXpU,KAAKgiD,IACVvtC,EAAgB,EAAXzU,KAAKiiD,IACVO,EAAgB,EAAXxiD,KAAKkiD,IACVO,EAAgB,EAAXziD,KAAKmiD,IACV9Z,EAAgB,EAAXroC,KAAKoiD,IAEL/gD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3B2+C,EAAE3+C,GAAKu4B,EAAExsB,YAAgB,EAAJ/L,GACrB2+C,EAAE3+C,EAAI,GAAKu4B,EAAExsB,YAAgB,EAAJ/L,EAAQ,GAEnC,KAAOA,EAAI,IAAKA,GAAK,EAAG,CACtB,IAAIqhD,EAAK1C,EAAE3+C,EAAI,IACX0/C,EAAKf,EAAE3+C,EAAI,GAAS,GACpBi/C,EAASU,EAAO0B,EAAI3B,GACpB4B,EAAU1B,EAAQF,EAAI2B,GAItBE,EAAS1B,EAFbwB,EAAK1C,EAAE3+C,EAAI,GACX0/C,EAAKf,EAAE3+C,EAAI,EAAQ,IAEfwhD,EAAU1B,EAAQJ,EAAI2B,GAGtBI,EAAO9C,EAAE3+C,EAAI,IACb0hD,EAAO/C,EAAE3+C,EAAI,GAAQ,GAErB2hD,EAAQhD,EAAE3+C,EAAI,IACd4hD,EAAQjD,EAAE3+C,EAAI,GAAS,GAEvB6hD,EAAOP,EAAUI,EAAQ,EACzBI,EAAO7C,EAASwC,EAAO1B,EAAS8B,EAAKP,GAAY,EAIrDQ,GAFAA,EAAOA,EAAMP,EAASxB,EADtB8B,EAAOA,EAAML,EAAW,EACYA,GAAY,GAEnCG,EAAQ5B,EADrB8B,EAAOA,EAAMD,EAAS,EACaA,GAAU,EAE7CjD,EAAE3+C,GAAK8hD,EACPnD,EAAE3+C,EAAI,GAAK6hD,EAGb,IAAK,IAAIr8C,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAAG,CAC/Bs8C,EAAMnD,EAAEn5C,GACRq8C,EAAMlD,EAAEn5C,EAAI,GAEZ,IAAIu8C,EAAOjD,EAAIzsC,EAAIE,EAAIK,GACnBovC,EAAOlD,EAAIxsC,EAAIG,EAAII,GAEnBovC,EAAUlD,EAAO1sC,EAAIC,GACrB4vC,EAAUnD,EAAOzsC,EAAID,GACrB8vC,EAAUnD,EAAO7rC,EAAIC,GACrBgvC,EAAUpD,EAAO5rC,EAAID,GAGrBkvC,EAAM3D,EAAEl5C,GACR88C,EAAM5D,EAAEl5C,EAAI,GAEZ+8C,EAAM9C,EAAGtsC,EAAI6tC,EAAIC,GACjBuB,EAAM/C,EAAGrsC,EAAI+tC,EAAIC,GAEjBqB,EAAOzb,EAAKob,EAAW,EACvBM,EAAOxB,EAAKiB,EAAUpC,EAAS0C,EAAKzb,GAAO,EAM/C0b,GAFAA,GAFAA,EAAOA,EAAMH,EAAMxC,EADnB0C,EAAOA,EAAMD,EAAO,EACaA,GAAQ,GAE5BH,EAAMtC,EADnB0C,EAAOA,EAAMH,EAAO,EACaA,GAAQ,GAE5BR,EAAM/B,EADnB0C,EAAOA,EAAMZ,EAAO,EACaA,GAAQ,EAGzC,IAAIc,GAAOT,EAAUF,EAAQ,EACzBY,GAAOX,EAAUF,EAAOhC,EAAS4C,GAAKT,GAAY,EAEtDhB,EAAKD,EACLja,EAAKoa,EACLH,EAAKD,EACLI,EAAKD,EACLH,EAAK7tC,EACLguC,EAAK/tC,EAELD,EAAML,EAAK4vC,EAAM3C,EADjB3sC,EAAML,EAAK0vC,EAAO,EACY1vC,GAAO,EACrCD,EAAKF,EACLG,EAAKF,EACLD,EAAKL,EACLM,EAAKJ,EACLF,EAAKF,EACLI,EAAKH,EAELD,EAAMqwC,EAAME,GAAM7C,EADlBztC,EAAMmwC,EAAME,GAAO,EACYF,GAAQ,EAGzC9jD,KAAK6hD,IAAO7hD,KAAK6hD,IAAMluC,EAAM,EAC7B3T,KAAK8hD,IAAO9hD,KAAK8hD,IAAMhuC,EAAM,EAC7B9T,KAAK+hD,IAAO/hD,KAAK+hD,IAAM7tC,EAAM,EAC7BlU,KAAKgiD,IAAOhiD,KAAKgiD,IAAM5tC,EAAM,EAC7BpU,KAAKiiD,IAAOjiD,KAAKiiD,IAAMxtC,EAAM,EAC7BzU,KAAKkiD,IAAOliD,KAAKkiD,IAAMM,EAAM,EAC7BxiD,KAAKmiD,IAAOniD,KAAKmiD,IAAMM,EAAM,EAC7BziD,KAAKoiD,IAAOpiD,KAAKoiD,IAAM/Z,EAAM,EAE7BroC,KAAKqhD,IAAOrhD,KAAKqhD,IAAM3tC,EAAK0tC,EAASphD,KAAK6hD,IAAKluC,GAAO,EACtD3T,KAAKshD,IAAOthD,KAAKshD,IAAM1tC,EAAKwtC,EAASphD,KAAK8hD,IAAKhuC,GAAO,EACtD9T,KAAKuhD,IAAOvhD,KAAKuhD,IAAMttC,EAAKmtC,EAASphD,KAAK+hD,IAAK7tC,GAAO,EACtDlU,KAAKwhD,IAAOxhD,KAAKwhD,IAAMrtC,EAAKitC,EAASphD,KAAKgiD,IAAK5tC,GAAO,EACtDpU,KAAKyhD,IAAOzhD,KAAKyhD,IAAMjtC,EAAK4sC,EAASphD,KAAKiiD,IAAKxtC,GAAO,EACtDzU,KAAK0hD,IAAO1hD,KAAK0hD,IAAMW,EAAKjB,EAASphD,KAAKkiD,IAAKM,GAAO,EACtDxiD,KAAK2hD,IAAO3hD,KAAK2hD,IAAMW,EAAKlB,EAASphD,KAAKmiD,IAAKM,GAAO,EACtDziD,KAAK4hD,IAAO5hD,KAAK4hD,IAAMW,EAAKnB,EAASphD,KAAKoiD,IAAK/Z,GAAO,GAGxDwY,EAAOrjD,UAAUy4B,MAAQ,WACvB,IAAI2qB,EAAI3iD,EAAOW,YAAY,IAE3B,SAASslD,EAAclhC,EAAGjT,EAAGhJ,GAC3B65C,EAAEnyC,aAAauU,EAAGjc,GAClB65C,EAAEnyC,aAAasB,EAAGhJ,EAAS,GAY7B,OATAm9C,EAAalkD,KAAKqhD,IAAKrhD,KAAK6hD,IAAK,GACjCqC,EAAalkD,KAAKshD,IAAKthD,KAAK8hD,IAAK,GACjCoC,EAAalkD,KAAKuhD,IAAKvhD,KAAK+hD,IAAK,IACjCmC,EAAalkD,KAAKwhD,IAAKxhD,KAAKgiD,IAAK,IACjCkC,EAAalkD,KAAKyhD,IAAKzhD,KAAKiiD,IAAK,IACjCiC,EAAalkD,KAAK0hD,IAAK1hD,KAAKkiD,IAAK,IACjCgC,EAAalkD,KAAK2hD,IAAK3hD,KAAKmiD,IAAK,IACjC+B,EAAalkD,KAAK4hD,IAAK5hD,KAAKoiD,IAAK,IAE1BxB,GAGTzjD,EAAOC,QAAUyjD,G,8BCnQjB,cAyBA,IAAI3uB,EAAMl0B,EAAQ,IAGlBb,EAAOC,QAAUk1B,EAGjB,IAIIF,EAJApvB,EAAUhF,EAAQ,IAOtBs0B,EAAS8mB,cAAgBA,EAGhBp7C,EAAQ,IAAUgvB,aAA3B,IAEIqsB,EAAkB,SAAUnsB,EAAS1oB,GACvC,OAAO0oB,EAAQ3qB,UAAUiC,GAAM/F,QAK7B+qC,EAASxrC,EAAQ,IAKjBC,EAASD,EAAQ,GAAeC,OAChCqsC,EAAgBjhC,EAAO/F,YAAc,aAWzC,IAAI+uB,EAAOp1B,OAAOC,OAAOc,EAAQ,KACjCq0B,EAAK9f,SAAWvU,EAAQ,GAIxB,IAAIu7C,EAAYv7C,EAAQ,KACpBs7C,OAAQ,EAEVA,EADEC,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,aAIV,IAEIzuB,EAFA2uB,EAAa17C,EAAQ,KACrBwsC,EAAcxsC,EAAQ,IAG1Bq0B,EAAK9f,SAAS+f,EAAUkX,GAExB,IAAI0Q,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAc1D,SAASd,EAAc1mB,EAASsU,GAG9BtU,EAAUA,GAAW,GAOrB,IAAIgY,EAAW1D,aATf5U,EAASA,GAAUp0B,EAAQ,KAa3BgC,KAAK2qC,aAAejY,EAAQiY,WAExBD,IAAU1qC,KAAK2qC,WAAa3qC,KAAK2qC,cAAgBjY,EAAQynB,oBAI7D,IAAItP,EAAMnY,EAAQO,cACdkxB,EAAczxB,EAAQ0xB,sBACtBpZ,EAAahrC,KAAK2qC,WAAa,GAAK,MAElB3qC,KAAKizB,cAAvB4X,GAAe,IAARA,EAAgCA,EAAaH,IAAayZ,GAA+B,IAAhBA,GAAyCA,EAAsCnZ,EAGnKhrC,KAAKizB,cAAgB3qB,KAAKsF,MAAM5N,KAAKizB,eAKrCjzB,KAAKjC,OAAS,IAAI27C,EAClB15C,KAAKvB,OAAS,EACduB,KAAKo6C,MAAQ,KACbp6C,KAAKq6C,WAAa,EAClBr6C,KAAKs6C,QAAU,KACft6C,KAAK+yB,OAAQ,EACb/yB,KAAKynC,YAAa,EAClBznC,KAAKu6C,SAAU,EAMfv6C,KAAKyrC,MAAO,EAIZzrC,KAAKw6C,cAAe,EACpBx6C,KAAKy6C,iBAAkB,EACvBz6C,KAAK06C,mBAAoB,EACzB16C,KAAK26C,iBAAkB,EAGvB36C,KAAKmzB,WAAY,EAKjBnzB,KAAKsrC,gBAAkB5Y,EAAQ4Y,iBAAmB,OAGlDtrC,KAAK+6C,WAAa,EAGlB/6C,KAAKg7C,aAAc,EAEnBh7C,KAAKi7C,QAAU,KACfj7C,KAAKf,SAAW,KACZyzB,EAAQzzB,WACL8rB,IAAeA,EAAgB/sB,EAAQ,IAAmB+sB,eAC/D/qB,KAAKi7C,QAAU,IAAIlwB,EAAc2H,EAAQzzB,UACzCe,KAAKf,SAAWyzB,EAAQzzB,UAI5B,SAASqzB,EAASI,GAGhB,GAFAN,EAASA,GAAUp0B,EAAQ,MAErBgC,gBAAgBsyB,GAAW,OAAO,IAAIA,EAASI,GAErD1yB,KAAKkzB,eAAiB,IAAIkmB,EAAc1mB,EAAS1yB,MAGjDA,KAAK2yB,UAAW,EAEZD,IAC0B,oBAAjBA,EAAQjsB,OAAqBzG,KAAKk7C,MAAQxoB,EAAQjsB,MAE9B,oBAApBisB,EAAQka,UAAwB5sC,KAAKozB,SAAWV,EAAQka,UAGrEpD,EAAOzpC,KAAKC,MA2Dd,SAASm7C,EAAiBnU,EAAQ8F,EAAO7tC,EAAUm8C,EAAYC,GAC7D,IAKMlrB,EALFjB,EAAQ8X,EAAO9T,eACL,OAAV4Z,GACF5d,EAAMqrB,SAAU,EA0NpB,SAAoBvT,EAAQ9X,GAC1B,GAAIA,EAAM6D,MAAO,OACjB,GAAI7D,EAAM+rB,QAAS,CACjB,IAAInO,EAAQ5d,EAAM+rB,QAAQ71C,MACtB0nC,GAASA,EAAMruC,SACjBywB,EAAMnxB,OAAOuD,KAAKwrC,GAClB5d,EAAMzwB,QAAUywB,EAAMyb,WAAa,EAAImC,EAAMruC,QAGjDywB,EAAM6D,OAAQ,EAGduoB,EAAatU,GArOXwU,CAAWxU,EAAQ9X,KAGdmsB,IAAgBlrB,EA2CzB,SAAsBjB,EAAO4d,GAC3B,IAAI3c,EApPiBhsB,EAqPF2oC,EApPZ7uC,EAAOmG,SAASD,IAAQA,aAAemmC,GAoPA,kBAAVwC,QAAgC3tC,IAAV2tC,GAAwB5d,EAAMyb,aACtFxa,EAAK,IAAIrxB,UAAU,oCAtPvB,IAAuBqF,EAwPrB,OAAOgsB,EAhDqBsrB,CAAavsB,EAAO4d,IAC1C3c,EACF6W,EAAO5kC,KAAK,QAAS+tB,GACZjB,EAAMyb,YAAcmC,GAASA,EAAMruC,OAAS,GAChC,kBAAVquC,GAAuB5d,EAAMyb,YAAc1tC,OAAO6yB,eAAegd,KAAW7uC,EAAOT,YAC5FsvC,EAhNR,SAA6BA,GAC3B,OAAO7uC,EAAOS,KAAKouC,GA+MLW,CAAoBX,IAG1BsO,EACElsB,EAAMuY,WAAYT,EAAO5kC,KAAK,QAAS,IAAI3C,MAAM,qCAA0Ci8C,EAAS1U,EAAQ9X,EAAO4d,GAAO,GACrH5d,EAAM6D,MACfiU,EAAO5kC,KAAK,QAAS,IAAI3C,MAAM,6BAE/ByvB,EAAMqrB,SAAU,EACZrrB,EAAM+rB,UAAYh8C,GACpB6tC,EAAQ5d,EAAM+rB,QAAQj3C,MAAM8oC,GACxB5d,EAAMyb,YAA+B,IAAjBmC,EAAMruC,OAAci9C,EAAS1U,EAAQ9X,EAAO4d,GAAO,GAAY6O,EAAc3U,EAAQ9X,IAE7GwsB,EAAS1U,EAAQ9X,EAAO4d,GAAO,KAGzBsO,IACVlsB,EAAMqrB,SAAU,IAIpB,OAgCF,SAAsBrrB,GACpB,OAAQA,EAAM6D,QAAU7D,EAAMsrB,cAAgBtrB,EAAMzwB,OAASywB,EAAM+D,eAAkC,IAAjB/D,EAAMzwB,QAjCnF4lD,CAAan1B,GAGtB,SAASwsB,EAAS1U,EAAQ9X,EAAO4d,EAAOsO,GAClClsB,EAAMorB,SAA4B,IAAjBprB,EAAMzwB,SAAiBywB,EAAMuc,MAChDzE,EAAO5kC,KAAK,OAAQ0qC,GACpB9F,EAAOvgC,KAAK,KAGZyoB,EAAMzwB,QAAUywB,EAAMyb,WAAa,EAAImC,EAAMruC,OACzC28C,EAAYlsB,EAAMnxB,OAAO0wB,QAAQqe,GAAY5d,EAAMnxB,OAAOuD,KAAKwrC,GAE/D5d,EAAMsrB,cAAcc,EAAatU,IAEvC2U,EAAc3U,EAAQ9X,GAvGxBjyB,OAAO4M,eAAeyoB,EAAS90B,UAAW,YAAa,CACrDqtB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAKkzB,gBAGFlzB,KAAKkzB,eAAeC,WAE7BpkB,IAAK,SAAUrR,GAGRsC,KAAKkzB,iBAMVlzB,KAAKkzB,eAAeC,UAAYz1B,MAIpC40B,EAAS90B,UAAUovC,QAAUpC,EAAYoC,QACzCta,EAAS90B,UAAU4wC,WAAa5D,EAAY6D,UAC5C/b,EAAS90B,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC3CrzB,KAAKsB,KAAK,MACV+xB,EAAGlH,IAOLmG,EAAS90B,UAAU8D,KAAO,SAAUwrC,EAAO7tC,GACzC,IACIo8C,EADAnsB,EAAQlvB,KAAKkzB,eAgBjB,OAbKhE,EAAMyb,WAUT0Q,GAAiB,EATI,kBAAVvO,KACT7tC,EAAWA,GAAYiwB,EAAMoc,mBACZpc,EAAMjwB,WACrB6tC,EAAQ7uC,EAAOS,KAAKouC,EAAO7tC,GAC3BA,EAAW,IAEbo8C,GAAiB,GAMdF,EAAiBn7C,KAAM8sC,EAAO7tC,GAAU,EAAOo8C,IAIxD/oB,EAAS90B,UAAUixB,QAAU,SAAUqe,GACrC,OAAOqO,EAAiBn7C,KAAM8sC,EAAO,MAAM,GAAM,IAwEnDxa,EAAS90B,UAAUo+C,SAAW,WAC5B,OAAuC,IAAhC57C,KAAKkzB,eAAeonB,SAI7BhoB,EAAS90B,UAAUq+C,YAAc,SAAUjpC,GAIzC,OAHKmY,IAAeA,EAAgB/sB,EAAQ,IAAmB+sB,eAC/D/qB,KAAKkzB,eAAe+nB,QAAU,IAAIlwB,EAAcnY,GAChD5S,KAAKkzB,eAAej0B,SAAW2T,EACxB5S,MAIT,IAAIg8C,EAAU,QAoBd,SAASC,EAAcp2C,EAAGqpB,GACxB,OAAIrpB,GAAK,GAAsB,IAAjBqpB,EAAMzwB,QAAgBywB,EAAM6D,MAAc,EACpD7D,EAAMyb,WAAmB,EACzB9kC,IAAMA,EAEJqpB,EAAMorB,SAAWprB,EAAMzwB,OAAeywB,EAAMnxB,OAAO+9C,KAAKr3C,KAAKhG,OAAmBywB,EAAMzwB,QAGxFoH,EAAIqpB,EAAM+D,gBAAe/D,EAAM+D,cA3BrC,SAAiCptB,GAc/B,OAbIA,GAAKm2C,EACPn2C,EAAIm2C,GAIJn2C,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,EAa4Cq2C,CAAwBr2C,IACvEA,GAAKqpB,EAAMzwB,OAAeoH,EAEzBqpB,EAAM6D,MAIJ7D,EAAMzwB,QAHXywB,EAAMsrB,cAAe,EACd,IA4HX,SAASc,EAAatU,GACpB,IAAI9X,EAAQ8X,EAAO9T,eACnBhE,EAAMsrB,cAAe,EAChBtrB,EAAMurB,kBACTnB,EAAM,eAAgBpqB,EAAMorB,SAC5BprB,EAAMurB,iBAAkB,EACpBvrB,EAAMuc,KAAMvZ,EAAIjxB,SAASs6C,EAAevU,GAAauU,EAAcvU,IAI3E,SAASuU,EAAcvU,GACrBsS,EAAM,iBACNtS,EAAO5kC,KAAK,YACZ+5C,EAAKnV,GASP,SAAS2U,EAAc3U,EAAQ9X,GACxBA,EAAM8rB,cACT9rB,EAAM8rB,aAAc,EACpB9oB,EAAIjxB,SAASm7C,EAAgBpV,EAAQ9X,IAIzC,SAASktB,EAAepV,EAAQ9X,GAE9B,IADA,IAAIxuB,EAAMwuB,EAAMzwB,QACRywB,EAAMqrB,UAAYrrB,EAAMorB,UAAYprB,EAAM6D,OAAS7D,EAAMzwB,OAASywB,EAAM+D,gBAC9EqmB,EAAM,wBACNtS,EAAOvgC,KAAK,GACR/F,IAAQwuB,EAAMzwB,SAELiC,EAAMwuB,EAAMzwB,OAE3BywB,EAAM8rB,aAAc,EAyOtB,SAASuB,EAAiBtlC,GACxBqiC,EAAM,4BACNriC,EAAKxQ,KAAK,GAsBZ,SAAS+1C,EAAQxV,EAAQ9X,GAClBA,EAAMqrB,UACTjB,EAAM,iBACNtS,EAAOvgC,KAAK,IAGdyoB,EAAMyrB,iBAAkB,EACxBzrB,EAAM6rB,WAAa,EACnB/T,EAAO5kC,KAAK,UACZ+5C,EAAKnV,GACD9X,EAAMorB,UAAYprB,EAAMqrB,SAASvT,EAAOvgC,KAAK,GAanD,SAAS01C,EAAKnV,GACZ,IAAI9X,EAAQ8X,EAAO9T,eAEnB,IADAomB,EAAM,OAAQpqB,EAAMorB,SACbprB,EAAMorB,SAA6B,OAAlBtT,EAAOvgC,UAmFjC,SAASg2C,EAAS52C,EAAGqpB,GAEnB,OAAqB,IAAjBA,EAAMzwB,OAAqB,MAG3BywB,EAAMyb,WAAYr/B,EAAM4jB,EAAMnxB,OAAO+lB,SAAkBje,GAAKA,GAAKqpB,EAAMzwB,QAEtD6M,EAAf4jB,EAAM+rB,QAAe/rB,EAAMnxB,OAAO6M,KAAK,IAAqC,IAAxBskB,EAAMnxB,OAAOU,OAAoBywB,EAAMnxB,OAAO+9C,KAAKr3C,KAAgByqB,EAAMnxB,OAAOwC,OAAO2uB,EAAMzwB,QACrJywB,EAAMnxB,OAAOg+C,SAGbzwC,EASJ,SAAyBzF,EAAGsE,EAAMm6C,GAChC,IAAIh5C,EACAzF,EAAIsE,EAAK2xC,KAAKr3C,KAAKhG,QAErB6M,EAAMnB,EAAK2xC,KAAKr3C,KAAKR,MAAM,EAAG4B,GAC9BsE,EAAK2xC,KAAKr3C,KAAO0F,EAAK2xC,KAAKr3C,KAAKR,MAAM4B,IAGtCyF,EAFSzF,IAAMsE,EAAK2xC,KAAKr3C,KAAKhG,OAExB0L,EAAK2Z,QAGLwgC,EASV,SAA8Bz+C,EAAGsE,GAC/B,IAAI0I,EAAI1I,EAAK2xC,KACT7zC,EAAI,EACJqD,EAAMuH,EAAEpO,KACZoB,GAAKyF,EAAI7M,OACT,KAAOoU,EAAIA,EAAEiX,MAAM,CACjB,IAAIriB,EAAMoL,EAAEpO,KACRosB,EAAKhrB,EAAI4B,EAAIhJ,OAASgJ,EAAIhJ,OAASoH,EAGvC,GAFIgrB,IAAOppB,EAAIhJ,OAAQ6M,GAAO7D,EAAS6D,GAAO7D,EAAIxD,MAAM,EAAG4B,GAEjD,KADVA,GAAKgrB,GACQ,CACPA,IAAOppB,EAAIhJ,UACXwJ,EACE4K,EAAEiX,KAAM3f,EAAK2xC,KAAOjpC,EAAEiX,KAAU3f,EAAK2xC,KAAO3xC,EAAKo6C,KAAO,OAE5Dp6C,EAAK2xC,KAAOjpC,EACZA,EAAEpO,KAAOgD,EAAIxD,MAAM4sB,IAErB,QAEA5oB,EAGJ,OADAkC,EAAK1L,QAAUwJ,EACRqD,EAhCck5C,CAAqB3+C,EAAGsE,GAsC/C,SAAwBtE,EAAGsE,GACzB,IAAImB,EAAMrN,EAAOW,YAAYiH,GACzBgN,EAAI1I,EAAK2xC,KACT7zC,EAAI,EACR4K,EAAEpO,KAAKH,KAAKgH,GACZzF,GAAKgN,EAAEpO,KAAKhG,OACZ,KAAOoU,EAAIA,EAAEiX,MAAM,CACjB,IAAI5qB,EAAM2T,EAAEpO,KACRosB,EAAKhrB,EAAI3G,EAAIT,OAASS,EAAIT,OAASoH,EAGvC,GAFA3G,EAAIoF,KAAKgH,EAAKA,EAAI7M,OAASoH,EAAG,EAAGgrB,GAEvB,KADVhrB,GAAKgrB,GACQ,CACPA,IAAO3xB,EAAIT,UACXwJ,EACE4K,EAAEiX,KAAM3f,EAAK2xC,KAAOjpC,EAAEiX,KAAU3f,EAAK2xC,KAAO3xC,EAAKo6C,KAAO,OAE5Dp6C,EAAK2xC,KAAOjpC,EACZA,EAAEpO,KAAOvF,EAAI+E,MAAM4sB,IAErB,QAEA5oB,EAGJ,OADAkC,EAAK1L,QAAUwJ,EACRqD,EA9D8Cm5C,CAAe5+C,EAAGsE,GAEvE,OAAOmB,EAtBCo5C,CAAgB7+C,EAAGqpB,EAAMnxB,OAAQmxB,EAAM+rB,SAGxC3vC,GAVP,IAAIA,EA4FN,SAASqxC,EAAY3V,GACnB,IAAI9X,EAAQ8X,EAAO9T,eAInB,GAAIhE,EAAMzwB,OAAS,EAAG,MAAM,IAAIgB,MAAM,8CAEjCyvB,EAAMuY,aACTvY,EAAM6D,OAAQ,EACdb,EAAIjxB,SAAS27C,EAAe1tB,EAAO8X,IAIvC,SAAS4V,EAAc1tB,EAAO8X,GAEvB9X,EAAMuY,YAA+B,IAAjBvY,EAAMzwB,SAC7BywB,EAAMuY,YAAa,EACnBT,EAAOrU,UAAW,EAClBqU,EAAO5kC,KAAK,QAIhB,SAAS8D,EAAQq+B,EAAIt6B,GACnB,IAAK,IAAI5I,EAAI,EAAG0O,EAAIw0B,EAAG9lC,OAAQ4C,EAAI0O,EAAG1O,IACpC,GAAIkjC,EAAGljC,KAAO4I,EAAG,OAAO5I,EAE1B,OAAQ,EApoBVixB,EAAS90B,UAAUiJ,KAAO,SAAUZ,GAClCyzC,EAAM,OAAQzzC,GACdA,EAAIuB,SAASvB,EAAG,IAChB,IAAIqpB,EAAQlvB,KAAKkzB,eACb4pB,EAAQj3C,EAOZ,GALU,IAANA,IAASqpB,EAAMurB,iBAAkB,GAK3B,IAAN50C,GAAWqpB,EAAMsrB,eAAiBtrB,EAAMzwB,QAAUywB,EAAM+D,eAAiB/D,EAAM6D,OAGjF,OAFAumB,EAAM,qBAAsBpqB,EAAMzwB,OAAQywB,EAAM6D,OAC3B,IAAjB7D,EAAMzwB,QAAgBywB,EAAM6D,MAAO4pB,EAAY38C,MAAWs7C,EAAat7C,MACpE,KAMT,GAAU,KAHV6F,EAAIo2C,EAAcp2C,EAAGqpB,KAGNA,EAAM6D,MAEnB,OADqB,IAAjB7D,EAAMzwB,QAAck+C,EAAY38C,MAC7B,KA0BT,IA4BIsL,EA5BAyxC,EAAS7tB,EAAMsrB,aAiDnB,OAhDAlB,EAAM,gBAAiByD,IAGF,IAAjB7tB,EAAMzwB,QAAgBywB,EAAMzwB,OAASoH,EAAIqpB,EAAM+D,gBAEjDqmB,EAAM,6BADNyD,GAAS,GAMP7tB,EAAM6D,OAAS7D,EAAMqrB,QAEvBjB,EAAM,mBADNyD,GAAS,GAEAA,IACTzD,EAAM,WACNpqB,EAAMqrB,SAAU,EAChBrrB,EAAMuc,MAAO,EAEQ,IAAjBvc,EAAMzwB,SAAcywB,EAAMsrB,cAAe,GAE7Cx6C,KAAKk7C,MAAMhsB,EAAM+D,eACjB/D,EAAMuc,MAAO,EAGRvc,EAAMqrB,UAAS10C,EAAIo2C,EAAca,EAAO5tB,KAMnC,QAFD5jB,EAAPzF,EAAI,EAAS42C,EAAS52C,EAAGqpB,GAAkB,OAG7CA,EAAMsrB,cAAe,EACrB30C,EAAI,GAEJqpB,EAAMzwB,QAAUoH,EAGG,IAAjBqpB,EAAMzwB,SAGHywB,EAAM6D,QAAO7D,EAAMsrB,cAAe,GAGnCsC,IAAUj3C,GAAKqpB,EAAM6D,OAAO4pB,EAAY38C,OAGlC,OAARsL,GAActL,KAAKoC,KAAK,OAAQkJ,GAE7BA,GAkETgnB,EAAS90B,UAAU09C,MAAQ,SAAUr1C,GACnC7F,KAAKoC,KAAK,QAAS,IAAI3C,MAAM,gCAG/B6yB,EAAS90B,UAAUgwC,KAAO,SAAU92B,EAAMsmC,GACxC,IAAI7+C,EAAM6B,KACNkvB,EAAQlvB,KAAKkzB,eAEjB,OAAQhE,EAAMmrB,YACZ,KAAK,EACHnrB,EAAMkrB,MAAQ1jC,EACd,MACF,KAAK,EACHwY,EAAMkrB,MAAQ,CAAClrB,EAAMkrB,MAAO1jC,GAC5B,MACF,QACEwY,EAAMkrB,MAAM94C,KAAKoV,GAGrBwY,EAAMmrB,YAAc,EACpBf,EAAM,wBAAyBpqB,EAAMmrB,WAAY2C,GAEjD,IAEIC,IAFUD,IAA6B,IAAjBA,EAAS53C,MAAkBsR,IAASnX,EAAQ29C,QAAUxmC,IAASnX,EAAQ49C,OAE7EtqB,EAAQuqB,EAI5B,SAASC,EAAS1qB,EAAU2qB,GAC1BhE,EAAM,YACF3mB,IAAax0B,GACXm/C,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5BjE,EAAM,WAEN5iC,EAAKxU,eAAe,QAASylC,GAC7BjxB,EAAKxU,eAAe,SAAUmlC,GAC9B3wB,EAAKxU,eAAe,QAASs7C,GAC7B9mC,EAAKxU,eAAe,QAASwlC,GAC7BhxB,EAAKxU,eAAe,SAAUm7C,GAC9Bl/C,EAAI+D,eAAe,MAAO2wB,GAC1B10B,EAAI+D,eAAe,MAAOk7C,GAC1Bj/C,EAAI+D,eAAe,OAAQu7C,GAE3BC,GAAY,GAORxuB,EAAM6rB,YAAgBrkC,EAAKoc,iBAAkBpc,EAAKoc,eAAeoY,WAAYsS,KAhCnF,SAAS3qB,IACPymB,EAAM,SACN5iC,EAAKtR,MAfH8pB,EAAMuY,WAAYvV,EAAIjxB,SAASg8C,GAAY9+C,EAAI6D,KAAK,MAAOi7C,GAE/DvmC,EAAK5U,GAAG,SAAUu7C,GAoBlB,IAAIG,EA4FN,SAAqBr/C,GACnB,OAAO,WACL,IAAI+wB,EAAQ/wB,EAAI+0B,eAChBomB,EAAM,cAAepqB,EAAM6rB,YACvB7rB,EAAM6rB,YAAY7rB,EAAM6rB,aACH,IAArB7rB,EAAM6rB,YAAoB1B,EAAgBl7C,EAAK,UACjD+wB,EAAMorB,SAAU,EAChB6B,EAAKh+C,KAnGKw/C,CAAYx/C,GAC1BuY,EAAK5U,GAAG,QAAS07C,GAEjB,IAAIE,GAAY,EA2BhB,IAAIiH,GAAsB,EAE1B,SAASlH,EAAO3Q,GACdwM,EAAM,UACNqL,GAAsB,GAElB,IADMjuC,EAAK1S,MAAM8oC,IACC6X,KAKM,IAArBz1B,EAAMmrB,YAAoBnrB,EAAMkrB,QAAU1jC,GAAQwY,EAAMmrB,WAAa,IAAqC,IAAhCn0C,EAAQgpB,EAAMkrB,MAAO1jC,MAAkBgnC,IACpHpE,EAAM,8BAA+Bn7C,EAAI+0B,eAAe6nB,YACxD58C,EAAI+0B,eAAe6nB,aACnB4J,GAAsB,GAExBxmD,EAAIy/C,SAMR,SAASlW,EAAQvX,GACfmpB,EAAM,UAAWnpB,GACjBitB,IACA1mC,EAAKxU,eAAe,QAASwlC,GACU,IAAnC2R,EAAgB3iC,EAAM,UAAgBA,EAAKtU,KAAK,QAAS+tB,GAO/D,SAASwX,IACPjxB,EAAKxU,eAAe,SAAUmlC,GAC9B+V,IAGF,SAAS/V,IACPiS,EAAM,YACN5iC,EAAKxU,eAAe,QAASylC,GAC7ByV,IAIF,SAASA,IACP9D,EAAM,UACNn7C,EAAIi/C,OAAO1mC,GAYb,OA1DAvY,EAAI2D,GAAG,OAAQ27C,GA9gBjB,SAAyBvwB,EAAS2wB,EAAOrkB,GAGvC,GAAuC,oBAA5BtM,EAAQ7qB,gBAAgC,OAAO6qB,EAAQ7qB,gBAAgBw7C,EAAOrkB,GAMpFtM,EAAQU,SAAYV,EAAQU,QAAQiwB,GAAuC76C,EAAQkqB,EAAQU,QAAQiwB,IAAS3wB,EAAQU,QAAQiwB,GAAOpvB,QAAQ+K,GAAStM,EAAQU,QAAQiwB,GAAS,CAACrkB,EAAItM,EAAQU,QAAQiwB,IAAtJ3wB,EAAQprB,GAAG+7C,EAAOrkB,GAkiBnEn3B,CAAgBqU,EAAM,QAASgxB,GAO/BhxB,EAAK1U,KAAK,QAAS2lC,GAMnBjxB,EAAK1U,KAAK,SAAUqlC,GAQpB3wB,EAAKtU,KAAK,OAAQjE,GAGb+wB,EAAMorB,UACThB,EAAM,eACNn7C,EAAIm+C,UAGC5lC,GAeT4b,EAAS90B,UAAU4/C,OAAS,SAAU1mC,GACpC,IAAIwY,EAAQlvB,KAAKkzB,eACboqB,EAAa,CAAEC,YAAY,GAG/B,GAAyB,IAArBruB,EAAMmrB,WAAkB,OAAOr6C,KAGnC,GAAyB,IAArBkvB,EAAMmrB,WAER,OAAI3jC,GAAQA,IAASwY,EAAMkrB,QAEtB1jC,IAAMA,EAAOwY,EAAMkrB,OAGxBlrB,EAAMkrB,MAAQ,KACdlrB,EAAMmrB,WAAa,EACnBnrB,EAAMorB,SAAU,EACZ5jC,GAAMA,EAAKtU,KAAK,SAAUpC,KAAMs9C,IARKt9C,KAc3C,IAAK0W,EAAM,CAET,IAAIonC,EAAQ5uB,EAAMkrB,MACd15C,EAAMwuB,EAAMmrB,WAChBnrB,EAAMkrB,MAAQ,KACdlrB,EAAMmrB,WAAa,EACnBnrB,EAAMorB,SAAU,EAEhB,IAAK,IAAIj5C,EAAI,EAAGA,EAAIX,EAAKW,IACvBy8C,EAAMz8C,GAAGe,KAAK,SAAUpC,KAAMs9C,GAC/B,OAAOt9C,KAIV,IAAIwV,EAAQtP,EAAQgpB,EAAMkrB,MAAO1jC,GACjC,OAAe,IAAXlB,IAEJ0Z,EAAMkrB,MAAM/V,OAAO7uB,EAAO,GAC1B0Z,EAAMmrB,YAAc,EACK,IAArBnrB,EAAMmrB,aAAkBnrB,EAAMkrB,MAAQlrB,EAAMkrB,MAAM,IAEtD1jC,EAAKtU,KAAK,SAAUpC,KAAMs9C,IANDt9C,MAa3BsyB,EAAS90B,UAAUsE,GAAK,SAAUi8C,EAAIvkB,GACpC,IAAIhxB,EAAMghC,EAAOhsC,UAAUsE,GAAG/B,KAAKC,KAAM+9C,EAAIvkB,GAE7C,GAAW,SAAPukB,GAEkC,IAAhC/9C,KAAKkzB,eAAeonB,SAAmBt6C,KAAKs8C,cAC3C,GAAW,aAAPyB,EAAmB,CAC5B,IAAI7uB,EAAQlvB,KAAKkzB,eACZhE,EAAMuY,YAAevY,EAAMwrB,oBAC9BxrB,EAAMwrB,kBAAoBxrB,EAAMsrB,cAAe,EAC/CtrB,EAAMurB,iBAAkB,EACnBvrB,EAAMqrB,QAEArrB,EAAMzwB,QACf68C,EAAat7C,MAFbkyB,EAAIjxB,SAASs7C,EAAkBv8C,OAOrC,OAAOwI,GAET8pB,EAAS90B,UAAUuE,YAAcuwB,EAAS90B,UAAUsE,GASpDwwB,EAAS90B,UAAU8+C,OAAS,WAC1B,IAAIptB,EAAQlvB,KAAKkzB,eAMjB,OALKhE,EAAMorB,UACThB,EAAM,UACNpqB,EAAMorB,SAAU,EAMpB,SAAgBtT,EAAQ9X,GACjBA,EAAMyrB,kBACTzrB,EAAMyrB,iBAAkB,EACxBzoB,EAAIjxB,SAASu7C,EAASxV,EAAQ9X,IAR9BotB,CAAOt8C,KAAMkvB,IAERlvB,MAuBTsyB,EAAS90B,UAAUogD,MAAQ,WAOzB,OANAtE,EAAM,wBAAyBt5C,KAAKkzB,eAAeonB,UAC/C,IAAUt6C,KAAKkzB,eAAeonB,UAChChB,EAAM,SACNt5C,KAAKkzB,eAAeonB,SAAU,EAC9Bt6C,KAAKoC,KAAK,UAELpC,MAYTsyB,EAAS90B,UAAUwgD,KAAO,SAAUhX,GAClC,IAAI2C,EAAQ3pC,KAERkvB,EAAQlvB,KAAKkzB,eACb0nB,GAAS,EA4Bb,IAAK,IAAIv5C,KA1BT2lC,EAAOllC,GAAG,OAAO,WAEf,GADAw3C,EAAM,eACFpqB,EAAM+rB,UAAY/rB,EAAM6D,MAAO,CACjC,IAAI+Z,EAAQ5d,EAAM+rB,QAAQ71C,MACtB0nC,GAASA,EAAMruC,QAAQkrC,EAAMroC,KAAKwrC,GAGxCnD,EAAMroC,KAAK,SAGb0lC,EAAOllC,GAAG,QAAQ,SAAUgrC,IAC1BwM,EAAM,gBACFpqB,EAAM+rB,UAASnO,EAAQ5d,EAAM+rB,QAAQj3C,MAAM8oC,KAG3C5d,EAAMyb,YAAyB,OAAVmC,QAA4B3tC,IAAV2tC,MAAuC5d,EAAMyb,YAAgBmC,GAAUA,EAAMruC,UAE9GkrC,EAAMroC,KAAKwrC,KAEnB8N,GAAS,EACT5T,EAAO4W,cAMG5W,OACI7nC,IAAZa,KAAKqB,IAAyC,oBAAd2lC,EAAO3lC,KACzCrB,KAAKqB,GAAK,SAAUoxB,GAClB,OAAO,WACL,OAAOuU,EAAOvU,GAAQlxB,MAAMylC,EAAQ5lC,YAF9B,CAIRC,IAKN,IAAK,IAAIwE,EAAI,EAAGA,EAAIq0C,EAAaz7C,OAAQoH,IACvCmhC,EAAOllC,GAAGo4C,EAAar0C,GAAI7F,KAAKoC,KAAKgtB,KAAKpvB,KAAMk6C,EAAar0C,KAa/D,OARA7F,KAAKk7C,MAAQ,SAAUr1C,GACrByzC,EAAM,gBAAiBzzC,GACnB+0C,IACFA,GAAS,EACT5T,EAAOsV,WAIJt8C,MAGT/C,OAAO4M,eAAeyoB,EAAS90B,UAAW,wBAAyB,CAIjEG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAeD,iBAK/BX,EAAS4rB,UAAYzB,I,sCCz3BrBt/C,EAAOC,QAAUY,EAAQ,IAAUgvB,c,6BCInC,IAAIkF,EAAMl0B,EAAQ,IA8DlB,SAASqgD,EAAYpnC,EAAMkV,GACzBlV,EAAK7U,KAAK,QAAS+pB,GAGrBhvB,EAAOC,QAAU,CACfwvC,QA/DF,SAAiBzgB,EAAKkH,GACpB,IAAIsW,EAAQ3pC,KAERu+C,EAAoBv+C,KAAKkzB,gBAAkBlzB,KAAKkzB,eAAeC,UAC/DqrB,EAAoBx+C,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAeK,UAEnE,OAAIorB,GAAqBC,GACnBnrB,EACFA,EAAGlH,IACMA,GAASnsB,KAAK8yB,gBAAmB9yB,KAAK8yB,eAAekZ,cAC9D9Z,EAAIjxB,SAASo9C,EAAar+C,KAAMmsB,GAE3BnsB,OAMLA,KAAKkzB,iBACPlzB,KAAKkzB,eAAeC,WAAY,GAI9BnzB,KAAK8yB,iBACP9yB,KAAK8yB,eAAeK,WAAY,GAGlCnzB,KAAKozB,SAASjH,GAAO,MAAM,SAAUA,IAC9BkH,GAAMlH,GACT+F,EAAIjxB,SAASo9C,EAAa1U,EAAOxd,GAC7Bwd,EAAM7W,iBACR6W,EAAM7W,eAAekZ,cAAe,IAE7B3Y,GACTA,EAAGlH,MAIAnsB,OA0BPquC,UAvBF,WACMruC,KAAKkzB,iBACPlzB,KAAKkzB,eAAeC,WAAY,EAChCnzB,KAAKkzB,eAAeqnB,SAAU,EAC9Bv6C,KAAKkzB,eAAeH,OAAQ,EAC5B/yB,KAAKkzB,eAAeuU,YAAa,GAG/BznC,KAAK8yB,iBACP9yB,KAAK8yB,eAAeK,WAAY,EAChCnzB,KAAK8yB,eAAeC,OAAQ,EAC5B/yB,KAAK8yB,eAAeqY,QAAS,EAC7BnrC,KAAK8yB,eAAeyU,UAAW,EAC/BvnC,KAAK8yB,eAAekZ,cAAe,M,6BCGvC7uC,EAAOC,QAAU0tB,EAEjB,IAAIsH,EAASp0B,EAAQ,IAGjBq0B,EAAOp1B,OAAOC,OAAOc,EAAQ,KAMjC,SAASqhD,EAAelvB,EAAI1rB,GAC1B,IAAI66C,EAAKt/C,KAAKu/C,gBACdD,EAAGE,cAAe,EAElB,IAAInsB,EAAKisB,EAAG1T,QAEZ,IAAKvY,EACH,OAAOrzB,KAAKoC,KAAK,QAAS,IAAI3C,MAAM,yCAGtC6/C,EAAGG,WAAa,KAChBH,EAAG1T,QAAU,KAED,MAARnnC,GACFzE,KAAKsB,KAAKmD,GAEZ4uB,EAAGlD,GAEH,IAAIuvB,EAAK1/C,KAAKkzB,eACdwsB,EAAGnF,SAAU,GACTmF,EAAGlF,cAAgBkF,EAAGjhD,OAASihD,EAAGzsB,gBACpCjzB,KAAKk7C,MAAMwE,EAAGzsB,eAIlB,SAASnI,EAAU4H,GACjB,KAAM1yB,gBAAgB8qB,GAAY,OAAO,IAAIA,EAAU4H,GAEvDN,EAAOryB,KAAKC,KAAM0yB,GAElB1yB,KAAKu/C,gBAAkB,CACrBF,eAAgBA,EAAejwB,KAAKpvB,MACpC2/C,eAAe,EACfH,cAAc,EACd5T,QAAS,KACT6T,WAAY,KACZG,cAAe,MAIjB5/C,KAAKkzB,eAAesnB,cAAe,EAKnCx6C,KAAKkzB,eAAeuY,MAAO,EAEvB/Y,IAC+B,oBAAtBA,EAAQlS,YAA0BxgB,KAAKksB,WAAawG,EAAQlS,WAE1C,oBAAlBkS,EAAQmtB,QAAsB7/C,KAAKosB,OAASsG,EAAQmtB,QAIjE7/C,KAAK8B,GAAG,YAAaurC,GAGvB,SAASA,IACP,IAAI1D,EAAQ3pC,KAEe,oBAAhBA,KAAKosB,OACdpsB,KAAKosB,QAAO,SAAU+D,EAAI1rB,GACxB4nB,EAAKsd,EAAOxZ,EAAI1rB,MAGlB4nB,EAAKrsB,KAAM,KAAM,MA2DrB,SAASqsB,EAAK2a,EAAQ7W,EAAI1rB,GACxB,GAAI0rB,EAAI,OAAO6W,EAAO5kC,KAAK,QAAS+tB,GAOpC,GALY,MAAR1rB,GACFuiC,EAAO1lC,KAAKmD,GAIVuiC,EAAOlU,eAAer0B,OAAQ,MAAM,IAAIgB,MAAM,8CAElD,GAAIunC,EAAOuY,gBAAgBC,aAAc,MAAM,IAAI//C,MAAM,kDAEzD,OAAOunC,EAAO1lC,KAAK,MA7IrB+wB,EAAK9f,SAAWvU,EAAQ,GAGxBq0B,EAAK9f,SAASuY,EAAWsH,GAuEzBtH,EAAUttB,UAAU8D,KAAO,SAAUwrC,EAAO7tC,GAE1C,OADAe,KAAKu/C,gBAAgBI,eAAgB,EAC9BvtB,EAAO50B,UAAU8D,KAAKvB,KAAKC,KAAM8sC,EAAO7tC,IAajD6rB,EAAUttB,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUo0B,GAC1D,MAAM,IAAI5zB,MAAM,oCAGlBqrB,EAAUttB,UAAUivC,OAAS,SAAUK,EAAO7tC,EAAUo0B,GACtD,IAAIisB,EAAKt/C,KAAKu/C,gBAId,GAHAD,EAAG1T,QAAUvY,EACbisB,EAAGG,WAAa3S,EAChBwS,EAAGM,cAAgB3gD,GACdqgD,EAAGE,aAAc,CACpB,IAAIE,EAAK1/C,KAAKkzB,gBACVosB,EAAGK,eAAiBD,EAAGlF,cAAgBkF,EAAGjhD,OAASihD,EAAGzsB,gBAAejzB,KAAKk7C,MAAMwE,EAAGzsB,iBAO3FnI,EAAUttB,UAAU09C,MAAQ,SAAUr1C,GACpC,IAAIy5C,EAAKt/C,KAAKu/C,gBAEQ,OAAlBD,EAAGG,YAAuBH,EAAG1T,UAAY0T,EAAGE,cAC9CF,EAAGE,cAAe,EAClBx/C,KAAKksB,WAAWozB,EAAGG,WAAYH,EAAGM,cAAeN,EAAGD,iBAIpDC,EAAGK,eAAgB,GAIvB70B,EAAUttB,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC5C,IAAIuxB,EAAS5kD,KAEboyB,EAAO50B,UAAU41B,SAASrzB,KAAKC,KAAMmsB,GAAK,SAAU2zB,GAClDzsB,EAAGysB,GACH8E,EAAOxiD,KAAK,c,6BCnMhB,IAAImQ,EAAWvU,EAAQ,GACnB6mD,EAAS7mD,EAAQ,KACjB81B,EAAO91B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAChC6mD,EAAM9mD,EAAQ,IACdm4B,EAAYn4B,EAAQ,IAEpBo4B,EAAMp4B,EAAQ,IAEd+mD,EAAQ9mD,EAAOU,MAAM,KAEzB,SAASqmD,EAAM3uB,EAAKh4B,GAClBy1B,EAAK/zB,KAAKC,KAAM,UACG,kBAAR3B,IACTA,EAAMJ,EAAOS,KAAKL,IAGpB,IAAI4mD,EAAqB,WAAR5uB,GAA4B,WAARA,EAAoB,IAAM,IAE/Dr2B,KAAKklD,KAAO7uB,EACZr2B,KAAKu7B,KAAOl9B,EACRA,EAAII,OAASwmD,GAEf5mD,GADmB,WAARg4B,EAAmB,IAAIF,EAAcC,EAAIC,IACzC7K,OAAOntB,GAAKu3B,SACdv3B,EAAII,OAASwmD,IACtB5mD,EAAMJ,EAAOsC,OAAO,CAAClC,EAAK0mD,GAAQE,IAMpC,IAHA,IAAIE,EAAOnlD,KAAKolD,MAAQnnD,EAAOW,YAAYqmD,GACvCI,EAAOrlD,KAAKslD,MAAQrnD,EAAOW,YAAYqmD,GAElC5jD,EAAI,EAAGA,EAAI4jD,EAAW5jD,IAC7B8jD,EAAK9jD,GAAc,GAAThD,EAAIgD,GACdgkD,EAAKhkD,GAAc,GAAThD,EAAIgD,GAEhBrB,KAAKi2B,MAAgB,WAARI,EAAmB,IAAIF,EAAcC,EAAIC,GACtDr2B,KAAKi2B,MAAMzK,OAAO25B,GAGpB5yC,EAASyyC,EAAMlxB,GAEfkxB,EAAKxnD,UAAUouB,QAAU,SAAUnnB,GACjCzE,KAAKi2B,MAAMzK,OAAO/mB,IAGpBugD,EAAKxnD,UAAU4tB,OAAS,WACtB,IAAIpI,EAAIhjB,KAAKi2B,MAAML,SAEnB,OADyB,WAAd51B,KAAKklD,KAAoB,IAAI/uB,EAAcC,EAAIp2B,KAAKklD,OACnD15B,OAAOxrB,KAAKslD,OAAO95B,OAAOxI,GAAG4S,UAG3Cz4B,EAAOC,QAAU,SAAqBi5B,EAAKh4B,GAEzC,MAAY,YADZg4B,EAAMA,EAAIpxB,gBACsB,cAARoxB,EACf,IAAI2uB,EAAK,SAAU3mD,GAEhB,QAARg4B,EACK,IAAIwuB,EAAOC,EAAKzmD,GAElB,IAAI2mD,EAAK3uB,EAAKh4B,K,gBC5DvB,IAAI63B,EAAMl4B,EAAQ,IAElBb,EAAOC,QAAU,SAAUW,GACzB,OAAO,IAAIm4B,GAAM1K,OAAOztB,GAAQ63B,W,qnECHlCx4B,EAAQmoD,OAASvnD,EAAQ,KACzBZ,EAAQolC,WAAaxkC,EAAQ,K,cCD7B,IAAIwnD,EAAYl9C,KAAKwE,IAAI,EAAG,IAAM,EAElC3P,EAAOC,QAAU,SAAUqoD,EAAYljB,GACrC,GAA0B,kBAAfkjB,EACT,MAAM,IAAI3mD,UAAU,2BAGtB,GAAI2mD,EAAa,EACf,MAAM,IAAI3mD,UAAU,kBAGtB,GAAsB,kBAAXyjC,EACT,MAAM,IAAIzjC,UAAU,2BAGtB,GAAIyjC,EAAS,GAAKA,EAASijB,GAAajjB,IAAWA,EACjD,MAAM,IAAIzjC,UAAU,oB,iBChBxB,kBAAIwsC,EAEJ,GAAIjiC,EAAO9J,SAAW8J,EAAO9J,QAAQkC,QACnC6pC,EAAkB,aACb,GAAIjiC,EAAO9J,SAAW8J,EAAO9J,QAAQqC,QAAS,CAGnD0pC,EAFoBlkC,SAAS7H,EAAQqC,QAAQ2nB,MAAM,KAAK,GAAGtlB,MAAM,GAAI,KAElC,EAAI,QAAU,cAEjDqnC,EAAkB,QAEpBnuC,EAAOC,QAAUkuC,I,sCCXjB,IAAIwZ,EAAM9mD,EAAQ,IACdm4B,EAAYn4B,EAAQ,IACpBo4B,EAAMp4B,EAAQ,IACdC,EAASD,EAAQ,GAAeC,OAEhCynD,EAAkB1nD,EAAQ,IAC1BstC,EAAkBttC,EAAQ,IAC1B4Z,EAAW5Z,EAAQ,IAEnB+mD,EAAQ9mD,EAAOU,MAAM,KACrBgnD,EAAQ,CACVb,IAAK,GACL3b,KAAM,GACNC,OAAQ,GACRC,OAAQ,GACRC,OAAQ,GACRC,OAAQ,GACRqc,OAAQ,GACRtS,UAAW,IAGb,SAAS0R,EAAM3uB,EAAKh4B,EAAKwnD,GACvB,IAAI7vB,EAkCN,SAAoBK,GAClB,SAASyvB,EAASrhD,GAChB,OAAO2xB,EAAIC,GAAK7K,OAAO/mB,GAAMmxB,SAE/B,SAASmwB,EAAYthD,GACnB,OAAO,IAAI0xB,GAAY3K,OAAO/mB,GAAMmxB,SAGtC,MAAY,WAARS,GAA4B,cAARA,EAA4B0vB,EACxC,QAAR1vB,EAAsByuB,EACnBgB,EA5CIE,CAAU3vB,GACjB4uB,EAAqB,WAAR5uB,GAA4B,WAARA,EAAoB,IAAM,GAE3Dh4B,EAAII,OAASwmD,EACf5mD,EAAM23B,EAAK33B,GACFA,EAAII,OAASwmD,IACtB5mD,EAAMJ,EAAOsC,OAAO,CAAClC,EAAK0mD,GAAQE,IAKpC,IAFA,IAAIE,EAAOlnD,EAAOW,YAAYqmD,EAAYU,EAAMtvB,IAC5CgvB,EAAOpnD,EAAOW,YAAYqmD,EAAYU,EAAMtvB,IACvCh1B,EAAI,EAAGA,EAAI4jD,EAAW5jD,IAC7B8jD,EAAK9jD,GAAc,GAAThD,EAAIgD,GACdgkD,EAAKhkD,GAAc,GAAThD,EAAIgD,GAGhB,IAAI4kD,EAAQhoD,EAAOW,YAAYqmD,EAAYY,EAAU,GACrDV,EAAK7gD,KAAK2hD,EAAO,EAAG,EAAGhB,GACvBjlD,KAAKimD,MAAQA,EACbjmD,KAAKkmD,MAAQf,EACbnlD,KAAKqlD,KAAOA,EACZrlD,KAAKq2B,IAAMA,EACXr2B,KAAKilD,UAAYA,EACjBjlD,KAAKg2B,KAAOA,EACZh2B,KAAKjB,KAAO4mD,EAAMtvB,GAGpB2uB,EAAKxnD,UAAUmD,IAAM,SAAU8D,EAAM0gD,GAInC,OAHA1gD,EAAKH,KAAK6gD,EAAMnlD,KAAKilD,WACbjlD,KAAKg2B,KAAKmvB,GAChB7gD,KAAKtE,KAAKqlD,KAAMrlD,KAAKilD,WAChBjlD,KAAKg2B,KAAKh2B,KAAKqlD,OAmDxBloD,EAAOC,QAnCP,SAAiBo/B,EAAUC,EAAMgpB,EAAYljB,EAAQ3M,GACnD8vB,EAAgBD,EAAYljB,GAM5B,IAAI8Q,EAAO,IAAI2R,EAFfpvB,EAASA,GAAU,OAHnB4G,EAAW5kB,EAAS4kB,EAAU8O,EAAiB,aAC/C7O,EAAO7kB,EAAS6kB,EAAM6O,EAAiB,SAII7sC,QAEvC0nD,EAAKloD,EAAOW,YAAY2jC,GACxB6jB,EAASnoD,EAAOW,YAAY69B,EAAKh+B,OAAS,GAC9Cg+B,EAAKn4B,KAAK8hD,EAAQ,EAAG,EAAG3pB,EAAKh+B,QAM7B,IAJA,IAAI4nD,EAAU,EACVC,EAAOX,EAAM/vB,GACb7lB,EAAIzH,KAAK6N,KAAKosB,EAAS+jB,GAElBjlD,EAAI,EAAGA,GAAK0O,EAAG1O,IAAK,CAC3B+kD,EAAOp4C,cAAc3M,EAAGo7B,EAAKh+B,QAK7B,IAHA,IAAI8nD,EAAIlT,EAAK1yC,IAAIylD,EAAQ/S,EAAK4S,OAC1BO,EAAID,EAEC1/C,EAAI,EAAGA,EAAI4+C,EAAY5+C,IAAK,CACnC2/C,EAAInT,EAAK1yC,IAAI6lD,EAAGnT,EAAK6S,OACrB,IAAK,IAAIn1C,EAAI,EAAGA,EAAIu1C,EAAMv1C,IAAKw1C,EAAEx1C,IAAMy1C,EAAEz1C,GAG3Cw1C,EAAEjiD,KAAK6hD,EAAIE,GACXA,GAAWC,EAGb,OAAOH,I,gBCrGT,IAAIloD,EAASD,EAAQ,GAAeC,OAEpCd,EAAOC,QAAU,SAAUq3B,EAAOx1B,EAAUuD,GAC1C,GAAIvE,EAAOmG,SAASqwB,GAClB,OAAOA,EACF,GAAqB,kBAAVA,EAChB,OAAOx2B,EAAOS,KAAK+1B,EAAOx1B,GACrB,GAAIuE,YAAYqB,OAAO4vB,GAC5B,OAAOx2B,EAAOS,KAAK+1B,EAAM12B,QAEzB,MAAM,IAAIe,UAAU0D,EAAO,8D,6BCR/BpF,EAAQwP,aAAe,SAAsBnB,EAAOxJ,GAKlD,OAJYwJ,EAAM,EAAIxJ,IAAQ,GAClBwJ,EAAM,EAAIxJ,IAAQ,GAClBwJ,EAAM,EAAIxJ,IAAQ,EACnBwJ,EAAM,EAAIxJ,MACN,GAGjB7E,EAAQ4Q,cAAgB,SAAuBvC,EAAO/N,EAAOuE,GAC3DwJ,EAAM,EAAIxJ,GAAOvE,IAAU,GAC3B+N,EAAM,EAAIxJ,GAAQvE,IAAU,GAAM,IAClC+N,EAAM,EAAIxJ,GAAQvE,IAAU,EAAK,IACjC+N,EAAM,EAAIxJ,GAAe,IAARvE,GAGnBN,EAAQqpD,GAAK,SAAYC,EAAKC,EAAKp7C,EAAKtJ,GAItC,IAHA,IAAI2kD,EAAO,EACPC,EAAO,EAEFxlD,EAAI,EAAGA,GAAK,EAAGA,GAAK,EAAG,CAC9B,IAAK,IAAIwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+/C,IAAS,EACTA,GAASD,IAAS9/C,EAAIxF,EAAM,EAE9B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+/C,IAAS,EACTA,GAASF,IAAS7/C,EAAIxF,EAAM,EAIhC,IAASA,EAAI,EAAGA,GAAK,EAAGA,GAAK,EAAG,CAC9B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5BggD,IAAS,EACTA,GAASF,IAAS9/C,EAAIxF,EAAM,EAE9B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5BggD,IAAS,EACTA,GAASH,IAAS7/C,EAAIxF,EAAM,EAIhCkK,EAAItJ,EAAM,GAAK2kD,IAAS,EACxBr7C,EAAItJ,EAAM,GAAK4kD,IAAS,GAG1BzpD,EAAQ0pD,IAAM,SAAaJ,EAAKC,EAAKp7C,EAAKtJ,GAIxC,IAHA,IAAI2kD,EAAO,EACPC,EAAO,EAEFxlD,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAIwF,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5B+/C,IAAS,EACTA,GAASD,IAAS9/C,EAAIxF,EAAM,EAC5BulD,IAAS,EACTA,GAASF,IAAS7/C,EAAIxF,EAAM,EAGhC,IAASA,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAASwF,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5BggD,IAAS,EACTA,GAASF,IAAS9/C,EAAIxF,EAAM,EAC5BwlD,IAAS,EACTA,GAASH,IAAS7/C,EAAIxF,EAAM,EAIhCkK,EAAItJ,EAAM,GAAK2kD,IAAS,EACxBr7C,EAAItJ,EAAM,GAAK4kD,IAAS,GAG1BzpD,EAAQ2pD,IAAM,SAAaL,EAAKC,EAAKp7C,EAAKtJ,GAQxC,IAPA,IAAI2kD,EAAO,EACPC,EAAO,EAMFxlD,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAAK,IAAIwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+/C,IAAS,EACTA,GAASD,GAAQ9/C,EAAIxF,EAAM,EAE7B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+/C,IAAS,EACTA,GAASF,GAAQ7/C,EAAIxF,EAAM,EAG/B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+/C,IAAS,EACTA,GAASD,GAAQ9/C,EAAIxF,EAAM,EAO7B,IAASA,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5BggD,IAAS,EACTA,GAASF,GAAQ9/C,EAAIxF,EAAM,EAE7B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5BggD,IAAS,EACTA,GAASH,GAAQ7/C,EAAIxF,EAAM,EAG/B,IAASwF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5BggD,IAAS,EACTA,GAASH,GAAQ7/C,EAAIxF,EAAM,EAG7BkK,EAAItJ,EAAM,GAAK2kD,IAAS,EACxBr7C,EAAItJ,EAAM,GAAK4kD,IAAS,GAG1BzpD,EAAQ4pD,OAAS,SAAgBv2C,EAAKqT,GACpC,OAASrT,GAAOqT,EAAS,UAAcrT,IAAS,GAAKqT,GAGvD,IAAImjC,EAAW,CAEb,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAC3B,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GACzB,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAGzB,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GACzB,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EACzB,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAG5B7pD,EAAQ8pD,IAAM,SAAaR,EAAKC,EAAKp7C,EAAKtJ,GAKxC,IAJA,IAAI2kD,EAAO,EACPC,EAAO,EAEPnmD,EAAMumD,EAASxoD,SAAW,EACrB4C,EAAI,EAAGA,EAAIX,EAAKW,IACvBulD,IAAS,EACTA,GAASF,IAAQO,EAAS5lD,GAAM,EAElC,IAASA,EAAIX,EAAKW,EAAI4lD,EAASxoD,OAAQ4C,IACrCwlD,IAAS,EACTA,GAASF,IAAQM,EAAS5lD,GAAM,EAGlCkK,EAAItJ,EAAM,GAAK2kD,IAAS,EACxBr7C,EAAItJ,EAAM,GAAK4kD,IAAS,GAG1BzpD,EAAQ+pD,OAAS,SAAgBn3C,EAAGzE,EAAKtJ,GACvC,IAAI2kD,EAAO,EACPC,EAAO,EAEXD,GAAa,EAAJ52C,IAAU,EAAMA,IAAM,GAC/B,IAAK,IAAI3O,EAAI,GAAIA,GAAK,GAAIA,GAAK,EAC7BulD,IAAS,EACTA,GAAS52C,IAAM3O,EAAK,GAEtB,IAASA,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5BwlD,GAAS72C,IAAM3O,EAAK,GACpBwlD,IAAS,EAEXA,IAAc,GAAJ72C,IAAa,EAAMA,IAAM,GAEnCzE,EAAItJ,EAAM,GAAK2kD,IAAS,EACxBr7C,EAAItJ,EAAM,GAAK4kD,IAAS,GAG1B,IAAIO,EAAS,CACX,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EACpD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClD,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAClD,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAEnD,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACpD,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAElD,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GACjD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EACpD,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EACjD,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAEpD,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EACnD,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EACpD,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAEjD,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EACpD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GACnD,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAElD,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAElD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GACnD,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAClD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACpD,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAEjD,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EACnD,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAClD,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAGpDhqD,EAAQiqD,WAAa,SAAoBX,EAAKC,GAE5C,IADA,IAAIp7C,EAAM,EACDlK,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAI1BkK,IAAQ,EACRA,GAHS67C,EAAW,GAAJ/lD,GADPqlD,IAAS,GAAS,EAAJrlD,EAAU,KAMnC,IAASA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAI1BkK,IAAQ,EACRA,GAHS67C,EAAO,IAAe,GAAJ/lD,GADlBslD,IAAS,GAAS,EAAJtlD,EAAU,KAMnC,OAAOkK,IAAQ,GAGjB,IAAI+7C,EAAe,CACjB,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GACvD,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAG1DlqD,EAAQ8iB,QAAU,SAAiBzP,GAEjC,IADA,IAAIlF,EAAM,EACDlK,EAAI,EAAGA,EAAIimD,EAAa7oD,OAAQ4C,IACvCkK,IAAQ,EACRA,GAAQkF,IAAQ62C,EAAajmD,GAAM,EAErC,OAAOkK,IAAQ,GAGjBnO,EAAQmqD,SAAW,SAAkB92C,EAAK1R,EAAMyoD,GAE9C,IADA,IAAI//C,EAAMgJ,EAAI7L,SAAS,GAChB6C,EAAIhJ,OAASM,GAClB0I,EAAM,IAAMA,EAGd,IADA,IAAI8D,EAAM,GACDlK,EAAI,EAAGA,EAAItC,EAAMsC,GAAKmmD,EAC7Bj8C,EAAIjK,KAAKmG,EAAIxD,MAAM5C,EAAGA,EAAImmD,IAC5B,OAAOj8C,EAAIX,KAAK,O,6BC5PlB,IAAIgF,EAAS5R,EAAQ,GACjBuU,EAAWvU,EAAQ,GAEnBiS,EAAQjS,EAAQ,IAChBswC,EAAStwC,EAAQ,IAErB,SAASypD,IACPznD,KAAKyoB,IAAM,IAAItnB,MAAM,GACrBnB,KAAK0wB,KAAO,KAGd,SAASg3B,EAAIh1B,GACX4b,EAAOvuC,KAAKC,KAAM0yB,GAElB,IAAIxD,EAAQ,IAAIu4B,EAChBznD,KAAK2nD,UAAYz4B,EAEjBlvB,KAAK4nD,WAAW14B,EAAOwD,EAAQr0B,KAEjCkU,EAASm1C,EAAKpZ,GACdnxC,EAAOC,QAAUsqD,EAEjBA,EAAIxqD,OAAS,SAAgBw1B,GAC3B,OAAO,IAAIg1B,EAAIh1B,IAGjB,IAAIm1B,EAAa,CACf,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGvBH,EAAIlqD,UAAUoqD,WAAa,SAAoB14B,EAAO7wB,GACpD6wB,EAAMwB,KAAO,IAAIvvB,MAAM,IAEvByO,EAAOE,MAAMzR,EAAII,OAAQuB,KAAKk1B,UAAW,sBAEzC,IAAI4yB,EAAK73C,EAAMrD,aAAavO,EAAK,GAC7B0pD,EAAK93C,EAAMrD,aAAavO,EAAK,GAEjC4R,EAAM82C,IAAIe,EAAIC,EAAI74B,EAAMzG,IAAK,GAC7Bq/B,EAAK54B,EAAMzG,IAAI,GACfs/B,EAAK74B,EAAMzG,IAAI,GACf,IAAK,IAAIpnB,EAAI,EAAGA,EAAI6tB,EAAMwB,KAAKjyB,OAAQ4C,GAAK,EAAG,CAC7C,IAAIyiB,EAAQ+jC,EAAWxmD,IAAM,GAC7BymD,EAAK73C,EAAM+2C,OAAOc,EAAIhkC,GACtBikC,EAAK93C,EAAM+2C,OAAOe,EAAIjkC,GACtB7T,EAAMi3C,IAAIY,EAAIC,EAAI74B,EAAMwB,KAAMrvB,KAIlCqmD,EAAIlqD,UAAUouB,QAAU,SAAiBo8B,EAAKC,EAAO18C,EAAK28C,GACxD,IAAIh5B,EAAQlvB,KAAK2nD,UAEb53C,EAAIE,EAAMrD,aAAao7C,EAAKC,GAC5Bj4C,EAAIC,EAAMrD,aAAao7C,EAAKC,EAAQ,GAGxCh4C,EAAMw2C,GAAG12C,EAAGC,EAAGkf,EAAMzG,IAAK,GAC1B1Y,EAAImf,EAAMzG,IAAI,GACdzY,EAAIkf,EAAMzG,IAAI,GAEI,YAAdzoB,KAAKwE,KACPxE,KAAKmoD,SAASj5B,EAAOnf,EAAGC,EAAGkf,EAAMzG,IAAK,GAEtCzoB,KAAKooD,SAASl5B,EAAOnf,EAAGC,EAAGkf,EAAMzG,IAAK,GAExC1Y,EAAImf,EAAMzG,IAAI,GACdzY,EAAIkf,EAAMzG,IAAI,GAEdxY,EAAMjC,cAAczC,EAAKwE,EAAGm4C,GAC5Bj4C,EAAMjC,cAAczC,EAAKyE,EAAGk4C,EAAS,IAGvCR,EAAIlqD,UAAUo6B,KAAO,SAAc75B,EAAQkE,GAEzC,IADA,IAAIvE,EAAQK,EAAOU,OAASwD,EACnBZ,EAAIY,EAAKZ,EAAItD,EAAOU,OAAQ4C,IACnCtD,EAAOsD,GAAK3D,EAEd,OAAO,GAGTgqD,EAAIlqD,UAAUyxC,OAAS,SAAgBlxC,GAErC,IADA,IAAIsqD,EAAMtqD,EAAOA,EAAOU,OAAS,GACxB4C,EAAItD,EAAOU,OAAS4pD,EAAKhnD,EAAItD,EAAOU,OAAQ4C,IACnDuO,EAAOE,MAAM/R,EAAOsD,GAAIgnD,GAE1B,OAAOtqD,EAAOkG,MAAM,EAAGlG,EAAOU,OAAS4pD,IAGzCX,EAAIlqD,UAAU2qD,SAAW,SAAkBj5B,EAAOo5B,EAAQC,EAAQh9C,EAAKtJ,GAKrE,IAJA,IAAI8N,EAAIu4C,EACJt4C,EAAIu4C,EAGClnD,EAAI,EAAGA,EAAI6tB,EAAMwB,KAAKjyB,OAAQ4C,GAAK,EAAG,CAC7C,IAAImnD,EAAOt5B,EAAMwB,KAAKrvB,GAClBonD,EAAOv5B,EAAMwB,KAAKrvB,EAAI,GAG1B4O,EAAMk3C,OAAOn3C,EAAGkf,EAAMzG,IAAK,GAE3B+/B,GAAQt5B,EAAMzG,IAAI,GAClBggC,GAAQv5B,EAAMzG,IAAI,GAClB,IAAIhI,EAAIxQ,EAAMo3C,WAAWmB,EAAMC,GAG3BtwC,EAAInI,EACRA,GAAKD,EAHGE,EAAMiQ,QAAQO,MAGN,EAChB1Q,EAAIoI,EAINlI,EAAM62C,IAAI92C,EAAGD,EAAGxE,EAAKtJ,IAGvBylD,EAAIlqD,UAAU4qD,SAAW,SAAkBl5B,EAAOo5B,EAAQC,EAAQh9C,EAAKtJ,GAKrE,IAJA,IAAI8N,EAAIw4C,EACJv4C,EAAIs4C,EAGCjnD,EAAI6tB,EAAMwB,KAAKjyB,OAAS,EAAG4C,GAAK,EAAGA,GAAK,EAAG,CAClD,IAAImnD,EAAOt5B,EAAMwB,KAAKrvB,GAClBonD,EAAOv5B,EAAMwB,KAAKrvB,EAAI,GAG1B4O,EAAMk3C,OAAOp3C,EAAGmf,EAAMzG,IAAK,GAE3B+/B,GAAQt5B,EAAMzG,IAAI,GAClBggC,GAAQv5B,EAAMzG,IAAI,GAClB,IAAIhI,EAAIxQ,EAAMo3C,WAAWmB,EAAMC,GAG3BtwC,EAAIpI,EACRA,GAAKC,EAHGC,EAAMiQ,QAAQO,MAGN,EAChBzQ,EAAImI,EAINlI,EAAM62C,IAAI/2C,EAAGC,EAAGzE,EAAKtJ,K,gBC5IvB,IAAI0X,EAAM3b,EAAQ,IACdC,EAASD,EAAQ,GAAeC,OAChCyqD,EAAS1qD,EAAQ,IAErB,SAAS2qD,EAAU1xC,GACjB,IAAI1L,EAAM0L,EAAK2xC,QAAQzsB,gBAAgBllB,EAAK4xC,OAE5C,OADAH,EAAOzxC,EAAK4xC,OACLt9C,EAITnO,EAAQ0rD,QAAU,SAAU7xC,EAAM61B,GAChC,IAAIic,EAAWzgD,KAAK6N,KAAK22B,EAAMruC,OAFjB,IAGV0G,EAAQ8R,EAAK+xC,OAAOvqD,OACxBwY,EAAK+xC,OAAS/qD,EAAOsC,OAAO,CAC1B0W,EAAK+xC,OACL/qD,EAAOW,YANK,GAMOmqD,KAErB,IAAK,IAAI1nD,EAAI,EAAGA,EAAI0nD,EAAU1nD,IAAK,CACjC,IAAIkK,EAAMo9C,EAAS1xC,GACflQ,EAAS5B,EAVD,GAUS9D,EACrB4V,EAAK+xC,OAAOh7C,cAAczC,EAAI,GAAIxE,EAAS,GAC3CkQ,EAAK+xC,OAAOh7C,cAAczC,EAAI,GAAIxE,EAAS,GAC3CkQ,EAAK+xC,OAAOh7C,cAAczC,EAAI,GAAIxE,EAAS,GAC3CkQ,EAAK+xC,OAAOh7C,cAAczC,EAAI,GAAIxE,EAAS,IAE7C,IAAIshD,EAAMpxC,EAAK+xC,OAAO/kD,MAAM,EAAG6oC,EAAMruC,QAErC,OADAwY,EAAK+xC,OAAS/xC,EAAK+xC,OAAO/kD,MAAM6oC,EAAMruC,QAC/Bkb,EAAImzB,EAAOub,K,cCdpBlrD,EAAOC,QAdP,SAAiBy/B,GAGf,IAFA,IACI3E,EADAx3B,EAAMm8B,EAAGp+B,OAENiC,KAAO,CAEZ,GAAa,OADbw3B,EAAO2E,EAAGpwB,UAAU/L,IAGb,CACLw3B,IACA2E,EAAGlvB,WAAWuqB,EAAMx3B,GACpB,MAJAm8B,EAAGlvB,WAAW,EAAGjN,M,4lECNvB,IAAIuoD,EAAMjrD,EAAQ,IACdC,EAASD,EAAQ,GAAeC,OAChC6sB,EAAY9sB,EAAQ,IACpBuU,EAAWvU,EAAQ,GACnBkrD,EAAQlrD,EAAQ,KAChB2b,EAAM3b,EAAQ,IACd0qD,EAAS1qD,EAAQ,IAqCrB,SAASmrD,EAAcnlC,EAAM3lB,EAAKw+B,EAAImF,GACpClX,EAAU/qB,KAAKC,MAEf,IAAIgjB,EAAI/kB,EAAOU,MAAM,EAAG,GAExBqB,KAAK4oD,QAAU,IAAIK,EAAI3tB,IAAIj9B,GAC3B,IAAI+qD,EAAKppD,KAAK4oD,QAAQxsB,aAAapZ,GACnChjB,KAAKqpD,OAAS,IAAIH,EAAME,GACxBvsB,EA/BF,SAAiB5lB,EAAM4lB,EAAIusB,GACzB,GAAkB,KAAdvsB,EAAGp+B,OAEL,OADAwY,EAAKqyC,OAASrrD,EAAOsC,OAAO,CAACs8B,EAAI5+B,EAAOS,KAAK,CAAC,EAAG,EAAG,EAAG,MAChDT,EAAOsC,OAAO,CAACs8B,EAAI5+B,EAAOS,KAAK,CAAC,EAAG,EAAG,EAAG,MAElD,IAAI6qD,EAAQ,IAAIL,EAAME,GAClB1oD,EAAMm8B,EAAGp+B,OACT+qD,EAAQ9oD,EAAM,GAClB6oD,EAAM/9B,OAAOqR,GACT2sB,IACFA,EAAQ,GAAKA,EACbD,EAAM/9B,OAAOvtB,EAAOU,MAAM6qD,EAAO,KAEnCD,EAAM/9B,OAAOvtB,EAAOU,MAAM,EAAG,IAC7B,IAAI8qD,EAAe,EAAN/oD,EACT6jD,EAAOtmD,EAAOU,MAAM,GACxB4lD,EAAK72C,YAAY+7C,EAAQ,EAAG,GAC5BF,EAAM/9B,OAAO+4B,GACbttC,EAAKqyC,OAASC,EAAMr6B,MACpB,IAAI3jB,EAAMtN,EAAOS,KAAKuY,EAAKqyC,QAE3B,OADAZ,EAAOn9C,GACAA,EAUFm+C,CAAO1pD,KAAM68B,EAAIusB,GAEtBppD,KAAK6oD,MAAQ5qD,EAAOS,KAAKm+B,GACzB78B,KAAKgpD,OAAS/qD,EAAOW,YAAY,GACjCoB,KAAK2pD,UAAY1rD,EAAOW,YAAY,GACpCoB,KAAKooD,SAAWpmB,EAChBhiC,KAAK4pD,MAAQ,EACb5pD,KAAKu1B,KAAO,EACZv1B,KAAK6pD,MAAQ7lC,EAEbhkB,KAAK8pD,SAAW,KAChB9pD,KAAK+pD,SAAU,EAGjBx3C,EAAS42C,EAAcr+B,GAEvBq+B,EAAa3rD,UAAUouB,QAAU,SAAUkhB,GACzC,IAAK9sC,KAAK+pD,SAAW/pD,KAAK4pD,MAAO,CAC/B,IAAII,EAAO,GAAMhqD,KAAK4pD,MAAQ,GAC1BI,EAAO,KACTA,EAAO/rD,EAAOU,MAAMqrD,EAAM,GAC1BhqD,KAAKqpD,OAAO79B,OAAOw+B,IAIvBhqD,KAAK+pD,SAAU,EACf,IAAIx+C,EAAMvL,KAAK6pD,MAAMf,QAAQ9oD,KAAM8sC,GAOnC,OANI9sC,KAAKooD,SACPpoD,KAAKqpD,OAAO79B,OAAOshB,GAEnB9sC,KAAKqpD,OAAO79B,OAAOjgB,GAErBvL,KAAKu1B,MAAQuX,EAAMruC,OACZ8M,GAGT49C,EAAa3rD,UAAU4tB,OAAS,WAC9B,GAAIprB,KAAKooD,WAAapoD,KAAK8pD,SAAU,MAAM,IAAIrqD,MAAM,oDAErD,IAAI0hC,EAAMxnB,EAAI3Z,KAAKqpD,OAAOl+B,MAAmB,EAAbnrB,KAAK4pD,MAAuB,EAAZ5pD,KAAKu1B,MAAWv1B,KAAK4oD,QAAQxsB,aAAap8B,KAAKspD,SAC/F,GAAItpD,KAAKooD,UAnFX,SAAkBp+C,EAAGpE,GACnB,IAAI2F,EAAM,EACNvB,EAAEvL,SAAWmH,EAAEnH,QAAQ8M,IAG3B,IADA,IAAI7K,EAAM4H,KAAKC,IAAIyB,EAAEvL,OAAQmH,EAAEnH,QACtB4C,EAAI,EAAGA,EAAIX,IAAOW,EACzBkK,GAAQvB,EAAE3I,GAAKuE,EAAEvE,GAGnB,OAAOkK,EA0Ec0+C,CAAQ9oB,EAAKnhC,KAAK8pD,UAAW,MAAM,IAAIrqD,MAAM,oDAElEO,KAAK8pD,SAAW3oB,EAChBnhC,KAAK4oD,QAAQrsB,SAGf4sB,EAAa3rD,UAAUuuB,WAAa,WAClC,GAAI/rB,KAAKooD,WAAanqD,EAAOmG,SAASpE,KAAK8pD,UAAW,MAAM,IAAIrqD,MAAM,mDAEtE,OAAOO,KAAK8pD,UAGdX,EAAa3rD,UAAUwuB,WAAa,SAAqBmV,GACvD,IAAKnhC,KAAKooD,SAAU,MAAM,IAAI3oD,MAAM,mDAEpCO,KAAK8pD,SAAW3oB,GAGlBgoB,EAAa3rD,UAAUyuB,OAAS,SAAiB/sB,GAC/C,GAAIc,KAAK+pD,QAAS,MAAM,IAAItqD,MAAM,8CAElCO,KAAKqpD,OAAO79B,OAAOtsB,GACnBc,KAAK4pD,OAAS1qD,EAAIT,QAGpBtB,EAAOC,QAAU+rD,G,gBCpHjB,IAAIF,EAAMjrD,EAAQ,IACdC,EAASD,EAAQ,GAAeC,OAChC6sB,EAAY9sB,EAAQ,IAGxB,SAASmrD,EAAcnlC,EAAM3lB,EAAKw+B,EAAImF,GACpClX,EAAU/qB,KAAKC,MAEfA,KAAK4oD,QAAU,IAAIK,EAAI3tB,IAAIj9B,GAC3B2B,KAAK6oD,MAAQ5qD,EAAOS,KAAKm+B,GACzB78B,KAAKgpD,OAAS/qD,EAAOW,YAAY,GACjCoB,KAAK2pD,UAAY1rD,EAAOW,YAAY,GACpCoB,KAAKooD,SAAWpmB,EAChBhiC,KAAK6pD,MAAQ7lC,EAVAhmB,EAAQ,EAavBuU,CAAS42C,EAAcr+B,GAEvBq+B,EAAa3rD,UAAUouB,QAAU,SAAUkhB,GACzC,OAAO9sC,KAAK6pD,MAAMf,QAAQ9oD,KAAM8sC,EAAO9sC,KAAKooD,WAG9Ce,EAAa3rD,UAAU4tB,OAAS,WAC9BprB,KAAK4oD,QAAQrsB,SAGfp/B,EAAOC,QAAU+rD,G,gBC1BjB,IAAIxY,EAAc3yC,EAAQ,IAC1Bb,EAAOC,QAAU8sD,EACjBA,EAAUC,YAAcA,EACxBD,EAAUE,WAAaA,EACvB,IAAIl6C,EAAKlS,EAAQ,IACbqsD,EAAa,IAAIn6C,EAAG,IAEpBo6C,EAAc,IADAtsD,EAAQ,KAEtBusD,EAAM,IAAIr6C,EAAG,GACbs6C,EAAM,IAAIt6C,EAAG,GACbu6C,EAAO,IAAIv6C,EAAG,GAGdw6C,GAFU,IAAIx6C,EAAG,IACT,IAAIA,EAAG,GACT,IAAIA,EAAG,KACby6C,EAAQ,IAAIz6C,EAAG,GAEf06C,GADQ,IAAI16C,EAAG,GACN,IAAIA,EAAG,KAChB26C,EAAO,IAAI36C,EAAG,GAEdiY,GADS,IAAIjY,EAAG,IACP,MAEb,SAAS46C,IACP,GAAe,OAAX3iC,EACF,OAAOA,EAET,IACI3f,EAAM,GACVA,EAAI,GAAK,EACT,IAAK,IAAInH,EAAI,EAAG0P,EAAI,EAAGA,EAHX,QAGsBA,GAAK,EAAG,CAExC,IADA,IAAIgX,EAAOzf,KAAK6N,KAAK7N,KAAKyf,KAAKhX,IACtBlK,EAAI,EAAGA,EAAIxF,GAAKmH,EAAI3B,IAAMkhB,GAC7BhX,EAAIvI,EAAI3B,KAAO,EADoBA,KAIrCxF,IAAMwF,GAAK2B,EAAI3B,IAAMkhB,IAGzBvf,EAAInH,KAAO0P,GAGb,OADAoX,EAAS3f,EACFA,EAGT,SAAS2hD,EAAYt3C,GAGnB,IAFA,IAAIsV,EAAS2iC,IAEJzpD,EAAI,EAAGA,EAAI8mB,EAAO1pB,OAAQ4C,IACjC,GAA0B,IAAtBwR,EAAE4E,KAAK0Q,EAAO9mB,IAChB,OAA0B,IAAtBwR,EAAEf,KAAKqW,EAAO9mB,IAOtB,OAAO,EAGT,SAAS+oD,EAAWv3C,GAClB,IAAIuC,EAAMlF,EAAGqa,KAAK1X,GAClB,OAA8D,IAAvD23C,EAAI7jC,MAAMvR,GAAK8S,OAAOrV,EAAE8Q,KAAK,IAAIoD,UAAUjV,KAAK,GAGzD,SAASo4C,EAAUv5C,EAAMo6C,GACvB,GAAIp6C,EAAO,GAET,OACS,IAAIT,EADD,IAAR66C,GAAqB,IAARA,EACD,CAAC,IAAM,KAEP,CAAC,IAAM,KAKzB,IAAIt6C,EAAKu6C,EAET,IAJAD,EAAM,IAAI76C,EAAG66C,KAIA,CAEX,IADAt6C,EAAM,IAAIP,EAAGygC,EAAYroC,KAAK6N,KAAKxF,EAAO,KACnCF,EAAII,YAAcF,GACvBF,EAAI0S,MAAM,GAQZ,GANI1S,EAAI0U,UACN1U,EAAIyJ,KAAKqwC,GAEN95C,EAAImI,MAAM,IACbnI,EAAIyJ,KAAKswC,GAENO,EAAIj1C,IAAI00C,IAIN,IAAKO,EAAIj1C,IAAI20C,GAClB,KAAOh6C,EAAIS,IAAIw5C,GAAK50C,IAAI60C,IACtBl6C,EAAIyJ,KAAK2wC,QALX,KAAOp6C,EAAIS,IAAIm5C,GAAYv0C,IAAI80C,IAC7Bn6C,EAAIyJ,KAAK2wC,GAQb,GAAIV,EADJa,EAAKv6C,EAAI6S,KAAK,KACS6mC,EAAY15C,IACjC25C,EAAWY,IAAOZ,EAAW35C,IAC7B65C,EAAY/wB,KAAKyxB,IAAOV,EAAY/wB,KAAK9oB,GACzC,OAAOA,K,iBCpGb,sBAAWtT,EAAQC,GACjB,aAGA,SAASwS,EAAQrL,EAAKsL,GACpB,IAAKtL,EAAK,MAAM,IAAI9E,MAAMoQ,GAAO,oBAKnC,SAAS0C,EAAUlV,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,EAK/B,SAAS6S,EAAI6E,EAAQC,EAAMjC,GACzB,GAAI7C,EAAG+E,KAAKF,GACV,OAAOA,EAGT/U,KAAKkV,SAAW,EAChBlV,KAAKmV,MAAQ,KACbnV,KAAKvB,OAAS,EAGduB,KAAKoV,IAAM,KAEI,OAAXL,IACW,OAATC,GAA0B,OAATA,IACnBjC,EAASiC,EACTA,EAAO,IAGThV,KAAKqV,MAAMN,GAAU,EAAGC,GAAQ,GAAIjC,GAAU,OAYlD,IAAI9U,EATkB,kBAAXd,EACTA,EAAOC,QAAU8S,EAEjB9S,EAAQ8S,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGoF,SAAW,GAGd,IAEIrX,EADoB,qBAAX0R,QAAmD,qBAAlBA,OAAO1R,OACxC0R,OAAO1R,OAEPD,EAAQ,KAAUC,OAE7B,MAAO6B,IAgIT,SAASyV,EAAe1R,EAAQ2R,GAC9B,IAAIvN,EAAIpE,EAAO8D,WAAW6N,GAE1B,OAAIvN,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASwN,EAAc5R,EAAQ6R,EAAYF,GACzC,IAAIxF,EAAIuF,EAAc1R,EAAQ2R,GAI9B,OAHIA,EAAQ,GAAKE,IACf1F,GAAKuF,EAAc1R,EAAQ2R,EAAQ,IAAM,GAEpCxF,EA8CT,SAAS2F,EAAWlO,EAAKtC,EAAOC,EAAKmH,GAGnC,IAFA,IAAIyD,EAAI,EACJtP,EAAM4H,KAAKC,IAAId,EAAIhJ,OAAQ2G,GACtB/D,EAAI8D,EAAO9D,EAAIX,EAAKW,IAAK,CAChC,IAAI4G,EAAIR,EAAIE,WAAWtG,GAAK,GAE5B2O,GAAKzD,EAIHyD,GADE/H,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAO+H,EAnNTE,EAAG+E,KAAO,SAAexE,GACvB,OAAIA,aAAeP,GAIJ,OAARO,GAA+B,kBAARA,GAC5BA,EAAIhT,YAAY6X,WAAapF,EAAGoF,UAAYnU,MAAM6B,QAAQyN,EAAI0E,QAGlEjF,EAAGxF,IAAM,SAAckL,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG3H,IAAM,SAAcqN,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG1S,UAAU6X,MAAQ,SAAeN,EAAQC,EAAMjC,GAChD,GAAsB,kBAAXgC,EACT,OAAO/U,KAAK+V,YAAYhB,EAAQC,EAAMjC,GAGxC,GAAsB,kBAAXgC,EACT,OAAO/U,KAAKgW,WAAWjB,EAAQC,EAAMjC,GAG1B,QAATiC,IACFA,EAAO,IAETpF,EAAOoF,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI7P,EAAQ,EACM,OAFlB4P,EAASA,EAAOnQ,WAAW0K,QAAQ,OAAQ,KAEhC,KACTnK,IACAnF,KAAKkV,SAAW,GAGd/P,EAAQ4P,EAAOtW,SACJ,KAATuW,EACFhV,KAAKiW,UAAUlB,EAAQ5P,EAAO4N,IAE9B/S,KAAKkW,WAAWnB,EAAQC,EAAM7P,GACf,OAAX4N,GACF/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,MAM9C7C,EAAG1S,UAAUuY,YAAc,SAAsBhB,EAAQC,EAAMjC,GACzDgC,EAAS,IACX/U,KAAKkV,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACX/U,KAAKmV,MAAQ,CAAW,SAATJ,GACf/U,KAAKvB,OAAS,GACLsW,EAAS,kBAClB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,UAEzB/U,KAAKvB,OAAS,IAEdmR,EAAOmF,EAAS,kBAChB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,SACvB,GAEF/U,KAAKvB,OAAS,GAGD,OAAXsU,GAGJ/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,IAGxC7C,EAAG1S,UAAUwY,WAAa,SAAqBjB,EAAQC,EAAMjC,GAG3D,GADAnD,EAAgC,kBAAlBmF,EAAOtW,QACjBsW,EAAOtW,QAAU,EAGnB,OAFAuB,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EACPuB,KAGTA,KAAKvB,OAAS6J,KAAK6N,KAAKpB,EAAOtW,OAAS,GACxCuB,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAGlB,IAAIwF,EAAG6J,EACHzO,EAAM,EACV,GAAe,OAAX8Q,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAGoI,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,UAGC,GAAe,OAAXkM,EACT,IAAK1R,EAAI,EAAGwF,EAAI,EAAGxF,EAAI0T,EAAOtW,OAAQ4C,GAAK,EACzCqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,KAIN,OAAO7G,KAAKoW,SAyBdlG,EAAG1S,UAAUyY,UAAY,SAAoBlB,EAAQ5P,EAAO4N,GAE1D/S,KAAKvB,OAAS6J,KAAK6N,MAAMpB,EAAOtW,OAAS0G,GAAS,GAClDnF,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAIlB,IAGIqP,EAHAzO,EAAM,EACN4E,EAAI,EAGR,GAAe,OAAXkM,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAG4C,GAAK8D,EAAO9D,GAAK,EAC3CqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,OAKX,IAAKZ,GADa0T,EAAOtW,OAAS0G,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO9D,EAAI0T,EAAOtW,OAAQ4C,GAAK,EAC1EqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,EAKbjC,KAAKoW,SA2BPlG,EAAG1S,UAAU0Y,WAAa,SAAqBnB,EAAQC,EAAM7P,GAE3DnF,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EAGd,IAAK,IAAI4X,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWtB,EAClEqB,IAEFA,IACAC,EAAWA,EAAUtB,EAAQ,EAO7B,IALA,IAAIuB,EAAQxB,EAAOtW,OAAS0G,EACxB+L,EAAMqF,EAAQF,EACdjR,EAAMkD,KAAKC,IAAIgO,EAAOA,EAAQrF,GAAO/L,EAErCuN,EAAO,EACFrR,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAKgV,EAChC3D,EAAOiD,EAAUZ,EAAQ1T,EAAGA,EAAIgV,EAASrB,GAEzChV,KAAKwW,MAAMF,GACPtW,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB,GAAY,IAARxB,EAAW,CACb,IAAIpE,EAAM,EAGV,IAFA4F,EAAOiD,EAAUZ,EAAQ1T,EAAG0T,EAAOtW,OAAQuW,GAEtC3T,EAAI,EAAGA,EAAI6P,EAAK7P,IACnByL,GAAOkI,EAGThV,KAAKwW,MAAM1J,GACP9M,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB1S,KAAKoW,SAGPlG,EAAG1S,UAAU8G,KAAO,SAAeoS,GACjCA,EAAKvB,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BqV,EAAKvB,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAE7BqV,EAAKjY,OAASuB,KAAKvB,OACnBiY,EAAKxB,SAAWlV,KAAKkV,SACrBwB,EAAKtB,IAAMpV,KAAKoV,KAGlBlF,EAAG1S,UAAUwT,MAAQ,WACnB,IAAIhB,EAAI,IAAIE,EAAG,MAEf,OADAlQ,KAAKsE,KAAK0L,GACHA,GAGTE,EAAG1S,UAAUmZ,QAAU,SAAkB5X,GACvC,KAAOiB,KAAKvB,OAASM,GACnBiB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAE9B,OAAOuB,MAITkQ,EAAG1S,UAAU4Y,MAAQ,WACnB,KAAOpW,KAAKvB,OAAS,GAAqC,IAAhCuB,KAAKmV,MAAMnV,KAAKvB,OAAS,IACjDuB,KAAKvB,SAEP,OAAOuB,KAAK4W,aAGd1G,EAAG1S,UAAUoZ,UAAY,WAKvB,OAHoB,IAAhB5W,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,KAClCnV,KAAKkV,SAAW,GAEXlV,MAGTkQ,EAAG1S,UAAUiN,QAAU,WACrB,OAAQzK,KAAKoV,IAAM,UAAY,SAAWpV,KAAK4E,SAAS,IAAM,KAiChE,IAAIiS,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYC,EAAMxG,EAAKlF,GAC9BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC,IAAIxU,EAAOuW,EAAKxY,OAASgS,EAAIhS,OAAU,EACvC8M,EAAI9M,OAASiC,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIsJ,EAAoB,EAAhBiN,EAAK9B,MAAM,GACfvP,EAAmB,EAAf6K,EAAI0E,MAAM,GACdnF,EAAIhG,EAAIpE,EAERuC,EAAS,SAAJ6H,EACLqE,EAASrE,EAAI,SAAa,EAC9BzE,EAAI4J,MAAM,GAAKhN,EAEf,IAAK,IAAI4I,EAAI,EAAGA,EAAIrQ,EAAKqQ,IAAK,CAM5B,IAHA,IAAImG,EAAS7C,IAAU,GACnB8C,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAK0P,EAAIlK,EAAK,EAIlBqQ,IADAlH,GAFAhG,EAAoB,EAAhBiN,EAAK9B,MAAM9T,KACfuE,EAAmB,EAAf6K,EAAI0E,MAAMtO,IACFsQ,GACG,SAAa,EAC5BA,EAAY,SAAJnH,EAEVzE,EAAI4J,MAAMpE,GAAa,EAARoG,EACf9C,EAAiB,EAAT6C,EAQV,OANc,IAAV7C,EACF9I,EAAI4J,MAAMpE,GAAa,EAARsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAzlBblG,EAAG1S,UAAUoH,SAAW,SAAmBoQ,EAAMqC,GAI/C,IAAI9L,EACJ,GAHA8L,EAAoB,EAAVA,GAAe,EAGZ,MAJbrC,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCzJ,EAAM,GAGN,IAFA,IAAItJ,EAAM,EACNoS,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,EAAI1Q,KAAKmV,MAAM9T,GACfqR,GAA+B,UAArBhC,GAAKzO,EAAOoS,IAAmBzP,SAAS,IAGpD2G,EADY,KADd8I,EAAS3D,IAAO,GAAKzO,EAAQ,WACVZ,IAAMrB,KAAKvB,OAAS,EAC/BoY,EAAM,EAAInE,EAAKjU,QAAUiU,EAAOnH,EAEhCmH,EAAOnH,GAEftJ,GAAO,IACI,KACTA,GAAO,GACPZ,KAMJ,IAHc,IAAVgT,IACF9I,EAAM8I,EAAMzP,SAAS,IAAM2G,GAEtBA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGT,GAAIyJ,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYR,EAAW9B,GAEvBuC,EAAYR,EAAW/B,GAC3BzJ,EAAM,GACN,IAAItD,EAAIjI,KAAKgR,QAEb,IADA/I,EAAEiN,SAAW,GACLjN,EAAEuP,UAAU,CAClB,IAAIxH,EAAI/H,EAAEwP,KAAKF,GAAW3S,SAASoQ,GAMjCzJ,GALFtD,EAAIA,EAAEyP,MAAMH,IAELC,SAGCxH,EAAIzE,EAFJsL,EAAMS,EAAYtH,EAAEvR,QAAUuR,EAAIzE,EAQ5C,IAHIvL,KAAKwX,WACPjM,EAAM,IAAMA,GAEPA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGTqE,GAAO,EAAO,oCAGhBM,EAAG1S,UAAUma,SAAW,WACtB,IAAIrM,EAAMtL,KAAKmV,MAAM,GASrB,OARoB,IAAhBnV,KAAKvB,OACP6M,GAAuB,SAAhBtL,KAAKmV,MAAM,GACO,IAAhBnV,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,GAEzC7J,GAAO,iBAAoC,SAAhBtL,KAAKmV,MAAM,GAC7BnV,KAAKvB,OAAS,GACvBmR,GAAO,EAAO,8CAEU,IAAlB5P,KAAKkV,UAAmB5J,EAAMA,GAGxC4E,EAAG1S,UAAU4N,OAAS,WACpB,OAAOpL,KAAK4E,SAAS,KAGvBsL,EAAG1S,UAAUoa,SAAW,SAAmB7E,EAAQtU,GAEjD,OADAmR,EAAyB,qBAAX3R,GACP+B,KAAK6X,YAAY5Z,EAAQ8U,EAAQtU,IAG1CyR,EAAG1S,UAAU6S,QAAU,SAAkB0C,EAAQtU,GAC/C,OAAOuB,KAAK6X,YAAY1W,MAAO4R,EAAQtU,IAGzCyR,EAAG1S,UAAUqa,YAAc,SAAsBC,EAAW/E,EAAQtU,GAClE,IAAIiF,EAAa1D,KAAK0D,aAClBqU,EAAYtZ,GAAU6J,KAAKoC,IAAI,EAAGhH,GACtCkM,EAAOlM,GAAcqU,EAAW,yCAChCnI,EAAOmI,EAAY,EAAG,+BAEtB/X,KAAKoW,QACL,IAGIxQ,EAAGvE,EAHHyK,EAA0B,OAAXiH,EACfvK,EAAM,IAAIsP,EAAUC,GAGpBC,EAAIhY,KAAKgR,QACb,GAAKlF,EAYE,CACL,IAAKzK,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAInH,GAAKuE,EAGX,KAAOvE,EAAI0W,EAAW1W,IACpBmH,EAAInH,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAI0W,EAAYrU,EAAYrC,IACtCmH,EAAInH,GAAK,EAGX,IAAKA,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAIuP,EAAY1W,EAAI,GAAKuE,EAe7B,OAAO4C,GAGLF,KAAK2P,MACP/H,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,OAAO,GAAKpI,KAAK2P,MAAMvH,IAGzBR,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,IAAIyH,EAAIzH,EACJV,EAAI,EAiBR,OAhBImI,GAAK,OACPnI,GAAK,GACLmI,KAAO,IAELA,GAAK,KACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAEFnI,EAAImI,GAIfjI,EAAG1S,UAAU4a,UAAY,SAAoB1H,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIyH,EAAIzH,EACJV,EAAI,EAoBR,OAnBqB,KAAZ,KAAJmI,KACHnI,GAAK,GACLmI,KAAO,IAEU,KAAV,IAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,GAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,IACHnI,IAEKA,GAITE,EAAG1S,UAAUqT,UAAY,WACvB,IAAIH,EAAI1Q,KAAKmV,MAAMnV,KAAKvB,OAAS,GAC7ByJ,EAAKlI,KAAKkY,WAAWxH,GACzB,OAA2B,IAAnB1Q,KAAKvB,OAAS,GAAUyJ,GAiBlCgI,EAAG1S,UAAU6a,SAAW,WACtB,GAAIrY,KAAKwX,SAAU,OAAO,EAG1B,IADA,IAAIxH,EAAI,EACC3O,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIuE,EAAI5F,KAAKoY,UAAUpY,KAAKmV,MAAM9T,IAElC,GADA2O,GAAKpK,EACK,KAANA,EAAU,MAEhB,OAAOoK,GAGTE,EAAG1S,UAAUkG,WAAa,WACxB,OAAO4E,KAAK6N,KAAKnW,KAAK6Q,YAAc,IAGtCX,EAAG1S,UAAU8a,OAAS,SAAiBC,GACrC,OAAsB,IAAlBvY,KAAKkV,SACAlV,KAAKwY,MAAMC,MAAMF,GAAOG,MAAM,GAEhC1Y,KAAKgR,SAGdd,EAAG1S,UAAUmb,SAAW,SAAmBJ,GACzC,OAAIvY,KAAK4Y,MAAML,EAAQ,GACdvY,KAAK6Y,KAAKN,GAAOG,MAAM,GAAGI,OAE5B9Y,KAAKgR,SAGdd,EAAG1S,UAAUub,MAAQ,WACnB,OAAyB,IAAlB/Y,KAAKkV,UAIdhF,EAAG1S,UAAUwb,IAAM,WACjB,OAAOhZ,KAAKgR,QAAQ8H,QAGtB5I,EAAG1S,UAAUsb,KAAO,WAKlB,OAJK9Y,KAAKwX,WACRxX,KAAKkV,UAAY,GAGZlV,MAITkQ,EAAG1S,UAAUyb,KAAO,SAAexI,GACjC,KAAOzQ,KAAKvB,OAASgS,EAAIhS,QACvBuB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAG9B,IAAK,IAAI4C,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAC9BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAG5C,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAU0b,IAAM,SAAczI,GAE/B,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKiZ,KAAKxI,IAInBP,EAAG1S,UAAU2b,GAAK,SAAa1I,GAC7B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkI,IAAIzI,GAC/CA,EAAIO,QAAQkI,IAAIlZ,OAGzBkQ,EAAG1S,UAAU4b,IAAM,SAAc3I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQiI,KAAKxI,GAChDA,EAAIO,QAAQiI,KAAKjZ,OAI1BkQ,EAAG1S,UAAU6b,MAAQ,SAAgB5I,GAEnC,IAAI7K,EAEFA,EADE5F,KAAKvB,OAASgS,EAAIhS,OAChBgS,EAEAzQ,KAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAK5C,OAFArB,KAAKvB,OAASmH,EAAEnH,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAU8b,KAAO,SAAe7I,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKqZ,MAAM5I,IAIpBP,EAAG1S,UAAU+b,IAAM,SAAc9I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQsI,KAAK7I,GAChDA,EAAIO,QAAQsI,KAAKtZ,OAG1BkQ,EAAG1S,UAAUgc,KAAO,SAAe/I,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQqI,MAAM5I,GACjDA,EAAIO,QAAQqI,MAAMrZ,OAI3BkQ,EAAG1S,UAAUic,MAAQ,SAAgBhJ,GAEnC,IAAIzG,EACApE,EACA5F,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAAKuE,EAAEuP,MAAM9T,GAGvC,GAAIrB,OAASgK,EACX,KAAO3I,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAM5B,OAFArB,KAAKvB,OAASuL,EAAEvL,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAUkc,KAAO,SAAejJ,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKyZ,MAAMhJ,IAIpBP,EAAG1S,UAAUmc,IAAM,SAAclJ,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQ0I,KAAKjJ,GAChDA,EAAIO,QAAQ0I,KAAK1Z,OAG1BkQ,EAAG1S,UAAUoc,KAAO,SAAenJ,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQyI,MAAMhJ,GACjDA,EAAIO,QAAQyI,MAAMzZ,OAI3BkQ,EAAG1S,UAAUib,MAAQ,SAAgBF,GACnC3I,EAAwB,kBAAV2I,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBvR,KAAK6N,KAAKoC,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvBvY,KAAK2W,QAAQkD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIxY,EAAI,EAAGA,EAAIwY,EAAaxY,IAC/BrB,KAAKmV,MAAM9T,GAAsB,UAAhBrB,KAAKmV,MAAM9T,GAS9B,OALIyY,EAAW,IACb9Z,KAAKmV,MAAM9T,IAAMrB,KAAKmV,MAAM9T,GAAM,UAAc,GAAKyY,GAIhD9Z,KAAKoW,SAGdlG,EAAG1S,UAAUqb,KAAO,SAAeN,GACjC,OAAOvY,KAAKgR,QAAQyH,MAAMF,IAI5BrI,EAAG1S,UAAUuc,KAAO,SAAeC,EAAKzV,GACtCqL,EAAsB,kBAARoK,GAAoBA,GAAO,GAEzC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAha,KAAK2W,QAAQ1U,EAAM,GAGjBjC,KAAKmV,MAAMlT,GADTsC,EACgBvE,KAAKmV,MAAMlT,GAAQ,GAAKgY,EAExBja,KAAKmV,MAAMlT,KAAS,GAAKgY,GAGtCja,KAAKoW,SAIdlG,EAAG1S,UAAU0c,KAAO,SAAezJ,GACjC,IAAIT,EAkBAhG,EAAGpE,EAfP,GAAsB,IAAlB5F,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAI7B,OAHAlV,KAAKkV,SAAW,EAChBlF,EAAIhQ,KAAKma,KAAK1J,GACdzQ,KAAKkV,UAAY,EACVlV,KAAK4W,YAGP,GAAsB,IAAlB5W,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAIpC,OAHAzE,EAAIyE,SAAW,EACflF,EAAIhQ,KAAKma,KAAK1J,GACdA,EAAIyE,SAAW,EACRlF,EAAE4G,YAKP5W,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5B2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,EAC1CrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAEhB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAClC2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,EACvBrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAIhB,GADAhQ,KAAKvB,OAASuL,EAAEvL,OACF,IAAV4V,EACFrU,KAAKmV,MAAMnV,KAAKvB,QAAU4V,EAC1BrU,KAAKvB,cAEA,GAAIuL,IAAMhK,KACf,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAI5B,OAAOrB,MAITkQ,EAAG1S,UAAU4c,IAAM,SAAc3J,GAC/B,IAAIjI,EACJ,OAAqB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UAC7BzE,EAAIyE,SAAW,EACf1M,EAAMxI,KAAKmO,IAAIsC,GACfA,EAAIyE,UAAY,EACT1M,GACmB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UACpClV,KAAKkV,SAAW,EAChB1M,EAAMiI,EAAItC,IAAInO,MACdA,KAAKkV,SAAW,EACT1M,GAGLxI,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkJ,KAAKzJ,GAEhDA,EAAIO,QAAQkJ,KAAKla,OAI1BkQ,EAAG1S,UAAU2c,KAAO,SAAe1J,GAEjC,GAAqB,IAAjBA,EAAIyE,SAAgB,CACtBzE,EAAIyE,SAAW,EACf,IAAIlF,EAAIhQ,KAAKka,KAAKzJ,GAElB,OADAA,EAAIyE,SAAW,EACRlF,EAAE4G,YAGJ,GAAsB,IAAlB5W,KAAKkV,SAId,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAKka,KAAKzJ,GACVzQ,KAAKkV,SAAW,EACTlV,KAAK4W,YAId,IAWI5M,EAAGpE,EAXHkQ,EAAM9V,KAAK8V,IAAIrF,GAGnB,GAAY,IAARqF,EAIF,OAHA9V,KAAKkV,SAAW,EAChBlV,KAAKvB,OAAS,EACduB,KAAKmV,MAAM,GAAK,EACTnV,KAKL8V,EAAM,GACR9L,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAE5BgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,IAC7B,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAElB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAElCgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,IACV,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAIlB,GAAc,IAAVqE,GAAehT,EAAI2I,EAAEvL,QAAUuL,IAAMhK,KACvC,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAU5B,OANArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,GAEhC2I,IAAMhK,OACRA,KAAKkV,SAAW,GAGXlV,KAAKoW,SAIdlG,EAAG1S,UAAU2Q,IAAM,SAAcsC,GAC/B,OAAOzQ,KAAKgR,QAAQmJ,KAAK1J,IA+C3B,IAAI4J,EAAc,SAAsBpD,EAAMxG,EAAKlF,GACjD,IAIIpD,EACAmS,EACApS,EANA8B,EAAIiN,EAAK9B,MACTvP,EAAI6K,EAAI0E,MACRoF,EAAIhP,EAAI4J,MACRlN,EAAI,EAIJuS,EAAY,EAAPxQ,EAAE,GACPyQ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Q,EAAE,GACP4Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Q,EAAE,GACP+Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjR,EAAE,GACPkR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpR,EAAE,GACPqR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvR,EAAE,GACPwR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1R,EAAE,GACP2R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7R,EAAE,GACP8R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhS,EAAE,GACPiS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnS,EAAE,GACPoS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1W,EAAE,GACP2W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7W,EAAE,GACP8W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhX,EAAE,GACPiX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnX,EAAE,GACPoX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtX,EAAE,GACPuX,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPzX,EAAE,GACP0X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5X,EAAE,GACP6X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/X,EAAE,GACPgY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlY,EAAE,GACPmY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrY,EAAE,GACPsY,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB1S,EAAI2J,SAAW+B,EAAK/B,SAAWzE,EAAIyE,SACnC3J,EAAI9M,OAAS,GAMb,IAAI2f,IAAQnW,GAJZE,EAAKG,KAAK+V,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAMhS,KAAK+V,KAAK5D,EAAK+B,IACRlU,KAAK+V,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDtU,IAFAC,EAAKI,KAAK+V,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENjW,EAAKG,KAAK+V,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKzD,EAAK4B,IACRlU,KAAK+V,KAAKxD,EAAK0B,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQrW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKkC,GAAQ,GACvBrU,KAAK+V,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDzU,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENnW,EAAKG,KAAK+V,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKtD,EAAKyB,IACRlU,KAAK+V,KAAKrD,EAAKuB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKrD,EAAKwB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK+B,GAAQ,GACvBrU,KAAK+V,KAAKxD,EAAK6B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQtW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKqC,GAAQ,GACvBxU,KAAK+V,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD5U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENpW,EAAKG,KAAK+V,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKnD,EAAKsB,IACRlU,KAAK+V,KAAKlD,EAAKoB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKlD,EAAKqB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK4B,GAAQ,GACvBrU,KAAK+V,KAAKrD,EAAK0B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK2B,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKkC,GAAQ,GACvBxU,KAAK+V,KAAKxD,EAAKgC,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQvW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKwC,GAAQ,GACvB3U,KAAK+V,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD/U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENrW,EAAKG,KAAK+V,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKhD,EAAKmB,IACRlU,KAAK+V,KAAK/C,EAAKiB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK/C,EAAKkB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKyB,GAAQ,GACvBrU,KAAK+V,KAAKlD,EAAKuB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKwB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK+B,GAAQ,GACvBxU,KAAK+V,KAAKrD,EAAK6B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK8B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKqC,GAAQ,GACvB3U,KAAK+V,KAAKxD,EAAKmC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQxW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK2C,IAAQ,GACvB9U,KAAK+V,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDlV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENtW,EAAKG,KAAK+V,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK7C,EAAKgB,IACRlU,KAAK+V,KAAK5C,EAAKc,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK5C,EAAKe,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKsB,GAAQ,GACvBrU,KAAK+V,KAAK/C,EAAKoB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKqB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK4B,GAAQ,GACvBxU,KAAK+V,KAAKlD,EAAK0B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK2B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKkC,GAAQ,GACvB3U,KAAK+V,KAAKrD,EAAKgC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKiC,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKwC,IAAQ,GACvB9U,KAAK+V,KAAKxD,EAAKsC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQzW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK8C,IAAQ,GACvBjV,KAAK+V,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDrV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENvW,EAAKG,KAAK+V,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK1C,EAAKa,IACRlU,KAAK+V,KAAKzC,EAAKW,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKzC,EAAKY,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKmB,GAAQ,GACvBrU,KAAK+V,KAAK5C,EAAKiB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKkB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKyB,GAAQ,GACvBxU,KAAK+V,KAAK/C,EAAKuB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKwB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK+B,GAAQ,GACvB3U,KAAK+V,KAAKlD,EAAK6B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK8B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKqC,IAAQ,GACvB9U,KAAK+V,KAAKrD,EAAKmC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKoC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK2C,IAAQ,GACvBjV,KAAK+V,KAAKxD,EAAKyC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ1W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKiD,IAAQ,GACvBpV,KAAK+V,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDxV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENxW,EAAKG,KAAK+V,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKvC,EAAKU,IACRlU,KAAK+V,KAAKtC,EAAKQ,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKtC,EAAKS,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKgB,GAAQ,GACvBrU,KAAK+V,KAAKzC,EAAKc,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKe,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKsB,GAAQ,GACvBxU,KAAK+V,KAAK5C,EAAKoB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKqB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK4B,GAAQ,GACvB3U,KAAK+V,KAAK/C,EAAK0B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK2B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKkC,IAAQ,GACvB9U,KAAK+V,KAAKlD,EAAKgC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKiC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKwC,IAAQ,GACvBjV,KAAK+V,KAAKrD,EAAKsC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKuC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK8C,IAAQ,GACvBpV,KAAK+V,KAAKxD,EAAK4C,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ3W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKoD,IAAQ,GACvBvV,KAAK+V,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD3V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENzW,EAAKG,KAAK+V,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKpC,EAAKO,IACRlU,KAAK+V,KAAKnC,EAAKK,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKnC,EAAKM,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKa,GAAQ,GACvBrU,KAAK+V,KAAKtC,EAAKW,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKY,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKmB,GAAQ,GACvBxU,KAAK+V,KAAKzC,EAAKiB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKkB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKyB,GAAQ,GACvB3U,KAAK+V,KAAK5C,EAAKuB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKwB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK+B,IAAQ,GACvB9U,KAAK+V,KAAK/C,EAAK6B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK8B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKqC,IAAQ,GACvBjV,KAAK+V,KAAKlD,EAAKmC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKoC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK2C,IAAQ,GACvBpV,KAAK+V,KAAKrD,EAAKyC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK0C,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKiD,IAAQ,GACvBvV,KAAK+V,KAAKxD,EAAK+C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ5W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKuD,IAAQ,GACvB1V,KAAK+V,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD9V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN1W,EAAKG,KAAK+V,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKI,IACRlU,KAAK+V,KAAKhC,EAAKE,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKhC,EAAKG,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKU,GAAQ,GACvBrU,KAAK+V,KAAKnC,EAAKQ,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKS,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKgB,GAAQ,GACvBxU,KAAK+V,KAAKtC,EAAKc,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKe,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKsB,GAAQ,GACvB3U,KAAK+V,KAAKzC,EAAKoB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKqB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK4B,IAAQ,GACvB9U,KAAK+V,KAAK5C,EAAK0B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK2B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKkC,IAAQ,GACvBjV,KAAK+V,KAAK/C,EAAKgC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKiC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKwC,IAAQ,GACvBpV,KAAK+V,KAAKlD,EAAKsC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKuC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK8C,IAAQ,GACvBvV,KAAK+V,KAAKrD,EAAK4C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK6C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKoD,IAAQ,GACvB1V,KAAK+V,KAAKxD,EAAKkD,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ7W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK0D,IAAQ,GACvB7V,KAAK+V,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAEN3W,EAAKG,KAAK+V,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKO,IACRrU,KAAK+V,KAAKhC,EAAKK,GAAQ,EACpCxU,EAAKI,KAAK+V,KAAKhC,EAAKM,GACpBxU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKa,GAAQ,GACvBxU,KAAK+V,KAAKnC,EAAKW,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKY,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKmB,GAAQ,GACvB3U,KAAK+V,KAAKtC,EAAKiB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKkB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKyB,IAAQ,GACvB9U,KAAK+V,KAAKzC,EAAKuB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKwB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK+B,IAAQ,GACvBjV,KAAK+V,KAAK5C,EAAK6B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK8B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKqC,IAAQ,GACvBpV,KAAK+V,KAAK/C,EAAKmC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKoC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK2C,IAAQ,GACvBvV,KAAK+V,KAAKlD,EAAKyC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK0C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKiD,IAAQ,GACvB1V,KAAK+V,KAAKrD,EAAK+C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS9W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKuD,IAAQ,GACvB7V,KAAK+V,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP5W,EAAKG,KAAK+V,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKU,IACRxU,KAAK+V,KAAKhC,EAAKQ,GAAQ,EACpC3U,EAAKI,KAAK+V,KAAKhC,EAAKS,GACpB3U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKgB,GAAQ,GACvB3U,KAAK+V,KAAKnC,EAAKc,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKe,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKsB,IAAQ,GACvB9U,KAAK+V,KAAKtC,EAAKoB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKqB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK4B,IAAQ,GACvBjV,KAAK+V,KAAKzC,EAAK0B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK2B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKkC,IAAQ,GACvBpV,KAAK+V,KAAK5C,EAAKgC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKiC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKwC,IAAQ,GACvBvV,KAAK+V,KAAK/C,EAAKsC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKuC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK8C,IAAQ,GACvB1V,KAAK+V,KAAKlD,EAAK4C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS/W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKoD,IAAQ,GACvB7V,KAAK+V,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP7W,EAAKG,KAAK+V,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKa,IACR3U,KAAK+V,KAAKhC,EAAKW,GAAQ,EACpC9U,EAAKI,KAAK+V,KAAKhC,EAAKY,GACpB9U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKmB,IAAQ,GACvB9U,KAAK+V,KAAKnC,EAAKiB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKkB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKyB,IAAQ,GACvBjV,KAAK+V,KAAKtC,EAAKuB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKwB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK+B,IAAQ,GACvBpV,KAAK+V,KAAKzC,EAAK6B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK8B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKqC,IAAQ,GACvBvV,KAAK+V,KAAK5C,EAAKmC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKoC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK2C,IAAQ,GACvB1V,KAAK+V,KAAK/C,EAAKyC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAShX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKiD,IAAQ,GACvB7V,KAAK+V,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP9W,EAAKG,KAAK+V,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKgB,KACR9U,KAAK+V,KAAKhC,EAAKc,GAAQ,EACpCjV,EAAKI,KAAK+V,KAAKhC,EAAKe,IACpBjV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKsB,IAAQ,GACvBjV,KAAK+V,KAAKnC,EAAKoB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKqB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK4B,IAAQ,GACvBpV,KAAK+V,KAAKtC,EAAK0B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK2B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKkC,IAAQ,GACvBvV,KAAK+V,KAAKzC,EAAKgC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKiC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKwC,IAAQ,GACvB1V,KAAK+V,KAAK5C,EAAKsC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASjX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK8C,IAAQ,GACvB7V,KAAK+V,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP/W,EAAKG,KAAK+V,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKmB,KACRjV,KAAK+V,KAAKhC,EAAKiB,IAAQ,EACpCpV,EAAKI,KAAK+V,KAAKhC,EAAKkB,IACpBpV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKyB,IAAQ,GACvBpV,KAAK+V,KAAKnC,EAAKuB,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKwB,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK+B,IAAQ,GACvBvV,KAAK+V,KAAKtC,EAAK6B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK8B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKqC,IAAQ,GACvB1V,KAAK+V,KAAKzC,EAAKmC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASlX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK2C,IAAQ,GACvB7V,KAAK+V,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPhX,EAAKG,KAAK+V,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKsB,KACRpV,KAAK+V,KAAKhC,EAAKoB,IAAQ,EACpCvV,EAAKI,KAAK+V,KAAKhC,EAAKqB,IACpBvV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK4B,IAAQ,GACvBvV,KAAK+V,KAAKnC,EAAK0B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK2B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKkC,IAAQ,GACvB1V,KAAK+V,KAAKtC,EAAKgC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASnX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKwC,IAAQ,GACvB7V,KAAK+V,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPjX,EAAKG,KAAK+V,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKyB,KACRvV,KAAK+V,KAAKhC,EAAKuB,IAAQ,EACpC1V,EAAKI,KAAK+V,KAAKhC,EAAKwB,IACpB1V,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK+B,IAAQ,GACvB1V,KAAK+V,KAAKnC,EAAK6B,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASpX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKqC,IAAQ,GACvB7V,KAAK+V,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPlX,EAAKG,KAAK+V,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK4B,KACR1V,KAAK+V,KAAKhC,EAAK0B,IAAQ,EACpC7V,EAAKI,KAAK+V,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASrX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKkC,IAAQ,GACvB7V,KAAK+V,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAStX,GAJbE,EAAKG,KAAK+V,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK+B,KACR7V,KAAK+V,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAjW,IAFAC,EAAKI,KAAK+V,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANtX,IACFsS,EAAE,IAAMtS,EACRsD,EAAI9M,UAEC8M,GAiDT,SAASiU,EAAYvI,EAAMxG,EAAKlF,GAE9B,OADW,IAAIkU,GACHC,KAAKzI,EAAMxG,EAAKlF,GAsB9B,SAASkU,EAAMxV,EAAGC,GAChBlK,KAAKiK,EAAIA,EACTjK,KAAKkK,EAAIA,EAvEN5B,KAAK+V,OACRhE,EAAcrD,GAiDhB9G,EAAG1S,UAAUmiB,MAAQ,SAAgBlP,EAAKlF,GACxC,IAAI/C,EACA9H,EAAMV,KAAKvB,OAASgS,EAAIhS,OAW5B,OATE+J,EADkB,KAAhBxI,KAAKvB,QAAgC,KAAfgS,EAAIhS,OACtB4b,EAAYra,KAAMyQ,EAAKlF,GACpB7K,EAAM,GACTsW,EAAWhX,KAAMyQ,EAAKlF,GACnB7K,EAAM,KArDnB,SAAmBuW,EAAMxG,EAAKlF,GAC5BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC3J,EAAI9M,OAASwY,EAAKxY,OAASgS,EAAIhS,OAI/B,IAFA,IAAI4V,EAAQ,EACRuL,EAAU,EACL7O,EAAI,EAAGA,EAAIxF,EAAI9M,OAAS,EAAGsS,IAAK,CAGvC,IAAImG,EAAS0I,EACbA,EAAU,EAGV,IAFA,IAAIzI,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAI0P,EAAIlK,EAGRmJ,GAFoB,EAAhBiH,EAAK9B,MAAM9T,KACI,EAAfoP,EAAI0E,MAAMtO,IAGdsB,EAAS,SAAJ6H,EAGTmH,EAAa,UADbhP,EAAMA,EAAKgP,EAAS,GAIpByI,IAFA1I,GAHAA,EAAUA,GAAWlH,EAAI,SAAa,GAAM,IAGxB7H,IAAO,IAAO,KAEZ,GACtB+O,GAAU,SAEZ3L,EAAI4J,MAAMpE,GAAKoG,EACf9C,EAAQ6C,EACRA,EAAS0I,EAQX,OANc,IAAVvL,EACF9I,EAAI4J,MAAMpE,GAAKsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAgBHyJ,CAAS7f,KAAMyQ,EAAKlF,GAEpBiU,EAAWxf,KAAMyQ,EAAKlF,GAGvB/C,GAWTiX,EAAKjiB,UAAUsiB,QAAU,SAAkBC,GAGzC,IAFA,IAAI5H,EAAI,IAAIhX,MAAM4e,GACdhQ,EAAIG,EAAG1S,UAAU0a,WAAW6H,GAAK,EAC5B1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrB8W,EAAE9W,GAAKrB,KAAKggB,OAAO3e,EAAG0O,EAAGgQ,GAG3B,OAAO5H,GAITsH,EAAKjiB,UAAUwiB,OAAS,SAAiB/V,EAAG8F,EAAGgQ,GAC7C,GAAU,IAAN9V,GAAWA,IAAM8V,EAAI,EAAG,OAAO9V,EAGnC,IADA,IAAIgW,EAAK,EACA5e,EAAI,EAAGA,EAAI0O,EAAG1O,IACrB4e,IAAW,EAAJhW,IAAW8F,EAAI1O,EAAI,EAC1B4I,IAAM,EAGR,OAAOgW,GAKTR,EAAKjiB,UAAU0iB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBif,EAAKjf,GAAK+e,EAAID,EAAI9e,IAClBkf,EAAKlf,GAAKgf,EAAIF,EAAI9e,KAItBoe,EAAKjiB,UAAUgjB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEngB,KAAKkgB,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIU,EAAI,EAAGA,EAAIV,EAAGU,IAAM,EAM3B,IALA,IAAI1Q,EAAI0Q,GAAK,EAETC,EAAQpY,KAAKqY,IAAI,EAAIrY,KAAKsY,GAAK7Q,GAC/B8Q,EAAQvY,KAAKwY,IAAI,EAAIxY,KAAKsY,GAAK7Q,GAE1B8C,EAAI,EAAGA,EAAIkN,EAAGlN,GAAK9C,EAI1B,IAHA,IAAIgR,EAASL,EACTM,EAASH,EAEJha,EAAI,EAAGA,EAAI4Z,EAAG5Z,IAAK,CAC1B,IAAIoa,EAAKX,EAAKzN,EAAIhM,GACdqa,EAAKX,EAAK1N,EAAIhM,GAEdsa,EAAKb,EAAKzN,EAAIhM,EAAI4Z,GAClBW,EAAKb,EAAK1N,EAAIhM,EAAI4Z,GAElBY,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKzN,EAAIhM,GAAKoa,EAAKE,EACnBZ,EAAK1N,EAAIhM,GAAKqa,EAAKE,EAEnBd,EAAKzN,EAAIhM,EAAI4Z,GAAKQ,EAAKE,EACvBZ,EAAK1N,EAAIhM,EAAI4Z,GAAKS,EAAKE,EAGnBva,IAAMkJ,IACRsR,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,KAOnB5B,EAAKjiB,UAAU8jB,YAAc,SAAsBzb,EAAGC,GACpD,IAAIia,EAAqB,EAAjBzX,KAAKoC,IAAI5E,EAAGD,GAChB0b,EAAU,EAAJxB,EACN1e,EAAI,EACR,IAAK0e,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B1e,IAGF,OAAO,GAAKA,EAAI,EAAIkgB,GAGtB9B,EAAKjiB,UAAUgkB,UAAY,SAAoBpB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAI8W,EAAIiI,EAAI/e,GAEZ+e,EAAI/e,GAAK+e,EAAIL,EAAI1e,EAAI,GACrB+e,EAAIL,EAAI1e,EAAI,GAAK8W,EAEjBA,EAAIkI,EAAIhf,GAERgf,EAAIhf,IAAMgf,EAAIN,EAAI1e,EAAI,GACtBgf,EAAIN,EAAI1e,EAAI,IAAM8W,IAItBsH,EAAKjiB,UAAUikB,aAAe,SAAuB3Q,EAAIiP,GAEvD,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAIqP,EAAoC,KAAhCpI,KAAKoZ,MAAM5Q,EAAG,EAAIzP,EAAI,GAAK0e,GACjCzX,KAAKoZ,MAAM5Q,EAAG,EAAIzP,GAAK0e,GACvB1L,EAEFvD,EAAGzP,GAAS,SAAJqP,EAGN2D,EADE3D,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT2O,EAAKjiB,UAAUmkB,WAAa,SAAqB7Q,EAAIpQ,EAAK0f,EAAKL,GAE7D,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAIX,EAAKW,IACvBgT,GAAyB,EAARvD,EAAGzP,GAEpB+e,EAAI,EAAI/e,GAAa,KAARgT,EAAgBA,KAAkB,GAC/C+L,EAAI,EAAI/e,EAAI,GAAa,KAARgT,EAAgBA,KAAkB,GAIrD,IAAKhT,EAAI,EAAIX,EAAKW,EAAI0e,IAAK1e,EACzB+e,EAAI/e,GAAK,EAGXuO,EAAiB,IAAVyE,GACPzE,EAA6B,MAAb,KAARyE,KAGVoL,EAAKjiB,UAAUokB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAI1gB,MAAM4e,GACV1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBwgB,EAAGxgB,GAAK,EAGV,OAAOwgB,GAGTpC,EAAKjiB,UAAUkiB,KAAO,SAAezV,EAAGC,EAAGqB,GACzC,IAAIwU,EAAI,EAAI/f,KAAKshB,YAAYrX,EAAExL,OAAQyL,EAAEzL,QAErC0hB,EAAMngB,KAAK8f,QAAQC,GAEnB+B,EAAI9hB,KAAK4hB,KAAK7B,GAEdK,EAAM,IAAIjf,MAAM4e,GAChBgC,EAAO,IAAI5gB,MAAM4e,GACjBiC,EAAO,IAAI7gB,MAAM4e,GAEjBkC,EAAO,IAAI9gB,MAAM4e,GACjBmC,EAAQ,IAAI/gB,MAAM4e,GAClBoC,EAAQ,IAAIhhB,MAAM4e,GAElBqC,EAAO7W,EAAI4J,MACfiN,EAAK3jB,OAASshB,EAEd/f,KAAK2hB,WAAW1X,EAAEkL,MAAOlL,EAAExL,OAAQ2hB,EAAKL,GACxC/f,KAAK2hB,WAAWzX,EAAEiL,MAAOjL,EAAEzL,OAAQwjB,EAAMlC,GAEzC/f,KAAKwgB,UAAUJ,EAAK0B,EAAGC,EAAMC,EAAMjC,EAAGI,GACtCngB,KAAKwgB,UAAUyB,EAAMH,EAAGI,EAAOC,EAAOpC,EAAGI,GAEzC,IAAK,IAAI9e,EAAI,EAAGA,EAAI0e,EAAG1e,IAAK,CAC1B,IAAIggB,EAAKU,EAAK1gB,GAAK6gB,EAAM7gB,GAAK2gB,EAAK3gB,GAAK8gB,EAAM9gB,GAC9C2gB,EAAK3gB,GAAK0gB,EAAK1gB,GAAK8gB,EAAM9gB,GAAK2gB,EAAK3gB,GAAK6gB,EAAM7gB,GAC/C0gB,EAAK1gB,GAAKggB,EAUZ,OAPArhB,KAAKwhB,UAAUO,EAAMC,EAAMjC,GAC3B/f,KAAKwgB,UAAUuB,EAAMC,EAAMI,EAAMN,EAAG/B,EAAGI,GACvCngB,KAAKwhB,UAAUY,EAAMN,EAAG/B,GACxB/f,KAAKyhB,aAAaW,EAAMrC,GAExBxU,EAAI2J,SAAWjL,EAAEiL,SAAWhL,EAAEgL,SAC9B3J,EAAI9M,OAASwL,EAAExL,OAASyL,EAAEzL,OACnB8M,EAAI6K,SAIblG,EAAG1S,UAAU+O,IAAM,SAAckE,GAC/B,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjCuB,KAAK2f,MAAMlP,EAAKlF,IAIzB2E,EAAG1S,UAAU6kB,KAAO,SAAe5R,GACjC,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjC+gB,EAAWxf,KAAMyQ,EAAKlF,IAI/B2E,EAAG1S,UAAU6gB,KAAO,SAAe5N,GACjC,OAAOzQ,KAAKgR,QAAQ2O,MAAMlP,EAAKzQ,OAGjCkQ,EAAG1S,UAAUgZ,MAAQ,SAAgB/F,GACnCb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UAIb,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAUoP,EAC1BtI,GAAU,SAAJuI,IAA0B,SAAR2D,GAC5BA,IAAU,GACVA,GAAU3D,EAAI,SAAa,EAE3B2D,GAASlM,IAAO,GAChBnI,KAAKmV,MAAM9T,GAAU,SAAL8G,EAQlB,OALc,IAAVkM,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAGAuB,MAGTkQ,EAAG1S,UAAU8kB,KAAO,SAAe7R,GACjC,OAAOzQ,KAAKgR,QAAQwF,MAAM/F,IAI5BP,EAAG1S,UAAU+kB,IAAM,WACjB,OAAOviB,KAAKuM,IAAIvM,OAIlBkQ,EAAG1S,UAAUglB,KAAO,WAClB,OAAOxiB,KAAKqe,KAAKre,KAAKgR,UAIxBd,EAAG1S,UAAUsP,IAAM,SAAc2D,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIvP,MAAMsP,EAAII,aAEbmJ,EAAM,EAAGA,EAAMtJ,EAAEjS,OAAQub,IAAO,CACvC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtJ,EAAEsJ,IAAQvJ,EAAI0E,MAAMlT,GAAQ,GAAKgY,KAAWA,EAG9C,OAAOvJ,EA8wCC+R,CAAWhS,GACnB,GAAiB,IAAbC,EAAEjS,OAAc,OAAO,IAAIyR,EAAG,GAIlC,IADA,IAAI1H,EAAMxI,KACDqB,EAAI,EAAGA,EAAIqP,EAAEjS,QACP,IAATiS,EAAErP,GADsBA,IAAKmH,EAAMA,EAAI+Z,OAI7C,KAAMlhB,EAAIqP,EAAEjS,OACV,IAAK,IAAIuZ,EAAIxP,EAAI+Z,MAAOlhB,EAAIqP,EAAEjS,OAAQ4C,IAAK2W,EAAIA,EAAEuK,MAClC,IAAT7R,EAAErP,KAENmH,EAAMA,EAAI+D,IAAIyL,IAIlB,OAAOxP,GAIT0H,EAAG1S,UAAUklB,OAAS,SAAiB/R,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAGItP,EAHA2O,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GACjB2S,EAAa,WAAe,GAAK3S,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIqE,EAAQ,EAEZ,IAAKhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAChC,IAAIuhB,EAAW5iB,KAAKmV,MAAM9T,GAAKshB,EAC3B1a,GAAsB,EAAhBjI,KAAKmV,MAAM9T,IAAUuhB,GAAa5S,EAC5ChQ,KAAKmV,MAAM9T,GAAK4G,EAAIoM,EACpBA,EAAQuO,IAAc,GAAK5S,EAGzBqE,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAIT,GAAU,IAANgiB,EAAS,CACX,IAAKpf,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAChCrB,KAAKmV,MAAM9T,EAAIof,GAAKzgB,KAAKmV,MAAM9T,GAGjC,IAAKA,EAAI,EAAGA,EAAIof,EAAGpf,IACjBrB,KAAKmV,MAAM9T,GAAK,EAGlBrB,KAAKvB,QAAUgiB,EAGjB,OAAOzgB,KAAKoW,SAGdlG,EAAG1S,UAAUqlB,MAAQ,SAAgBlS,GAGnC,OADAf,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAK0iB,OAAO/R,IAMrBT,EAAG1S,UAAU8T,OAAS,SAAiBX,EAAMmS,EAAMC,GAEjD,IAAIC,EADJpT,EAAuB,kBAATe,GAAqBA,GAAQ,GAGzCqS,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9S,EAAIW,EAAO,GACX8P,EAAInY,KAAKC,KAAKoI,EAAOX,GAAK,GAAIhQ,KAAKvB,QACnCwkB,EAAO,SAAc,WAAcjT,GAAMA,EACzCkT,EAAcH,EAMlB,GAJAC,GAAKvC,EACLuC,EAAI1a,KAAKoC,IAAI,EAAGsY,GAGZE,EAAa,CACf,IAAK,IAAI7hB,EAAI,EAAGA,EAAIof,EAAGpf,IACrB6hB,EAAY/N,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAEpC6hB,EAAYzkB,OAASgiB,EAGvB,GAAU,IAANA,QAEG,GAAIzgB,KAAKvB,OAASgiB,EAEvB,IADAzgB,KAAKvB,QAAUgiB,EACVpf,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC3BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,EAAIof,QAGjCzgB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,EAGhB,IAAI4V,EAAQ,EACZ,IAAKhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,IAAgB,IAAVgT,GAAehT,GAAK2hB,GAAI3hB,IAAK,CAChE,IAAIqR,EAAuB,EAAhB1S,KAAKmV,MAAM9T,GACtBrB,KAAKmV,MAAM9T,GAAMgT,GAAU,GAAKrE,EAAO0C,IAAS1C,EAChDqE,EAAQ3B,EAAOuQ,EAajB,OATIC,GAAyB,IAAV7O,IACjB6O,EAAY/N,MAAM+N,EAAYzkB,UAAY4V,GAGxB,IAAhBrU,KAAKvB,SACPuB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,GAGTuB,KAAKoW,SAGdlG,EAAG1S,UAAU2lB,MAAQ,SAAgBxS,EAAMmS,EAAMC,GAG/C,OADAnT,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAKsR,OAAOX,EAAMmS,EAAMC,IAIjC7S,EAAG1S,UAAU4lB,KAAO,SAAezS,GACjC,OAAO3Q,KAAKgR,QAAQ6R,MAAMlS,IAG5BT,EAAG1S,UAAU6lB,MAAQ,SAAgB1S,GACnC,OAAO3Q,KAAKgR,QAAQ0R,OAAO/R,IAI7BT,EAAG1S,UAAU8lB,KAAO,SAAe3S,GACjC,OAAO3Q,KAAKgR,QAAQmS,MAAMxS,IAG5BT,EAAG1S,UAAU+lB,MAAQ,SAAgB5S,GACnC,OAAO3Q,KAAKgR,QAAQM,OAAOX,IAI7BT,EAAG1S,UAAUob,MAAQ,SAAgBoB,GACnCpK,EAAsB,kBAARoK,GAAoBA,GAAO,GACzC,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,QAAIhQ,KAAKvB,QAAUgiB,OAGXzgB,KAAKmV,MAAMsL,GAELzI,IAIhB9H,EAAG1S,UAAUgmB,OAAS,SAAiB7S,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAAIX,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GAIrB,GAFAJ,EAAyB,IAAlB5P,KAAKkV,SAAgB,2CAExBlV,KAAKvB,QAAUgiB,EACjB,OAAOzgB,KAQT,GALU,IAANgQ,GACFyQ,IAEFzgB,KAAKvB,OAAS6J,KAAKC,IAAIkY,EAAGzgB,KAAKvB,QAErB,IAANuR,EAAS,CACX,IAAIiT,EAAO,SAAc,WAAcjT,GAAMA,EAC7ChQ,KAAKmV,MAAMnV,KAAKvB,OAAS,IAAMwkB,EAGjC,OAAOjjB,KAAKoW,SAIdlG,EAAG1S,UAAUimB,MAAQ,SAAgB9S,GACnC,OAAO3Q,KAAKgR,QAAQwS,OAAO7S,IAI7BT,EAAG1S,UAAUkb,MAAQ,SAAgBjI,GAGnC,OAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAUzQ,KAAKqR,OAAOZ,GAGV,IAAlBzQ,KAAKkV,SACa,IAAhBlV,KAAKvB,SAAiC,EAAhBuB,KAAKmV,MAAM,IAAU1E,GAC7CzQ,KAAKmV,MAAM,GAAK1E,GAAuB,EAAhBzQ,KAAKmV,MAAM,IAClCnV,KAAKkV,SAAW,EACTlV,OAGTA,KAAKkV,SAAW,EAChBlV,KAAKqR,MAAMZ,GACXzQ,KAAKkV,SAAW,EACTlV,MAIFA,KAAKyW,OAAOhG,IAGrBP,EAAG1S,UAAUiZ,OAAS,SAAiBhG,GACrCzQ,KAAKmV,MAAM,IAAM1E,EAGjB,IAAK,IAAIpP,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,IAAM,SAAWA,IAC7DrB,KAAKmV,MAAM9T,IAAM,SACbA,IAAMrB,KAAKvB,OAAS,EACtBuB,KAAKmV,MAAM9T,EAAI,GAAK,EAEpBrB,KAAKmV,MAAM9T,EAAI,KAKnB,OAFArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,EAAI,GAEjCrB,MAITkQ,EAAG1S,UAAU6T,MAAQ,SAAgBZ,GAGnC,GAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAG,OAAOzQ,KAAK0Y,OAAOjI,GAEhC,GAAsB,IAAlBzQ,KAAKkV,SAIP,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAK0Y,MAAMjI,GACXzQ,KAAKkV,SAAW,EACTlV,KAKT,GAFAA,KAAKmV,MAAM,IAAM1E,EAEG,IAAhBzQ,KAAKvB,QAAgBuB,KAAKmV,MAAM,GAAK,EACvCnV,KAAKmV,MAAM,IAAMnV,KAAKmV,MAAM,GAC5BnV,KAAKkV,SAAW,OAGhB,IAAK,IAAI7T,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,GAAK,EAAGA,IACpDrB,KAAKmV,MAAM9T,IAAM,SACjBrB,KAAKmV,MAAM9T,EAAI,IAAM,EAIzB,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAUkmB,KAAO,SAAejT,GACjC,OAAOzQ,KAAKgR,QAAQ0H,MAAMjI,IAG5BP,EAAG1S,UAAUmmB,KAAO,SAAelT,GACjC,OAAOzQ,KAAKgR,QAAQK,MAAMZ,IAG5BP,EAAG1S,UAAUomB,KAAO,WAGlB,OAFA5jB,KAAKkV,SAAW,EAETlV,MAGTkQ,EAAG1S,UAAUgb,IAAM,WACjB,OAAOxY,KAAKgR,QAAQ4S,QAGtB1T,EAAG1S,UAAUqmB,aAAe,SAAuBpT,EAAKlE,EAAKuX,GAC3D,IACIziB,EAIAqP,EALAhQ,EAAM+P,EAAIhS,OAASqlB,EAGvB9jB,KAAK2W,QAAQjW,GAGb,IAAI2T,EAAQ,EACZ,IAAKhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CAC/BqP,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,EAClC,IAAIwB,GAAwB,EAAfpF,EAAI0E,MAAM9T,IAAUkL,EAEjC8H,IADA3D,GAAa,SAARmF,IACS,KAAQA,EAAQ,SAAa,GAC3C7V,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAE1B,KAAOrP,EAAIrB,KAAKvB,OAASqlB,EAAOziB,IAE9BgT,GADA3D,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,IACrB,GACbrU,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAG1B,GAAc,IAAV2D,EAAa,OAAOrU,KAAKoW,QAK7B,IAFAxG,GAAkB,IAAXyE,GACPA,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAE3BgT,GADA3D,IAAsB,EAAhB1Q,KAAKmV,MAAM9T,IAAUgT,IACd,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJqP,EAIlB,OAFA1Q,KAAKkV,SAAW,EAETlV,KAAKoW,SAGdlG,EAAG1S,UAAUumB,SAAW,SAAmBtT,EAAKuT,GAC9C,IAAIF,GAAQ9jB,KAAKvB,OAASgS,EAAIhS,QAE1BuL,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAGJwT,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,GAGf,KADdqlB,EAAQ,GADM9jB,KAAKkY,WAAW+L,MAG5Bre,EAAIA,EAAEyd,MAAMS,GACZ9Z,EAAE0Y,OAAOoB,GACTG,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,IAI3B,IACIuZ,EADAlS,EAAIkE,EAAEvL,OAASmH,EAAEnH,OAGrB,GAAa,QAATulB,EAAgB,EAClBhM,EAAI,IAAI9H,EAAG,OACTzR,OAASqH,EAAI,EACfkS,EAAE7C,MAAQ,IAAIhU,MAAM6W,EAAEvZ,QACtB,IAAK,IAAI4C,EAAI,EAAGA,EAAI2W,EAAEvZ,OAAQ4C,IAC5B2W,EAAE7C,MAAM9T,GAAK,EAIjB,IAAI6iB,EAAOla,EAAEgH,QAAQ6S,aAAaje,EAAG,EAAGE,GAClB,IAAlBoe,EAAKhP,WACPlL,EAAIka,EACAlM,IACFA,EAAE7C,MAAMrP,GAAK,IAIjB,IAAK,IAAIe,EAAIf,EAAI,EAAGe,GAAK,EAAGA,IAAK,CAC/B,IAAIsd,EAAmC,UAAL,EAAxBna,EAAEmL,MAAMvP,EAAEnH,OAASoI,KACE,EAA5BmD,EAAEmL,MAAMvP,EAAEnH,OAASoI,EAAI,IAO1B,IAHAsd,EAAK7b,KAAKC,IAAK4b,EAAKF,EAAO,EAAG,UAE9Bja,EAAE6Z,aAAaje,EAAGue,EAAItd,GACA,IAAfmD,EAAEkL,UACPiP,IACAna,EAAEkL,SAAW,EACblL,EAAE6Z,aAAaje,EAAG,EAAGiB,GAChBmD,EAAEwN,WACLxN,EAAEkL,UAAY,GAGd8C,IACFA,EAAE7C,MAAMtO,GAAKsd,GAajB,OAVInM,GACFA,EAAE5B,QAEJpM,EAAEoM,QAGW,QAAT4N,GAA4B,IAAVF,GACpB9Z,EAAEsH,OAAOwS,GAGJ,CACLM,IAAKpM,GAAK,KACV9G,IAAKlH,IAQTkG,EAAG1S,UAAU6mB,OAAS,SAAiB5T,EAAKuT,EAAMM,GAGhD,OAFA1U,GAAQa,EAAI+G,UAERxX,KAAKwX,SACA,CACL4M,IAAK,IAAIlU,EAAG,GACZgB,IAAK,IAAIhB,EAAG,IAKM,IAAlBlQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAKuT,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGH,QAATgL,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIgJ,KAAKzJ,IAIN,CACL2T,IAAKA,EACLlT,IAAKA,IAIa,IAAlBlR,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKqkB,OAAO5T,EAAIuI,MAAOgL,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGT,CACLoL,IAAKA,EACLlT,IAAK1I,EAAI0I,MAI0B,KAAlClR,KAAKkV,SAAWzE,EAAIyE,WACvB1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAIuI,MAAOgL,GAEtB,QAATA,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIiJ,KAAK1J,IAIN,CACL2T,IAAK5b,EAAI4b,IACTlT,IAAKA,IAOLT,EAAIhS,OAASuB,KAAKvB,QAAUuB,KAAK8V,IAAIrF,GAAO,EACvC,CACL2T,IAAK,IAAIlU,EAAG,GACZgB,IAAKlR,MAKU,IAAfyQ,EAAIhS,OACO,QAATulB,EACK,CACLI,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,MAII,QAAT8S,EACK,CACLI,IAAK,KACLlT,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7B,CACLiP,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7BnV,KAAK+jB,SAAStT,EAAKuT,GAlF1B,IAAII,EAAKlT,EAAK1I,GAsFhB0H,EAAG1S,UAAU4mB,IAAM,SAAc3T,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAO2T,KAIxClU,EAAG1S,UAAU0T,IAAM,SAAcT,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAOS,KAGxChB,EAAG1S,UAAUgnB,KAAO,SAAe/T,GACjC,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAMS,KAIvChB,EAAG1S,UAAUinB,SAAW,SAAmBhU,GACzC,IAAIiU,EAAK1kB,KAAKqkB,OAAO5T,GAGrB,GAAIiU,EAAGxT,IAAIsG,SAAU,OAAOkN,EAAGN,IAE/B,IAAIlT,EAA0B,IAApBwT,EAAGN,IAAIlP,SAAiBwP,EAAGxT,IAAIiJ,KAAK1J,GAAOiU,EAAGxT,IAEpDyT,EAAOlU,EAAI8S,MAAM,GACjBqB,EAAKnU,EAAIU,MAAM,GACf2E,EAAM5E,EAAI4E,IAAI6O,GAGlB,OAAI7O,EAAM,GAAY,IAAP8O,GAAoB,IAAR9O,EAAkB4O,EAAGN,IAGrB,IAApBM,EAAGN,IAAIlP,SAAiBwP,EAAGN,IAAI/S,MAAM,GAAKqT,EAAGN,IAAI1L,MAAM,IAGhExI,EAAG1S,UAAUia,KAAO,SAAehH,GACjCb,EAAOa,GAAO,UAId,IAHA,IAAIoC,GAAK,GAAK,IAAMpC,EAEhBoU,EAAM,EACDxjB,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IACpCwjB,GAAOhS,EAAIgS,GAAuB,EAAhB7kB,KAAKmV,MAAM9T,KAAWoP,EAG1C,OAAOoU,GAIT3U,EAAG1S,UAAUka,MAAQ,SAAgBjH,GACnCb,EAAOa,GAAO,UAGd,IADA,IAAI4D,EAAQ,EACHhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAkB,SAARgT,EAC9BrU,KAAKmV,MAAM9T,GAAMqP,EAAID,EAAO,EAC5B4D,EAAQ3D,EAAID,EAGd,OAAOzQ,KAAKoW,SAGdlG,EAAG1S,UAAU+mB,KAAO,SAAe9T,GACjC,OAAOzQ,KAAKgR,QAAQ0G,MAAMjH,IAG5BP,EAAG1S,UAAUsnB,KAAO,SAAejS,GACjCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIvN,EAAIjK,KACJkK,EAAI2I,EAAE7B,QAGR/G,EADiB,IAAfA,EAAEiL,SACAjL,EAAEua,KAAK3R,GAEP5I,EAAE+G,QAaR,IATA,IAAI+T,EAAI,IAAI7U,EAAG,GACX8U,EAAI,IAAI9U,EAAG,GAGX+U,EAAI,IAAI/U,EAAG,GACXgV,EAAI,IAAIhV,EAAG,GAEXT,EAAI,EAEDxF,EAAEkb,UAAYjb,EAAEib,UACrBlb,EAAEqH,OAAO,GACTpH,EAAEoH,OAAO,KACP7B,EAMJ,IAHA,IAAI2V,EAAKlb,EAAE8G,QACPqU,EAAKpb,EAAE+G,SAEH/G,EAAEuN,UAAU,CAClB,IAAK,IAAInW,EAAI,EAAGikB,EAAK,EAAyB,KAArBrb,EAAEkL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA4I,EAAEqH,OAAOjQ,GACFA,KAAM,IACP0jB,EAAE3T,SAAW4T,EAAE5T,WACjB2T,EAAE7K,KAAKkL,GACPJ,EAAE7K,KAAKkL,IAGTN,EAAEzT,OAAO,GACT0T,EAAE1T,OAAO,GAIb,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArBrb,EAAEiL,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAqD,EAAEoH,OAAOzK,GACFA,KAAM,IACPoe,EAAE7T,SAAW8T,EAAE9T,WACjB6T,EAAE/K,KAAKkL,GACPF,EAAE/K,KAAKkL,IAGTJ,EAAE3T,OAAO,GACT4T,EAAE5T,OAAO,GAITrH,EAAE6L,IAAI5L,IAAM,GACdD,EAAEkQ,KAAKjQ,GACP6a,EAAE5K,KAAK8K,GACPD,EAAE7K,KAAK+K,KAEPhb,EAAEiQ,KAAKlQ,GACPgb,EAAE9K,KAAK4K,GACPG,EAAE/K,KAAK6K,IAIX,MAAO,CACLhb,EAAGib,EACHrf,EAAGsf,EACHM,IAAKtb,EAAEwY,OAAOjT,KAOlBS,EAAG1S,UAAUioB,OAAS,SAAiB5S,GACrCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIxN,EAAIhK,KACJ4F,EAAIiN,EAAE7B,QAGRhH,EADiB,IAAfA,EAAEkL,SACAlL,EAAEwa,KAAK3R,GAEP7I,EAAEgH,QAQR,IALA,IAuCIxI,EAvCAkd,EAAK,IAAIxV,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GAEZ0V,EAAQhgB,EAAEoL,QAEPhH,EAAE8H,KAAK,GAAK,GAAKlM,EAAEkM,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzQ,EAAI,EAAGikB,EAAK,EAAyB,KAArBtb,EAAEmL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA2I,EAAEsH,OAAOjQ,GACFA,KAAM,GACPqkB,EAAGtU,SACLsU,EAAGxL,KAAK0L,GAGVF,EAAGpU,OAAO,GAId,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArB3f,EAAEuP,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAjB,EAAE0L,OAAOzK,GACFA,KAAM,GACP8e,EAAGvU,SACLuU,EAAGzL,KAAK0L,GAGVD,EAAGrU,OAAO,GAIVtH,EAAE8L,IAAIlQ,IAAM,GACdoE,EAAEmQ,KAAKvU,GACP8f,EAAGvL,KAAKwL,KAER/f,EAAEuU,KAAKnQ,GACP2b,EAAGxL,KAAKuL,IAeZ,OATEld,EADgB,IAAdwB,EAAE8H,KAAK,GACH4T,EAEAC,GAGA7T,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKrH,GAGJrK,GAGT0H,EAAG1S,UAAUgoB,IAAM,SAAc/U,GAC/B,GAAIzQ,KAAKwX,SAAU,OAAO/G,EAAI+H,MAC9B,GAAI/H,EAAI+G,SAAU,OAAOxX,KAAKwY,MAE9B,IAAIxO,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAAIO,QACZhH,EAAEkL,SAAW,EACbtP,EAAEsP,SAAW,EAGb,IAAK,IAAI4O,EAAQ,EAAG9Z,EAAEmb,UAAYvf,EAAEuf,SAAUrB,IAC5C9Z,EAAEsH,OAAO,GACT1L,EAAE0L,OAAO,GAGX,OAAG,CACD,KAAOtH,EAAEmb,UACPnb,EAAEsH,OAAO,GAEX,KAAO1L,EAAEuf,UACPvf,EAAE0L,OAAO,GAGX,IAAItB,EAAIhG,EAAE8L,IAAIlQ,GACd,GAAIoK,EAAI,EAAG,CAET,IAAImI,EAAInO,EACRA,EAAIpE,EACJA,EAAIuS,OACC,GAAU,IAANnI,GAAyB,IAAdpK,EAAEkM,KAAK,GAC3B,MAGF9H,EAAEmQ,KAAKvU,GAGT,OAAOA,EAAE8c,OAAOoB,IAIlB5T,EAAG1S,UAAUqoB,KAAO,SAAepV,GACjC,OAAOzQ,KAAK8kB,KAAKrU,GAAKzG,EAAEwa,KAAK/T,IAG/BP,EAAG1S,UAAU2nB,OAAS,WACpB,OAA+B,KAAP,EAAhBnlB,KAAKmV,MAAM,KAGrBjF,EAAG1S,UAAU4T,MAAQ,WACnB,OAA+B,KAAP,EAAhBpR,KAAKmV,MAAM,KAIrBjF,EAAG1S,UAAU2T,MAAQ,SAAgBV,GACnC,OAAOzQ,KAAKmV,MAAM,GAAK1E,GAIzBP,EAAG1S,UAAUsoB,MAAQ,SAAgB9L,GACnCpK,EAAsB,kBAARoK,GACd,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,GAAIhQ,KAAKvB,QAAUgiB,EAGjB,OAFAzgB,KAAK2W,QAAQ8J,EAAI,GACjBzgB,KAAKmV,MAAMsL,IAAMzI,EACVhY,KAKT,IADA,IAAIqU,EAAQ2D,EACH3W,EAAIof,EAAa,IAAVpM,GAAehT,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACnD,IAAIqP,EAAoB,EAAhB1Q,KAAKmV,MAAM9T,GAEnBgT,GADA3D,GAAK2D,KACS,GACd3D,GAAK,SACL1Q,KAAKmV,MAAM9T,GAAKqP,EAMlB,OAJc,IAAV2D,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAEAuB,MAGTkQ,EAAG1S,UAAUga,OAAS,WACpB,OAAuB,IAAhBxX,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,IAGzCjF,EAAG1S,UAAUsU,KAAO,SAAerB,GACjC,IAOIjI,EAPA0M,EAAWzE,EAAM,EAErB,GAAsB,IAAlBzQ,KAAKkV,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBlV,KAAKkV,UAAkBA,EAAU,OAAO,EAK5C,GAHAlV,KAAKoW,QAGDpW,KAAKvB,OAAS,EAChB+J,EAAM,MACD,CACD0M,IACFzE,GAAOA,GAGTb,EAAOa,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhB1Q,KAAKmV,MAAM,GACnB3M,EAAMkI,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAOT0H,EAAG1S,UAAUsY,IAAM,SAAcrF,GAC/B,GAAsB,IAAlBzQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAQ,EACvD,GAAsB,IAAlBlV,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAO,EAEtD,IAAI1M,EAAMxI,KAAK+lB,KAAKtV,GACpB,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAIT0H,EAAG1S,UAAUuoB,KAAO,SAAetV,GAEjC,GAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAO,EACrC,GAAIuB,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAQ,EAGtC,IADA,IAAI+J,EAAM,EACDnH,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAI2I,EAAoB,EAAhBhK,KAAKmV,MAAM9T,GACfuE,EAAmB,EAAf6K,EAAI0E,MAAM9T,GAElB,GAAI2I,IAAMpE,EAAV,CACIoE,EAAIpE,EACN4C,GAAO,EACEwB,EAAIpE,IACb4C,EAAM,GAER,OAEF,OAAOA,GAGT0H,EAAG1S,UAAUwoB,IAAM,SAAcvV,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUyoB,GAAK,SAAaxV,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU0oB,KAAO,SAAezV,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU2oB,IAAM,SAAc1V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAU4oB,IAAM,SAAc3V,GAC/B,OAA2B,IAApBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAU6oB,GAAK,SAAa5V,GAC7B,OAA0B,IAAnBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU8oB,KAAO,SAAe7V,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU+oB,IAAM,SAAc9V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAUgpB,IAAM,SAAc/V,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUipB,GAAK,SAAahW,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAOlBP,EAAGkF,IAAM,SAAc3E,GACrB,OAAO,IAAIiW,EAAIjW,IAGjBP,EAAG1S,UAAUmpB,MAAQ,SAAgBC,GAGnC,OAFAhX,GAAQ5P,KAAKoV,IAAK,yCAClBxF,EAAyB,IAAlB5P,KAAKkV,SAAgB,iCACrB0R,EAAIC,UAAU7mB,MAAM8mB,UAAUF,IAGvC1W,EAAG1S,UAAUupB,QAAU,WAErB,OADAnX,EAAO5P,KAAKoV,IAAK,wDACVpV,KAAKoV,IAAI4R,YAAYhnB,OAG9BkQ,EAAG1S,UAAUspB,UAAY,SAAoBF,GAE3C,OADA5mB,KAAKoV,IAAMwR,EACJ5mB,MAGTkQ,EAAG1S,UAAUypB,SAAW,SAAmBL,GAEzC,OADAhX,GAAQ5P,KAAKoV,IAAK,yCACXpV,KAAK8mB,UAAUF,IAGxB1W,EAAG1S,UAAU0pB,OAAS,SAAiBzW,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIgF,IAAIpa,KAAMyQ,IAG5BP,EAAG1S,UAAU2pB,QAAU,SAAkB1W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI8E,KAAKla,KAAMyQ,IAG7BP,EAAG1S,UAAU4pB,OAAS,SAAiB3W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIjH,IAAInO,KAAMyQ,IAG5BP,EAAG1S,UAAU6pB,QAAU,SAAkB5W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI+E,KAAKna,KAAMyQ,IAG7BP,EAAG1S,UAAU8pB,OAAS,SAAiB7W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAImS,IAAIvnB,KAAMyQ,IAG5BP,EAAG1S,UAAUgqB,OAAS,SAAiB/W,GAGrC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAI7I,IAAIvM,KAAMyQ,IAG5BP,EAAG1S,UAAUkqB,QAAU,SAAkBjX,GAGvC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAIiJ,KAAKre,KAAMyQ,IAG7BP,EAAG1S,UAAUmqB,OAAS,WAGpB,OAFA/X,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAImN,IAAIviB,OAGtBkQ,EAAG1S,UAAUqqB,QAAU,WAGrB,OAFAjY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIoN,KAAKxiB,OAIvBkQ,EAAG1S,UAAUsqB,QAAU,WAGrB,OAFAlY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI2S,KAAK/nB,OAGvBkQ,EAAG1S,UAAUwqB,QAAU,WAGrB,OAFApY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIyQ,KAAK7lB,OAIvBkQ,EAAG1S,UAAUyqB,OAAS,WAGpB,OAFArY,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI4D,IAAIhZ,OAGtBkQ,EAAG1S,UAAU0qB,OAAS,SAAiBzX,GAGrC,OAFAb,EAAO5P,KAAKoV,MAAQ3E,EAAI2E,IAAK,qBAC7BpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAItI,IAAI9M,KAAMyQ,IAI5B,IAAI0X,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQhmB,EAAMqQ,GAErB7S,KAAKwC,KAAOA,EACZxC,KAAK6S,EAAI,IAAI3C,EAAG2C,EAAG,IACnB7S,KAAK6F,EAAI7F,KAAK6S,EAAEhC,YAChB7Q,KAAK+Q,EAAI,IAAIb,EAAG,GAAGwS,OAAO1iB,KAAK6F,GAAGsU,KAAKna,KAAK6S,GAE5C7S,KAAKyoB,IAAMzoB,KAAK0oB,OAiDlB,SAASC,IACPH,EAAOzoB,KACLC,KACA,OACA,2EA+DJ,SAAS4oB,IACPJ,EAAOzoB,KACLC,KACA,OACA,kEAIJ,SAAS6oB,IACPL,EAAOzoB,KACLC,KACA,OACA,yDAIJ,SAAS8oB,IAEPN,EAAOzoB,KACLC,KACA,QACA,uEA8CJ,SAAS0mB,EAAK5gB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIijB,EAAQ7Y,EAAG8Y,OAAOljB,GACtB9F,KAAK8F,EAAIijB,EAAMlW,EACf7S,KAAK+oB,MAAQA,OAEbnZ,EAAO9J,EAAEkgB,IAAI,GAAI,kCACjBhmB,KAAK8F,EAAIA,EACT9F,KAAK+oB,MAAQ,KAkOjB,SAASE,EAAMnjB,GACb4gB,EAAI3mB,KAAKC,KAAM8F,GAEf9F,KAAK8jB,MAAQ9jB,KAAK8F,EAAE+K,YAChB7Q,KAAK8jB,MAAQ,KAAO,IACtB9jB,KAAK8jB,OAAS,GAAM9jB,KAAK8jB,MAAQ,IAGnC9jB,KAAKgQ,EAAI,IAAIE,EAAG,GAAGwS,OAAO1iB,KAAK8jB,OAC/B9jB,KAAK4kB,GAAK5kB,KAAKkpB,KAAKlpB,KAAKgQ,EAAEuS,OAC3BviB,KAAKmpB,KAAOnpB,KAAKgQ,EAAEyV,OAAOzlB,KAAK8F,GAE/B9F,KAAKopB,KAAOppB,KAAKmpB,KAAK5c,IAAIvM,KAAKgQ,GAAGqB,MAAM,GAAG+S,IAAIpkB,KAAK8F,GACpD9F,KAAKopB,KAAOppB,KAAKopB,KAAK5E,KAAKxkB,KAAKgQ,GAChChQ,KAAKopB,KAAOppB,KAAKgQ,EAAE7B,IAAInO,KAAKopB,MA5a9BZ,EAAOhrB,UAAUkrB,KAAO,WACtB,IAAID,EAAM,IAAIvY,EAAG,MAEjB,OADAuY,EAAItT,MAAQ,IAAIhU,MAAMmH,KAAK6N,KAAKnW,KAAK6F,EAAI,KAClC4iB,GAGTD,EAAOhrB,UAAU6rB,QAAU,SAAkB5Y,GAG3C,IACI6Y,EADAtZ,EAAIS,EAGR,GACEzQ,KAAKupB,MAAMvZ,EAAGhQ,KAAKyoB,KAGnBa,GADAtZ,GADAA,EAAIhQ,KAAKwpB,MAAMxZ,IACTkK,KAAKla,KAAKyoB,MACP5X,kBACFyY,EAAOtpB,KAAK6F,GAErB,IAAIiQ,EAAMwT,EAAOtpB,KAAK6F,GAAK,EAAImK,EAAE+V,KAAK/lB,KAAK6S,GAgB3C,OAfY,IAARiD,GACF9F,EAAEmF,MAAM,GAAK,EACbnF,EAAEvR,OAAS,GACFqX,EAAM,EACf9F,EAAEmK,KAAKna,KAAK6S,QAEI1T,IAAZ6Q,EAAEoG,MAEJpG,EAAEoG,QAGFpG,EAAEyZ,SAICzZ,GAGTwY,EAAOhrB,UAAU+rB,MAAQ,SAAgBG,EAAOne,GAC9Cme,EAAMpY,OAAOtR,KAAK6F,EAAG,EAAG0F,IAG1Bid,EAAOhrB,UAAUgsB,MAAQ,SAAgB/Y,GACvC,OAAOA,EAAI4N,KAAKre,KAAK+Q,IASvBwB,EAASoW,EAAMH,GAEfG,EAAKnrB,UAAU+rB,MAAQ,SAAgBG,EAAOC,GAK5C,IAHA,IAAI1G,EAAO,QAEP2G,EAASthB,KAAKC,IAAImhB,EAAMjrB,OAAQ,GAC3B4C,EAAI,EAAGA,EAAIuoB,EAAQvoB,IAC1BsoB,EAAOxU,MAAM9T,GAAKqoB,EAAMvU,MAAM9T,GAIhC,GAFAsoB,EAAOlrB,OAASmrB,EAEZF,EAAMjrB,QAAU,EAGlB,OAFAirB,EAAMvU,MAAM,GAAK,OACjBuU,EAAMjrB,OAAS,GAKjB,IAAIorB,EAAOH,EAAMvU,MAAM,GAGvB,IAFAwU,EAAOxU,MAAMwU,EAAOlrB,UAAYorB,EAAO5G,EAElC5hB,EAAI,GAAIA,EAAIqoB,EAAMjrB,OAAQ4C,IAAK,CAClC,IAAIyoB,EAAwB,EAAjBJ,EAAMvU,MAAM9T,GACvBqoB,EAAMvU,MAAM9T,EAAI,KAAQyoB,EAAO7G,IAAS,EAAM4G,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMvU,MAAM9T,EAAI,IAAMwoB,EACT,IAATA,GAAcH,EAAMjrB,OAAS,GAC/BirB,EAAMjrB,QAAU,GAEhBirB,EAAMjrB,QAAU,GAIpBkqB,EAAKnrB,UAAUgsB,MAAQ,SAAgB/Y,GAErCA,EAAI0E,MAAM1E,EAAIhS,QAAU,EACxBgS,EAAI0E,MAAM1E,EAAIhS,OAAS,GAAK,EAC5BgS,EAAIhS,QAAU,EAId,IADA,IAAI0J,EAAK,EACA9G,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAIqP,EAAmB,EAAfD,EAAI0E,MAAM9T,GAClB8G,GAAU,IAAJuI,EACND,EAAI0E,MAAM9T,GAAU,SAAL8G,EACfA,EAAS,GAAJuI,GAAavI,EAAK,SAAa,GAUtC,OANkC,IAA9BsI,EAAI0E,MAAM1E,EAAIhS,OAAS,KACzBgS,EAAIhS,SAC8B,IAA9BgS,EAAI0E,MAAM1E,EAAIhS,OAAS,IACzBgS,EAAIhS,UAGDgS,GAST8B,EAASqW,EAAMJ,GAQfjW,EAASsW,EAAML,GASfjW,EAASuW,EAAQN,GAEjBM,EAAOtrB,UAAUgsB,MAAQ,SAAgB/Y,GAGvC,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAI6G,EAA0B,IAAL,EAAfuI,EAAI0E,MAAM9T,IAAiBgT,EACjClM,EAAU,SAALD,EACTA,KAAQ,GAERuI,EAAI0E,MAAM9T,GAAK8G,EACfkM,EAAQnM,EAKV,OAHc,IAAVmM,IACF5D,EAAI0E,MAAM1E,EAAIhS,UAAY4V,GAErB5D,GAITP,EAAG8Y,OAAS,SAAgBxmB,GAE1B,GAAI2lB,EAAO3lB,GAAO,OAAO2lB,EAAO3lB,GAEhC,IAAIumB,EACJ,GAAa,SAATvmB,EACFumB,EAAQ,IAAIJ,OACP,GAAa,SAATnmB,EACTumB,EAAQ,IAAIH,OACP,GAAa,SAATpmB,EACTumB,EAAQ,IAAIF,MACP,IAAa,WAATrmB,EAGT,MAAM,IAAI/C,MAAM,iBAAmB+C,GAFnCumB,EAAQ,IAAID,EAMd,OAFAX,EAAO3lB,GAAQumB,EAERA,GAkBTrC,EAAIlpB,UAAUoqB,SAAW,SAAmB5d,GAC1C4F,EAAsB,IAAf5F,EAAEkL,SAAgB,iCACzBtF,EAAO5F,EAAEoL,IAAK,oCAGhBsR,EAAIlpB,UAAUiqB,SAAW,SAAmBzd,EAAGpE,GAC7CgK,EAAqC,KAA7B5F,EAAEkL,SAAWtP,EAAEsP,UAAiB,iCACxCtF,EAAO5F,EAAEoL,KAAOpL,EAAEoL,MAAQxP,EAAEwP,IAC1B,oCAGJsR,EAAIlpB,UAAU0rB,KAAO,SAAelf,GAClC,OAAIhK,KAAK+oB,MAAc/oB,KAAK+oB,MAAMM,QAAQrf,GAAG8c,UAAU9mB,MAChDgK,EAAEwa,KAAKxkB,KAAK8F,GAAGghB,UAAU9mB,OAGlC0mB,EAAIlpB,UAAUwb,IAAM,SAAchP,GAChC,OAAIA,EAAEwN,SACGxN,EAAEgH,QAGJhR,KAAK8F,EAAEqI,IAAInE,GAAG8c,UAAU9mB,OAGjC0mB,EAAIlpB,UAAU4c,IAAM,SAAcpQ,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEoQ,IAAIxU,GAIhB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU0c,KAAO,SAAelQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEkQ,KAAKtU,GAIjB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU2Q,IAAM,SAAcnE,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmE,IAAIvI,GAIhB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU2c,KAAO,SAAenQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmQ,KAAKvU,GAIjB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU+pB,IAAM,SAAcvd,EAAGyG,GAEnC,OADAzQ,KAAK4nB,SAAS5d,GACPhK,KAAKkpB,KAAKlf,EAAEqZ,MAAM5S,KAG3BiW,EAAIlpB,UAAU6gB,KAAO,SAAerU,EAAGpE,GAErC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEqU,KAAKzY,KAG1B8gB,EAAIlpB,UAAU+O,IAAM,SAAcvC,EAAGpE,GAEnC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEuC,IAAI3G,KAGzB8gB,EAAIlpB,UAAUglB,KAAO,SAAexY,GAClC,OAAOhK,KAAKqe,KAAKrU,EAAGA,EAAEgH,UAGxB0V,EAAIlpB,UAAU+kB,IAAM,SAAcvY,GAChC,OAAOhK,KAAKuM,IAAIvC,EAAGA,IAGrB0c,EAAIlpB,UAAUuqB,KAAO,SAAe/d,GAClC,GAAIA,EAAEwN,SAAU,OAAOxN,EAAEgH,QAEzB,IAAI+Y,EAAO/pB,KAAK8F,EAAEqL,MAAM,GAIxB,GAHAvB,EAAOma,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAIjd,EAAM9M,KAAK8F,EAAEsU,IAAI,IAAIlK,EAAG,IAAIoB,OAAO,GACvC,OAAOtR,KAAK8M,IAAI9C,EAAG8C,GAQrB,IAFA,IAAIkL,EAAIhY,KAAK8F,EAAE6d,KAAK,GAChBlD,EAAI,GACAzI,EAAER,UAA2B,IAAfQ,EAAE7G,MAAM,IAC5BsP,IACAzI,EAAE1G,OAAO,GAEX1B,GAAQoI,EAAER,UAEV,IAAIwS,EAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,MACtBiqB,EAAOD,EAAI/B,SAIXiC,EAAOlqB,KAAK8F,EAAE6d,KAAK,GAAGrS,OAAO,GAC7BL,EAAIjR,KAAK8F,EAAE+K,YAGf,IAFAI,EAAI,IAAIf,EAAG,EAAIe,EAAIA,GAAG0V,MAAM3mB,MAEW,IAAhCA,KAAK8M,IAAImE,EAAGiZ,GAAMpU,IAAImU,IAC3BhZ,EAAEkW,QAAQ8C,GAOZ,IAJA,IAAIhiB,EAAIjI,KAAK8M,IAAImE,EAAG+G,GAChBhI,EAAIhQ,KAAK8M,IAAI9C,EAAGgO,EAAE0L,KAAK,GAAGpS,OAAO,IACjC6G,EAAInY,KAAK8M,IAAI9C,EAAGgO,GAChBlS,EAAI2a,EACc,IAAftI,EAAErC,IAAIkU,IAAY,CAEvB,IADA,IAAIvB,EAAMtQ,EACD9W,EAAI,EAAoB,IAAjBonB,EAAI3S,IAAIkU,GAAY3oB,IAClConB,EAAMA,EAAId,SAEZ/X,EAAOvO,EAAIyE,GACX,IAAIF,EAAI5F,KAAK8M,IAAI7E,EAAG,IAAIiI,EAAG,GAAGwS,OAAO5c,EAAIzE,EAAI,IAE7C2O,EAAIA,EAAEwX,OAAO5hB,GACbqC,EAAIrC,EAAE+hB,SACNxP,EAAIA,EAAEqP,OAAOvf,GACbnC,EAAIzE,EAGN,OAAO2O,GAGT0W,EAAIlpB,UAAUqoB,KAAO,SAAe7b,GAClC,IAAImgB,EAAMngB,EAAEyb,OAAOzlB,KAAK8F,GACxB,OAAqB,IAAjBqkB,EAAIjV,UACNiV,EAAIjV,SAAW,EACRlV,KAAKkpB,KAAKiB,GAAKlC,UAEfjoB,KAAKkpB,KAAKiB,IAIrBzD,EAAIlpB,UAAUsP,IAAM,SAAc9C,EAAGyG,GACnC,GAAIA,EAAI+G,SAAU,OAAO,IAAItH,EAAG,GAAGyW,MAAM3mB,MACzC,GAAoB,IAAhByQ,EAAIqB,KAAK,GAAU,OAAO9H,EAAEgH,QAEhC,IACIoZ,EAAM,IAAIjpB,MAAM,IACpBipB,EAAI,GAAK,IAAIla,EAAG,GAAGyW,MAAM3mB,MACzBoqB,EAAI,GAAKpgB,EACT,IAAK,IAAI3I,EAAI,EAAGA,EAAI+oB,EAAI3rB,OAAQ4C,IAC9B+oB,EAAI/oB,GAAKrB,KAAKuM,IAAI6d,EAAI/oB,EAAI,GAAI2I,GAGhC,IAAIxB,EAAM4hB,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnlB,EAAQsL,EAAII,YAAc,GAK9B,IAJc,IAAV1L,IACFA,EAAQ,IAGL9D,EAAIoP,EAAIhS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIqR,EAAOjC,EAAI0E,MAAM9T,GACZwF,EAAI1B,EAAQ,EAAG0B,GAAK,EAAGA,IAAK,CACnC,IAAImT,EAAOtH,GAAQ7L,EAAK,EACpB2B,IAAQ4hB,EAAI,KACd5hB,EAAMxI,KAAKuiB,IAAI/Z,IAGL,IAARwR,GAAyB,IAAZqQ,GAKjBA,IAAY,EACZA,GAAWrQ,GA9BE,MA+BbsQ,GACwC,IAANjpB,GAAiB,IAANwF,KAE7C2B,EAAMxI,KAAKuM,IAAI/D,EAAK4hB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnlB,EAAQ,GAGV,OAAOqD,GAGTke,EAAIlpB,UAAUqpB,UAAY,SAAoBpW,GAC5C,IAAIT,EAAIS,EAAI+T,KAAKxkB,KAAK8F,GAEtB,OAAOkK,IAAMS,EAAMT,EAAEgB,QAAUhB,GAGjC0W,EAAIlpB,UAAUwpB,YAAc,SAAsBvW,GAChD,IAAIjI,EAAMiI,EAAIO,QAEd,OADAxI,EAAI4M,IAAM,KACH5M,GAOT0H,EAAGqa,KAAO,SAAe9Z,GACvB,OAAO,IAAIwY,EAAKxY,IAmBlB8B,EAAS0W,EAAMvC,GAEfuC,EAAKzrB,UAAUqpB,UAAY,SAAoBpW,GAC7C,OAAOzQ,KAAKkpB,KAAKzY,EAAI4S,MAAMrjB,KAAK8jB,SAGlCmF,EAAKzrB,UAAUwpB,YAAc,SAAsBvW,GACjD,IAAIT,EAAIhQ,KAAKkpB,KAAKzY,EAAIlE,IAAIvM,KAAKmpB,OAE/B,OADAnZ,EAAEoF,IAAM,KACDpF,GAGTiZ,EAAKzrB,UAAU6gB,KAAO,SAAerU,EAAGpE,GACtC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAGlB,OAFAxN,EAAEmL,MAAM,GAAK,EACbnL,EAAEvL,OAAS,EACJuL,EAGT,IAAImO,EAAInO,EAAEqU,KAAKzY,GACXqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAQV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAU+O,IAAM,SAAcvC,EAAGpE,GACpC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAAU,OAAO,IAAItH,EAAG,GAAG4W,UAAU9mB,MAEzD,IAAImY,EAAInO,EAAEuC,IAAI3G,GACVqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAOV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAUqoB,KAAO,SAAe7b,GAGnC,OADUhK,KAAKkpB,KAAKlf,EAAEyb,OAAOzlB,KAAK8F,GAAGyG,IAAIvM,KAAK4kB,KACnCkC,UAAU9mB,OAn3GzB,CAq3GoC7C,EAAQ6C,Q,qCCr3G5C,IAAIirD,EAAKjtD,EAAQ,KACbktD,EAAUltD,EAAQ,IAEtB,SAASmtD,EAAY7a,GACnBtwC,KAAKswC,KAAOA,GAAQ,IAAI4a,EAAQ7a,KAElClzC,EAAOC,QAAU+tD,EAEjBA,EAAYjuD,OAAS,SAAgBozC,GACnC,OAAO,IAAI6a,EAAY7a,IAGzB6a,EAAY3tD,UAAU4tD,WAAa,SAAoBvlD,GACrD,IAAInF,EAAMmF,EAAEgL,YACRw6C,EAAY/iD,KAAK6N,KAAKzV,EAAM,GAIhC,GACE,IAAIsJ,EAAI,IAAIihD,EAAGjrD,KAAKswC,KAAKC,SAAS8a,UAC7BrhD,EAAE8L,IAAIjQ,IAAM,GAEnB,OAAOmE,GAGTmhD,EAAY3tD,UAAU8tD,WAAa,SAAoBnmD,EAAOomD,GAE5D,IAAIxsD,EAAOwsD,EAAKp9C,IAAIhJ,GACpB,OAAOA,EAAMiV,IAAIpa,KAAKorD,WAAWrsD,KAGnCosD,EAAY3tD,UAAU+7B,KAAO,SAAc1zB,EAAGkL,EAAGsiB,GAC/C,IAAI3yB,EAAMmF,EAAEgL,YACRuE,EAAM61C,EAAG1gC,KAAK1kB,GACd2lD,EAAO,IAAIP,EAAG,GAAGtkC,MAAMvR,GAEtBrE,IACHA,EAAIzI,KAAKoC,IAAI,EAAIhK,EAAM,GAAM,IAI/B,IADA,IAAI+qD,EAAK5lD,EAAE8d,KAAK,GACPlD,EAAI,GAAIgrC,EAAG7yC,MAAM6H,GAAIA,KAM9B,IALA,IAAIlN,EAAI1N,EAAEyd,KAAK7C,GAEXirC,EAAMD,EAAG9kC,MAAMvR,GAGZrE,EAAI,EAAGA,IAAK,CACjB,IAAI/G,EAAIhK,KAAKsrD,WAAW,IAAIL,EAAG,GAAIQ,GAC/Bp4B,GACFA,EAAGrpB,GAEL,IAAIC,EAAID,EAAE2c,MAAMvR,GAAK8S,OAAO3U,GAC5B,GAAoB,IAAhBtJ,EAAE6L,IAAI01C,IAA8B,IAAfvhD,EAAE6L,IAAI41C,GAA/B,CAGA,IAAK,IAAIrqD,EAAI,EAAGA,EAAIof,EAAGpf,IAAK,CAG1B,GAAoB,KAFpB4I,EAAIA,EAAE0d,UAEA7R,IAAI01C,GACR,OAAO,EACT,GAAmB,IAAfvhD,EAAE6L,IAAI41C,GACR,MAGJ,GAAIrqD,IAAMof,EACR,OAAO,GAGX,OAvBY,GA0Bd0qC,EAAY3tD,UAAUmuD,WAAa,SAAoB9lD,EAAGkL,GACxD,IAAIrQ,EAAMmF,EAAEgL,YACRuE,EAAM61C,EAAG1gC,KAAK1kB,GACd2lD,EAAO,IAAIP,EAAG,GAAGtkC,MAAMvR,GAEtBrE,IACHA,EAAIzI,KAAKoC,IAAI,EAAIhK,EAAM,GAAM,IAI/B,IADA,IAAI+qD,EAAK5lD,EAAE8d,KAAK,GACPlD,EAAI,GAAIgrC,EAAG7yC,MAAM6H,GAAIA,KAK9B,IAJA,IAAIlN,EAAI1N,EAAEyd,KAAK7C,GAEXirC,EAAMD,EAAG9kC,MAAMvR,GAEZrE,EAAI,EAAGA,IAAK,CACjB,IAAI/G,EAAIhK,KAAKsrD,WAAW,IAAIL,EAAG,GAAIQ,GAE/Bh8C,EAAI5J,EAAE2f,IAAIxb,GACd,GAAkB,IAAdyF,EAAEqC,KAAK,GACT,OAAOrC,EAET,IAAIxF,EAAID,EAAE2c,MAAMvR,GAAK8S,OAAO3U,GAC5B,GAAoB,IAAhBtJ,EAAE6L,IAAI01C,IAA8B,IAAfvhD,EAAE6L,IAAI41C,GAA/B,CAGA,IAAK,IAAIrqD,EAAI,EAAGA,EAAIof,EAAGpf,IAAK,CAG1B,GAAoB,KAFpB4I,EAAIA,EAAE0d,UAEA7R,IAAI01C,GACR,OAAOvhD,EAAE8c,UAAUpD,KAAK,GAAG6B,IAAI3f,GACjC,GAAmB,IAAfoE,EAAE6L,IAAI41C,GACR,MAGJ,GAAIrqD,IAAMof,EAER,OADAxW,EAAIA,EAAE0d,UACGZ,UAAUpD,KAAK,GAAG6B,IAAI3f,IAInC,OAAO,I,8BCjHT,cAyBA,IAAIusB,EAHJj1B,EAAOC,QAAUk1B,EAMjBA,EAAS8mB,cAAgBA,EAGhBp7C,EAAQ,IAAUgvB,aAA3B,IAEIqsB,EAAkB,SAAyBnsB,EAAS1oB,GACtD,OAAO0oB,EAAQ3qB,UAAUiC,GAAM/F,QAO7B+qC,EAASxrC,EAAQ,IAIjBC,EAASD,EAAQ,GAAUC,OAE3BqsC,EAAgBjhC,EAAO/F,YAAc,aAYzC,IAEIg2C,EAFAC,EAAYv7C,EAAQ,KAKtBs7C,EADEC,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,aAKV,IAcIzuB,EACA0uB,EACA/6C,EAhBAg7C,EAAa17C,EAAQ,KAErBwsC,EAAcxsC,EAAQ,IAGtB27C,EADW37C,EAAQ,IACS27C,iBAE5BC,EAAiB57C,EAAQ,IAAa41B,MACtCimB,EAAuBD,EAAeC,qBACtCC,EAA4BF,EAAeE,0BAC3CC,EAA6BH,EAAeG,2BAC5CC,EAAqCJ,EAAeI,mCAOxDh8C,EAAQ,EAARA,CAAoBs0B,EAAUkX,GAE9B,IAAIyQ,EAAiBzP,EAAYyP,eAC7BC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAa1D,SAASd,EAAc1mB,EAASsU,EAAQ0D,GACtCtY,EAASA,GAAUp0B,EAAQ,IAC3B00B,EAAUA,GAAW,GAMG,mBAAbgY,IAAwBA,EAAW1D,aAAkB5U,GAGhEpyB,KAAK2qC,aAAejY,EAAQiY,WACxBD,IAAU1qC,KAAK2qC,WAAa3qC,KAAK2qC,cAAgBjY,EAAQynB,oBAG7Dn6C,KAAKizB,cAAgB0mB,EAAiB35C,KAAM0yB,EAAS,wBAAyBgY,GAI9E1qC,KAAKjC,OAAS,IAAI27C,EAClB15C,KAAKvB,OAAS,EACduB,KAAKo6C,MAAQ,KACbp6C,KAAKq6C,WAAa,EAClBr6C,KAAKs6C,QAAU,KACft6C,KAAK+yB,OAAQ,EACb/yB,KAAKynC,YAAa,EAClBznC,KAAKu6C,SAAU,EAKfv6C,KAAKyrC,MAAO,EAGZzrC,KAAKw6C,cAAe,EACpBx6C,KAAKy6C,iBAAkB,EACvBz6C,KAAK06C,mBAAoB,EACzB16C,KAAK26C,iBAAkB,EACvB36C,KAAK46C,QAAS,EAEd56C,KAAK66C,WAAkC,IAAtBnoB,EAAQmoB,UAEzB76C,KAAK86C,cAAgBpoB,EAAQooB,YAE7B96C,KAAKmzB,WAAY,EAIjBnzB,KAAKsrC,gBAAkB5Y,EAAQ4Y,iBAAmB,OAElDtrC,KAAK+6C,WAAa,EAElB/6C,KAAKg7C,aAAc,EACnBh7C,KAAKi7C,QAAU,KACfj7C,KAAKf,SAAW,KAEZyzB,EAAQzzB,WACL8rB,IAAeA,EAAgB/sB,EAAQ,IAAmB+sB,eAC/D/qB,KAAKi7C,QAAU,IAAIlwB,EAAc2H,EAAQzzB,UACzCe,KAAKf,SAAWyzB,EAAQzzB,UAI5B,SAASqzB,EAASI,GAEhB,GADAN,EAASA,GAAUp0B,EAAQ,MACrBgC,gBAAgBsyB,GAAW,OAAO,IAAIA,EAASI,GAGrD,IAAIgY,EAAW1qC,gBAAgBoyB,EAC/BpyB,KAAKkzB,eAAiB,IAAIkmB,EAAc1mB,EAAS1yB,KAAM0qC,GAEvD1qC,KAAK2yB,UAAW,EAEZD,IAC0B,oBAAjBA,EAAQjsB,OAAqBzG,KAAKk7C,MAAQxoB,EAAQjsB,MAC9B,oBAApBisB,EAAQka,UAAwB5sC,KAAKozB,SAAWV,EAAQka,UAGrEpD,EAAOzpC,KAAKC,MAiEd,SAASm7C,EAAiBnU,EAAQ8F,EAAO7tC,EAAUm8C,EAAYC,GAC7D/B,EAAM,mBAAoBxM,GAC1B,IAMM3c,EANFjB,EAAQ8X,EAAO9T,eAEnB,GAAc,OAAV4Z,EACF5d,EAAMqrB,SAAU,EAyOpB,SAAoBvT,EAAQ9X,GAE1B,GADAoqB,EAAM,cACFpqB,EAAM6D,MAAO,OAEjB,GAAI7D,EAAM+rB,QAAS,CACjB,IAAInO,EAAQ5d,EAAM+rB,QAAQ71C,MAEtB0nC,GAASA,EAAMruC,SACjBywB,EAAMnxB,OAAOuD,KAAKwrC,GAClB5d,EAAMzwB,QAAUywB,EAAMyb,WAAa,EAAImC,EAAMruC,QAIjDywB,EAAM6D,OAAQ,EAEV7D,EAAMuc,KAIR6P,EAAatU,IAGb9X,EAAMsrB,cAAe,EAEhBtrB,EAAMurB,kBACTvrB,EAAMurB,iBAAkB,EACxBc,EAAcvU,KAlQhBwU,CAAWxU,EAAQ9X,QAKnB,GAFKmsB,IAAgBlrB,EAmDzB,SAAsBjB,EAAO4d,GAC3B,IAAI3c,EAhQiBhsB,EAkQF2oC,EAjQZ7uC,EAAOmG,SAASD,IAAQA,aAAemmC,GAiQA,kBAAVwC,QAAgC3tC,IAAV2tC,GAAwB5d,EAAMyb,aACtFxa,EAAK,IAAI0pB,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAe/M,IAnQ/E,IAAuB3oC,EAsQrB,OAAOgsB,EA1DqBsrB,CAAavsB,EAAO4d,IAE1C3c,EACF8pB,EAAejT,EAAQ7W,QAClB,GAAIjB,EAAMyb,YAAcmC,GAASA,EAAMruC,OAAS,EAKrD,GAJqB,kBAAVquC,GAAuB5d,EAAMyb,YAAc1tC,OAAO6yB,eAAegd,KAAW7uC,EAAOT,YAC5FsvC,EAtNR,SAA6BA,GAC3B,OAAO7uC,EAAOS,KAAKouC,GAqNLW,CAAoBX,IAG1BsO,EACElsB,EAAMuY,WAAYwS,EAAejT,EAAQ,IAAIgT,GAA2C0B,EAAS1U,EAAQ9X,EAAO4d,GAAO,QACtH,GAAI5d,EAAM6D,MACfknB,EAAejT,EAAQ,IAAI8S,OACtB,IAAI5qB,EAAMiE,UACf,OAAO,EAEPjE,EAAMqrB,SAAU,EAEZrrB,EAAM+rB,UAAYh8C,GACpB6tC,EAAQ5d,EAAM+rB,QAAQj3C,MAAM8oC,GACxB5d,EAAMyb,YAA+B,IAAjBmC,EAAMruC,OAAci9C,EAAS1U,EAAQ9X,EAAO4d,GAAO,GAAY6O,EAAc3U,EAAQ9X,IAE7GwsB,EAAS1U,EAAQ9X,EAAO4d,GAAO,QAGzBsO,IACVlsB,EAAMqrB,SAAU,EAChBoB,EAAc3U,EAAQ9X,IAO1B,OAAQA,EAAM6D,QAAU7D,EAAMzwB,OAASywB,EAAM+D,eAAkC,IAAjB/D,EAAMzwB,QAGtE,SAASi9C,EAAS1U,EAAQ9X,EAAO4d,EAAOsO,GAClClsB,EAAMorB,SAA4B,IAAjBprB,EAAMzwB,SAAiBywB,EAAMuc,MAChDvc,EAAM6rB,WAAa,EACnB/T,EAAO5kC,KAAK,OAAQ0qC,KAGpB5d,EAAMzwB,QAAUywB,EAAMyb,WAAa,EAAImC,EAAMruC,OACzC28C,EAAYlsB,EAAMnxB,OAAO0wB,QAAQqe,GAAY5d,EAAMnxB,OAAOuD,KAAKwrC,GAC/D5d,EAAMsrB,cAAcc,EAAatU,IAGvC2U,EAAc3U,EAAQ9X,GAvHxBjyB,OAAO4M,eAAeyoB,EAAS90B,UAAW,YAAa,CAIrDG,YAAY,EACZktB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAKkzB,gBAIFlzB,KAAKkzB,eAAeC,WAE7BpkB,IAAK,SAAarR,GAGXsC,KAAKkzB,iBAMVlzB,KAAKkzB,eAAeC,UAAYz1B,MAGpC40B,EAAS90B,UAAUovC,QAAUpC,EAAYoC,QACzCta,EAAS90B,UAAU4wC,WAAa5D,EAAY6D,UAE5C/b,EAAS90B,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC3CA,EAAGlH,IAOLmG,EAAS90B,UAAU8D,KAAO,SAAUwrC,EAAO7tC,GACzC,IACIo8C,EADAnsB,EAAQlvB,KAAKkzB,eAkBjB,OAfKhE,EAAMyb,WAYT0Q,GAAiB,EAXI,kBAAVvO,KACT7tC,EAAWA,GAAYiwB,EAAMoc,mBAEZpc,EAAMjwB,WACrB6tC,EAAQ7uC,EAAOS,KAAKouC,EAAO7tC,GAC3BA,EAAW,IAGbo8C,GAAiB,GAMdF,EAAiBn7C,KAAM8sC,EAAO7tC,GAAU,EAAOo8C,IAIxD/oB,EAAS90B,UAAUixB,QAAU,SAAUqe,GACrC,OAAOqO,EAAiBn7C,KAAM8sC,EAAO,MAAM,GAAM,IAyEnDxa,EAAS90B,UAAUo+C,SAAW,WAC5B,OAAuC,IAAhC57C,KAAKkzB,eAAeonB,SAI7BhoB,EAAS90B,UAAUq+C,YAAc,SAAUjpC,GACpCmY,IAAeA,EAAgB/sB,EAAQ,IAAmB+sB,eAC/D,IAAIkwB,EAAU,IAAIlwB,EAAcnY,GAChC5S,KAAKkzB,eAAe+nB,QAAUA,EAE9Bj7C,KAAKkzB,eAAej0B,SAAWe,KAAKkzB,eAAe+nB,QAAQh8C,SAK3D,IAHA,IAAI4T,EAAI7S,KAAKkzB,eAAen1B,OAAO+9C,KAC/B3E,EAAU,GAED,OAANtkC,GACLskC,GAAW8D,EAAQj3C,MAAM6O,EAAEpO,MAC3BoO,EAAIA,EAAEiX,KAOR,OAJA9pB,KAAKkzB,eAAen1B,OAAOg+C,QAEX,KAAZ5E,GAAgBn3C,KAAKkzB,eAAen1B,OAAOuD,KAAK61C,GACpDn3C,KAAKkzB,eAAez0B,OAAS04C,EAAQ14C,OAC9BuB,MAIT,IAAIg8C,EAAU,WAuBd,SAASC,EAAcp2C,EAAGqpB,GACxB,OAAIrpB,GAAK,GAAsB,IAAjBqpB,EAAMzwB,QAAgBywB,EAAM6D,MAAc,EACpD7D,EAAMyb,WAAmB,EAEzB9kC,IAAMA,EAEJqpB,EAAMorB,SAAWprB,EAAMzwB,OAAeywB,EAAMnxB,OAAO+9C,KAAKr3C,KAAKhG,OAAmBywB,EAAMzwB,QAIxFoH,EAAIqpB,EAAM+D,gBAAe/D,EAAM+D,cA/BrC,SAAiCptB,GAgB/B,OAfIA,GAAKm2C,EAEPn2C,EAAIm2C,GAIJn2C,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAGKA,EAe4Cq2C,CAAwBr2C,IACvEA,GAAKqpB,EAAMzwB,OAAeoH,EAEzBqpB,EAAM6D,MAKJ7D,EAAMzwB,QAJXywB,EAAMsrB,cAAe,EACd,IAwIX,SAASc,EAAatU,GACpB,IAAI9X,EAAQ8X,EAAO9T,eACnBomB,EAAM,eAAgBpqB,EAAMsrB,aAActrB,EAAMurB,iBAChDvrB,EAAMsrB,cAAe,EAEhBtrB,EAAMurB,kBACTnB,EAAM,eAAgBpqB,EAAMorB,SAC5BprB,EAAMurB,iBAAkB,EACxBl7C,EAAQ0B,SAASs6C,EAAevU,IAIpC,SAASuU,EAAcvU,GACrB,IAAI9X,EAAQ8X,EAAO9T,eACnBomB,EAAM,gBAAiBpqB,EAAMiE,UAAWjE,EAAMzwB,OAAQywB,EAAM6D,OAEvD7D,EAAMiE,YAAcjE,EAAMzwB,SAAUywB,EAAM6D,QAC7CiU,EAAO5kC,KAAK,YACZ8sB,EAAMurB,iBAAkB,GAS1BvrB,EAAMsrB,cAAgBtrB,EAAMorB,UAAYprB,EAAM6D,OAAS7D,EAAMzwB,QAAUywB,EAAM+D,cAC7EkpB,EAAKnV,GASP,SAAS2U,EAAc3U,EAAQ9X,GACxBA,EAAM8rB,cACT9rB,EAAM8rB,aAAc,EACpBz7C,EAAQ0B,SAASm7C,EAAgBpV,EAAQ9X,IAI7C,SAASktB,EAAepV,EAAQ9X,GAwB9B,MAAQA,EAAMqrB,UAAYrrB,EAAM6D,QAAU7D,EAAMzwB,OAASywB,EAAM+D,eAAiB/D,EAAMorB,SAA4B,IAAjBprB,EAAMzwB,SAAe,CACpH,IAAIiC,EAAMwuB,EAAMzwB,OAGhB,GAFA66C,EAAM,wBACNtS,EAAOvgC,KAAK,GACR/F,IAAQwuB,EAAMzwB,OAChB,MAGJywB,EAAM8rB,aAAc,EA6QtB,SAASqB,EAAwBplC,GAC/B,IAAIiY,EAAQjY,EAAKic,eACjBhE,EAAMwrB,kBAAoBzjC,EAAKyY,cAAc,YAAc,EAEvDR,EAAMyrB,kBAAoBzrB,EAAM0rB,OAGlC1rB,EAAMorB,SAAU,EACPrjC,EAAKyY,cAAc,QAAU,GACtCzY,EAAKqlC,SAIT,SAASC,EAAiBtlC,GACxBqiC,EAAM,4BACNriC,EAAKxQ,KAAK,GA4BZ,SAAS+1C,EAAQxV,EAAQ9X,GACvBoqB,EAAM,SAAUpqB,EAAMqrB,SAEjBrrB,EAAMqrB,SACTvT,EAAOvgC,KAAK,GAGdyoB,EAAMyrB,iBAAkB,EACxB3T,EAAO5kC,KAAK,UACZ+5C,EAAKnV,GACD9X,EAAMorB,UAAYprB,EAAMqrB,SAASvT,EAAOvgC,KAAK,GAgBnD,SAAS01C,EAAKnV,GACZ,IAAI9X,EAAQ8X,EAAO9T,eAGnB,IAFAomB,EAAM,OAAQpqB,EAAMorB,SAEbprB,EAAMorB,SAA6B,OAAlBtT,EAAOvgC,UA4HjC,SAASg2C,EAAS52C,EAAGqpB,GAEnB,OAAqB,IAAjBA,EAAMzwB,OAAqB,MAE3BywB,EAAMyb,WAAYr/B,EAAM4jB,EAAMnxB,OAAO+lB,SAAkBje,GAAKA,GAAKqpB,EAAMzwB,QAEtD6M,EAAf4jB,EAAM+rB,QAAe/rB,EAAMnxB,OAAO6M,KAAK,IAAqC,IAAxBskB,EAAMnxB,OAAOU,OAAoBywB,EAAMnxB,OAAO+wC,QAAmB5f,EAAMnxB,OAAOwC,OAAO2uB,EAAMzwB,QACnJywB,EAAMnxB,OAAOg+C,SAGbzwC,EAAM4jB,EAAMnxB,OAAO2+C,QAAQ72C,EAAGqpB,EAAM+rB,SAE/B3vC,GATP,IAAIA,EAYN,SAASqxC,EAAY3V,GACnB,IAAI9X,EAAQ8X,EAAO9T,eACnBomB,EAAM,cAAepqB,EAAMuY,YAEtBvY,EAAMuY,aACTvY,EAAM6D,OAAQ,EACdxzB,EAAQ0B,SAAS27C,EAAe1tB,EAAO8X,IAI3C,SAAS4V,EAAc1tB,EAAO8X,GAG5B,GAFAsS,EAAM,gBAAiBpqB,EAAMuY,WAAYvY,EAAMzwB,SAE1CywB,EAAMuY,YAA+B,IAAjBvY,EAAMzwB,SAC7BywB,EAAMuY,YAAa,EACnBT,EAAOrU,UAAW,EAClBqU,EAAO5kC,KAAK,OAER8sB,EAAM4rB,aAAa,CAGrB,IAAI+B,EAAS7V,EAAOlU,iBAEf+pB,GAAUA,EAAO/B,aAAe+B,EAAOtV,WAC1CP,EAAO4F,WAgBf,SAAS1mC,EAAQq+B,EAAIt6B,GACnB,IAAK,IAAI5I,EAAI,EAAG0O,EAAIw0B,EAAG9lC,OAAQ4C,EAAI0O,EAAG1O,IACpC,GAAIkjC,EAAGljC,KAAO4I,EAAG,OAAO5I,EAG1B,OAAQ,EA3tBVixB,EAAS90B,UAAUiJ,KAAO,SAAUZ,GAClCyzC,EAAM,OAAQzzC,GACdA,EAAIuB,SAASvB,EAAG,IAChB,IAAIqpB,EAAQlvB,KAAKkzB,eACb4pB,EAAQj3C,EAKZ,GAJU,IAANA,IAASqpB,EAAMurB,iBAAkB,GAI3B,IAAN50C,GAAWqpB,EAAMsrB,gBAA0C,IAAxBtrB,EAAM+D,cAAsB/D,EAAMzwB,QAAUywB,EAAM+D,cAAgB/D,EAAMzwB,OAAS,IAAMywB,EAAM6D,OAGlI,OAFAumB,EAAM,qBAAsBpqB,EAAMzwB,OAAQywB,EAAM6D,OAC3B,IAAjB7D,EAAMzwB,QAAgBywB,EAAM6D,MAAO4pB,EAAY38C,MAAWs7C,EAAat7C,MACpE,KAKT,GAAU,KAFV6F,EAAIo2C,EAAcp2C,EAAGqpB,KAENA,EAAM6D,MAEnB,OADqB,IAAjB7D,EAAMzwB,QAAck+C,EAAY38C,MAC7B,KAyBT,IA4BIsL,EA5BAyxC,EAAS7tB,EAAMsrB,aAgDnB,OA/CAlB,EAAM,gBAAiByD,IAEF,IAAjB7tB,EAAMzwB,QAAgBywB,EAAMzwB,OAASoH,EAAIqpB,EAAM+D,gBAEjDqmB,EAAM,6BADNyD,GAAS,GAMP7tB,EAAM6D,OAAS7D,EAAMqrB,QAEvBjB,EAAM,mBADNyD,GAAS,GAEAA,IACTzD,EAAM,WACNpqB,EAAMqrB,SAAU,EAChBrrB,EAAMuc,MAAO,EAEQ,IAAjBvc,EAAMzwB,SAAcywB,EAAMsrB,cAAe,GAE7Cx6C,KAAKk7C,MAAMhsB,EAAM+D,eAEjB/D,EAAMuc,MAAO,EAGRvc,EAAMqrB,UAAS10C,EAAIo2C,EAAca,EAAO5tB,KAMnC,QAFD5jB,EAAPzF,EAAI,EAAS42C,EAAS52C,EAAGqpB,GAAkB,OAG7CA,EAAMsrB,aAAetrB,EAAMzwB,QAAUywB,EAAM+D,cAC3CptB,EAAI,IAEJqpB,EAAMzwB,QAAUoH,EAChBqpB,EAAM6rB,WAAa,GAGA,IAAjB7rB,EAAMzwB,SAGHywB,EAAM6D,QAAO7D,EAAMsrB,cAAe,GAEnCsC,IAAUj3C,GAAKqpB,EAAM6D,OAAO4pB,EAAY38C,OAGlC,OAARsL,GAActL,KAAKoC,KAAK,OAAQkJ,GAC7BA,GAwHTgnB,EAAS90B,UAAU09C,MAAQ,SAAUr1C,GACnCo0C,EAAej6C,KAAM,IAAI+5C,EAA2B,aAGtDznB,EAAS90B,UAAUgwC,KAAO,SAAU92B,EAAMsmC,GACxC,IAAI7+C,EAAM6B,KACNkvB,EAAQlvB,KAAKkzB,eAEjB,OAAQhE,EAAMmrB,YACZ,KAAK,EACHnrB,EAAMkrB,MAAQ1jC,EACd,MAEF,KAAK,EACHwY,EAAMkrB,MAAQ,CAAClrB,EAAMkrB,MAAO1jC,GAC5B,MAEF,QACEwY,EAAMkrB,MAAM94C,KAAKoV,GAIrBwY,EAAMmrB,YAAc,EACpBf,EAAM,wBAAyBpqB,EAAMmrB,WAAY2C,GACjD,IACIC,IADUD,IAA6B,IAAjBA,EAAS53C,MAAkBsR,IAASnX,EAAQ29C,QAAUxmC,IAASnX,EAAQ49C,OAC7EtqB,EAAQuqB,EAI5B,SAASC,EAAS1qB,EAAU2qB,GAC1BhE,EAAM,YAEF3mB,IAAax0B,GACXm/C,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5BjE,EAAM,WAEN5iC,EAAKxU,eAAe,QAASylC,GAC7BjxB,EAAKxU,eAAe,SAAUmlC,GAC9B3wB,EAAKxU,eAAe,QAASs7C,GAC7B9mC,EAAKxU,eAAe,QAASwlC,GAC7BhxB,EAAKxU,eAAe,SAAUm7C,GAC9Bl/C,EAAI+D,eAAe,MAAO2wB,GAC1B10B,EAAI+D,eAAe,MAAOk7C,GAC1Bj/C,EAAI+D,eAAe,OAAQu7C,GAC3BC,GAAY,GAMRxuB,EAAM6rB,YAAgBrkC,EAAKoc,iBAAkBpc,EAAKoc,eAAeoY,WAAYsS,KA9BnF,SAAS3qB,IACPymB,EAAM,SACN5iC,EAAKtR,MAhBH8pB,EAAMuY,WAAYloC,EAAQ0B,SAASg8C,GAAY9+C,EAAI6D,KAAK,MAAOi7C,GACnEvmC,EAAK5U,GAAG,SAAUu7C,GAsBlB,IAAIG,EAwFN,SAAqBr/C,GACnB,OAAO,WACL,IAAI+wB,EAAQ/wB,EAAI+0B,eAChBomB,EAAM,cAAepqB,EAAM6rB,YACvB7rB,EAAM6rB,YAAY7rB,EAAM6rB,aAEH,IAArB7rB,EAAM6rB,YAAoB1B,EAAgBl7C,EAAK,UACjD+wB,EAAMorB,SAAU,EAChB6B,EAAKh+C,KAhGKw/C,CAAYx/C,GAC1BuY,EAAK5U,GAAG,QAAS07C,GACjB,IAAIE,GAAY,EAwBhB,SAASD,EAAO3Q,GACdwM,EAAM,UACN,IAAIhuC,EAAMoL,EAAK1S,MAAM8oC,GACrBwM,EAAM,aAAchuC,IAER,IAARA,KAKwB,IAArB4jB,EAAMmrB,YAAoBnrB,EAAMkrB,QAAU1jC,GAAQwY,EAAMmrB,WAAa,IAAqC,IAAhCn0C,EAAQgpB,EAAMkrB,MAAO1jC,MAAkBgnC,IACpHpE,EAAM,8BAA+BpqB,EAAM6rB,YAC3C7rB,EAAM6rB,cAGR58C,EAAIy/C,SAMR,SAASlW,EAAQvX,GACfmpB,EAAM,UAAWnpB,GACjBitB,IACA1mC,EAAKxU,eAAe,QAASwlC,GACU,IAAnC2R,EAAgB3iC,EAAM,UAAgBujC,EAAevjC,EAAMyZ,GAMjE,SAASwX,IACPjxB,EAAKxU,eAAe,SAAUmlC,GAC9B+V,IAKF,SAAS/V,IACPiS,EAAM,YACN5iC,EAAKxU,eAAe,QAASylC,GAC7ByV,IAKF,SAASA,IACP9D,EAAM,UACNn7C,EAAIi/C,OAAO1mC,GAWb,OA7DAvY,EAAI2D,GAAG,OAAQ27C,GAtkBjB,SAAyBvwB,EAAS2wB,EAAOrkB,GAGvC,GAAuC,oBAA5BtM,EAAQ7qB,gBAAgC,OAAO6qB,EAAQ7qB,gBAAgBw7C,EAAOrkB,GAKpFtM,EAAQU,SAAYV,EAAQU,QAAQiwB,GAAuC18C,MAAM6B,QAAQkqB,EAAQU,QAAQiwB,IAAS3wB,EAAQU,QAAQiwB,GAAOpvB,QAAQ+K,GAAStM,EAAQU,QAAQiwB,GAAS,CAACrkB,EAAItM,EAAQU,QAAQiwB,IAA5J3wB,EAAQprB,GAAG+7C,EAAOrkB,GA6lBnEn3B,CAAgBqU,EAAM,QAASgxB,GAO/BhxB,EAAK1U,KAAK,QAAS2lC,GAQnBjxB,EAAK1U,KAAK,SAAUqlC,GAQpB3wB,EAAKtU,KAAK,OAAQjE,GAEb+wB,EAAMorB,UACThB,EAAM,eACNn7C,EAAIm+C,UAGC5lC,GAgBT4b,EAAS90B,UAAU4/C,OAAS,SAAU1mC,GACpC,IAAIwY,EAAQlvB,KAAKkzB,eACboqB,EAAa,CACfC,YAAY,GAGd,GAAyB,IAArBruB,EAAMmrB,WAAkB,OAAOr6C,KAEnC,GAAyB,IAArBkvB,EAAMmrB,WAER,OAAI3jC,GAAQA,IAASwY,EAAMkrB,QACtB1jC,IAAMA,EAAOwY,EAAMkrB,OAExBlrB,EAAMkrB,MAAQ,KACdlrB,EAAMmrB,WAAa,EACnBnrB,EAAMorB,SAAU,EACZ5jC,GAAMA,EAAKtU,KAAK,SAAUpC,KAAMs9C,IANKt9C,KAW3C,IAAK0W,EAAM,CAET,IAAIonC,EAAQ5uB,EAAMkrB,MACd15C,EAAMwuB,EAAMmrB,WAChBnrB,EAAMkrB,MAAQ,KACdlrB,EAAMmrB,WAAa,EACnBnrB,EAAMorB,SAAU,EAEhB,IAAK,IAAIj5C,EAAI,EAAGA,EAAIX,EAAKW,IACvBy8C,EAAMz8C,GAAGe,KAAK,SAAUpC,KAAM,CAC5Bu9C,YAAY,IAIhB,OAAOv9C,KAIT,IAAIwV,EAAQtP,EAAQgpB,EAAMkrB,MAAO1jC,GACjC,OAAe,IAAXlB,IACJ0Z,EAAMkrB,MAAM/V,OAAO7uB,EAAO,GAC1B0Z,EAAMmrB,YAAc,EACK,IAArBnrB,EAAMmrB,aAAkBnrB,EAAMkrB,MAAQlrB,EAAMkrB,MAAM,IACtD1jC,EAAKtU,KAAK,SAAUpC,KAAMs9C,IAJDt9C,MAU3BsyB,EAAS90B,UAAUsE,GAAK,SAAUi8C,EAAIvkB,GACpC,IAAIhxB,EAAMghC,EAAOhsC,UAAUsE,GAAG/B,KAAKC,KAAM+9C,EAAIvkB,GACzCtK,EAAQlvB,KAAKkzB,eAuBjB,MArBW,SAAP6qB,GAGF7uB,EAAMwrB,kBAAoB16C,KAAK0vB,cAAc,YAAc,GAErC,IAAlBR,EAAMorB,SAAmBt6C,KAAKs8C,UAClB,aAAPyB,IACJ7uB,EAAMuY,YAAevY,EAAMwrB,oBAC9BxrB,EAAMwrB,kBAAoBxrB,EAAMsrB,cAAe,EAC/CtrB,EAAMorB,SAAU,EAChBprB,EAAMurB,iBAAkB,EACxBnB,EAAM,cAAepqB,EAAMzwB,OAAQywB,EAAMqrB,SAErCrrB,EAAMzwB,OACR68C,EAAat7C,MACHkvB,EAAMqrB,SAChBh7C,EAAQ0B,SAASs7C,EAAkBv8C,QAKlCwI,GAGT8pB,EAAS90B,UAAUuE,YAAcuwB,EAAS90B,UAAUsE,GAEpDwwB,EAAS90B,UAAU0E,eAAiB,SAAU67C,EAAIvkB,GAChD,IAAIhxB,EAAMghC,EAAOhsC,UAAU0E,eAAenC,KAAKC,KAAM+9C,EAAIvkB,GAYzD,MAVW,aAAPukB,GAOFx+C,EAAQ0B,SAASo7C,EAAyBr8C,MAGrCwI,GAGT8pB,EAAS90B,UAAU2E,mBAAqB,SAAU47C,GAChD,IAAIv1C,EAAMghC,EAAOhsC,UAAU2E,mBAAmBZ,MAAMvB,KAAMoB,WAY1D,MAVW,aAAP28C,QAA4B5+C,IAAP4+C,GAOvBx+C,EAAQ0B,SAASo7C,EAAyBr8C,MAGrCwI,GAuBT8pB,EAAS90B,UAAU8+C,OAAS,WAC1B,IAAIptB,EAAQlvB,KAAKkzB,eAYjB,OAVKhE,EAAMorB,UACThB,EAAM,UAINpqB,EAAMorB,SAAWprB,EAAMwrB,kBAQ3B,SAAgB1T,EAAQ9X,GACjBA,EAAMyrB,kBACTzrB,EAAMyrB,iBAAkB,EACxBp7C,EAAQ0B,SAASu7C,EAASxV,EAAQ9X,IAVlCotB,CAAOt8C,KAAMkvB,IAGfA,EAAM0rB,QAAS,EACR56C,MAuBTsyB,EAAS90B,UAAUogD,MAAQ,WAUzB,OATAtE,EAAM,wBAAyBt5C,KAAKkzB,eAAeonB,UAEf,IAAhCt6C,KAAKkzB,eAAeonB,UACtBhB,EAAM,SACNt5C,KAAKkzB,eAAeonB,SAAU,EAC9Bt6C,KAAKoC,KAAK,UAGZpC,KAAKkzB,eAAe0nB,QAAS,EACtB56C,MAeTsyB,EAAS90B,UAAUwgD,KAAO,SAAUhX,GAClC,IAAI2C,EAAQ3pC,KAERkvB,EAAQlvB,KAAKkzB,eACb0nB,GAAS,EA0Bb,IAAK,IAAIv5C,KAzBT2lC,EAAOllC,GAAG,OAAO,WAGf,GAFAw3C,EAAM,eAEFpqB,EAAM+rB,UAAY/rB,EAAM6D,MAAO,CACjC,IAAI+Z,EAAQ5d,EAAM+rB,QAAQ71C,MACtB0nC,GAASA,EAAMruC,QAAQkrC,EAAMroC,KAAKwrC,GAGxCnD,EAAMroC,KAAK,SAEb0lC,EAAOllC,GAAG,QAAQ,SAAUgrC,IAC1BwM,EAAM,gBACFpqB,EAAM+rB,UAASnO,EAAQ5d,EAAM+rB,QAAQj3C,MAAM8oC,KAE3C5d,EAAMyb,YAAyB,OAAVmC,QAA4B3tC,IAAV2tC,MAAuC5d,EAAMyb,YAAgBmC,GAAUA,EAAMruC,UAE9GkrC,EAAMroC,KAAKwrC,KAGnB8N,GAAS,EACT5T,EAAO4W,cAKG5W,OACI7nC,IAAZa,KAAKqB,IAAyC,oBAAd2lC,EAAO3lC,KACzCrB,KAAKqB,GAAK,SAAoBoxB,GAC5B,OAAO,WACL,OAAOuU,EAAOvU,GAAQlxB,MAAMylC,EAAQ5lC,YAF9B,CAIRC,IAKN,IAAK,IAAIwE,EAAI,EAAGA,EAAIq0C,EAAaz7C,OAAQoH,IACvCmhC,EAAOllC,GAAGo4C,EAAar0C,GAAI7F,KAAKoC,KAAKgtB,KAAKpvB,KAAMk6C,EAAar0C,KAc/D,OATA7F,KAAKk7C,MAAQ,SAAUr1C,GACrByzC,EAAM,gBAAiBzzC,GAEnB+0C,IACFA,GAAS,EACT5T,EAAOsV,WAIJt8C,MAGa,oBAAX2J,SACT2oB,EAAS90B,UAAUmM,OAAOs0C,eAAiB,WAKzC,YAJ0C9+C,IAAtCs6C,IACFA,EAAoCz7C,EAAQ,MAGvCy7C,EAAkCz5C,QAI7C/C,OAAO4M,eAAeyoB,EAAS90B,UAAW,wBAAyB,CAIjEG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAeD,iBAG/Bh2B,OAAO4M,eAAeyoB,EAAS90B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,gBAAkBlzB,KAAKkzB,eAAen1B,UAGtDd,OAAO4M,eAAeyoB,EAAS90B,UAAW,kBAAmB,CAI3DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAeonB,SAE7BvrC,IAAK,SAAamgB,GACZlvB,KAAKkzB,iBACPlzB,KAAKkzB,eAAeonB,QAAUprB,MAKpCoD,EAAS4rB,UAAYzB,EACrBx/C,OAAO4M,eAAeyoB,EAAS90B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAKkzB,eAAez0B,UAoDT,oBAAXkL,SACT2oB,EAAS5zB,KAAO,SAAUy/C,EAAUlX,GAKlC,YAJa9nC,IAATT,IACFA,EAAOV,EAAQ,MAGVU,EAAK4zB,EAAU6rB,EAAUlX,O,sCCzlCpC9pC,EAAOC,QAAUY,EAAQ,IAAUgvB,c,8BCAnC,YAuDA,SAASoxB,EAAoBnnC,EAAMkV,GACjCkyB,EAAYpnC,EAAMkV,GAClBmyB,EAAYrnC,GAGd,SAASqnC,EAAYrnC,GACfA,EAAK6b,iBAAmB7b,EAAK6b,eAAe+nB,WAC5C5jC,EAAKic,iBAAmBjc,EAAKic,eAAe2nB,WAChD5jC,EAAK7U,KAAK,SAsBZ,SAASi8C,EAAYpnC,EAAMkV,GACzBlV,EAAK7U,KAAK,QAAS+pB,GAcrBhvB,EAAOC,QAAU,CACfwvC,QAnGF,SAAiBzgB,EAAKkH,GACpB,IAAIsW,EAAQ3pC,KAERu+C,EAAoBv+C,KAAKkzB,gBAAkBlzB,KAAKkzB,eAAeC,UAC/DqrB,EAAoBx+C,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAeK,UAEnE,OAAIorB,GAAqBC,GACnBnrB,EACFA,EAAGlH,GACMA,IACJnsB,KAAK8yB,eAEE9yB,KAAK8yB,eAAekZ,eAC9BhsC,KAAK8yB,eAAekZ,cAAe,EACnCzsC,EAAQ0B,SAASo9C,EAAar+C,KAAMmsB,IAHpC5sB,EAAQ0B,SAASo9C,EAAar+C,KAAMmsB,IAOjCnsB,OAKLA,KAAKkzB,iBACPlzB,KAAKkzB,eAAeC,WAAY,GAI9BnzB,KAAK8yB,iBACP9yB,KAAK8yB,eAAeK,WAAY,GAGlCnzB,KAAKozB,SAASjH,GAAO,MAAM,SAAUA,IAC9BkH,GAAMlH,EACJwd,EAAM7W,eAEC6W,EAAM7W,eAAekZ,aAI/BzsC,EAAQ0B,SAASq9C,EAAa3U,IAH9BA,EAAM7W,eAAekZ,cAAe,EACpCzsC,EAAQ0B,SAASm9C,EAAqBzU,EAAOxd,IAH7C5sB,EAAQ0B,SAASm9C,EAAqBzU,EAAOxd,GAOtCkH,GACT9zB,EAAQ0B,SAASq9C,EAAa3U,GAC9BtW,EAAGlH,IAEH5sB,EAAQ0B,SAASq9C,EAAa3U,MAI3B3pC,OAkDPquC,UApCF,WACMruC,KAAKkzB,iBACPlzB,KAAKkzB,eAAeC,WAAY,EAChCnzB,KAAKkzB,eAAeqnB,SAAU,EAC9Bv6C,KAAKkzB,eAAeH,OAAQ,EAC5B/yB,KAAKkzB,eAAeuU,YAAa,GAG/BznC,KAAK8yB,iBACP9yB,KAAK8yB,eAAeK,WAAY,EAChCnzB,KAAK8yB,eAAeC,OAAQ,EAC5B/yB,KAAK8yB,eAAeqY,QAAS,EAC7BnrC,KAAK8yB,eAAemY,aAAc,EAClCjrC,KAAK8yB,eAAeyZ,aAAc,EAClCvsC,KAAK8yB,eAAeyU,UAAW,EAC/BvnC,KAAK8yB,eAAekZ,cAAe,IAsBrCiO,eAdF,SAAwBjT,EAAQ7a,GAM9B,IAAIsyB,EAASzX,EAAO9T,eAChB2pB,EAAS7V,EAAOlU,eAChB2rB,GAAUA,EAAO3D,aAAe+B,GAAUA,EAAO/B,YAAa9T,EAAO4F,QAAQzgB,GAAU6a,EAAO5kC,KAAK,QAAS+pB,O,8CC/FlH,IAAIuyB,EAAwB1gD,EAAQ,IAAmB41B,MAAM8qB,sBAsB7DvhD,EAAOC,QAAU,CACfu8C,iBAjBF,SAA0BzqB,EAAOwD,EAASisB,EAAWjU,GACnD,IAAIG,EALN,SAA2BnY,EAASgY,EAAUiU,GAC5C,OAAgC,MAAzBjsB,EAAQO,cAAwBP,EAAQO,cAAgByX,EAAWhY,EAAQisB,GAAa,KAIrFC,CAAkBlsB,EAASgY,EAAUiU,GAE/C,GAAW,MAAP9T,EAAa,CACf,IAAM1/B,SAAS0/B,IAAQviC,KAAKsF,MAAMi9B,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAI6T,EADChU,EAAWiU,EAAY,gBACI9T,GAGxC,OAAOviC,KAAKsF,MAAMi9B,GAIpB,OAAO3b,EAAMyb,WAAa,GAAK,S,8BCrBjC,cAqCA,SAASjB,EAAcxa,GACrB,IAAIya,EAAQ3pC,KAEZA,KAAK8pB,KAAO,KACZ9pB,KAAK4pC,MAAQ,KAEb5pC,KAAK6pC,OAAS,YAimBhB,SAAwBC,EAAS5a,EAAO/C,GACtC,IAAIyd,EAAQE,EAAQF,MACpBE,EAAQF,MAAQ,KAEhB,KAAOA,GAAO,CACZ,IAAIvW,EAAKuW,EAAM1C,SACfhY,EAAM6a,YACN1W,EAAGlH,GACHyd,EAAQA,EAAM9f,KAIhBoF,EAAM8a,mBAAmBlgB,KAAOggB,EA5mB9BG,CAAeN,EAAOza,IAQ1B,IAAIkD,EA3BJj1B,EAAOC,QAAUm1B,EA8BjBA,EAAS6X,cAAgBA,EAGzB,IAAIC,EAAe,CACjB3f,UAAW1sB,EAAQ,KAMjBwrC,EAASxrC,EAAQ,IAIjBC,EAASD,EAAQ,GAAUC,OAE3BqsC,EAAgBjhC,EAAO/F,YAAc,aAUzC,IAkIIinC,EAlIAC,EAAcxsC,EAAQ,IAGtB27C,EADW37C,EAAQ,IACS27C,iBAE5BC,EAAiB57C,EAAQ,IAAa41B,MACtCimB,EAAuBD,EAAeC,qBACtCE,EAA6BH,EAAeG,2BAC5C8E,EAAwBjF,EAAeiF,sBACvCC,EAAyBlF,EAAekF,uBACxCC,EAAuBnF,EAAemF,qBACtCC,EAAyBpF,EAAeoF,uBACxCC,EAA6BrF,EAAeqF,2BAC5CC,EAAuBtF,EAAesF,qBAEtCjF,EAAiBzP,EAAYyP,eAIjC,SAASxP,KAET,SAASL,EAAc1X,EAASsU,EAAQ0D,GACtCtY,EAASA,GAAUp0B,EAAQ,IAC3B00B,EAAUA,GAAW,GAMG,mBAAbgY,IAAwBA,EAAW1D,aAAkB5U,GAGhEpyB,KAAK2qC,aAAejY,EAAQiY,WACxBD,IAAU1qC,KAAK2qC,WAAa3qC,KAAK2qC,cAAgBjY,EAAQkY,oBAI7D5qC,KAAKizB,cAAgB0mB,EAAiB35C,KAAM0yB,EAAS,wBAAyBgY,GAE9E1qC,KAAKirC,aAAc,EAEnBjrC,KAAKkrC,WAAY,EAEjBlrC,KAAKmrC,QAAS,EAEdnrC,KAAK+yB,OAAQ,EAEb/yB,KAAKunC,UAAW,EAEhBvnC,KAAKmzB,WAAY,EAIjB,IAAIiY,GAAqC,IAA1B1Y,EAAQ2Y,cACvBrrC,KAAKqrC,eAAiBD,EAItBprC,KAAKsrC,gBAAkB5Y,EAAQ4Y,iBAAmB,OAIlDtrC,KAAKvB,OAAS,EAEduB,KAAKurC,SAAU,EAEfvrC,KAAKwrC,OAAS,EAKdxrC,KAAKyrC,MAAO,EAIZzrC,KAAK0rC,kBAAmB,EAExB1rC,KAAK2rC,QAAU,SAAUxb,IA6R3B,SAAiB6W,EAAQ7W,GACvB,IAAIjB,EAAQ8X,EAAOlU,eACf2Y,EAAOvc,EAAMuc,KACbpY,EAAKnE,EAAM0c,QACf,GAAkB,oBAAPvY,EAAmB,MAAM,IAAIwrB,EAExC,GAbF,SAA4B3vB,GAC1BA,EAAMqc,SAAU,EAChBrc,EAAM0c,QAAU,KAChB1c,EAAMzwB,QAAUywB,EAAM2c,SACtB3c,EAAM2c,SAAW,EAQjBC,CAAmB5c,GACfiB,GArCN,SAAsB6W,EAAQ9X,EAAOuc,EAAMtb,EAAIkD,KAC3CnE,EAAM6a,UAEJ0B,GAGFlsC,EAAQ0B,SAASoyB,EAAIlD,GAGrB5wB,EAAQ0B,SAAS8qC,EAAa/E,EAAQ9X,GACtC8X,EAAOlU,eAAekZ,cAAe,EACrCiO,EAAejT,EAAQ7W,KAIvBkD,EAAGlD,GACH6W,EAAOlU,eAAekZ,cAAe,EACrCiO,EAAejT,EAAQ7W,GAGvB4b,EAAY/E,EAAQ9X,IAiBd+c,CAAajF,EAAQ9X,EAAOuc,EAAMtb,EAAIkD,OAAS,CAErD,IAAIkU,EAAW2E,EAAWhd,IAAU8X,EAAO7T,UAEtCoU,GAAarY,EAAMsc,QAAWtc,EAAMwc,mBAAoBxc,EAAMid,iBACjEC,EAAYpF,EAAQ9X,GAGlBuc,EACFlsC,EAAQ0B,SAASorC,EAAYrF,EAAQ9X,EAAOqY,EAAUlU,GAEtDgZ,EAAWrF,EAAQ9X,EAAOqY,EAAUlU,IA7StCsY,CAAQ3E,EAAQ7W,IAIlBnwB,KAAK4rC,QAAU,KAEf5rC,KAAK6rC,SAAW,EAChB7rC,KAAKmsC,gBAAkB,KACvBnsC,KAAKssC,oBAAsB,KAG3BtsC,KAAK+pC,UAAY,EAGjB/pC,KAAKusC,aAAc,EAEnBvsC,KAAKgsC,cAAe,EAEpBhsC,KAAK66C,WAAkC,IAAtBnoB,EAAQmoB,UAEzB76C,KAAK86C,cAAgBpoB,EAAQooB,YAE7B96C,KAAKwsC,qBAAuB,EAG5BxsC,KAAKgqC,mBAAqB,IAAIN,EAAc1pC,MA4C9C,SAASuyB,EAASG,GAUhB,IAAIgY,EAAW1qC,gBATfoyB,EAASA,GAAUp0B,EAAQ,KAU3B,IAAK0sC,IAAaH,EAAgBxqC,KAAKwyB,EAAUvyB,MAAO,OAAO,IAAIuyB,EAASG,GAC5E1yB,KAAK8yB,eAAiB,IAAIsX,EAAc1X,EAAS1yB,KAAM0qC,GAEvD1qC,KAAKpC,UAAW,EAEZ80B,IAC2B,oBAAlBA,EAAQ1uB,QAAsBhE,KAAKysC,OAAS/Z,EAAQ1uB,OACjC,oBAAnB0uB,EAAQga,SAAuB1sC,KAAK2sC,QAAUja,EAAQga,QAClC,oBAApBha,EAAQka,UAAwB5sC,KAAKozB,SAAWV,EAAQka,SACtC,oBAAlBla,EAAQvH,QAAsBnrB,KAAKorB,OAASsH,EAAQvH,QAGjEqe,EAAOzpC,KAAKC,MAwJd,SAAS6sC,EAAQ7F,EAAQ9X,EAAOwd,EAAQhsC,EAAKosC,EAAO7tC,EAAUo0B,GAC5DnE,EAAM2c,SAAWnrC,EACjBwuB,EAAM0c,QAAUvY,EAChBnE,EAAMqc,SAAU,EAChBrc,EAAMuc,MAAO,EACTvc,EAAMiE,UAAWjE,EAAMyc,QAAQ,IAAIoT,EAAqB,UAAmBrS,EAAQ1F,EAAO2F,QAAQG,EAAO5d,EAAMyc,SAAc3E,EAAOyF,OAAOK,EAAO7tC,EAAUiwB,EAAMyc,SACtKzc,EAAMuc,MAAO,EAwDf,SAASY,EAAWrF,EAAQ9X,EAAOqY,EAAUlU,GACtCkU,GASP,SAAsBP,EAAQ9X,GACP,IAAjBA,EAAMzwB,QAAgBywB,EAAMgc,YAC9Bhc,EAAMgc,WAAY,EAClBlE,EAAO5kC,KAAK,UAZC2qC,CAAa/F,EAAQ9X,GACpCA,EAAM6a,YACN1W,IACA0Y,EAAY/E,EAAQ9X,GActB,SAASkd,EAAYpF,EAAQ9X,GAC3BA,EAAMwc,kBAAmB,EACzB,IAAI9B,EAAQ1a,EAAMid,gBAElB,GAAInF,EAAO2F,SAAW/C,GAASA,EAAM9f,KAAM,CAEzC,IAAI/Z,EAAImf,EAAMsd,qBACVzuC,EAAS,IAAIoD,MAAM4O,GACnBi9B,EAAS9d,EAAM8a,mBACnBgD,EAAOpD,MAAQA,EAIf,IAHA,IAAIjb,EAAQ,EACRse,GAAa,EAEVrD,GACL7rC,EAAO4wB,GAASib,EACXA,EAAMsD,QAAOD,GAAa,GAC/BrD,EAAQA,EAAM9f,KACd6E,GAAS,EAGX5wB,EAAOkvC,WAAaA,EACpBJ,EAAQ7F,EAAQ9X,GAAO,EAAMA,EAAMzwB,OAAQV,EAAQ,GAAIivC,EAAOnD,QAG9D3a,EAAM6a,YACN7a,EAAMod,oBAAsB,KAExBU,EAAOljB,MACToF,EAAM8a,mBAAqBgD,EAAOljB,KAClCkjB,EAAOljB,KAAO,MAEdoF,EAAM8a,mBAAqB,IAAIN,EAAcxa,GAG/CA,EAAMsd,qBAAuB,MACxB,CAEL,KAAO5C,GAAO,CACZ,IAAIkD,EAAQlD,EAAMkD,MACd7tC,EAAW2qC,EAAM3qC,SACjBo0B,EAAKuW,EAAM1C,SASf,GAPA2F,EAAQ7F,EAAQ9X,GAAO,EADbA,EAAMyb,WAAa,EAAImC,EAAMruC,OACJquC,EAAO7tC,EAAUo0B,GACpDuW,EAAQA,EAAM9f,KACdoF,EAAMsd,uBAKFtd,EAAMqc,QACR,MAIU,OAAV3B,IAAgB1a,EAAMod,oBAAsB,MAGlDpd,EAAMid,gBAAkBvC,EACxB1a,EAAMwc,kBAAmB,EA2C3B,SAASQ,EAAWhd,GAClB,OAAOA,EAAMic,QAA2B,IAAjBjc,EAAMzwB,QAA0C,OAA1BywB,EAAMid,kBAA6Bjd,EAAMqY,WAAarY,EAAMqc,QAG3G,SAAS4B,EAAUnG,EAAQ9X,GACzB8X,EAAO5b,QAAO,SAAUe,GACtB+C,EAAM6a,YAEF5d,GACF8tB,EAAejT,EAAQ7a,GAGzB+C,EAAMqd,aAAc,EACpBvF,EAAO5kC,KAAK,aACZ2pC,EAAY/E,EAAQ9X,MAiBxB,SAAS6c,EAAY/E,EAAQ9X,GAC3B,IAAIke,EAAOlB,EAAWhd,GAEtB,GAAIke,IAhBN,SAAmBpG,EAAQ9X,GACpBA,EAAMqd,aAAgBrd,EAAM+b,cACF,oBAAlBjE,EAAO5b,QAA0B8D,EAAMiE,WAKhDjE,EAAMqd,aAAc,EACpBvF,EAAO5kC,KAAK,eALZ8sB,EAAM6a,YACN7a,EAAM+b,aAAc,EACpB1rC,EAAQ0B,SAASksC,EAAWnG,EAAQ9X,KAYtCme,CAAUrG,EAAQ9X,GAEM,IAApBA,EAAM6a,YACR7a,EAAMqY,UAAW,EACjBP,EAAO5kC,KAAK,UAER8sB,EAAM4rB,cAAa,CAGrB,IAAI2D,EAASzX,EAAO9T,iBAEfurB,GAAUA,EAAO3D,aAAe2D,EAAOhX,aAC1CT,EAAO4F,UAMf,OAAOQ,EA3hBTpvC,EAAQ,EAARA,CAAoBu0B,EAAUiX,GAyF9BY,EAAc5sC,UAAUw3B,UAAY,WAIlC,IAHA,IAAI3K,EAAUrqB,KAAKmsC,gBACf5gC,EAAM,GAEH8e,GACL9e,EAAIjK,KAAK+oB,GACTA,EAAUA,EAAQP,KAGpB,OAAOve,GAGT,WACE,IACEtO,OAAO4M,eAAeugC,EAAc5sC,UAAW,SAAU,CACvDqtB,IAAKwf,EAAa3f,WAAU,WAC1B,OAAO1qB,KAAKg1B,cACX,6EAAmF,aAExF,MAAOlT,KAPX,GAcsB,oBAAXnY,QAAyBA,OAAO2jC,aAAiE,oBAA3C59B,SAASlS,UAAUmM,OAAO2jC,cACzF/C,EAAkB76B,SAASlS,UAAUmM,OAAO2jC,aAC5CrwC,OAAO4M,eAAe0oB,EAAU5oB,OAAO2jC,YAAa,CAClD5vC,MAAO,SAAe6vC,GACpB,QAAIhD,EAAgBxqC,KAAKC,KAAMutC,IAC3BvtC,OAASuyB,IACNgb,GAAUA,EAAOza,0BAA0BsX,OAItDG,EAAkB,SAAyBgD,GACzC,OAAOA,aAAkBvtC,MA+B7BuyB,EAAS/0B,UAAUgwC,KAAO,WACxByM,EAAej6C,KAAM,IAAI8+C,IA+B3BvsB,EAAS/0B,UAAUwG,MAAQ,SAAU8oC,EAAO7tC,EAAUo0B,GACpD,IAnNqBlvB,EAmNjB+qB,EAAQlvB,KAAK8yB,eACbxnB,GAAM,EAEN4hC,GAAShe,EAAMyb,aAtNExmC,EAsN0B2oC,EArNxC7uC,EAAOmG,SAASD,IAAQA,aAAemmC,GAsO9C,OAfI4C,IAAUjvC,EAAOmG,SAAS0oC,KAC5BA,EA7NJ,SAA6BA,GAC3B,OAAO7uC,EAAOS,KAAKouC,GA4NTW,CAAoBX,IAGN,oBAAb7tC,IACTo0B,EAAKp0B,EACLA,EAAW,MAGTiuC,EAAOjuC,EAAW,SAAmBA,IAAUA,EAAWiwB,EAAMoc,iBAClD,oBAAPjY,IAAmBA,EAAKoX,GAC/Bvb,EAAMic,OA7CZ,SAAuBnE,EAAQ3T,GAC7B,IAAIlD,EAAK,IAAI8uB,EAEbhF,EAAejT,EAAQ7W,GACvB5wB,EAAQ0B,SAASoyB,EAAIlD,GAyCHud,CAAc1tC,KAAMqzB,IAAa6Z,GAnCrD,SAAoBlG,EAAQ9X,EAAO4d,EAAOzZ,GACxC,IAAIlD,EAQJ,OANc,OAAV2c,EACF3c,EAAK,IAAI6uB,EACiB,kBAAVlS,GAAuB5d,EAAMyb,aAC7Cxa,EAAK,IAAI0pB,EAAqB,QAAS,CAAC,SAAU,UAAW/M,KAG3D3c,IACF8pB,EAAejT,EAAQ7W,GACvB5wB,EAAQ0B,SAASoyB,EAAIlD,IACd,GAuBmDyd,CAAW5tC,KAAMkvB,EAAO4d,EAAOzZ,MACzFnE,EAAM6a,YACNz+B,EAwDJ,SAAuB07B,EAAQ9X,EAAOge,EAAOJ,EAAO7tC,EAAUo0B,GAC5D,IAAK6Z,EAAO,CACV,IAAIW,EAtBR,SAAqB3e,EAAO4d,EAAO7tC,GAC5BiwB,EAAMyb,aAAsC,IAAxBzb,EAAMmc,eAA4C,kBAAVyB,IAC/DA,EAAQ7uC,EAAOS,KAAKouC,EAAO7tC,IAG7B,OAAO6tC,EAiBUgB,CAAY5e,EAAO4d,EAAO7tC,GAErC6tC,IAAUe,IACZX,GAAQ,EACRjuC,EAAW,SACX6tC,EAAQe,GAIZ,IAAIntC,EAAMwuB,EAAMyb,WAAa,EAAImC,EAAMruC,OACvCywB,EAAMzwB,QAAUiC,EAChB,IAAI4K,EAAM4jB,EAAMzwB,OAASywB,EAAM+D,cAE1B3nB,IAAK4jB,EAAMgc,WAAY,GAE5B,GAAIhc,EAAMqc,SAAWrc,EAAMsc,OAAQ,CACjC,IAAIpH,EAAOlV,EAAMod,oBACjBpd,EAAMod,oBAAsB,CAC1BQ,MAAOA,EACP7tC,SAAUA,EACViuC,MAAOA,EACPhG,SAAU7T,EACVvJ,KAAM,MAGJsa,EACFA,EAAKta,KAAOoF,EAAMod,oBAElBpd,EAAMid,gBAAkBjd,EAAMod,oBAGhCpd,EAAMsd,sBAAwB,OAE9BK,EAAQ7F,EAAQ9X,GAAO,EAAOxuB,EAAKosC,EAAO7tC,EAAUo0B,GAGtD,OAAO/nB,EA9FCyiC,CAAc/tC,KAAMkvB,EAAOge,EAAOJ,EAAO7tC,EAAUo0B,IAEpD/nB,GAGTinB,EAAS/0B,UAAUwwC,KAAO,WACxBhuC,KAAK8yB,eAAe0Y,UAGtBjZ,EAAS/0B,UAAUywC,OAAS,WAC1B,IAAI/e,EAAQlvB,KAAK8yB,eAEb5D,EAAMsc,SACRtc,EAAMsc,SACDtc,EAAMqc,SAAYrc,EAAMsc,QAAWtc,EAAMwc,mBAAoBxc,EAAMid,iBAAiBC,EAAYpsC,KAAMkvB,KAI/GqD,EAAS/0B,UAAU0wC,mBAAqB,SAA4BjvC,GAGlE,GADwB,kBAAbA,IAAuBA,EAAWA,EAASgG,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOiB,SAASjH,EAAW,IAAIgG,gBAAkB,GAAI,MAAM,IAAIi6C,EAAqBjgD,GAExL,OADAe,KAAK8yB,eAAewY,gBAAkBrsC,EAC/Be,MAGT/C,OAAO4M,eAAe0oB,EAAS/0B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,gBAAkB9yB,KAAK8yB,eAAekC,eAYtD/3B,OAAO4M,eAAe0oB,EAAS/0B,UAAW,wBAAyB,CAIjEG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAeG,iBA4L/BV,EAAS/0B,UAAUivC,OAAS,SAAUK,EAAO7tC,EAAUo0B,GACrDA,EAAG,IAAI0mB,EAA2B,cAGpCxnB,EAAS/0B,UAAUmvC,QAAU,KAE7Bpa,EAAS/0B,UAAU4H,IAAM,SAAU0nC,EAAO7tC,EAAUo0B,GAClD,IAAInE,EAAQlvB,KAAK8yB,eAoBjB,MAlBqB,oBAAVga,GACTzZ,EAAKyZ,EACLA,EAAQ,KACR7tC,EAAW,MACkB,oBAAbA,IAChBo0B,EAAKp0B,EACLA,EAAW,MAGC,OAAV6tC,QAA4B3tC,IAAV2tC,GAAqB9sC,KAAKgE,MAAM8oC,EAAO7tC,GAEzDiwB,EAAMsc,SACRtc,EAAMsc,OAAS,EACfxrC,KAAKiuC,UAIF/e,EAAMic,QAsEb,SAAqBnE,EAAQ9X,EAAOmE,GAClCnE,EAAMic,QAAS,EACfY,EAAY/E,EAAQ9X,GAEhBmE,IACEnE,EAAMqY,SAAUhoC,EAAQ0B,SAASoyB,GAAS2T,EAAOhlC,KAAK,SAAUqxB,IAGtEnE,EAAM6D,OAAQ,EACdiU,EAAOppC,UAAW,EA/ECuwC,CAAYnuC,KAAMkvB,EAAOmE,GACrCrzB,MAGT/C,OAAO4M,eAAe0oB,EAAS/0B,UAAW,iBAAkB,CAI1DG,YAAY,EACZktB,IAAK,WACH,OAAO7qB,KAAK8yB,eAAer0B,UAuF/BxB,OAAO4M,eAAe0oB,EAAS/0B,UAAW,YAAa,CAIrDG,YAAY,EACZktB,IAAK,WACH,YAA4B1rB,IAAxBa,KAAK8yB,gBAIF9yB,KAAK8yB,eAAeK,WAE7BpkB,IAAK,SAAarR,GAGXsC,KAAK8yB,iBAMV9yB,KAAK8yB,eAAeK,UAAYz1B,MAGpC60B,EAAS/0B,UAAUovC,QAAUpC,EAAYoC,QACzCra,EAAS/0B,UAAU4wC,WAAa5D,EAAY6D,UAE5C9b,EAAS/0B,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC3CA,EAAGlH,M,mDCxnBLhvB,EAAOC,QAAU0tB,EAEjB,IAAI8uB,EAAiB57C,EAAQ,IAAa41B,MACtCmmB,EAA6BH,EAAeG,2BAC5C8E,EAAwBjF,EAAeiF,sBACvCM,EAAqCvF,EAAeuF,mCACpDC,EAA8BxF,EAAewF,4BAE7ChtB,EAASp0B,EAAQ,IAIrB,SAASqhD,EAAelvB,EAAI1rB,GAC1B,IAAI66C,EAAKt/C,KAAKu/C,gBACdD,EAAGE,cAAe,EAClB,IAAInsB,EAAKisB,EAAG1T,QAEZ,GAAW,OAAPvY,EACF,OAAOrzB,KAAKoC,KAAK,QAAS,IAAIy8C,GAGhCS,EAAGG,WAAa,KAChBH,EAAG1T,QAAU,KACD,MAARnnC,GACFzE,KAAKsB,KAAKmD,GACZ4uB,EAAGlD,GACH,IAAIuvB,EAAK1/C,KAAKkzB,eACdwsB,EAAGnF,SAAU,GAETmF,EAAGlF,cAAgBkF,EAAGjhD,OAASihD,EAAGzsB,gBACpCjzB,KAAKk7C,MAAMwE,EAAGzsB,eAIlB,SAASnI,EAAU4H,GACjB,KAAM1yB,gBAAgB8qB,GAAY,OAAO,IAAIA,EAAU4H,GACvDN,EAAOryB,KAAKC,KAAM0yB,GAClB1yB,KAAKu/C,gBAAkB,CACrBF,eAAgBA,EAAejwB,KAAKpvB,MACpC2/C,eAAe,EACfH,cAAc,EACd5T,QAAS,KACT6T,WAAY,KACZG,cAAe,MAGjB5/C,KAAKkzB,eAAesnB,cAAe,EAInCx6C,KAAKkzB,eAAeuY,MAAO,EAEvB/Y,IAC+B,oBAAtBA,EAAQlS,YAA0BxgB,KAAKksB,WAAawG,EAAQlS,WAC1C,oBAAlBkS,EAAQmtB,QAAsB7/C,KAAKosB,OAASsG,EAAQmtB,QAIjE7/C,KAAK8B,GAAG,YAAaurC,GAGvB,SAASA,IACP,IAAI1D,EAAQ3pC,KAEe,oBAAhBA,KAAKosB,QAA0BpsB,KAAKkzB,eAAeC,UAK5D9G,EAAKrsB,KAAM,KAAM,MAJjBA,KAAKosB,QAAO,SAAU+D,EAAI1rB,GACxB4nB,EAAKsd,EAAOxZ,EAAI1rB,MA6DtB,SAAS4nB,EAAK2a,EAAQ7W,EAAI1rB,GACxB,GAAI0rB,EAAI,OAAO6W,EAAO5kC,KAAK,QAAS+tB,GAMpC,GALY,MAAR1rB,GACFuiC,EAAO1lC,KAAKmD,GAIVuiC,EAAOlU,eAAer0B,OAAQ,MAAM,IAAI2gD,EAC5C,GAAIpY,EAAOuY,gBAAgBC,aAAc,MAAM,IAAIL,EACnD,OAAOnY,EAAO1lC,KAAK,MA9HrBtD,EAAQ,EAARA,CAAoB8sB,EAAWsH,GA+D/BtH,EAAUttB,UAAU8D,KAAO,SAAUwrC,EAAO7tC,GAE1C,OADAe,KAAKu/C,gBAAgBI,eAAgB,EAC9BvtB,EAAO50B,UAAU8D,KAAKvB,KAAKC,KAAM8sC,EAAO7tC,IAajD6rB,EAAUttB,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUo0B,GAC1DA,EAAG,IAAI0mB,EAA2B,kBAGpCjvB,EAAUttB,UAAUivC,OAAS,SAAUK,EAAO7tC,EAAUo0B,GACtD,IAAIisB,EAAKt/C,KAAKu/C,gBAKd,GAJAD,EAAG1T,QAAUvY,EACbisB,EAAGG,WAAa3S,EAChBwS,EAAGM,cAAgB3gD,GAEdqgD,EAAGE,aAAc,CACpB,IAAIE,EAAK1/C,KAAKkzB,gBACVosB,EAAGK,eAAiBD,EAAGlF,cAAgBkF,EAAGjhD,OAASihD,EAAGzsB,gBAAejzB,KAAKk7C,MAAMwE,EAAGzsB,iBAO3FnI,EAAUttB,UAAU09C,MAAQ,SAAUr1C,GACpC,IAAIy5C,EAAKt/C,KAAKu/C,gBAEQ,OAAlBD,EAAGG,YAAwBH,EAAGE,aAOhCF,EAAGK,eAAgB,GANnBL,EAAGE,cAAe,EAElBx/C,KAAKksB,WAAWozB,EAAGG,WAAYH,EAAGM,cAAeN,EAAGD,kBAQxDv0B,EAAUttB,UAAU41B,SAAW,SAAUjH,EAAKkH,GAC5CjB,EAAO50B,UAAU41B,SAASrzB,KAAKC,KAAMmsB,GAAK,SAAU2zB,GAClDzsB,EAAGysB,Q,6BCxLP,IAAI7vC,EAAQ7S,EAkCZ,SAASkT,EAAMoC,GACb,OAAoB,IAAhBA,EAAKjU,OACA,IAAMiU,EAENA,EAIX,SAASlH,EAAMqE,GAEb,IADA,IAAIrH,EAAM,GACDnH,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAC9BmH,GAAO8H,EAAMT,EAAIxO,GAAGuD,SAAS,KAC/B,OAAO4D,EAdTyH,EAAMI,QA9BN,SAAiBR,EAAK+C,GACpB,GAAIzR,MAAM6B,QAAQ6M,GAChB,OAAOA,EAAI5L,QACb,IAAK4L,EACH,MAAO,GACT,IAAIrH,EAAM,GACV,GAAmB,kBAARqH,EAAkB,CAC3B,IAAK,IAAIxO,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAC9BmH,EAAInH,GAAc,EAATwO,EAAIxO,GACf,OAAOmH,EAET,GAAY,QAARoK,EAAe,EACjB/C,EAAMA,EAAIP,QAAQ,eAAgB,KAC1B7Q,OAAS,IAAM,IACrBoR,EAAM,IAAMA,GACd,IAASxO,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,GAAK,EACnCmH,EAAIlH,KAAK8F,SAASyI,EAAIxO,GAAKwO,EAAIxO,EAAI,GAAI,UAEzC,IAASA,EAAI,EAAGA,EAAIwO,EAAIpR,OAAQ4C,IAAK,CACnC,IAAI4G,EAAI4H,EAAIlI,WAAWtG,GACnB6G,EAAKD,GAAK,EACVE,EAAS,IAAJF,EACLC,EACFM,EAAIlH,KAAK4G,EAAIC,GAEbK,EAAIlH,KAAK6G,GAGf,OAAOK,GAUTyH,EAAMK,MAAQA,EAQdL,EAAMzE,MAAQA,EAEdyE,EAAMM,OAAS,SAAgBnK,EAAKwM,GAClC,MAAY,QAARA,EACKpH,EAAMpF,GAENA,I,6BCtDX,IAAI43B,EAAQ5gC,EAEZ4gC,EAAMhpB,KAAOhX,EAAQ,IACrBggC,EAAM6U,MAAQ70C,EAAQ,KACtBggC,EAAMzT,KAAOvsB,EAAQ,KACrBggC,EAAM8U,QAAU90C,EAAQ,M,6BCLxB,IACIkV,EADQlV,EAAQ,GACDkV,OAYnB,SAAS04C,EAAK3hD,EAAGC,EAAG+G,GAClB,OAAQhH,EAAIC,GAAQD,EAAKgH,EAI3B,SAAS46C,EAAM5hD,EAAGC,EAAG+G,GACnB,OAAQhH,EAAIC,EAAMD,EAAIgH,EAAM/G,EAAI+G,EAIlC,SAAS66C,EAAI7hD,EAAGC,EAAG+G,GACjB,OAAOhH,EAAIC,EAAI+G,EAbjB7T,EAAQ2uD,KARR,SAActrC,EAAGxW,EAAGC,EAAG+G,GACrB,OAAU,IAANwP,EACKmrC,EAAK3hD,EAAGC,EAAG+G,GACV,IAANwP,GAAiB,IAANA,EACNqrC,EAAI7hD,EAAGC,EAAG+G,GACT,IAANwP,EACKorC,EAAM5hD,EAAGC,EAAG+G,QADrB,GAQF7T,EAAQwuD,KAAOA,EAKfxuD,EAAQyuD,MAAQA,EAKhBzuD,EAAQ0uD,IAAMA,EAKd1uD,EAAQ4uD,OAHR,SAAgB/hD,GACd,OAAOiJ,EAAOjJ,EAAG,GAAKiJ,EAAOjJ,EAAG,IAAMiJ,EAAOjJ,EAAG,KAOlD7M,EAAQ6uD,OAHR,SAAgBhiD,GACd,OAAOiJ,EAAOjJ,EAAG,GAAKiJ,EAAOjJ,EAAG,IAAMiJ,EAAOjJ,EAAG,KAOlD7M,EAAQ8uD,OAHR,SAAgBjiD,GACd,OAAOiJ,EAAOjJ,EAAG,GAAKiJ,EAAOjJ,EAAG,IAAOA,IAAM,GAO/C7M,EAAQ+uD,OAHR,SAAgBliD,GACd,OAAOiJ,EAAOjJ,EAAG,IAAMiJ,EAAOjJ,EAAG,IAAOA,IAAM,K,6BC5ChD,IAAIgG,EAAQjS,EAAQ,GAChBm1C,EAASn1C,EAAQ,IACjBouD,EAAYpuD,EAAQ,KACpB4R,EAAS5R,EAAQ,GAEjBoV,EAAQnD,EAAMmD,MACdE,EAAUrD,EAAMqD,QAChBE,EAAUvD,EAAMuD,QAChBo4C,EAAOQ,EAAUR,KACjBC,EAAQO,EAAUP,MAClBG,EAASI,EAAUJ,OACnBC,EAASG,EAAUH,OACnBC,EAASE,EAAUF,OACnBC,EAASC,EAAUD,OAEnB/0B,EAAY+b,EAAO/b,UAEnBi1B,EAAW,CACb,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,YAGtC,SAASC,IACP,KAAMtsD,gBAAgBssD,GACpB,OAAO,IAAIA,EAEbl1B,EAAUr3B,KAAKC,MACfA,KAAKgjB,EAAI,CACP,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YAEtChjB,KAAK+Q,EAAIs7C,EACTrsD,KAAKggD,EAAI,IAAI7+C,MAAM,IAErB8O,EAAMsC,SAAS+5C,EAAQl1B,GACvBj6B,EAAOC,QAAUkvD,EAEjBA,EAAOp3B,UAAY,IACnBo3B,EAAO/0B,QAAU,IACjB+0B,EAAO90B,aAAe,IACtB80B,EAAO70B,UAAY,GAEnB60B,EAAO9uD,UAAUouB,QAAU,SAAiB/b,EAAK1K,GAG/C,IAFA,IAAI66C,EAAIhgD,KAAKggD,EAEJ3+C,EAAI,EAAGA,EAAI,GAAIA,IACtB2+C,EAAE3+C,GAAKwO,EAAI1K,EAAQ9D,GACrB,KAAOA,EAAI2+C,EAAEvhD,OAAQ4C,IACnB2+C,EAAE3+C,GAAKiS,EAAQ64C,EAAOnM,EAAE3+C,EAAI,IAAK2+C,EAAE3+C,EAAI,GAAI6qD,EAAOlM,EAAE3+C,EAAI,KAAM2+C,EAAE3+C,EAAI,KAEtE,IAAI2I,EAAIhK,KAAKgjB,EAAE,GACXpd,EAAI5F,KAAKgjB,EAAE,GACX/a,EAAIjI,KAAKgjB,EAAE,GACXzP,EAAIvT,KAAKgjB,EAAE,GACXljB,EAAIE,KAAKgjB,EAAE,GACXwhB,EAAIxkC,KAAKgjB,EAAE,GACXvT,EAAIzP,KAAKgjB,EAAE,GACXA,EAAIhjB,KAAKgjB,EAAE,GAGf,IADApT,EAAO5P,KAAK+Q,EAAEtS,SAAWuhD,EAAEvhD,QACtB4C,EAAI,EAAGA,EAAI2+C,EAAEvhD,OAAQ4C,IAAK,CAC7B,IAAIq/C,EAAKltC,EAAQwP,EAAGipC,EAAOnsD,GAAI8rD,EAAK9rD,EAAG0kC,EAAG/0B,GAAIzP,KAAK+Q,EAAE1P,GAAI2+C,EAAE3+C,IACvDs/C,EAAKvtC,EAAM44C,EAAOhiD,GAAI6hD,EAAM7hD,EAAGpE,EAAGqC,IACtC+a,EAAIvT,EACJA,EAAI+0B,EACJA,EAAI1kC,EACJA,EAAIsT,EAAMG,EAAGmtC,GACbntC,EAAItL,EACJA,EAAIrC,EACJA,EAAIoE,EACJA,EAAIoJ,EAAMstC,EAAIC,GAGhB3gD,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIhZ,GAC7BhK,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIpd,GAC7B5F,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAI/a,GAC7BjI,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIzP,GAC7BvT,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIljB,GAC7BE,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIwhB,GAC7BxkC,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIvT,GAC7BzP,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIA,IAG/BspC,EAAO9uD,UAAUq6B,QAAU,SAAgBjlB,GACzC,MAAY,QAARA,EACK3C,EAAM6C,QAAQ9S,KAAKgjB,EAAG,OAEtB/S,EAAMgD,QAAQjT,KAAKgjB,EAAG,S,6BCrGjC,IAAI/S,EAAQjS,EAAQ,GAChBm1C,EAASn1C,EAAQ,IACjB4R,EAAS5R,EAAQ,GAEjB2W,EAAY1E,EAAM0E,UAClBC,EAAY3E,EAAM2E,UAClBC,EAAW5E,EAAM4E,SACjBC,EAAW7E,EAAM6E,SACjBrB,EAAQxD,EAAMwD,MACdI,EAAW5D,EAAM4D,SACjBE,EAAW9D,EAAM8D,SACjBC,EAAa/D,EAAM+D,WACnBM,EAAarE,EAAMqE,WACnBC,EAAatE,EAAMsE,WACnBG,EAAazE,EAAMyE,WAEnB0iB,EAAY+b,EAAO/b,UAEnBm1B,EAAW,CACb,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,YAGtC,SAASC,IACP,KAAMxsD,gBAAgBwsD,GACpB,OAAO,IAAIA,EAEbp1B,EAAUr3B,KAAKC,MACfA,KAAKgjB,EAAI,CACP,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACdhjB,KAAK+Q,EAAIw7C,EACTvsD,KAAKggD,EAAI,IAAI7+C,MAAM,KAyIrB,SAASsrD,EAAQ/J,EAAI3B,EAAI2L,EAAIC,EAAIC,GAC/B,IAAI58C,EAAK0yC,EAAKgK,GAAShK,EAAMkK,EAG7B,OAFI58C,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS68C,EAAQnK,EAAI3B,EAAI2L,EAAIC,EAAIC,EAAI3kB,GACnC,IAAIj4B,EAAK+wC,EAAK4L,GAAS5L,EAAM9Y,EAG7B,OAFIj4B,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS88C,EAASpK,EAAI3B,EAAI2L,EAAIC,EAAIC,GAChC,IAAI58C,EAAK0yC,EAAKgK,EAAOhK,EAAKkK,EAAOF,EAAKE,EAGtC,OAFI58C,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS+8C,EAASrK,EAAI3B,EAAI2L,EAAIC,EAAIC,EAAI3kB,GACpC,IAAIj4B,EAAK+wC,EAAK4L,EAAO5L,EAAK9Y,EAAO0kB,EAAK1kB,EAGtC,OAFIj4B,EAAI,IACNA,GAAK,YACAA,EAGT,SAASg9C,EAAUtK,EAAI3B,GACrB,IAII/wC,EAJQ2E,EAAU+tC,EAAI3B,EAAI,IAClBpsC,EAAUosC,EAAI2B,EAAI,GAClB/tC,EAAUosC,EAAI2B,EAAI,GAK9B,OAFI1yC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASi9C,EAAUvK,EAAI3B,GACrB,IAII/wC,EAJQ4E,EAAU8tC,EAAI3B,EAAI,IAClBnsC,EAAUmsC,EAAI2B,EAAI,GAClB9tC,EAAUmsC,EAAI2B,EAAI,GAK9B,OAFI1yC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASk9C,EAAUxK,EAAI3B,GACrB,IAII/wC,EAJQ2E,EAAU+tC,EAAI3B,EAAI,IAClBpsC,EAAU+tC,EAAI3B,EAAI,IAClBpsC,EAAUosC,EAAI2B,EAAI,GAK9B,OAFI1yC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASm9C,EAAUzK,EAAI3B,GACrB,IAII/wC,EAJQ4E,EAAU8tC,EAAI3B,EAAI,IAClBnsC,EAAU8tC,EAAI3B,EAAI,IAClBnsC,EAAUmsC,EAAI2B,EAAI,GAK9B,OAFI1yC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASo9C,EAAU1K,EAAI3B,GACrB,IAII/wC,EAJQ2E,EAAU+tC,EAAI3B,EAAI,GAClBpsC,EAAU+tC,EAAI3B,EAAI,GAClBlsC,EAAS6tC,EAAI3B,EAAI,GAK7B,OAFI/wC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASq9C,EAAU3K,EAAI3B,GACrB,IAII/wC,EAJQ4E,EAAU8tC,EAAI3B,EAAI,GAClBnsC,EAAU8tC,EAAI3B,EAAI,GAClBjsC,EAAS4tC,EAAI3B,EAAI,GAK7B,OAFI/wC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASs9C,EAAU5K,EAAI3B,GACrB,IAII/wC,EAJQ2E,EAAU+tC,EAAI3B,EAAI,IAClBpsC,EAAUosC,EAAI2B,EAAI,IAClB7tC,EAAS6tC,EAAI3B,EAAI,GAK7B,OAFI/wC,EAAI,IACNA,GAAK,YACAA,EAGT,SAASu9C,EAAU7K,EAAI3B,GACrB,IAII/wC,EAJQ4E,EAAU8tC,EAAI3B,EAAI,IAClBnsC,EAAUmsC,EAAI2B,EAAI,IAClB5tC,EAAS4tC,EAAI3B,EAAI,GAK7B,OAFI/wC,EAAI,IACNA,GAAK,YACAA,EAxPTC,EAAMsC,SAASi6C,EAAQp1B,GACvBj6B,EAAOC,QAAUovD,EAEjBA,EAAOt3B,UAAY,KACnBs3B,EAAOj1B,QAAU,IACjBi1B,EAAOh1B,aAAe,IACtBg1B,EAAO/0B,UAAY,IAEnB+0B,EAAOhvD,UAAUgwD,cAAgB,SAAuB39C,EAAK1K,GAI3D,IAHA,IAAI66C,EAAIhgD,KAAKggD,EAGJ3+C,EAAI,EAAGA,EAAI,GAAIA,IACtB2+C,EAAE3+C,GAAKwO,EAAI1K,EAAQ9D,GACrB,KAAOA,EAAI2+C,EAAEvhD,OAAQ4C,GAAK,EAAG,CAC3B,IAAIosD,EAAQH,EAAUtN,EAAE3+C,EAAI,GAAI2+C,EAAE3+C,EAAI,IAClCqsD,EAAQH,EAAUvN,EAAE3+C,EAAI,GAAI2+C,EAAE3+C,EAAI,IAClCssD,EAAQ3N,EAAE3+C,EAAI,IACdusD,EAAQ5N,EAAE3+C,EAAI,IACdwsD,EAAQT,EAAUpN,EAAE3+C,EAAI,IAAK2+C,EAAE3+C,EAAI,KACnCysD,EAAQT,EAAUrN,EAAE3+C,EAAI,IAAK2+C,EAAE3+C,EAAI,KACnC0sD,EAAQ/N,EAAE3+C,EAAI,IACd2sD,EAAQhO,EAAE3+C,EAAI,IAElB2+C,EAAE3+C,GAAK2S,EACLy5C,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,GACThO,EAAE3+C,EAAI,GAAKiT,EACTm5C,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,KAIbxB,EAAOhvD,UAAUouB,QAAU,SAAiB/b,EAAK1K,GAC/CnF,KAAKwtD,cAAc39C,EAAK1K,GAExB,IAAI66C,EAAIhgD,KAAKggD,EAETtsC,EAAK1T,KAAKgjB,EAAE,GACZrP,EAAK3T,KAAKgjB,EAAE,GACZpP,EAAK5T,KAAKgjB,EAAE,GACZlP,EAAK9T,KAAKgjB,EAAE,GACZ/O,EAAKjU,KAAKgjB,EAAE,GACZ9O,EAAKlU,KAAKgjB,EAAE,GACZ7O,EAAKnU,KAAKgjB,EAAE,GACZ5O,EAAKpU,KAAKgjB,EAAE,GACZxO,EAAKxU,KAAKgjB,EAAE,GACZvO,EAAKzU,KAAKgjB,EAAE,GACZq/B,EAAKriD,KAAKgjB,EAAE,IACZw/B,EAAKxiD,KAAKgjB,EAAE,IACZs/B,EAAKtiD,KAAKgjB,EAAE,IACZy/B,EAAKziD,KAAKgjB,EAAE,IACZu/B,EAAKviD,KAAKgjB,EAAE,IACZqlB,EAAKroC,KAAKgjB,EAAE,IAEhBpT,EAAO5P,KAAK+Q,EAAEtS,SAAWuhD,EAAEvhD,QAC3B,IAAK,IAAI4C,EAAI,EAAGA,EAAI2+C,EAAEvhD,OAAQ4C,GAAK,EAAG,CACpC,IAAIosD,EAAQlL,EACRmL,EAAQrlB,EACRslB,EAAQT,EAAU14C,EAAIC,GACtBm5C,EAAQT,EAAU34C,EAAIC,GACtBo5C,EAAQpB,EAAQj4C,EAAIC,EAAI4tC,EAAIG,EAAIF,GAChCwL,EAAQjB,EAAQr4C,EAAIC,EAAI4tC,EAAIG,EAAIF,EAAIG,GACpCsL,EAAQ/tD,KAAK+Q,EAAE1P,GACf2sD,EAAQhuD,KAAK+Q,EAAE1P,EAAI,GACnB4sD,EAAQjO,EAAE3+C,GACV6sD,EAAQlO,EAAE3+C,EAAI,GAEd8sD,EAAQ55C,EACVk5C,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,GACLE,EAAQ15C,EACV+4C,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,GAETT,EAAQT,EAAUt5C,EAAIC,GACtB+5C,EAAQT,EAAUv5C,EAAIC,GACtBg6C,EAAQb,EAASp5C,EAAIC,EAAIC,EAAIE,EAAIG,GACjC25C,EAAQb,EAASr5C,EAAIC,EAAIC,EAAIE,EAAIG,EAAIC,GAErC,IAAIm6C,EAAQx6C,EAAS45C,EAAOC,EAAOC,EAAOC,GACtCU,EAAQv6C,EAAS05C,EAAOC,EAAOC,EAAOC,GAE1CrL,EAAKD,EACLja,EAAKoa,EAELH,EAAKD,EACLI,EAAKD,EAELH,EAAK7tC,EACLguC,EAAK/tC,EAELD,EAAKX,EAASM,EAAIC,EAAI+5C,EAAOC,GAC7B35C,EAAKV,EAASK,EAAIA,EAAI+5C,EAAOC,GAE7Bj6C,EAAKF,EACLG,EAAKF,EAELD,EAAKL,EACLM,EAAKJ,EAELF,EAAKF,EACLI,EAAKH,EAELD,EAAKG,EAASs6C,EAAOC,EAAOC,EAAOC,GACnC36C,EAAKI,EAASo6C,EAAOC,EAAOC,EAAOC,GAGrC76C,EAAMzT,KAAKgjB,EAAG,EAAGtP,EAAIC,GACrBF,EAAMzT,KAAKgjB,EAAG,EAAGpP,EAAIE,GACrBL,EAAMzT,KAAKgjB,EAAG,EAAG/O,EAAIC,GACrBT,EAAMzT,KAAKgjB,EAAG,EAAG7O,EAAIC,GACrBX,EAAMzT,KAAKgjB,EAAG,EAAGxO,EAAIC,GACrBhB,EAAMzT,KAAKgjB,EAAG,GAAIq/B,EAAIG,GACtB/uC,EAAMzT,KAAKgjB,EAAG,GAAIs/B,EAAIG,GACtBhvC,EAAMzT,KAAKgjB,EAAG,GAAIu/B,EAAIla,IAGxBmkB,EAAOhvD,UAAUq6B,QAAU,SAAgBjlB,GACzC,MAAY,QAARA,EACK3C,EAAM6C,QAAQ9S,KAAKgjB,EAAG,OAEtB/S,EAAMgD,QAAQjT,KAAKgjB,EAAG,S,6BClNjC,IAAMyd,EAAOrjC,EAEbqjC,EAAK8tB,OAASvwD,EAAQ,KAEtByiC,EAAK+tB,OAASxwD,EAAQ,KAAcwwD,OACpC/tB,EAAKzrB,KAAOhX,EAAQ,KACpByiC,EAAKiT,UAAY11C,EAAQ,KACzByiC,EAAKguB,SAAWzwD,EAAQ,KACxByiC,EAAKiuB,SAAW1wD,EAAQ,M,iBCVxB,sBAAWb,EAAQC,GACjB,aAGA,SAASwS,EAAQrL,EAAKsL,GACpB,IAAKtL,EAAK,MAAM,IAAI9E,MAAMoQ,GAAO,oBAKnC,SAAS0C,EAAUlV,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,EAK/B,SAAS6S,EAAI6E,EAAQC,EAAMjC,GACzB,GAAI7C,EAAG+E,KAAKF,GACV,OAAOA,EAGT/U,KAAKkV,SAAW,EAChBlV,KAAKmV,MAAQ,KACbnV,KAAKvB,OAAS,EAGduB,KAAKoV,IAAM,KAEI,OAAXL,IACW,OAATC,GAA0B,OAATA,IACnBjC,EAASiC,EACTA,EAAO,IAGThV,KAAKqV,MAAMN,GAAU,EAAGC,GAAQ,GAAIjC,GAAU,OAYlD,IAAI9U,EATkB,kBAAXd,EACTA,EAAOC,QAAU8S,EAEjB9S,EAAQ8S,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGoF,SAAW,GAGd,IAEIrX,EADoB,qBAAX0R,QAAmD,qBAAlBA,OAAO1R,OACxC0R,OAAO1R,OAEPD,EAAQ,KAAUC,OAE7B,MAAO6B,IAgIT,SAASyV,EAAe1R,EAAQ2R,GAC9B,IAAIvN,EAAIpE,EAAO8D,WAAW6N,GAE1B,OAAIvN,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASwN,EAAc5R,EAAQ6R,EAAYF,GACzC,IAAIxF,EAAIuF,EAAc1R,EAAQ2R,GAI9B,OAHIA,EAAQ,GAAKE,IACf1F,GAAKuF,EAAc1R,EAAQ2R,EAAQ,IAAM,GAEpCxF,EA8CT,SAAS2F,EAAWlO,EAAKtC,EAAOC,EAAKmH,GAGnC,IAFA,IAAIyD,EAAI,EACJtP,EAAM4H,KAAKC,IAAId,EAAIhJ,OAAQ2G,GACtB/D,EAAI8D,EAAO9D,EAAIX,EAAKW,IAAK,CAChC,IAAI4G,EAAIR,EAAIE,WAAWtG,GAAK,GAE5B2O,GAAKzD,EAIHyD,GADE/H,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAO+H,EAnNTE,EAAG+E,KAAO,SAAexE,GACvB,OAAIA,aAAeP,GAIJ,OAARO,GAA+B,kBAARA,GAC5BA,EAAIhT,YAAY6X,WAAapF,EAAGoF,UAAYnU,MAAM6B,QAAQyN,EAAI0E,QAGlEjF,EAAGxF,IAAM,SAAckL,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG3H,IAAM,SAAcqN,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG1S,UAAU6X,MAAQ,SAAeN,EAAQC,EAAMjC,GAChD,GAAsB,kBAAXgC,EACT,OAAO/U,KAAK+V,YAAYhB,EAAQC,EAAMjC,GAGxC,GAAsB,kBAAXgC,EACT,OAAO/U,KAAKgW,WAAWjB,EAAQC,EAAMjC,GAG1B,QAATiC,IACFA,EAAO,IAETpF,EAAOoF,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI7P,EAAQ,EACM,OAFlB4P,EAASA,EAAOnQ,WAAW0K,QAAQ,OAAQ,KAEhC,KACTnK,IACAnF,KAAKkV,SAAW,GAGd/P,EAAQ4P,EAAOtW,SACJ,KAATuW,EACFhV,KAAKiW,UAAUlB,EAAQ5P,EAAO4N,IAE9B/S,KAAKkW,WAAWnB,EAAQC,EAAM7P,GACf,OAAX4N,GACF/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,MAM9C7C,EAAG1S,UAAUuY,YAAc,SAAsBhB,EAAQC,EAAMjC,GACzDgC,EAAS,IACX/U,KAAKkV,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACX/U,KAAKmV,MAAQ,CAAW,SAATJ,GACf/U,KAAKvB,OAAS,GACLsW,EAAS,kBAClB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,UAEzB/U,KAAKvB,OAAS,IAEdmR,EAAOmF,EAAS,kBAChB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,SACvB,GAEF/U,KAAKvB,OAAS,GAGD,OAAXsU,GAGJ/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,IAGxC7C,EAAG1S,UAAUwY,WAAa,SAAqBjB,EAAQC,EAAMjC,GAG3D,GADAnD,EAAgC,kBAAlBmF,EAAOtW,QACjBsW,EAAOtW,QAAU,EAGnB,OAFAuB,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EACPuB,KAGTA,KAAKvB,OAAS6J,KAAK6N,KAAKpB,EAAOtW,OAAS,GACxCuB,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAGlB,IAAIwF,EAAG6J,EACHzO,EAAM,EACV,GAAe,OAAX8Q,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAGoI,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,UAGC,GAAe,OAAXkM,EACT,IAAK1R,EAAI,EAAGwF,EAAI,EAAGxF,EAAI0T,EAAOtW,OAAQ4C,GAAK,EACzCqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,KAIN,OAAO7G,KAAKoW,SAyBdlG,EAAG1S,UAAUyY,UAAY,SAAoBlB,EAAQ5P,EAAO4N,GAE1D/S,KAAKvB,OAAS6J,KAAK6N,MAAMpB,EAAOtW,OAAS0G,GAAS,GAClDnF,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAIlB,IAGIqP,EAHAzO,EAAM,EACN4E,EAAI,EAGR,GAAe,OAAXkM,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAG4C,GAAK8D,EAAO9D,GAAK,EAC3CqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,OAKX,IAAKZ,GADa0T,EAAOtW,OAAS0G,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO9D,EAAI0T,EAAOtW,OAAQ4C,GAAK,EAC1EqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,EAKbjC,KAAKoW,SA2BPlG,EAAG1S,UAAU0Y,WAAa,SAAqBnB,EAAQC,EAAM7P,GAE3DnF,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EAGd,IAAK,IAAI4X,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWtB,EAClEqB,IAEFA,IACAC,EAAWA,EAAUtB,EAAQ,EAO7B,IALA,IAAIuB,EAAQxB,EAAOtW,OAAS0G,EACxB+L,EAAMqF,EAAQF,EACdjR,EAAMkD,KAAKC,IAAIgO,EAAOA,EAAQrF,GAAO/L,EAErCuN,EAAO,EACFrR,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAKgV,EAChC3D,EAAOiD,EAAUZ,EAAQ1T,EAAGA,EAAIgV,EAASrB,GAEzChV,KAAKwW,MAAMF,GACPtW,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB,GAAY,IAARxB,EAAW,CACb,IAAIpE,EAAM,EAGV,IAFA4F,EAAOiD,EAAUZ,EAAQ1T,EAAG0T,EAAOtW,OAAQuW,GAEtC3T,EAAI,EAAGA,EAAI6P,EAAK7P,IACnByL,GAAOkI,EAGThV,KAAKwW,MAAM1J,GACP9M,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB1S,KAAKoW,SAGPlG,EAAG1S,UAAU8G,KAAO,SAAeoS,GACjCA,EAAKvB,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BqV,EAAKvB,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAE7BqV,EAAKjY,OAASuB,KAAKvB,OACnBiY,EAAKxB,SAAWlV,KAAKkV,SACrBwB,EAAKtB,IAAMpV,KAAKoV,KAGlBlF,EAAG1S,UAAUwT,MAAQ,WACnB,IAAIhB,EAAI,IAAIE,EAAG,MAEf,OADAlQ,KAAKsE,KAAK0L,GACHA,GAGTE,EAAG1S,UAAUmZ,QAAU,SAAkB5X,GACvC,KAAOiB,KAAKvB,OAASM,GACnBiB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAE9B,OAAOuB,MAITkQ,EAAG1S,UAAU4Y,MAAQ,WACnB,KAAOpW,KAAKvB,OAAS,GAAqC,IAAhCuB,KAAKmV,MAAMnV,KAAKvB,OAAS,IACjDuB,KAAKvB,SAEP,OAAOuB,KAAK4W,aAGd1G,EAAG1S,UAAUoZ,UAAY,WAKvB,OAHoB,IAAhB5W,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,KAClCnV,KAAKkV,SAAW,GAEXlV,MAGTkQ,EAAG1S,UAAUiN,QAAU,WACrB,OAAQzK,KAAKoV,IAAM,UAAY,SAAWpV,KAAK4E,SAAS,IAAM,KAiChE,IAAIiS,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYC,EAAMxG,EAAKlF,GAC9BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC,IAAIxU,EAAOuW,EAAKxY,OAASgS,EAAIhS,OAAU,EACvC8M,EAAI9M,OAASiC,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIsJ,EAAoB,EAAhBiN,EAAK9B,MAAM,GACfvP,EAAmB,EAAf6K,EAAI0E,MAAM,GACdnF,EAAIhG,EAAIpE,EAERuC,EAAS,SAAJ6H,EACLqE,EAASrE,EAAI,SAAa,EAC9BzE,EAAI4J,MAAM,GAAKhN,EAEf,IAAK,IAAI4I,EAAI,EAAGA,EAAIrQ,EAAKqQ,IAAK,CAM5B,IAHA,IAAImG,EAAS7C,IAAU,GACnB8C,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAK0P,EAAIlK,EAAK,EAIlBqQ,IADAlH,GAFAhG,EAAoB,EAAhBiN,EAAK9B,MAAM9T,KACfuE,EAAmB,EAAf6K,EAAI0E,MAAMtO,IACFsQ,GACG,SAAa,EAC5BA,EAAY,SAAJnH,EAEVzE,EAAI4J,MAAMpE,GAAa,EAARoG,EACf9C,EAAiB,EAAT6C,EAQV,OANc,IAAV7C,EACF9I,EAAI4J,MAAMpE,GAAa,EAARsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAzlBblG,EAAG1S,UAAUoH,SAAW,SAAmBoQ,EAAMqC,GAI/C,IAAI9L,EACJ,GAHA8L,EAAoB,EAAVA,GAAe,EAGZ,MAJbrC,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCzJ,EAAM,GAGN,IAFA,IAAItJ,EAAM,EACNoS,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,EAAI1Q,KAAKmV,MAAM9T,GACfqR,GAA+B,UAArBhC,GAAKzO,EAAOoS,IAAmBzP,SAAS,IAGpD2G,EADY,KADd8I,EAAS3D,IAAO,GAAKzO,EAAQ,WACVZ,IAAMrB,KAAKvB,OAAS,EAC/BoY,EAAM,EAAInE,EAAKjU,QAAUiU,EAAOnH,EAEhCmH,EAAOnH,GAEftJ,GAAO,IACI,KACTA,GAAO,GACPZ,KAMJ,IAHc,IAAVgT,IACF9I,EAAM8I,EAAMzP,SAAS,IAAM2G,GAEtBA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGT,GAAIyJ,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYR,EAAW9B,GAEvBuC,EAAYR,EAAW/B,GAC3BzJ,EAAM,GACN,IAAItD,EAAIjI,KAAKgR,QAEb,IADA/I,EAAEiN,SAAW,GACLjN,EAAEuP,UAAU,CAClB,IAAIxH,EAAI/H,EAAEwP,KAAKF,GAAW3S,SAASoQ,GAMjCzJ,GALFtD,EAAIA,EAAEyP,MAAMH,IAELC,SAGCxH,EAAIzE,EAFJsL,EAAMS,EAAYtH,EAAEvR,QAAUuR,EAAIzE,EAQ5C,IAHIvL,KAAKwX,WACPjM,EAAM,IAAMA,GAEPA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGTqE,GAAO,EAAO,oCAGhBM,EAAG1S,UAAUma,SAAW,WACtB,IAAIrM,EAAMtL,KAAKmV,MAAM,GASrB,OARoB,IAAhBnV,KAAKvB,OACP6M,GAAuB,SAAhBtL,KAAKmV,MAAM,GACO,IAAhBnV,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,GAEzC7J,GAAO,iBAAoC,SAAhBtL,KAAKmV,MAAM,GAC7BnV,KAAKvB,OAAS,GACvBmR,GAAO,EAAO,8CAEU,IAAlB5P,KAAKkV,UAAmB5J,EAAMA,GAGxC4E,EAAG1S,UAAU4N,OAAS,WACpB,OAAOpL,KAAK4E,SAAS,KAGvBsL,EAAG1S,UAAUoa,SAAW,SAAmB7E,EAAQtU,GAEjD,OADAmR,EAAyB,qBAAX3R,GACP+B,KAAK6X,YAAY5Z,EAAQ8U,EAAQtU,IAG1CyR,EAAG1S,UAAU6S,QAAU,SAAkB0C,EAAQtU,GAC/C,OAAOuB,KAAK6X,YAAY1W,MAAO4R,EAAQtU,IAGzCyR,EAAG1S,UAAUqa,YAAc,SAAsBC,EAAW/E,EAAQtU,GAClE,IAAIiF,EAAa1D,KAAK0D,aAClBqU,EAAYtZ,GAAU6J,KAAKoC,IAAI,EAAGhH,GACtCkM,EAAOlM,GAAcqU,EAAW,yCAChCnI,EAAOmI,EAAY,EAAG,+BAEtB/X,KAAKoW,QACL,IAGIxQ,EAAGvE,EAHHyK,EAA0B,OAAXiH,EACfvK,EAAM,IAAIsP,EAAUC,GAGpBC,EAAIhY,KAAKgR,QACb,GAAKlF,EAYE,CACL,IAAKzK,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAInH,GAAKuE,EAGX,KAAOvE,EAAI0W,EAAW1W,IACpBmH,EAAInH,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAI0W,EAAYrU,EAAYrC,IACtCmH,EAAInH,GAAK,EAGX,IAAKA,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAIuP,EAAY1W,EAAI,GAAKuE,EAe7B,OAAO4C,GAGLF,KAAK2P,MACP/H,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,OAAO,GAAKpI,KAAK2P,MAAMvH,IAGzBR,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,IAAIyH,EAAIzH,EACJV,EAAI,EAiBR,OAhBImI,GAAK,OACPnI,GAAK,GACLmI,KAAO,IAELA,GAAK,KACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAEFnI,EAAImI,GAIfjI,EAAG1S,UAAU4a,UAAY,SAAoB1H,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIyH,EAAIzH,EACJV,EAAI,EAoBR,OAnBqB,KAAZ,KAAJmI,KACHnI,GAAK,GACLmI,KAAO,IAEU,KAAV,IAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,GAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,IACHnI,IAEKA,GAITE,EAAG1S,UAAUqT,UAAY,WACvB,IAAIH,EAAI1Q,KAAKmV,MAAMnV,KAAKvB,OAAS,GAC7ByJ,EAAKlI,KAAKkY,WAAWxH,GACzB,OAA2B,IAAnB1Q,KAAKvB,OAAS,GAAUyJ,GAiBlCgI,EAAG1S,UAAU6a,SAAW,WACtB,GAAIrY,KAAKwX,SAAU,OAAO,EAG1B,IADA,IAAIxH,EAAI,EACC3O,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIuE,EAAI5F,KAAKoY,UAAUpY,KAAKmV,MAAM9T,IAElC,GADA2O,GAAKpK,EACK,KAANA,EAAU,MAEhB,OAAOoK,GAGTE,EAAG1S,UAAUkG,WAAa,WACxB,OAAO4E,KAAK6N,KAAKnW,KAAK6Q,YAAc,IAGtCX,EAAG1S,UAAU8a,OAAS,SAAiBC,GACrC,OAAsB,IAAlBvY,KAAKkV,SACAlV,KAAKwY,MAAMC,MAAMF,GAAOG,MAAM,GAEhC1Y,KAAKgR,SAGdd,EAAG1S,UAAUmb,SAAW,SAAmBJ,GACzC,OAAIvY,KAAK4Y,MAAML,EAAQ,GACdvY,KAAK6Y,KAAKN,GAAOG,MAAM,GAAGI,OAE5B9Y,KAAKgR,SAGdd,EAAG1S,UAAUub,MAAQ,WACnB,OAAyB,IAAlB/Y,KAAKkV,UAIdhF,EAAG1S,UAAUwb,IAAM,WACjB,OAAOhZ,KAAKgR,QAAQ8H,QAGtB5I,EAAG1S,UAAUsb,KAAO,WAKlB,OAJK9Y,KAAKwX,WACRxX,KAAKkV,UAAY,GAGZlV,MAITkQ,EAAG1S,UAAUyb,KAAO,SAAexI,GACjC,KAAOzQ,KAAKvB,OAASgS,EAAIhS,QACvBuB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAG9B,IAAK,IAAI4C,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAC9BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAG5C,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAU0b,IAAM,SAAczI,GAE/B,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKiZ,KAAKxI,IAInBP,EAAG1S,UAAU2b,GAAK,SAAa1I,GAC7B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkI,IAAIzI,GAC/CA,EAAIO,QAAQkI,IAAIlZ,OAGzBkQ,EAAG1S,UAAU4b,IAAM,SAAc3I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQiI,KAAKxI,GAChDA,EAAIO,QAAQiI,KAAKjZ,OAI1BkQ,EAAG1S,UAAU6b,MAAQ,SAAgB5I,GAEnC,IAAI7K,EAEFA,EADE5F,KAAKvB,OAASgS,EAAIhS,OAChBgS,EAEAzQ,KAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAK5C,OAFArB,KAAKvB,OAASmH,EAAEnH,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAU8b,KAAO,SAAe7I,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKqZ,MAAM5I,IAIpBP,EAAG1S,UAAU+b,IAAM,SAAc9I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQsI,KAAK7I,GAChDA,EAAIO,QAAQsI,KAAKtZ,OAG1BkQ,EAAG1S,UAAUgc,KAAO,SAAe/I,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQqI,MAAM5I,GACjDA,EAAIO,QAAQqI,MAAMrZ,OAI3BkQ,EAAG1S,UAAUic,MAAQ,SAAgBhJ,GAEnC,IAAIzG,EACApE,EACA5F,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAAKuE,EAAEuP,MAAM9T,GAGvC,GAAIrB,OAASgK,EACX,KAAO3I,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAM5B,OAFArB,KAAKvB,OAASuL,EAAEvL,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAUkc,KAAO,SAAejJ,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKyZ,MAAMhJ,IAIpBP,EAAG1S,UAAUmc,IAAM,SAAclJ,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQ0I,KAAKjJ,GAChDA,EAAIO,QAAQ0I,KAAK1Z,OAG1BkQ,EAAG1S,UAAUoc,KAAO,SAAenJ,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQyI,MAAMhJ,GACjDA,EAAIO,QAAQyI,MAAMzZ,OAI3BkQ,EAAG1S,UAAUib,MAAQ,SAAgBF,GACnC3I,EAAwB,kBAAV2I,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBvR,KAAK6N,KAAKoC,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvBvY,KAAK2W,QAAQkD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIxY,EAAI,EAAGA,EAAIwY,EAAaxY,IAC/BrB,KAAKmV,MAAM9T,GAAsB,UAAhBrB,KAAKmV,MAAM9T,GAS9B,OALIyY,EAAW,IACb9Z,KAAKmV,MAAM9T,IAAMrB,KAAKmV,MAAM9T,GAAM,UAAc,GAAKyY,GAIhD9Z,KAAKoW,SAGdlG,EAAG1S,UAAUqb,KAAO,SAAeN,GACjC,OAAOvY,KAAKgR,QAAQyH,MAAMF,IAI5BrI,EAAG1S,UAAUuc,KAAO,SAAeC,EAAKzV,GACtCqL,EAAsB,kBAARoK,GAAoBA,GAAO,GAEzC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAha,KAAK2W,QAAQ1U,EAAM,GAGjBjC,KAAKmV,MAAMlT,GADTsC,EACgBvE,KAAKmV,MAAMlT,GAAQ,GAAKgY,EAExBja,KAAKmV,MAAMlT,KAAS,GAAKgY,GAGtCja,KAAKoW,SAIdlG,EAAG1S,UAAU0c,KAAO,SAAezJ,GACjC,IAAIT,EAkBAhG,EAAGpE,EAfP,GAAsB,IAAlB5F,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAI7B,OAHAlV,KAAKkV,SAAW,EAChBlF,EAAIhQ,KAAKma,KAAK1J,GACdzQ,KAAKkV,UAAY,EACVlV,KAAK4W,YAGP,GAAsB,IAAlB5W,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAIpC,OAHAzE,EAAIyE,SAAW,EACflF,EAAIhQ,KAAKma,KAAK1J,GACdA,EAAIyE,SAAW,EACRlF,EAAE4G,YAKP5W,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5B2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,EAC1CrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAEhB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAClC2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,EACvBrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAIhB,GADAhQ,KAAKvB,OAASuL,EAAEvL,OACF,IAAV4V,EACFrU,KAAKmV,MAAMnV,KAAKvB,QAAU4V,EAC1BrU,KAAKvB,cAEA,GAAIuL,IAAMhK,KACf,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAI5B,OAAOrB,MAITkQ,EAAG1S,UAAU4c,IAAM,SAAc3J,GAC/B,IAAIjI,EACJ,OAAqB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UAC7BzE,EAAIyE,SAAW,EACf1M,EAAMxI,KAAKmO,IAAIsC,GACfA,EAAIyE,UAAY,EACT1M,GACmB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UACpClV,KAAKkV,SAAW,EAChB1M,EAAMiI,EAAItC,IAAInO,MACdA,KAAKkV,SAAW,EACT1M,GAGLxI,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkJ,KAAKzJ,GAEhDA,EAAIO,QAAQkJ,KAAKla,OAI1BkQ,EAAG1S,UAAU2c,KAAO,SAAe1J,GAEjC,GAAqB,IAAjBA,EAAIyE,SAAgB,CACtBzE,EAAIyE,SAAW,EACf,IAAIlF,EAAIhQ,KAAKka,KAAKzJ,GAElB,OADAA,EAAIyE,SAAW,EACRlF,EAAE4G,YAGJ,GAAsB,IAAlB5W,KAAKkV,SAId,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAKka,KAAKzJ,GACVzQ,KAAKkV,SAAW,EACTlV,KAAK4W,YAId,IAWI5M,EAAGpE,EAXHkQ,EAAM9V,KAAK8V,IAAIrF,GAGnB,GAAY,IAARqF,EAIF,OAHA9V,KAAKkV,SAAW,EAChBlV,KAAKvB,OAAS,EACduB,KAAKmV,MAAM,GAAK,EACTnV,KAKL8V,EAAM,GACR9L,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAE5BgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,IAC7B,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAElB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAElCgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,IACV,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAIlB,GAAc,IAAVqE,GAAehT,EAAI2I,EAAEvL,QAAUuL,IAAMhK,KACvC,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAU5B,OANArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,GAEhC2I,IAAMhK,OACRA,KAAKkV,SAAW,GAGXlV,KAAKoW,SAIdlG,EAAG1S,UAAU2Q,IAAM,SAAcsC,GAC/B,OAAOzQ,KAAKgR,QAAQmJ,KAAK1J,IA+C3B,IAAI4J,EAAc,SAAsBpD,EAAMxG,EAAKlF,GACjD,IAIIpD,EACAmS,EACApS,EANA8B,EAAIiN,EAAK9B,MACTvP,EAAI6K,EAAI0E,MACRoF,EAAIhP,EAAI4J,MACRlN,EAAI,EAIJuS,EAAY,EAAPxQ,EAAE,GACPyQ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Q,EAAE,GACP4Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Q,EAAE,GACP+Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjR,EAAE,GACPkR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpR,EAAE,GACPqR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvR,EAAE,GACPwR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1R,EAAE,GACP2R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7R,EAAE,GACP8R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhS,EAAE,GACPiS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnS,EAAE,GACPoS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1W,EAAE,GACP2W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7W,EAAE,GACP8W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhX,EAAE,GACPiX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnX,EAAE,GACPoX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtX,EAAE,GACPuX,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPzX,EAAE,GACP0X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5X,EAAE,GACP6X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/X,EAAE,GACPgY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlY,EAAE,GACPmY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrY,EAAE,GACPsY,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB1S,EAAI2J,SAAW+B,EAAK/B,SAAWzE,EAAIyE,SACnC3J,EAAI9M,OAAS,GAMb,IAAI2f,IAAQnW,GAJZE,EAAKG,KAAK+V,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAMhS,KAAK+V,KAAK5D,EAAK+B,IACRlU,KAAK+V,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDtU,IAFAC,EAAKI,KAAK+V,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENjW,EAAKG,KAAK+V,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKzD,EAAK4B,IACRlU,KAAK+V,KAAKxD,EAAK0B,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQrW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKkC,GAAQ,GACvBrU,KAAK+V,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDzU,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENnW,EAAKG,KAAK+V,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKtD,EAAKyB,IACRlU,KAAK+V,KAAKrD,EAAKuB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKrD,EAAKwB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK+B,GAAQ,GACvBrU,KAAK+V,KAAKxD,EAAK6B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQtW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKqC,GAAQ,GACvBxU,KAAK+V,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD5U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENpW,EAAKG,KAAK+V,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKnD,EAAKsB,IACRlU,KAAK+V,KAAKlD,EAAKoB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKlD,EAAKqB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK4B,GAAQ,GACvBrU,KAAK+V,KAAKrD,EAAK0B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK2B,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKkC,GAAQ,GACvBxU,KAAK+V,KAAKxD,EAAKgC,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQvW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKwC,GAAQ,GACvB3U,KAAK+V,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD/U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENrW,EAAKG,KAAK+V,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKhD,EAAKmB,IACRlU,KAAK+V,KAAK/C,EAAKiB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK/C,EAAKkB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKyB,GAAQ,GACvBrU,KAAK+V,KAAKlD,EAAKuB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKwB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK+B,GAAQ,GACvBxU,KAAK+V,KAAKrD,EAAK6B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK8B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKqC,GAAQ,GACvB3U,KAAK+V,KAAKxD,EAAKmC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQxW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK2C,IAAQ,GACvB9U,KAAK+V,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDlV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENtW,EAAKG,KAAK+V,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK7C,EAAKgB,IACRlU,KAAK+V,KAAK5C,EAAKc,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK5C,EAAKe,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKsB,GAAQ,GACvBrU,KAAK+V,KAAK/C,EAAKoB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKqB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK4B,GAAQ,GACvBxU,KAAK+V,KAAKlD,EAAK0B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK2B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKkC,GAAQ,GACvB3U,KAAK+V,KAAKrD,EAAKgC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKiC,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKwC,IAAQ,GACvB9U,KAAK+V,KAAKxD,EAAKsC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQzW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK8C,IAAQ,GACvBjV,KAAK+V,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDrV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENvW,EAAKG,KAAK+V,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK1C,EAAKa,IACRlU,KAAK+V,KAAKzC,EAAKW,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKzC,EAAKY,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKmB,GAAQ,GACvBrU,KAAK+V,KAAK5C,EAAKiB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKkB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKyB,GAAQ,GACvBxU,KAAK+V,KAAK/C,EAAKuB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKwB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK+B,GAAQ,GACvB3U,KAAK+V,KAAKlD,EAAK6B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK8B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKqC,IAAQ,GACvB9U,KAAK+V,KAAKrD,EAAKmC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKoC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK2C,IAAQ,GACvBjV,KAAK+V,KAAKxD,EAAKyC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ1W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKiD,IAAQ,GACvBpV,KAAK+V,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDxV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENxW,EAAKG,KAAK+V,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKvC,EAAKU,IACRlU,KAAK+V,KAAKtC,EAAKQ,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKtC,EAAKS,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKgB,GAAQ,GACvBrU,KAAK+V,KAAKzC,EAAKc,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKe,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKsB,GAAQ,GACvBxU,KAAK+V,KAAK5C,EAAKoB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKqB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK4B,GAAQ,GACvB3U,KAAK+V,KAAK/C,EAAK0B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK2B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKkC,IAAQ,GACvB9U,KAAK+V,KAAKlD,EAAKgC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKiC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKwC,IAAQ,GACvBjV,KAAK+V,KAAKrD,EAAKsC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKuC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK8C,IAAQ,GACvBpV,KAAK+V,KAAKxD,EAAK4C,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ3W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKoD,IAAQ,GACvBvV,KAAK+V,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD3V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENzW,EAAKG,KAAK+V,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKpC,EAAKO,IACRlU,KAAK+V,KAAKnC,EAAKK,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKnC,EAAKM,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKa,GAAQ,GACvBrU,KAAK+V,KAAKtC,EAAKW,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKY,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKmB,GAAQ,GACvBxU,KAAK+V,KAAKzC,EAAKiB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKkB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKyB,GAAQ,GACvB3U,KAAK+V,KAAK5C,EAAKuB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKwB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK+B,IAAQ,GACvB9U,KAAK+V,KAAK/C,EAAK6B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK8B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKqC,IAAQ,GACvBjV,KAAK+V,KAAKlD,EAAKmC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKoC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK2C,IAAQ,GACvBpV,KAAK+V,KAAKrD,EAAKyC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK0C,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKiD,IAAQ,GACvBvV,KAAK+V,KAAKxD,EAAK+C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ5W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKuD,IAAQ,GACvB1V,KAAK+V,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD9V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN1W,EAAKG,KAAK+V,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKI,IACRlU,KAAK+V,KAAKhC,EAAKE,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKhC,EAAKG,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKU,GAAQ,GACvBrU,KAAK+V,KAAKnC,EAAKQ,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKS,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKgB,GAAQ,GACvBxU,KAAK+V,KAAKtC,EAAKc,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKe,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKsB,GAAQ,GACvB3U,KAAK+V,KAAKzC,EAAKoB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKqB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK4B,IAAQ,GACvB9U,KAAK+V,KAAK5C,EAAK0B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK2B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKkC,IAAQ,GACvBjV,KAAK+V,KAAK/C,EAAKgC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKiC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKwC,IAAQ,GACvBpV,KAAK+V,KAAKlD,EAAKsC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKuC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK8C,IAAQ,GACvBvV,KAAK+V,KAAKrD,EAAK4C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK6C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKoD,IAAQ,GACvB1V,KAAK+V,KAAKxD,EAAKkD,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ7W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK0D,IAAQ,GACvB7V,KAAK+V,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAEN3W,EAAKG,KAAK+V,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKO,IACRrU,KAAK+V,KAAKhC,EAAKK,GAAQ,EACpCxU,EAAKI,KAAK+V,KAAKhC,EAAKM,GACpBxU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKa,GAAQ,GACvBxU,KAAK+V,KAAKnC,EAAKW,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKY,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKmB,GAAQ,GACvB3U,KAAK+V,KAAKtC,EAAKiB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKkB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKyB,IAAQ,GACvB9U,KAAK+V,KAAKzC,EAAKuB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKwB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK+B,IAAQ,GACvBjV,KAAK+V,KAAK5C,EAAK6B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK8B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKqC,IAAQ,GACvBpV,KAAK+V,KAAK/C,EAAKmC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKoC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK2C,IAAQ,GACvBvV,KAAK+V,KAAKlD,EAAKyC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK0C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKiD,IAAQ,GACvB1V,KAAK+V,KAAKrD,EAAK+C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS9W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKuD,IAAQ,GACvB7V,KAAK+V,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP5W,EAAKG,KAAK+V,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKU,IACRxU,KAAK+V,KAAKhC,EAAKQ,GAAQ,EACpC3U,EAAKI,KAAK+V,KAAKhC,EAAKS,GACpB3U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKgB,GAAQ,GACvB3U,KAAK+V,KAAKnC,EAAKc,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKe,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKsB,IAAQ,GACvB9U,KAAK+V,KAAKtC,EAAKoB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKqB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK4B,IAAQ,GACvBjV,KAAK+V,KAAKzC,EAAK0B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK2B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKkC,IAAQ,GACvBpV,KAAK+V,KAAK5C,EAAKgC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKiC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKwC,IAAQ,GACvBvV,KAAK+V,KAAK/C,EAAKsC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKuC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK8C,IAAQ,GACvB1V,KAAK+V,KAAKlD,EAAK4C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS/W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKoD,IAAQ,GACvB7V,KAAK+V,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP7W,EAAKG,KAAK+V,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKa,IACR3U,KAAK+V,KAAKhC,EAAKW,GAAQ,EACpC9U,EAAKI,KAAK+V,KAAKhC,EAAKY,GACpB9U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKmB,IAAQ,GACvB9U,KAAK+V,KAAKnC,EAAKiB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKkB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKyB,IAAQ,GACvBjV,KAAK+V,KAAKtC,EAAKuB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKwB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK+B,IAAQ,GACvBpV,KAAK+V,KAAKzC,EAAK6B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK8B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKqC,IAAQ,GACvBvV,KAAK+V,KAAK5C,EAAKmC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKoC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK2C,IAAQ,GACvB1V,KAAK+V,KAAK/C,EAAKyC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAShX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKiD,IAAQ,GACvB7V,KAAK+V,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP9W,EAAKG,KAAK+V,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKgB,KACR9U,KAAK+V,KAAKhC,EAAKc,GAAQ,EACpCjV,EAAKI,KAAK+V,KAAKhC,EAAKe,IACpBjV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKsB,IAAQ,GACvBjV,KAAK+V,KAAKnC,EAAKoB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKqB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK4B,IAAQ,GACvBpV,KAAK+V,KAAKtC,EAAK0B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK2B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKkC,IAAQ,GACvBvV,KAAK+V,KAAKzC,EAAKgC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKiC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKwC,IAAQ,GACvB1V,KAAK+V,KAAK5C,EAAKsC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASjX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK8C,IAAQ,GACvB7V,KAAK+V,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP/W,EAAKG,KAAK+V,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKmB,KACRjV,KAAK+V,KAAKhC,EAAKiB,IAAQ,EACpCpV,EAAKI,KAAK+V,KAAKhC,EAAKkB,IACpBpV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKyB,IAAQ,GACvBpV,KAAK+V,KAAKnC,EAAKuB,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKwB,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK+B,IAAQ,GACvBvV,KAAK+V,KAAKtC,EAAK6B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK8B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKqC,IAAQ,GACvB1V,KAAK+V,KAAKzC,EAAKmC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASlX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK2C,IAAQ,GACvB7V,KAAK+V,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPhX,EAAKG,KAAK+V,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKsB,KACRpV,KAAK+V,KAAKhC,EAAKoB,IAAQ,EACpCvV,EAAKI,KAAK+V,KAAKhC,EAAKqB,IACpBvV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK4B,IAAQ,GACvBvV,KAAK+V,KAAKnC,EAAK0B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK2B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKkC,IAAQ,GACvB1V,KAAK+V,KAAKtC,EAAKgC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASnX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKwC,IAAQ,GACvB7V,KAAK+V,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPjX,EAAKG,KAAK+V,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKyB,KACRvV,KAAK+V,KAAKhC,EAAKuB,IAAQ,EACpC1V,EAAKI,KAAK+V,KAAKhC,EAAKwB,IACpB1V,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK+B,IAAQ,GACvB1V,KAAK+V,KAAKnC,EAAK6B,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASpX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKqC,IAAQ,GACvB7V,KAAK+V,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPlX,EAAKG,KAAK+V,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK4B,KACR1V,KAAK+V,KAAKhC,EAAK0B,IAAQ,EACpC7V,EAAKI,KAAK+V,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASrX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKkC,IAAQ,GACvB7V,KAAK+V,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAStX,GAJbE,EAAKG,KAAK+V,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK+B,KACR7V,KAAK+V,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAjW,IAFAC,EAAKI,KAAK+V,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANtX,IACFsS,EAAE,IAAMtS,EACRsD,EAAI9M,UAEC8M,GAiDT,SAASiU,EAAYvI,EAAMxG,EAAKlF,GAE9B,OADW,IAAIkU,GACHC,KAAKzI,EAAMxG,EAAKlF,GAsB9B,SAASkU,EAAMxV,EAAGC,GAChBlK,KAAKiK,EAAIA,EACTjK,KAAKkK,EAAIA,EAvEN5B,KAAK+V,OACRhE,EAAcrD,GAiDhB9G,EAAG1S,UAAUmiB,MAAQ,SAAgBlP,EAAKlF,GACxC,IAAI/C,EACA9H,EAAMV,KAAKvB,OAASgS,EAAIhS,OAW5B,OATE+J,EADkB,KAAhBxI,KAAKvB,QAAgC,KAAfgS,EAAIhS,OACtB4b,EAAYra,KAAMyQ,EAAKlF,GACpB7K,EAAM,GACTsW,EAAWhX,KAAMyQ,EAAKlF,GACnB7K,EAAM,KArDnB,SAAmBuW,EAAMxG,EAAKlF,GAC5BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC3J,EAAI9M,OAASwY,EAAKxY,OAASgS,EAAIhS,OAI/B,IAFA,IAAI4V,EAAQ,EACRuL,EAAU,EACL7O,EAAI,EAAGA,EAAIxF,EAAI9M,OAAS,EAAGsS,IAAK,CAGvC,IAAImG,EAAS0I,EACbA,EAAU,EAGV,IAFA,IAAIzI,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAI0P,EAAIlK,EAGRmJ,GAFoB,EAAhBiH,EAAK9B,MAAM9T,KACI,EAAfoP,EAAI0E,MAAMtO,IAGdsB,EAAS,SAAJ6H,EAGTmH,EAAa,UADbhP,EAAMA,EAAKgP,EAAS,GAIpByI,IAFA1I,GAHAA,EAAUA,GAAWlH,EAAI,SAAa,GAAM,IAGxB7H,IAAO,IAAO,KAEZ,GACtB+O,GAAU,SAEZ3L,EAAI4J,MAAMpE,GAAKoG,EACf9C,EAAQ6C,EACRA,EAAS0I,EAQX,OANc,IAAVvL,EACF9I,EAAI4J,MAAMpE,GAAKsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAgBHyJ,CAAS7f,KAAMyQ,EAAKlF,GAEpBiU,EAAWxf,KAAMyQ,EAAKlF,GAGvB/C,GAWTiX,EAAKjiB,UAAUsiB,QAAU,SAAkBC,GAGzC,IAFA,IAAI5H,EAAI,IAAIhX,MAAM4e,GACdhQ,EAAIG,EAAG1S,UAAU0a,WAAW6H,GAAK,EAC5B1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrB8W,EAAE9W,GAAKrB,KAAKggB,OAAO3e,EAAG0O,EAAGgQ,GAG3B,OAAO5H,GAITsH,EAAKjiB,UAAUwiB,OAAS,SAAiB/V,EAAG8F,EAAGgQ,GAC7C,GAAU,IAAN9V,GAAWA,IAAM8V,EAAI,EAAG,OAAO9V,EAGnC,IADA,IAAIgW,EAAK,EACA5e,EAAI,EAAGA,EAAI0O,EAAG1O,IACrB4e,IAAW,EAAJhW,IAAW8F,EAAI1O,EAAI,EAC1B4I,IAAM,EAGR,OAAOgW,GAKTR,EAAKjiB,UAAU0iB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBif,EAAKjf,GAAK+e,EAAID,EAAI9e,IAClBkf,EAAKlf,GAAKgf,EAAIF,EAAI9e,KAItBoe,EAAKjiB,UAAUgjB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEngB,KAAKkgB,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIU,EAAI,EAAGA,EAAIV,EAAGU,IAAM,EAM3B,IALA,IAAI1Q,EAAI0Q,GAAK,EAETC,EAAQpY,KAAKqY,IAAI,EAAIrY,KAAKsY,GAAK7Q,GAC/B8Q,EAAQvY,KAAKwY,IAAI,EAAIxY,KAAKsY,GAAK7Q,GAE1B8C,EAAI,EAAGA,EAAIkN,EAAGlN,GAAK9C,EAI1B,IAHA,IAAIgR,EAASL,EACTM,EAASH,EAEJha,EAAI,EAAGA,EAAI4Z,EAAG5Z,IAAK,CAC1B,IAAIoa,EAAKX,EAAKzN,EAAIhM,GACdqa,EAAKX,EAAK1N,EAAIhM,GAEdsa,EAAKb,EAAKzN,EAAIhM,EAAI4Z,GAClBW,EAAKb,EAAK1N,EAAIhM,EAAI4Z,GAElBY,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKzN,EAAIhM,GAAKoa,EAAKE,EACnBZ,EAAK1N,EAAIhM,GAAKqa,EAAKE,EAEnBd,EAAKzN,EAAIhM,EAAI4Z,GAAKQ,EAAKE,EACvBZ,EAAK1N,EAAIhM,EAAI4Z,GAAKS,EAAKE,EAGnBva,IAAMkJ,IACRsR,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,KAOnB5B,EAAKjiB,UAAU8jB,YAAc,SAAsBzb,EAAGC,GACpD,IAAIia,EAAqB,EAAjBzX,KAAKoC,IAAI5E,EAAGD,GAChB0b,EAAU,EAAJxB,EACN1e,EAAI,EACR,IAAK0e,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B1e,IAGF,OAAO,GAAKA,EAAI,EAAIkgB,GAGtB9B,EAAKjiB,UAAUgkB,UAAY,SAAoBpB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAI8W,EAAIiI,EAAI/e,GAEZ+e,EAAI/e,GAAK+e,EAAIL,EAAI1e,EAAI,GACrB+e,EAAIL,EAAI1e,EAAI,GAAK8W,EAEjBA,EAAIkI,EAAIhf,GAERgf,EAAIhf,IAAMgf,EAAIN,EAAI1e,EAAI,GACtBgf,EAAIN,EAAI1e,EAAI,IAAM8W,IAItBsH,EAAKjiB,UAAUikB,aAAe,SAAuB3Q,EAAIiP,GAEvD,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAIqP,EAAoC,KAAhCpI,KAAKoZ,MAAM5Q,EAAG,EAAIzP,EAAI,GAAK0e,GACjCzX,KAAKoZ,MAAM5Q,EAAG,EAAIzP,GAAK0e,GACvB1L,EAEFvD,EAAGzP,GAAS,SAAJqP,EAGN2D,EADE3D,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT2O,EAAKjiB,UAAUmkB,WAAa,SAAqB7Q,EAAIpQ,EAAK0f,EAAKL,GAE7D,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAIX,EAAKW,IACvBgT,GAAyB,EAARvD,EAAGzP,GAEpB+e,EAAI,EAAI/e,GAAa,KAARgT,EAAgBA,KAAkB,GAC/C+L,EAAI,EAAI/e,EAAI,GAAa,KAARgT,EAAgBA,KAAkB,GAIrD,IAAKhT,EAAI,EAAIX,EAAKW,EAAI0e,IAAK1e,EACzB+e,EAAI/e,GAAK,EAGXuO,EAAiB,IAAVyE,GACPzE,EAA6B,MAAb,KAARyE,KAGVoL,EAAKjiB,UAAUokB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAI1gB,MAAM4e,GACV1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBwgB,EAAGxgB,GAAK,EAGV,OAAOwgB,GAGTpC,EAAKjiB,UAAUkiB,KAAO,SAAezV,EAAGC,EAAGqB,GACzC,IAAIwU,EAAI,EAAI/f,KAAKshB,YAAYrX,EAAExL,OAAQyL,EAAEzL,QAErC0hB,EAAMngB,KAAK8f,QAAQC,GAEnB+B,EAAI9hB,KAAK4hB,KAAK7B,GAEdK,EAAM,IAAIjf,MAAM4e,GAChBgC,EAAO,IAAI5gB,MAAM4e,GACjBiC,EAAO,IAAI7gB,MAAM4e,GAEjBkC,EAAO,IAAI9gB,MAAM4e,GACjBmC,EAAQ,IAAI/gB,MAAM4e,GAClBoC,EAAQ,IAAIhhB,MAAM4e,GAElBqC,EAAO7W,EAAI4J,MACfiN,EAAK3jB,OAASshB,EAEd/f,KAAK2hB,WAAW1X,EAAEkL,MAAOlL,EAAExL,OAAQ2hB,EAAKL,GACxC/f,KAAK2hB,WAAWzX,EAAEiL,MAAOjL,EAAEzL,OAAQwjB,EAAMlC,GAEzC/f,KAAKwgB,UAAUJ,EAAK0B,EAAGC,EAAMC,EAAMjC,EAAGI,GACtCngB,KAAKwgB,UAAUyB,EAAMH,EAAGI,EAAOC,EAAOpC,EAAGI,GAEzC,IAAK,IAAI9e,EAAI,EAAGA,EAAI0e,EAAG1e,IAAK,CAC1B,IAAIggB,EAAKU,EAAK1gB,GAAK6gB,EAAM7gB,GAAK2gB,EAAK3gB,GAAK8gB,EAAM9gB,GAC9C2gB,EAAK3gB,GAAK0gB,EAAK1gB,GAAK8gB,EAAM9gB,GAAK2gB,EAAK3gB,GAAK6gB,EAAM7gB,GAC/C0gB,EAAK1gB,GAAKggB,EAUZ,OAPArhB,KAAKwhB,UAAUO,EAAMC,EAAMjC,GAC3B/f,KAAKwgB,UAAUuB,EAAMC,EAAMI,EAAMN,EAAG/B,EAAGI,GACvCngB,KAAKwhB,UAAUY,EAAMN,EAAG/B,GACxB/f,KAAKyhB,aAAaW,EAAMrC,GAExBxU,EAAI2J,SAAWjL,EAAEiL,SAAWhL,EAAEgL,SAC9B3J,EAAI9M,OAASwL,EAAExL,OAASyL,EAAEzL,OACnB8M,EAAI6K,SAIblG,EAAG1S,UAAU+O,IAAM,SAAckE,GAC/B,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjCuB,KAAK2f,MAAMlP,EAAKlF,IAIzB2E,EAAG1S,UAAU6kB,KAAO,SAAe5R,GACjC,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjC+gB,EAAWxf,KAAMyQ,EAAKlF,IAI/B2E,EAAG1S,UAAU6gB,KAAO,SAAe5N,GACjC,OAAOzQ,KAAKgR,QAAQ2O,MAAMlP,EAAKzQ,OAGjCkQ,EAAG1S,UAAUgZ,MAAQ,SAAgB/F,GACnCb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UAIb,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAUoP,EAC1BtI,GAAU,SAAJuI,IAA0B,SAAR2D,GAC5BA,IAAU,GACVA,GAAU3D,EAAI,SAAa,EAE3B2D,GAASlM,IAAO,GAChBnI,KAAKmV,MAAM9T,GAAU,SAAL8G,EAQlB,OALc,IAAVkM,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAGAuB,MAGTkQ,EAAG1S,UAAU8kB,KAAO,SAAe7R,GACjC,OAAOzQ,KAAKgR,QAAQwF,MAAM/F,IAI5BP,EAAG1S,UAAU+kB,IAAM,WACjB,OAAOviB,KAAKuM,IAAIvM,OAIlBkQ,EAAG1S,UAAUglB,KAAO,WAClB,OAAOxiB,KAAKqe,KAAKre,KAAKgR,UAIxBd,EAAG1S,UAAUsP,IAAM,SAAc2D,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIvP,MAAMsP,EAAII,aAEbmJ,EAAM,EAAGA,EAAMtJ,EAAEjS,OAAQub,IAAO,CACvC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtJ,EAAEsJ,IAAQvJ,EAAI0E,MAAMlT,GAAQ,GAAKgY,KAAWA,EAG9C,OAAOvJ,EA8wCC+R,CAAWhS,GACnB,GAAiB,IAAbC,EAAEjS,OAAc,OAAO,IAAIyR,EAAG,GAIlC,IADA,IAAI1H,EAAMxI,KACDqB,EAAI,EAAGA,EAAIqP,EAAEjS,QACP,IAATiS,EAAErP,GADsBA,IAAKmH,EAAMA,EAAI+Z,OAI7C,KAAMlhB,EAAIqP,EAAEjS,OACV,IAAK,IAAIuZ,EAAIxP,EAAI+Z,MAAOlhB,EAAIqP,EAAEjS,OAAQ4C,IAAK2W,EAAIA,EAAEuK,MAClC,IAAT7R,EAAErP,KAENmH,EAAMA,EAAI+D,IAAIyL,IAIlB,OAAOxP,GAIT0H,EAAG1S,UAAUklB,OAAS,SAAiB/R,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAGItP,EAHA2O,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GACjB2S,EAAa,WAAe,GAAK3S,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIqE,EAAQ,EAEZ,IAAKhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAChC,IAAIuhB,EAAW5iB,KAAKmV,MAAM9T,GAAKshB,EAC3B1a,GAAsB,EAAhBjI,KAAKmV,MAAM9T,IAAUuhB,GAAa5S,EAC5ChQ,KAAKmV,MAAM9T,GAAK4G,EAAIoM,EACpBA,EAAQuO,IAAc,GAAK5S,EAGzBqE,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAIT,GAAU,IAANgiB,EAAS,CACX,IAAKpf,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAChCrB,KAAKmV,MAAM9T,EAAIof,GAAKzgB,KAAKmV,MAAM9T,GAGjC,IAAKA,EAAI,EAAGA,EAAIof,EAAGpf,IACjBrB,KAAKmV,MAAM9T,GAAK,EAGlBrB,KAAKvB,QAAUgiB,EAGjB,OAAOzgB,KAAKoW,SAGdlG,EAAG1S,UAAUqlB,MAAQ,SAAgBlS,GAGnC,OADAf,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAK0iB,OAAO/R,IAMrBT,EAAG1S,UAAU8T,OAAS,SAAiBX,EAAMmS,EAAMC,GAEjD,IAAIC,EADJpT,EAAuB,kBAATe,GAAqBA,GAAQ,GAGzCqS,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9S,EAAIW,EAAO,GACX8P,EAAInY,KAAKC,KAAKoI,EAAOX,GAAK,GAAIhQ,KAAKvB,QACnCwkB,EAAO,SAAc,WAAcjT,GAAMA,EACzCkT,EAAcH,EAMlB,GAJAC,GAAKvC,EACLuC,EAAI1a,KAAKoC,IAAI,EAAGsY,GAGZE,EAAa,CACf,IAAK,IAAI7hB,EAAI,EAAGA,EAAIof,EAAGpf,IACrB6hB,EAAY/N,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAEpC6hB,EAAYzkB,OAASgiB,EAGvB,GAAU,IAANA,QAEG,GAAIzgB,KAAKvB,OAASgiB,EAEvB,IADAzgB,KAAKvB,QAAUgiB,EACVpf,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC3BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,EAAIof,QAGjCzgB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,EAGhB,IAAI4V,EAAQ,EACZ,IAAKhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,IAAgB,IAAVgT,GAAehT,GAAK2hB,GAAI3hB,IAAK,CAChE,IAAIqR,EAAuB,EAAhB1S,KAAKmV,MAAM9T,GACtBrB,KAAKmV,MAAM9T,GAAMgT,GAAU,GAAKrE,EAAO0C,IAAS1C,EAChDqE,EAAQ3B,EAAOuQ,EAajB,OATIC,GAAyB,IAAV7O,IACjB6O,EAAY/N,MAAM+N,EAAYzkB,UAAY4V,GAGxB,IAAhBrU,KAAKvB,SACPuB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,GAGTuB,KAAKoW,SAGdlG,EAAG1S,UAAU2lB,MAAQ,SAAgBxS,EAAMmS,EAAMC,GAG/C,OADAnT,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAKsR,OAAOX,EAAMmS,EAAMC,IAIjC7S,EAAG1S,UAAU4lB,KAAO,SAAezS,GACjC,OAAO3Q,KAAKgR,QAAQ6R,MAAMlS,IAG5BT,EAAG1S,UAAU6lB,MAAQ,SAAgB1S,GACnC,OAAO3Q,KAAKgR,QAAQ0R,OAAO/R,IAI7BT,EAAG1S,UAAU8lB,KAAO,SAAe3S,GACjC,OAAO3Q,KAAKgR,QAAQmS,MAAMxS,IAG5BT,EAAG1S,UAAU+lB,MAAQ,SAAgB5S,GACnC,OAAO3Q,KAAKgR,QAAQM,OAAOX,IAI7BT,EAAG1S,UAAUob,MAAQ,SAAgBoB,GACnCpK,EAAsB,kBAARoK,GAAoBA,GAAO,GACzC,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,QAAIhQ,KAAKvB,QAAUgiB,OAGXzgB,KAAKmV,MAAMsL,GAELzI,IAIhB9H,EAAG1S,UAAUgmB,OAAS,SAAiB7S,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAAIX,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GAIrB,GAFAJ,EAAyB,IAAlB5P,KAAKkV,SAAgB,2CAExBlV,KAAKvB,QAAUgiB,EACjB,OAAOzgB,KAQT,GALU,IAANgQ,GACFyQ,IAEFzgB,KAAKvB,OAAS6J,KAAKC,IAAIkY,EAAGzgB,KAAKvB,QAErB,IAANuR,EAAS,CACX,IAAIiT,EAAO,SAAc,WAAcjT,GAAMA,EAC7ChQ,KAAKmV,MAAMnV,KAAKvB,OAAS,IAAMwkB,EAGjC,OAAOjjB,KAAKoW,SAIdlG,EAAG1S,UAAUimB,MAAQ,SAAgB9S,GACnC,OAAO3Q,KAAKgR,QAAQwS,OAAO7S,IAI7BT,EAAG1S,UAAUkb,MAAQ,SAAgBjI,GAGnC,OAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAUzQ,KAAKqR,OAAOZ,GAGV,IAAlBzQ,KAAKkV,SACa,IAAhBlV,KAAKvB,SAAiC,EAAhBuB,KAAKmV,MAAM,IAAU1E,GAC7CzQ,KAAKmV,MAAM,GAAK1E,GAAuB,EAAhBzQ,KAAKmV,MAAM,IAClCnV,KAAKkV,SAAW,EACTlV,OAGTA,KAAKkV,SAAW,EAChBlV,KAAKqR,MAAMZ,GACXzQ,KAAKkV,SAAW,EACTlV,MAIFA,KAAKyW,OAAOhG,IAGrBP,EAAG1S,UAAUiZ,OAAS,SAAiBhG,GACrCzQ,KAAKmV,MAAM,IAAM1E,EAGjB,IAAK,IAAIpP,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,IAAM,SAAWA,IAC7DrB,KAAKmV,MAAM9T,IAAM,SACbA,IAAMrB,KAAKvB,OAAS,EACtBuB,KAAKmV,MAAM9T,EAAI,GAAK,EAEpBrB,KAAKmV,MAAM9T,EAAI,KAKnB,OAFArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,EAAI,GAEjCrB,MAITkQ,EAAG1S,UAAU6T,MAAQ,SAAgBZ,GAGnC,GAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAG,OAAOzQ,KAAK0Y,OAAOjI,GAEhC,GAAsB,IAAlBzQ,KAAKkV,SAIP,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAK0Y,MAAMjI,GACXzQ,KAAKkV,SAAW,EACTlV,KAKT,GAFAA,KAAKmV,MAAM,IAAM1E,EAEG,IAAhBzQ,KAAKvB,QAAgBuB,KAAKmV,MAAM,GAAK,EACvCnV,KAAKmV,MAAM,IAAMnV,KAAKmV,MAAM,GAC5BnV,KAAKkV,SAAW,OAGhB,IAAK,IAAI7T,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,GAAK,EAAGA,IACpDrB,KAAKmV,MAAM9T,IAAM,SACjBrB,KAAKmV,MAAM9T,EAAI,IAAM,EAIzB,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAUkmB,KAAO,SAAejT,GACjC,OAAOzQ,KAAKgR,QAAQ0H,MAAMjI,IAG5BP,EAAG1S,UAAUmmB,KAAO,SAAelT,GACjC,OAAOzQ,KAAKgR,QAAQK,MAAMZ,IAG5BP,EAAG1S,UAAUomB,KAAO,WAGlB,OAFA5jB,KAAKkV,SAAW,EAETlV,MAGTkQ,EAAG1S,UAAUgb,IAAM,WACjB,OAAOxY,KAAKgR,QAAQ4S,QAGtB1T,EAAG1S,UAAUqmB,aAAe,SAAuBpT,EAAKlE,EAAKuX,GAC3D,IACIziB,EAIAqP,EALAhQ,EAAM+P,EAAIhS,OAASqlB,EAGvB9jB,KAAK2W,QAAQjW,GAGb,IAAI2T,EAAQ,EACZ,IAAKhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CAC/BqP,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,EAClC,IAAIwB,GAAwB,EAAfpF,EAAI0E,MAAM9T,IAAUkL,EAEjC8H,IADA3D,GAAa,SAARmF,IACS,KAAQA,EAAQ,SAAa,GAC3C7V,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAE1B,KAAOrP,EAAIrB,KAAKvB,OAASqlB,EAAOziB,IAE9BgT,GADA3D,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,IACrB,GACbrU,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAG1B,GAAc,IAAV2D,EAAa,OAAOrU,KAAKoW,QAK7B,IAFAxG,GAAkB,IAAXyE,GACPA,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAE3BgT,GADA3D,IAAsB,EAAhB1Q,KAAKmV,MAAM9T,IAAUgT,IACd,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJqP,EAIlB,OAFA1Q,KAAKkV,SAAW,EAETlV,KAAKoW,SAGdlG,EAAG1S,UAAUumB,SAAW,SAAmBtT,EAAKuT,GAC9C,IAAIF,GAAQ9jB,KAAKvB,OAASgS,EAAIhS,QAE1BuL,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAGJwT,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,GAGf,KADdqlB,EAAQ,GADM9jB,KAAKkY,WAAW+L,MAG5Bre,EAAIA,EAAEyd,MAAMS,GACZ9Z,EAAE0Y,OAAOoB,GACTG,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,IAI3B,IACIuZ,EADAlS,EAAIkE,EAAEvL,OAASmH,EAAEnH,OAGrB,GAAa,QAATulB,EAAgB,EAClBhM,EAAI,IAAI9H,EAAG,OACTzR,OAASqH,EAAI,EACfkS,EAAE7C,MAAQ,IAAIhU,MAAM6W,EAAEvZ,QACtB,IAAK,IAAI4C,EAAI,EAAGA,EAAI2W,EAAEvZ,OAAQ4C,IAC5B2W,EAAE7C,MAAM9T,GAAK,EAIjB,IAAI6iB,EAAOla,EAAEgH,QAAQ6S,aAAaje,EAAG,EAAGE,GAClB,IAAlBoe,EAAKhP,WACPlL,EAAIka,EACAlM,IACFA,EAAE7C,MAAMrP,GAAK,IAIjB,IAAK,IAAIe,EAAIf,EAAI,EAAGe,GAAK,EAAGA,IAAK,CAC/B,IAAIsd,EAAmC,UAAL,EAAxBna,EAAEmL,MAAMvP,EAAEnH,OAASoI,KACE,EAA5BmD,EAAEmL,MAAMvP,EAAEnH,OAASoI,EAAI,IAO1B,IAHAsd,EAAK7b,KAAKC,IAAK4b,EAAKF,EAAO,EAAG,UAE9Bja,EAAE6Z,aAAaje,EAAGue,EAAItd,GACA,IAAfmD,EAAEkL,UACPiP,IACAna,EAAEkL,SAAW,EACblL,EAAE6Z,aAAaje,EAAG,EAAGiB,GAChBmD,EAAEwN,WACLxN,EAAEkL,UAAY,GAGd8C,IACFA,EAAE7C,MAAMtO,GAAKsd,GAajB,OAVInM,GACFA,EAAE5B,QAEJpM,EAAEoM,QAGW,QAAT4N,GAA4B,IAAVF,GACpB9Z,EAAEsH,OAAOwS,GAGJ,CACLM,IAAKpM,GAAK,KACV9G,IAAKlH,IAQTkG,EAAG1S,UAAU6mB,OAAS,SAAiB5T,EAAKuT,EAAMM,GAGhD,OAFA1U,GAAQa,EAAI+G,UAERxX,KAAKwX,SACA,CACL4M,IAAK,IAAIlU,EAAG,GACZgB,IAAK,IAAIhB,EAAG,IAKM,IAAlBlQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAKuT,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGH,QAATgL,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIgJ,KAAKzJ,IAIN,CACL2T,IAAKA,EACLlT,IAAKA,IAIa,IAAlBlR,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKqkB,OAAO5T,EAAIuI,MAAOgL,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGT,CACLoL,IAAKA,EACLlT,IAAK1I,EAAI0I,MAI0B,KAAlClR,KAAKkV,SAAWzE,EAAIyE,WACvB1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAIuI,MAAOgL,GAEtB,QAATA,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIiJ,KAAK1J,IAIN,CACL2T,IAAK5b,EAAI4b,IACTlT,IAAKA,IAOLT,EAAIhS,OAASuB,KAAKvB,QAAUuB,KAAK8V,IAAIrF,GAAO,EACvC,CACL2T,IAAK,IAAIlU,EAAG,GACZgB,IAAKlR,MAKU,IAAfyQ,EAAIhS,OACO,QAATulB,EACK,CACLI,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,MAII,QAAT8S,EACK,CACLI,IAAK,KACLlT,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7B,CACLiP,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7BnV,KAAK+jB,SAAStT,EAAKuT,GAlF1B,IAAII,EAAKlT,EAAK1I,GAsFhB0H,EAAG1S,UAAU4mB,IAAM,SAAc3T,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAO2T,KAIxClU,EAAG1S,UAAU0T,IAAM,SAAcT,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAOS,KAGxChB,EAAG1S,UAAUgnB,KAAO,SAAe/T,GACjC,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAMS,KAIvChB,EAAG1S,UAAUinB,SAAW,SAAmBhU,GACzC,IAAIiU,EAAK1kB,KAAKqkB,OAAO5T,GAGrB,GAAIiU,EAAGxT,IAAIsG,SAAU,OAAOkN,EAAGN,IAE/B,IAAIlT,EAA0B,IAApBwT,EAAGN,IAAIlP,SAAiBwP,EAAGxT,IAAIiJ,KAAK1J,GAAOiU,EAAGxT,IAEpDyT,EAAOlU,EAAI8S,MAAM,GACjBqB,EAAKnU,EAAIU,MAAM,GACf2E,EAAM5E,EAAI4E,IAAI6O,GAGlB,OAAI7O,EAAM,GAAY,IAAP8O,GAAoB,IAAR9O,EAAkB4O,EAAGN,IAGrB,IAApBM,EAAGN,IAAIlP,SAAiBwP,EAAGN,IAAI/S,MAAM,GAAKqT,EAAGN,IAAI1L,MAAM,IAGhExI,EAAG1S,UAAUia,KAAO,SAAehH,GACjCb,EAAOa,GAAO,UAId,IAHA,IAAIoC,GAAK,GAAK,IAAMpC,EAEhBoU,EAAM,EACDxjB,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IACpCwjB,GAAOhS,EAAIgS,GAAuB,EAAhB7kB,KAAKmV,MAAM9T,KAAWoP,EAG1C,OAAOoU,GAIT3U,EAAG1S,UAAUka,MAAQ,SAAgBjH,GACnCb,EAAOa,GAAO,UAGd,IADA,IAAI4D,EAAQ,EACHhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAkB,SAARgT,EAC9BrU,KAAKmV,MAAM9T,GAAMqP,EAAID,EAAO,EAC5B4D,EAAQ3D,EAAID,EAGd,OAAOzQ,KAAKoW,SAGdlG,EAAG1S,UAAU+mB,KAAO,SAAe9T,GACjC,OAAOzQ,KAAKgR,QAAQ0G,MAAMjH,IAG5BP,EAAG1S,UAAUsnB,KAAO,SAAejS,GACjCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIvN,EAAIjK,KACJkK,EAAI2I,EAAE7B,QAGR/G,EADiB,IAAfA,EAAEiL,SACAjL,EAAEua,KAAK3R,GAEP5I,EAAE+G,QAaR,IATA,IAAI+T,EAAI,IAAI7U,EAAG,GACX8U,EAAI,IAAI9U,EAAG,GAGX+U,EAAI,IAAI/U,EAAG,GACXgV,EAAI,IAAIhV,EAAG,GAEXT,EAAI,EAEDxF,EAAEkb,UAAYjb,EAAEib,UACrBlb,EAAEqH,OAAO,GACTpH,EAAEoH,OAAO,KACP7B,EAMJ,IAHA,IAAI2V,EAAKlb,EAAE8G,QACPqU,EAAKpb,EAAE+G,SAEH/G,EAAEuN,UAAU,CAClB,IAAK,IAAInW,EAAI,EAAGikB,EAAK,EAAyB,KAArBrb,EAAEkL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA4I,EAAEqH,OAAOjQ,GACFA,KAAM,IACP0jB,EAAE3T,SAAW4T,EAAE5T,WACjB2T,EAAE7K,KAAKkL,GACPJ,EAAE7K,KAAKkL,IAGTN,EAAEzT,OAAO,GACT0T,EAAE1T,OAAO,GAIb,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArBrb,EAAEiL,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAqD,EAAEoH,OAAOzK,GACFA,KAAM,IACPoe,EAAE7T,SAAW8T,EAAE9T,WACjB6T,EAAE/K,KAAKkL,GACPF,EAAE/K,KAAKkL,IAGTJ,EAAE3T,OAAO,GACT4T,EAAE5T,OAAO,GAITrH,EAAE6L,IAAI5L,IAAM,GACdD,EAAEkQ,KAAKjQ,GACP6a,EAAE5K,KAAK8K,GACPD,EAAE7K,KAAK+K,KAEPhb,EAAEiQ,KAAKlQ,GACPgb,EAAE9K,KAAK4K,GACPG,EAAE/K,KAAK6K,IAIX,MAAO,CACLhb,EAAGib,EACHrf,EAAGsf,EACHM,IAAKtb,EAAEwY,OAAOjT,KAOlBS,EAAG1S,UAAUioB,OAAS,SAAiB5S,GACrCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIxN,EAAIhK,KACJ4F,EAAIiN,EAAE7B,QAGRhH,EADiB,IAAfA,EAAEkL,SACAlL,EAAEwa,KAAK3R,GAEP7I,EAAEgH,QAQR,IALA,IAuCIxI,EAvCAkd,EAAK,IAAIxV,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GAEZ0V,EAAQhgB,EAAEoL,QAEPhH,EAAE8H,KAAK,GAAK,GAAKlM,EAAEkM,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzQ,EAAI,EAAGikB,EAAK,EAAyB,KAArBtb,EAAEmL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA2I,EAAEsH,OAAOjQ,GACFA,KAAM,GACPqkB,EAAGtU,SACLsU,EAAGxL,KAAK0L,GAGVF,EAAGpU,OAAO,GAId,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArB3f,EAAEuP,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAjB,EAAE0L,OAAOzK,GACFA,KAAM,GACP8e,EAAGvU,SACLuU,EAAGzL,KAAK0L,GAGVD,EAAGrU,OAAO,GAIVtH,EAAE8L,IAAIlQ,IAAM,GACdoE,EAAEmQ,KAAKvU,GACP8f,EAAGvL,KAAKwL,KAER/f,EAAEuU,KAAKnQ,GACP2b,EAAGxL,KAAKuL,IAeZ,OATEld,EADgB,IAAdwB,EAAE8H,KAAK,GACH4T,EAEAC,GAGA7T,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKrH,GAGJrK,GAGT0H,EAAG1S,UAAUgoB,IAAM,SAAc/U,GAC/B,GAAIzQ,KAAKwX,SAAU,OAAO/G,EAAI+H,MAC9B,GAAI/H,EAAI+G,SAAU,OAAOxX,KAAKwY,MAE9B,IAAIxO,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAAIO,QACZhH,EAAEkL,SAAW,EACbtP,EAAEsP,SAAW,EAGb,IAAK,IAAI4O,EAAQ,EAAG9Z,EAAEmb,UAAYvf,EAAEuf,SAAUrB,IAC5C9Z,EAAEsH,OAAO,GACT1L,EAAE0L,OAAO,GAGX,OAAG,CACD,KAAOtH,EAAEmb,UACPnb,EAAEsH,OAAO,GAEX,KAAO1L,EAAEuf,UACPvf,EAAE0L,OAAO,GAGX,IAAItB,EAAIhG,EAAE8L,IAAIlQ,GACd,GAAIoK,EAAI,EAAG,CAET,IAAImI,EAAInO,EACRA,EAAIpE,EACJA,EAAIuS,OACC,GAAU,IAANnI,GAAyB,IAAdpK,EAAEkM,KAAK,GAC3B,MAGF9H,EAAEmQ,KAAKvU,GAGT,OAAOA,EAAE8c,OAAOoB,IAIlB5T,EAAG1S,UAAUqoB,KAAO,SAAepV,GACjC,OAAOzQ,KAAK8kB,KAAKrU,GAAKzG,EAAEwa,KAAK/T,IAG/BP,EAAG1S,UAAU2nB,OAAS,WACpB,OAA+B,KAAP,EAAhBnlB,KAAKmV,MAAM,KAGrBjF,EAAG1S,UAAU4T,MAAQ,WACnB,OAA+B,KAAP,EAAhBpR,KAAKmV,MAAM,KAIrBjF,EAAG1S,UAAU2T,MAAQ,SAAgBV,GACnC,OAAOzQ,KAAKmV,MAAM,GAAK1E,GAIzBP,EAAG1S,UAAUsoB,MAAQ,SAAgB9L,GACnCpK,EAAsB,kBAARoK,GACd,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,GAAIhQ,KAAKvB,QAAUgiB,EAGjB,OAFAzgB,KAAK2W,QAAQ8J,EAAI,GACjBzgB,KAAKmV,MAAMsL,IAAMzI,EACVhY,KAKT,IADA,IAAIqU,EAAQ2D,EACH3W,EAAIof,EAAa,IAAVpM,GAAehT,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACnD,IAAIqP,EAAoB,EAAhB1Q,KAAKmV,MAAM9T,GAEnBgT,GADA3D,GAAK2D,KACS,GACd3D,GAAK,SACL1Q,KAAKmV,MAAM9T,GAAKqP,EAMlB,OAJc,IAAV2D,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAEAuB,MAGTkQ,EAAG1S,UAAUga,OAAS,WACpB,OAAuB,IAAhBxX,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,IAGzCjF,EAAG1S,UAAUsU,KAAO,SAAerB,GACjC,IAOIjI,EAPA0M,EAAWzE,EAAM,EAErB,GAAsB,IAAlBzQ,KAAKkV,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBlV,KAAKkV,UAAkBA,EAAU,OAAO,EAK5C,GAHAlV,KAAKoW,QAGDpW,KAAKvB,OAAS,EAChB+J,EAAM,MACD,CACD0M,IACFzE,GAAOA,GAGTb,EAAOa,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhB1Q,KAAKmV,MAAM,GACnB3M,EAAMkI,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAOT0H,EAAG1S,UAAUsY,IAAM,SAAcrF,GAC/B,GAAsB,IAAlBzQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAQ,EACvD,GAAsB,IAAlBlV,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAO,EAEtD,IAAI1M,EAAMxI,KAAK+lB,KAAKtV,GACpB,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAIT0H,EAAG1S,UAAUuoB,KAAO,SAAetV,GAEjC,GAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAO,EACrC,GAAIuB,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAQ,EAGtC,IADA,IAAI+J,EAAM,EACDnH,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAI2I,EAAoB,EAAhBhK,KAAKmV,MAAM9T,GACfuE,EAAmB,EAAf6K,EAAI0E,MAAM9T,GAElB,GAAI2I,IAAMpE,EAAV,CACIoE,EAAIpE,EACN4C,GAAO,EACEwB,EAAIpE,IACb4C,EAAM,GAER,OAEF,OAAOA,GAGT0H,EAAG1S,UAAUwoB,IAAM,SAAcvV,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUyoB,GAAK,SAAaxV,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU0oB,KAAO,SAAezV,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU2oB,IAAM,SAAc1V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAU4oB,IAAM,SAAc3V,GAC/B,OAA2B,IAApBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAU6oB,GAAK,SAAa5V,GAC7B,OAA0B,IAAnBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU8oB,KAAO,SAAe7V,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU+oB,IAAM,SAAc9V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAUgpB,IAAM,SAAc/V,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUipB,GAAK,SAAahW,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAOlBP,EAAGkF,IAAM,SAAc3E,GACrB,OAAO,IAAIiW,EAAIjW,IAGjBP,EAAG1S,UAAUmpB,MAAQ,SAAgBC,GAGnC,OAFAhX,GAAQ5P,KAAKoV,IAAK,yCAClBxF,EAAyB,IAAlB5P,KAAKkV,SAAgB,iCACrB0R,EAAIC,UAAU7mB,MAAM8mB,UAAUF,IAGvC1W,EAAG1S,UAAUupB,QAAU,WAErB,OADAnX,EAAO5P,KAAKoV,IAAK,wDACVpV,KAAKoV,IAAI4R,YAAYhnB,OAG9BkQ,EAAG1S,UAAUspB,UAAY,SAAoBF,GAE3C,OADA5mB,KAAKoV,IAAMwR,EACJ5mB,MAGTkQ,EAAG1S,UAAUypB,SAAW,SAAmBL,GAEzC,OADAhX,GAAQ5P,KAAKoV,IAAK,yCACXpV,KAAK8mB,UAAUF,IAGxB1W,EAAG1S,UAAU0pB,OAAS,SAAiBzW,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIgF,IAAIpa,KAAMyQ,IAG5BP,EAAG1S,UAAU2pB,QAAU,SAAkB1W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI8E,KAAKla,KAAMyQ,IAG7BP,EAAG1S,UAAU4pB,OAAS,SAAiB3W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIjH,IAAInO,KAAMyQ,IAG5BP,EAAG1S,UAAU6pB,QAAU,SAAkB5W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI+E,KAAKna,KAAMyQ,IAG7BP,EAAG1S,UAAU8pB,OAAS,SAAiB7W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAImS,IAAIvnB,KAAMyQ,IAG5BP,EAAG1S,UAAUgqB,OAAS,SAAiB/W,GAGrC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAI7I,IAAIvM,KAAMyQ,IAG5BP,EAAG1S,UAAUkqB,QAAU,SAAkBjX,GAGvC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAIiJ,KAAKre,KAAMyQ,IAG7BP,EAAG1S,UAAUmqB,OAAS,WAGpB,OAFA/X,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAImN,IAAIviB,OAGtBkQ,EAAG1S,UAAUqqB,QAAU,WAGrB,OAFAjY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIoN,KAAKxiB,OAIvBkQ,EAAG1S,UAAUsqB,QAAU,WAGrB,OAFAlY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI2S,KAAK/nB,OAGvBkQ,EAAG1S,UAAUwqB,QAAU,WAGrB,OAFApY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIyQ,KAAK7lB,OAIvBkQ,EAAG1S,UAAUyqB,OAAS,WAGpB,OAFArY,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI4D,IAAIhZ,OAGtBkQ,EAAG1S,UAAU0qB,OAAS,SAAiBzX,GAGrC,OAFAb,EAAO5P,KAAKoV,MAAQ3E,EAAI2E,IAAK,qBAC7BpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAItI,IAAI9M,KAAMyQ,IAI5B,IAAI0X,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQhmB,EAAMqQ,GAErB7S,KAAKwC,KAAOA,EACZxC,KAAK6S,EAAI,IAAI3C,EAAG2C,EAAG,IACnB7S,KAAK6F,EAAI7F,KAAK6S,EAAEhC,YAChB7Q,KAAK+Q,EAAI,IAAIb,EAAG,GAAGwS,OAAO1iB,KAAK6F,GAAGsU,KAAKna,KAAK6S,GAE5C7S,KAAKyoB,IAAMzoB,KAAK0oB,OAiDlB,SAASC,IACPH,EAAOzoB,KACLC,KACA,OACA,2EA+DJ,SAAS4oB,IACPJ,EAAOzoB,KACLC,KACA,OACA,kEAIJ,SAAS6oB,IACPL,EAAOzoB,KACLC,KACA,OACA,yDAIJ,SAAS8oB,IAEPN,EAAOzoB,KACLC,KACA,QACA,uEA8CJ,SAAS0mB,EAAK5gB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIijB,EAAQ7Y,EAAG8Y,OAAOljB,GACtB9F,KAAK8F,EAAIijB,EAAMlW,EACf7S,KAAK+oB,MAAQA,OAEbnZ,EAAO9J,EAAEkgB,IAAI,GAAI,kCACjBhmB,KAAK8F,EAAIA,EACT9F,KAAK+oB,MAAQ,KAkOjB,SAASE,EAAMnjB,GACb4gB,EAAI3mB,KAAKC,KAAM8F,GAEf9F,KAAK8jB,MAAQ9jB,KAAK8F,EAAE+K,YAChB7Q,KAAK8jB,MAAQ,KAAO,IACtB9jB,KAAK8jB,OAAS,GAAM9jB,KAAK8jB,MAAQ,IAGnC9jB,KAAKgQ,EAAI,IAAIE,EAAG,GAAGwS,OAAO1iB,KAAK8jB,OAC/B9jB,KAAK4kB,GAAK5kB,KAAKkpB,KAAKlpB,KAAKgQ,EAAEuS,OAC3BviB,KAAKmpB,KAAOnpB,KAAKgQ,EAAEyV,OAAOzlB,KAAK8F,GAE/B9F,KAAKopB,KAAOppB,KAAKmpB,KAAK5c,IAAIvM,KAAKgQ,GAAGqB,MAAM,GAAG+S,IAAIpkB,KAAK8F,GACpD9F,KAAKopB,KAAOppB,KAAKopB,KAAK5E,KAAKxkB,KAAKgQ,GAChChQ,KAAKopB,KAAOppB,KAAKgQ,EAAE7B,IAAInO,KAAKopB,MA5a9BZ,EAAOhrB,UAAUkrB,KAAO,WACtB,IAAID,EAAM,IAAIvY,EAAG,MAEjB,OADAuY,EAAItT,MAAQ,IAAIhU,MAAMmH,KAAK6N,KAAKnW,KAAK6F,EAAI,KAClC4iB,GAGTD,EAAOhrB,UAAU6rB,QAAU,SAAkB5Y,GAG3C,IACI6Y,EADAtZ,EAAIS,EAGR,GACEzQ,KAAKupB,MAAMvZ,EAAGhQ,KAAKyoB,KAGnBa,GADAtZ,GADAA,EAAIhQ,KAAKwpB,MAAMxZ,IACTkK,KAAKla,KAAKyoB,MACP5X,kBACFyY,EAAOtpB,KAAK6F,GAErB,IAAIiQ,EAAMwT,EAAOtpB,KAAK6F,GAAK,EAAImK,EAAE+V,KAAK/lB,KAAK6S,GAgB3C,OAfY,IAARiD,GACF9F,EAAEmF,MAAM,GAAK,EACbnF,EAAEvR,OAAS,GACFqX,EAAM,EACf9F,EAAEmK,KAAKna,KAAK6S,QAEI1T,IAAZ6Q,EAAEoG,MAEJpG,EAAEoG,QAGFpG,EAAEyZ,SAICzZ,GAGTwY,EAAOhrB,UAAU+rB,MAAQ,SAAgBG,EAAOne,GAC9Cme,EAAMpY,OAAOtR,KAAK6F,EAAG,EAAG0F,IAG1Bid,EAAOhrB,UAAUgsB,MAAQ,SAAgB/Y,GACvC,OAAOA,EAAI4N,KAAKre,KAAK+Q,IASvBwB,EAASoW,EAAMH,GAEfG,EAAKnrB,UAAU+rB,MAAQ,SAAgBG,EAAOC,GAK5C,IAHA,IAAI1G,EAAO,QAEP2G,EAASthB,KAAKC,IAAImhB,EAAMjrB,OAAQ,GAC3B4C,EAAI,EAAGA,EAAIuoB,EAAQvoB,IAC1BsoB,EAAOxU,MAAM9T,GAAKqoB,EAAMvU,MAAM9T,GAIhC,GAFAsoB,EAAOlrB,OAASmrB,EAEZF,EAAMjrB,QAAU,EAGlB,OAFAirB,EAAMvU,MAAM,GAAK,OACjBuU,EAAMjrB,OAAS,GAKjB,IAAIorB,EAAOH,EAAMvU,MAAM,GAGvB,IAFAwU,EAAOxU,MAAMwU,EAAOlrB,UAAYorB,EAAO5G,EAElC5hB,EAAI,GAAIA,EAAIqoB,EAAMjrB,OAAQ4C,IAAK,CAClC,IAAIyoB,EAAwB,EAAjBJ,EAAMvU,MAAM9T,GACvBqoB,EAAMvU,MAAM9T,EAAI,KAAQyoB,EAAO7G,IAAS,EAAM4G,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMvU,MAAM9T,EAAI,IAAMwoB,EACT,IAATA,GAAcH,EAAMjrB,OAAS,GAC/BirB,EAAMjrB,QAAU,GAEhBirB,EAAMjrB,QAAU,GAIpBkqB,EAAKnrB,UAAUgsB,MAAQ,SAAgB/Y,GAErCA,EAAI0E,MAAM1E,EAAIhS,QAAU,EACxBgS,EAAI0E,MAAM1E,EAAIhS,OAAS,GAAK,EAC5BgS,EAAIhS,QAAU,EAId,IADA,IAAI0J,EAAK,EACA9G,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAIqP,EAAmB,EAAfD,EAAI0E,MAAM9T,GAClB8G,GAAU,IAAJuI,EACND,EAAI0E,MAAM9T,GAAU,SAAL8G,EACfA,EAAS,GAAJuI,GAAavI,EAAK,SAAa,GAUtC,OANkC,IAA9BsI,EAAI0E,MAAM1E,EAAIhS,OAAS,KACzBgS,EAAIhS,SAC8B,IAA9BgS,EAAI0E,MAAM1E,EAAIhS,OAAS,IACzBgS,EAAIhS,UAGDgS,GAST8B,EAASqW,EAAMJ,GAQfjW,EAASsW,EAAML,GASfjW,EAASuW,EAAQN,GAEjBM,EAAOtrB,UAAUgsB,MAAQ,SAAgB/Y,GAGvC,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAI6G,EAA0B,IAAL,EAAfuI,EAAI0E,MAAM9T,IAAiBgT,EACjClM,EAAU,SAALD,EACTA,KAAQ,GAERuI,EAAI0E,MAAM9T,GAAK8G,EACfkM,EAAQnM,EAKV,OAHc,IAAVmM,IACF5D,EAAI0E,MAAM1E,EAAIhS,UAAY4V,GAErB5D,GAITP,EAAG8Y,OAAS,SAAgBxmB,GAE1B,GAAI2lB,EAAO3lB,GAAO,OAAO2lB,EAAO3lB,GAEhC,IAAIumB,EACJ,GAAa,SAATvmB,EACFumB,EAAQ,IAAIJ,OACP,GAAa,SAATnmB,EACTumB,EAAQ,IAAIH,OACP,GAAa,SAATpmB,EACTumB,EAAQ,IAAIF,MACP,IAAa,WAATrmB,EAGT,MAAM,IAAI/C,MAAM,iBAAmB+C,GAFnCumB,EAAQ,IAAID,EAMd,OAFAX,EAAO3lB,GAAQumB,EAERA,GAkBTrC,EAAIlpB,UAAUoqB,SAAW,SAAmB5d,GAC1C4F,EAAsB,IAAf5F,EAAEkL,SAAgB,iCACzBtF,EAAO5F,EAAEoL,IAAK,oCAGhBsR,EAAIlpB,UAAUiqB,SAAW,SAAmBzd,EAAGpE,GAC7CgK,EAAqC,KAA7B5F,EAAEkL,SAAWtP,EAAEsP,UAAiB,iCACxCtF,EAAO5F,EAAEoL,KAAOpL,EAAEoL,MAAQxP,EAAEwP,IAC1B,oCAGJsR,EAAIlpB,UAAU0rB,KAAO,SAAelf,GAClC,OAAIhK,KAAK+oB,MAAc/oB,KAAK+oB,MAAMM,QAAQrf,GAAG8c,UAAU9mB,MAChDgK,EAAEwa,KAAKxkB,KAAK8F,GAAGghB,UAAU9mB,OAGlC0mB,EAAIlpB,UAAUwb,IAAM,SAAchP,GAChC,OAAIA,EAAEwN,SACGxN,EAAEgH,QAGJhR,KAAK8F,EAAEqI,IAAInE,GAAG8c,UAAU9mB,OAGjC0mB,EAAIlpB,UAAU4c,IAAM,SAAcpQ,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEoQ,IAAIxU,GAIhB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU0c,KAAO,SAAelQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEkQ,KAAKtU,GAIjB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU2Q,IAAM,SAAcnE,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmE,IAAIvI,GAIhB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU2c,KAAO,SAAenQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmQ,KAAKvU,GAIjB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU+pB,IAAM,SAAcvd,EAAGyG,GAEnC,OADAzQ,KAAK4nB,SAAS5d,GACPhK,KAAKkpB,KAAKlf,EAAEqZ,MAAM5S,KAG3BiW,EAAIlpB,UAAU6gB,KAAO,SAAerU,EAAGpE,GAErC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEqU,KAAKzY,KAG1B8gB,EAAIlpB,UAAU+O,IAAM,SAAcvC,EAAGpE,GAEnC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEuC,IAAI3G,KAGzB8gB,EAAIlpB,UAAUglB,KAAO,SAAexY,GAClC,OAAOhK,KAAKqe,KAAKrU,EAAGA,EAAEgH,UAGxB0V,EAAIlpB,UAAU+kB,IAAM,SAAcvY,GAChC,OAAOhK,KAAKuM,IAAIvC,EAAGA,IAGrB0c,EAAIlpB,UAAUuqB,KAAO,SAAe/d,GAClC,GAAIA,EAAEwN,SAAU,OAAOxN,EAAEgH,QAEzB,IAAI+Y,EAAO/pB,KAAK8F,EAAEqL,MAAM,GAIxB,GAHAvB,EAAOma,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAIjd,EAAM9M,KAAK8F,EAAEsU,IAAI,IAAIlK,EAAG,IAAIoB,OAAO,GACvC,OAAOtR,KAAK8M,IAAI9C,EAAG8C,GAQrB,IAFA,IAAIkL,EAAIhY,KAAK8F,EAAE6d,KAAK,GAChBlD,EAAI,GACAzI,EAAER,UAA2B,IAAfQ,EAAE7G,MAAM,IAC5BsP,IACAzI,EAAE1G,OAAO,GAEX1B,GAAQoI,EAAER,UAEV,IAAIwS,EAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,MACtBiqB,EAAOD,EAAI/B,SAIXiC,EAAOlqB,KAAK8F,EAAE6d,KAAK,GAAGrS,OAAO,GAC7BL,EAAIjR,KAAK8F,EAAE+K,YAGf,IAFAI,EAAI,IAAIf,EAAG,EAAIe,EAAIA,GAAG0V,MAAM3mB,MAEW,IAAhCA,KAAK8M,IAAImE,EAAGiZ,GAAMpU,IAAImU,IAC3BhZ,EAAEkW,QAAQ8C,GAOZ,IAJA,IAAIhiB,EAAIjI,KAAK8M,IAAImE,EAAG+G,GAChBhI,EAAIhQ,KAAK8M,IAAI9C,EAAGgO,EAAE0L,KAAK,GAAGpS,OAAO,IACjC6G,EAAInY,KAAK8M,IAAI9C,EAAGgO,GAChBlS,EAAI2a,EACc,IAAftI,EAAErC,IAAIkU,IAAY,CAEvB,IADA,IAAIvB,EAAMtQ,EACD9W,EAAI,EAAoB,IAAjBonB,EAAI3S,IAAIkU,GAAY3oB,IAClConB,EAAMA,EAAId,SAEZ/X,EAAOvO,EAAIyE,GACX,IAAIF,EAAI5F,KAAK8M,IAAI7E,EAAG,IAAIiI,EAAG,GAAGwS,OAAO5c,EAAIzE,EAAI,IAE7C2O,EAAIA,EAAEwX,OAAO5hB,GACbqC,EAAIrC,EAAE+hB,SACNxP,EAAIA,EAAEqP,OAAOvf,GACbnC,EAAIzE,EAGN,OAAO2O,GAGT0W,EAAIlpB,UAAUqoB,KAAO,SAAe7b,GAClC,IAAImgB,EAAMngB,EAAEyb,OAAOzlB,KAAK8F,GACxB,OAAqB,IAAjBqkB,EAAIjV,UACNiV,EAAIjV,SAAW,EACRlV,KAAKkpB,KAAKiB,GAAKlC,UAEfjoB,KAAKkpB,KAAKiB,IAIrBzD,EAAIlpB,UAAUsP,IAAM,SAAc9C,EAAGyG,GACnC,GAAIA,EAAI+G,SAAU,OAAO,IAAItH,EAAG,GAAGyW,MAAM3mB,MACzC,GAAoB,IAAhByQ,EAAIqB,KAAK,GAAU,OAAO9H,EAAEgH,QAEhC,IACIoZ,EAAM,IAAIjpB,MAAM,IACpBipB,EAAI,GAAK,IAAIla,EAAG,GAAGyW,MAAM3mB,MACzBoqB,EAAI,GAAKpgB,EACT,IAAK,IAAI3I,EAAI,EAAGA,EAAI+oB,EAAI3rB,OAAQ4C,IAC9B+oB,EAAI/oB,GAAKrB,KAAKuM,IAAI6d,EAAI/oB,EAAI,GAAI2I,GAGhC,IAAIxB,EAAM4hB,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnlB,EAAQsL,EAAII,YAAc,GAK9B,IAJc,IAAV1L,IACFA,EAAQ,IAGL9D,EAAIoP,EAAIhS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIqR,EAAOjC,EAAI0E,MAAM9T,GACZwF,EAAI1B,EAAQ,EAAG0B,GAAK,EAAGA,IAAK,CACnC,IAAImT,EAAOtH,GAAQ7L,EAAK,EACpB2B,IAAQ4hB,EAAI,KACd5hB,EAAMxI,KAAKuiB,IAAI/Z,IAGL,IAARwR,GAAyB,IAAZqQ,GAKjBA,IAAY,EACZA,GAAWrQ,GA9BE,MA+BbsQ,GACwC,IAANjpB,GAAiB,IAANwF,KAE7C2B,EAAMxI,KAAKuM,IAAI/D,EAAK4hB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnlB,EAAQ,GAGV,OAAOqD,GAGTke,EAAIlpB,UAAUqpB,UAAY,SAAoBpW,GAC5C,IAAIT,EAAIS,EAAI+T,KAAKxkB,KAAK8F,GAEtB,OAAOkK,IAAMS,EAAMT,EAAEgB,QAAUhB,GAGjC0W,EAAIlpB,UAAUwpB,YAAc,SAAsBvW,GAChD,IAAIjI,EAAMiI,EAAIO,QAEd,OADAxI,EAAI4M,IAAM,KACH5M,GAOT0H,EAAGqa,KAAO,SAAe9Z,GACvB,OAAO,IAAIwY,EAAKxY,IAmBlB8B,EAAS0W,EAAMvC,GAEfuC,EAAKzrB,UAAUqpB,UAAY,SAAoBpW,GAC7C,OAAOzQ,KAAKkpB,KAAKzY,EAAI4S,MAAMrjB,KAAK8jB,SAGlCmF,EAAKzrB,UAAUwpB,YAAc,SAAsBvW,GACjD,IAAIT,EAAIhQ,KAAKkpB,KAAKzY,EAAIlE,IAAIvM,KAAKmpB,OAE/B,OADAnZ,EAAEoF,IAAM,KACDpF,GAGTiZ,EAAKzrB,UAAU6gB,KAAO,SAAerU,EAAGpE,GACtC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAGlB,OAFAxN,EAAEmL,MAAM,GAAK,EACbnL,EAAEvL,OAAS,EACJuL,EAGT,IAAImO,EAAInO,EAAEqU,KAAKzY,GACXqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAQV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAU+O,IAAM,SAAcvC,EAAGpE,GACpC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAAU,OAAO,IAAItH,EAAG,GAAG4W,UAAU9mB,MAEzD,IAAImY,EAAInO,EAAEuC,IAAI3G,GACVqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAOV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAUqoB,KAAO,SAAe7b,GAGnC,OADUhK,KAAKkpB,KAAKlf,EAAEyb,OAAOzlB,KAAK8F,GAAGyG,IAAIvM,KAAK4kB,KACnCkC,UAAU9mB,OAn3GzB,CAq3GoC7C,EAAQ6C,Q,kDCn3G5C,IAAM0uD,EAAWtxD,EAEjBsxD,EAASC,IAAM3wD,EAAQ,KACvB0wD,EAASE,IAAM5wD,EAAQ,M,6BCHvB,IAAMuU,EAAWvU,EAAQ,GACnBC,EAASD,EAAQ,IAAgBC,OACjC81C,EAAO/1C,EAAQ,IAGf2wD,EAAM3wD,EAAQ,IAEpB,SAAS6wD,EAAWjY,GAClB52C,KAAK4S,IAAM,MACX5S,KAAKwC,KAAOo0C,EAAOp0C,KACnBxC,KAAK42C,OAASA,EAGd52C,KAAK8uD,KAAO,IAAIC,EAChB/uD,KAAK8uD,KAAKz5C,MAAMuhC,EAAO7B,MAUzB,SAASga,EAAQ/a,GACfD,EAAKh0C,KAAKC,KAAM,MAAOg0C,GAmHzB,SAAS5W,EAAI3sB,GACX,OAAIA,EAAM,GACD,IAAMA,EAENA,EAhIXtT,EAAOC,QAAUyxD,EAEjBA,EAAWrxD,UAAU+S,OAAS,SAAgB9L,EAAMwzB,GAClD,OAAOj4B,KAAK8uD,KAAK/uB,QAAQt7B,EAAMwzB,GAAUrtB,QAQ3C2H,EAASw8C,EAAShb,GAElBgb,EAAQvxD,UAAUg6C,iBAAmB,SAAyBrW,EAC5DiW,EACAG,EACAJ,GACA,IAAM6X,EA2OR,SAAmB7tB,EAAKiW,EAAWG,EAAKtf,GACtC,IAAIzvB,EAEQ,UAAR24B,EACFA,EAAM,MACS,UAARA,IACPA,EAAM,OAER,GAAIwtB,EAAI3V,UAAU7V,eAAehC,GAC/B34B,EAAMmmD,EAAI3V,UAAU7X,OACjB,IAAmB,kBAARA,IAA2B,EAANA,KAAaA,EAGhD,OAAOlJ,EAAS/H,MAAM,gBAAkBiR,GAFxC34B,EAAM24B,EAIR,GAAI34B,GAAO,GACT,OAAOyvB,EAAS/H,MAAM,wCAEnBknB,IACH5uC,GAAO,IAIT,OAFAA,GAAQmmD,EAAI5V,eAAexB,GAAO,cAAgB,EAhQ/B0X,CAAU9tB,EAAKiW,EAAWG,EAAKv3C,KAAKi4B,UAGvD,GAAIkf,EAAQ14C,OAAS,IAAM,CACzB,IAAMywD,EAASjxD,EAAOU,MAAM,GAG5B,OAFAuwD,EAAO,GAAKF,EACZE,EAAO,GAAK/X,EAAQ14C,OACbuB,KAAKg3C,qBAAqB,CAAEkY,EAAQ/X,IAM7C,IADA,IAAIgY,EAAY,EACP9tD,EAAI81C,EAAQ14C,OAAQ4C,GAAK,IAAOA,IAAM,EAC7C8tD,IAEF,IAAMD,EAASjxD,EAAOU,MAAM,EAAQwwD,GACpCD,EAAO,GAAKF,EACZE,EAAO,GAAK,IAAOC,EAEnB,IAAK,IAAI9tD,EAAI,EAAI8tD,EAAWtoD,EAAIswC,EAAQ14C,OAAQoI,EAAI,EAAGxF,IAAKwF,IAAM,EAChEqoD,EAAO7tD,GAAS,IAAJwF,EAEd,OAAO7G,KAAKg3C,qBAAqB,CAAEkY,EAAQ/X,KAG7C4X,EAAQvxD,UAAUm6C,WAAa,SAAmBlwC,EAAK05B,GACrD,GAAY,WAARA,EACF,OAAOnhC,KAAKg3C,qBAAqB,CAAe,EAAbvvC,EAAI2nD,OAAY3nD,EAAIhD,OAClD,GAAY,WAAR08B,EAAkB,CAE3B,IADA,IAAMjiC,EAAMjB,EAAOU,MAAmB,EAAb8I,EAAIhJ,QACpB4C,EAAI,EAAGA,EAAIoG,EAAIhJ,OAAQ4C,IAC9BnC,EAAI4O,cAAcrG,EAAIE,WAAWtG,GAAQ,EAAJA,GAEvC,OAAOrB,KAAKg3C,qBAAqB93C,GAC5B,MAAY,WAARiiC,EACJnhC,KAAKi4C,UAAUxwC,GAIbzH,KAAKg3C,qBAAqBvvC,GAHxBzH,KAAKi4B,SAAS/H,MAAM,kEAIZ,aAARiR,EACJnhC,KAAKk4C,YAAYzwC,GAQfzH,KAAKg3C,qBAAqBvvC,GAPxBzH,KAAKi4B,SAAS/H,MAAM,qNAQpB,OAAOqJ,KAAK4H,IAEJ,YAARA,EADFnhC,KAAKg3C,qBAAqBvvC,GAI1BzH,KAAKi4B,SAAS/H,MAAM,4BAA8BiR,EAC9B,iBAI/B4tB,EAAQvxD,UAAUo6C,aAAe,SAAqByX,EAAIC,EAAQtqB,GAChE,GAAkB,kBAAPqqB,EAAiB,CAC1B,IAAKC,EACH,OAAOtvD,KAAKi4B,SAAS/H,MAAM,+CAC7B,IAAKo/B,EAAOnsB,eAAeksB,GACzB,OAAOrvD,KAAKi4B,SAAS/H,MAAM,iCAC7Bm/B,EAAKC,EAAOD,GAAI9lC,MAAM,WACtB,IAAK,IAAIloB,EAAI,EAAGA,EAAIguD,EAAG5wD,OAAQ4C,IAC7BguD,EAAGhuD,IAAM,OACN,GAAIF,MAAM6B,QAAQqsD,GAAK,CAC5BA,EAAKA,EAAGprD,QACR,IAAK,IAAI5C,EAAI,EAAGA,EAAIguD,EAAG5wD,OAAQ4C,IAC7BguD,EAAGhuD,IAAM,EAGb,IAAKF,MAAM6B,QAAQqsD,GACjB,OAAOrvD,KAAKi4B,SAAS/H,MAAM,kDACUunB,KAAKC,UAAU2X,IAGtD,IAAKrqB,EAAU,CACb,GAAIqqB,EAAG,IAAM,GACX,OAAOrvD,KAAKi4B,SAAS/H,MAAM,+BAC7Bm/B,EAAGhrB,OAAO,EAAG,EAAW,GAARgrB,EAAG,GAAUA,EAAG,IAKlC,IADA,IAAItwD,EAAO,EACFsC,EAAI,EAAGA,EAAIguD,EAAG5wD,OAAQ4C,IAAK,CAClC,IAAIkuD,EAAQF,EAAGhuD,GACf,IAAKtC,IAAQwwD,GAAS,IAAMA,IAAU,EACpCxwD,IAKJ,IAFA,IAAMywD,EAAQvxD,EAAOU,MAAMI,GACvBgI,EAASyoD,EAAM/wD,OAAS,EACnB4C,EAAIguD,EAAG5wD,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACvC,IAAIkuD,EAAQF,EAAGhuD,GAEf,IADAmuD,EAAMzoD,KAAoB,IAARwoD,GACVA,IAAU,GAAK,GACrBC,EAAMzoD,KAAY,IAAgB,IAARwoD,EAG9B,OAAOvvD,KAAKg3C,qBAAqBwY,IAUnCT,EAAQvxD,UAAUq6C,YAAc,SAAoB4X,EAAMtuB,GACxD,IAAI15B,EACEioD,EAAO,IAAIC,KAAKF,GA0BtB,MAxBY,YAARtuB,EACF15B,EAAM,CACJ21B,EAAIsyB,EAAKE,kBACTxyB,EAAIsyB,EAAKG,cAAgB,GACzBzyB,EAAIsyB,EAAKI,cACT1yB,EAAIsyB,EAAKK,eACT3yB,EAAIsyB,EAAKM,iBACT5yB,EAAIsyB,EAAKO,iBACT,KACArlD,KAAK,IACU,YAARu2B,EACT15B,EAAM,CACJ21B,EAAIsyB,EAAKE,iBAAmB,KAC5BxyB,EAAIsyB,EAAKG,cAAgB,GACzBzyB,EAAIsyB,EAAKI,cACT1yB,EAAIsyB,EAAKK,eACT3yB,EAAIsyB,EAAKM,iBACT5yB,EAAIsyB,EAAKO,iBACT,KACArlD,KAAK,IAEP5K,KAAKi4B,SAAS/H,MAAM,YAAciR,EAAM,8BAGnCnhC,KAAK23C,WAAWlwC,EAAK,WAG9BsnD,EAAQvxD,UAAUs6C,YAAc,WAC9B,OAAO93C,KAAKg3C,qBAAqB,KAGnC+X,EAAQvxD,UAAUu6C,WAAa,SAAmBtnC,EAAK6+C,GACrD,GAAmB,kBAAR7+C,EAAkB,CAC3B,IAAK6+C,EACH,OAAOtvD,KAAKi4B,SAAS/H,MAAM,+CAC7B,IAAKo/B,EAAOnsB,eAAe1yB,GACzB,OAAOzQ,KAAKi4B,SAAS/H,MAAM,+BACAunB,KAAKC,UAAUjnC,IAE5CA,EAAM6+C,EAAO7+C,GAIf,GAAmB,kBAARA,IAAqBxS,EAAOmG,SAASqM,GAAM,CACpD,IAAMy/C,EAAWz/C,EAAIJ,WAChBI,EAAI0/C,MAAsB,IAAdD,EAAS,IACxBA,EAASzhC,QAAQ,GAEnBhe,EAAMxS,EAAOS,KAAKwxD,GAGpB,GAAIjyD,EAAOmG,SAASqM,GAAM,CACxB,IAAI1R,EAAO0R,EAAIhS,OACI,IAAfgS,EAAIhS,QACNM,IAEF,IAAMwM,EAAMtN,EAAOU,MAAMI,GAIzB,OAHA0R,EAAInM,KAAKiH,GACU,IAAfkF,EAAIhS,SACN8M,EAAI,GAAK,GACJvL,KAAKg3C,qBAAqBzrC,GAGnC,GAAIkF,EAAM,IACR,OAAOzQ,KAAKg3C,qBAAqBvmC,GAEnC,GAAIA,EAAM,IACR,OAAOzQ,KAAKg3C,qBAAqB,CAAC,EAAGvmC,IAGvC,IADA,IAAI1R,EAAO,EACFsC,EAAIoP,EAAKpP,GAAK,IAAOA,IAAM,EAClCtC,IAGF,IADA,IAAMwM,EAAM,IAAIpK,MAAMpC,GACbsC,EAAIkK,EAAI9M,OAAS,EAAG4C,GAAK,EAAGA,IACnCkK,EAAIlK,GAAW,IAANoP,EACTA,IAAQ,EAMV,OAJY,IAATlF,EAAI,IACLA,EAAIkjB,QAAQ,GAGPzuB,KAAKg3C,qBAAqB/4C,EAAOS,KAAK6M,KAG/CwjD,EAAQvxD,UAAUw6C,YAAc,SAAoBt6C,GAClD,OAAOsC,KAAKg3C,qBAAqBt5C,EAAQ,IAAO,IAGlDqxD,EAAQvxD,UAAUq5C,KAAO,SAAaD,EAAQzyC,GAG5C,MAFsB,oBAAXyyC,IACTA,EAASA,EAAOzyC,IACXyyC,EAAOwZ,YAAY,OAAOtB,MAGnCC,EAAQvxD,UAAU05C,aAAe,SAAqBmZ,EAAYp4B,EAAU+b,GAC1E,IACI3yC,EADE6tB,EAAQlvB,KAAKi0C,WAEnB,GAAyB,OAArB/kB,EAAK,QACP,OAAO,EAET,IAAMzqB,EAAO4rD,EAAWzlD,OAIxB,QAH4BzL,IAAxB+vB,EAAMohC,gBACRphC,EAAMohC,cAAgBtwD,KAAKi3C,aAAa/nB,EAAK,QAAa+I,EAAU+b,GAAQppC,QAE1EnG,EAAKhG,SAAWywB,EAAMohC,cAAc7xD,OACtC,OAAO,EAET,IAAK4C,EAAE,EAAGA,EAAIoD,EAAKhG,OAAQ4C,IACzB,GAAIoD,EAAKpD,KAAO6tB,EAAMohC,cAAcjvD,GAClC,OAAO,EAEX,OAAO,I,6BCvQT,IAAMotD,EAAWrxD,EAEjBqxD,EAASE,IAAM3wD,EAAQ,KACvBywD,EAASG,IAAM5wD,EAAQ,M,6BCHvB,IAAMuU,EAAWvU,EAAQ,GAEnBuwD,EAASvwD,EAAQ,KACjB+5B,EAAgB/5B,EAAQ,IAAkB+5B,cAC1Cgc,EAAO/1C,EAAQ,IAGf2wD,EAAM3wD,EAAQ,IAEpB,SAASuyD,EAAW3Z,GAClB52C,KAAK4S,IAAM,MACX5S,KAAKwC,KAAOo0C,EAAOp0C,KACnBxC,KAAK42C,OAASA,EAGd52C,KAAK8uD,KAAO,IAAIC,EAChB/uD,KAAK8uD,KAAKz5C,MAAMuhC,EAAO7B,MAczB,SAASga,EAAQ/a,GACfD,EAAKh0C,KAAKC,KAAM,MAAOg0C,GA8OzB,SAASwc,EAAatxD,EAAKw5B,GACzB,IAAIyI,EAAMjiC,EAAIuN,UAAUisB,GACxB,GAAIx5B,EAAI+3B,QAAQkK,GACd,OAAOA,EAET,IAAMoW,EAAMoX,EAAI7V,SAAS3X,GAAO,GAC1BiW,EAA6B,KAAV,GAANjW,GAGnB,GAAqB,MAAV,GAANA,GAAsB,CACzB,IAAIsvB,EAAMtvB,EAEV,IADAA,EAAM,EACkB,OAAV,IAANsvB,IAAsB,CAE5B,GADAA,EAAMvxD,EAAIuN,UAAUisB,GAChBx5B,EAAI+3B,QAAQw5B,GACd,OAAOA,EAETtvB,IAAQ,EACRA,GAAa,IAANsvB,QAGTtvB,GAAO,GAIT,MAAO,CACLoW,IAAKA,EACLH,UAAWA,EACXjW,IAAKA,EACLuvB,OANa/B,EAAIxtB,IAAIA,IAUzB,SAASwvB,EAAazxD,EAAKk4C,EAAW1e,GACpC,IAAIh4B,EAAMxB,EAAIuN,UAAUisB,GACxB,GAAIx5B,EAAI+3B,QAAQv2B,GACd,OAAOA,EAGT,IAAK02C,GAAqB,MAAR12C,EAChB,OAAO,KAGT,GAAqB,KAAV,IAANA,GAEH,OAAOA,EAIT,IAAM+P,EAAY,IAAN/P,EACZ,GAAI+P,EAAM,EACR,OAAOvR,EAAIgxB,MAAM,6BAEnBxvB,EAAM,EACN,IAAK,IAAIW,EAAI,EAAGA,EAAIoP,EAAKpP,IAAK,CAC5BX,IAAQ,EACR,IAAMmG,EAAI3H,EAAIuN,UAAUisB,GACxB,GAAIx5B,EAAI+3B,QAAQpwB,GACd,OAAOA,EACTnG,GAAOmG,EAGT,OAAOnG,EAzTTvD,EAAOC,QAAUmzD,EAEjBA,EAAW/yD,UAAU6jC,OAAS,SAAgB58B,EAAMiuB,GAKlD,OAJKqF,EAAcK,gBAAgB3zB,KACjCA,EAAO,IAAIszB,EAActzB,EAAMiuB,IAG1B1yB,KAAK8uD,KAAK1Z,QAAQ3wC,EAAMiuB,IAQjCngB,EAASw8C,EAAShb,GAElBgb,EAAQvxD,UAAUm4C,SAAW,SAAiB53C,EAAQojC,EAAKkT,GACzD,GAAIt2C,EAAOw6B,UACT,OAAO,EAET,IAAMrJ,EAAQnxB,EAAOs6B,OACfu4B,EAAaJ,EAAazyD,EAAQ,wBAA0BojC,EAAM,KACxE,OAAIpjC,EAAOk5B,QAAQ25B,GACVA,GAET7yD,EAAOu6B,QAAQpJ,GAER0hC,EAAWzvB,MAAQA,GAAOyvB,EAAWF,SAAWvvB,GACpDyvB,EAAWF,OAAS,OAAUvvB,GAAOkT,IAG1C0a,EAAQvxD,UAAUu4C,WAAa,SAAmBh4C,EAAQojC,EAAKkT,GAC7D,IAAMuc,EAAaJ,EAAazyD,EAC9B,4BAA8BojC,EAAM,KACtC,GAAIpjC,EAAOk5B,QAAQ25B,GACjB,OAAOA,EAET,IAAIlwD,EAAMiwD,EAAa5yD,EACrB6yD,EAAWxZ,UACX,4BAA8BjW,EAAM,KAGtC,GAAIpjC,EAAOk5B,QAAQv2B,GACjB,OAAOA,EAET,IAAK2zC,GACDuc,EAAWzvB,MAAQA,GACnByvB,EAAWF,SAAWvvB,GACtByvB,EAAWF,OAAS,OAASvvB,EAC/B,OAAOpjC,EAAOmyB,MAAM,yBAA2BiR,EAAM,KAGvD,GAAIyvB,EAAWxZ,WAAqB,OAAR12C,EAC1B,OAAO3C,EAAOy6B,KAAK93B,EAAK,6BAA+BygC,EAAM,KAG/D,IAAMjS,EAAQnxB,EAAOs6B,OACf7vB,EAAMxI,KAAK6wD,cACf9yD,EACA,2CAA6CiC,KAAKmhC,IAAM,KAC1D,OAAIpjC,EAAOk5B,QAAQzuB,GACVA,GAET9H,EAAM3C,EAAOgJ,OAASmoB,EAAMnoB,OAC5BhJ,EAAOu6B,QAAQpJ,GACRnxB,EAAOy6B,KAAK93B,EAAK,6BAA+BygC,EAAM,OAG/D4tB,EAAQvxD,UAAUqzD,cAAgB,SAAsB9yD,EAAQ26B,GAC9D,OAAS,CACP,IAAMyI,EAAMqvB,EAAazyD,EAAQ26B,GACjC,GAAI36B,EAAOk5B,QAAQkK,GACjB,OAAOA,EACT,IAAMzgC,EAAMiwD,EAAa5yD,EAAQojC,EAAIiW,UAAW1e,GAChD,GAAI36B,EAAOk5B,QAAQv2B,GACjB,OAAOA,EAET,IAAI8H,OAAG,EAOP,GALEA,EADE24B,EAAIiW,WAAqB,OAAR12C,EACb3C,EAAOy6B,KAAK93B,GAEZV,KAAK6wD,cAAc9yD,EAAQ26B,GAG/B36B,EAAOk5B,QAAQzuB,GACjB,OAAOA,EAET,GAAmB,QAAf24B,EAAIuvB,OACN,QAIN3B,EAAQvxD,UAAU64C,YAAc,SAAoBt4C,EAAQojC,EAAK8Z,EAC/DvoB,GAEA,IADA,IAAM6iB,EAAS,IACPx3C,EAAOw6B,WAAW,CACxB,IAAMu4B,EAAc9wD,KAAK21C,SAAS53C,EAAQ,OAC1C,GAAIA,EAAOk5B,QAAQ65B,GACjB,OAAOA,EAET,IAAMtoD,EAAMyyC,EAAQ5Z,OAAOtjC,EAAQ,MAAO20B,GAC1C,GAAI30B,EAAOk5B,QAAQzuB,IAAQsoD,EACzB,MACFvb,EAAOj0C,KAAKkH,GAEd,OAAO+sC,GAGTwZ,EAAQvxD,UAAU84C,WAAa,SAAmBv4C,EAAQojC,GACxD,GAAY,WAARA,EAAkB,CACpB,IAAMiuB,EAASrxD,EAAO0O,YACtB,OAAI1O,EAAOk5B,QAAQm4B,GACVA,EACF,CAAEA,OAAQA,EAAQ3qD,KAAM1G,EAAO06B,OACjC,GAAY,WAAR0I,EAAkB,CAC3B,IAAM1I,EAAM16B,EAAO06B,MACnB,GAAIA,EAAIh6B,OAAS,IAAM,EACrB,OAAOV,EAAOmyB,MAAM,mDAGtB,IADA,IAAIzoB,EAAM,GACDpG,EAAI,EAAGA,EAAIo3B,EAAIh6B,OAAS,EAAG4C,IAClCoG,GAAOjB,OAAO0C,aAAauvB,EAAI/xB,aAAiB,EAAJrF,IAE9C,OAAOoG,EACF,GAAY,WAAR05B,EAAkB,CAC3B,IAAM4vB,EAAShzD,EAAO06B,MAAM7zB,SAAS,SACrC,OAAK5E,KAAKi4C,UAAU8Y,GAIbA,EAHEhzD,EAAOmyB,MAAM,0DAIjB,GAAY,WAARiR,EACT,OAAOpjC,EAAO06B,MACT,GAAY,YAAR0I,EACT,OAAOpjC,EAAO06B,MACT,GAAY,aAAR0I,EAAoB,CAC7B,IAAM6vB,EAAWjzD,EAAO06B,MAAM7zB,SAAS,SACvC,OAAK5E,KAAKk4C,YAAY8Y,GAIfA,EAHEjzD,EAAOmyB,MAAM,4DAIjB,MAAI,OAAOqJ,KAAK4H,GACdpjC,EAAO06B,MAAM7zB,WAEb7G,EAAOmyB,MAAM,4BAA8BiR,EAAM,iBAI5D4tB,EAAQvxD,UAAU+4C,aAAe,SAAqBx4C,EAAQuxD,EAAQtqB,GAKpE,IAJA,IAAIuQ,EACE0b,EAAc,GAChB1B,EAAQ,EACR2B,EAAW,GACPnzD,EAAOw6B,WAEbg3B,IAAU,EACVA,GAAoB,KAFpB2B,EAAWnzD,EAAO0O,aAGQ,KAAV,IAAXykD,KACHD,EAAY3vD,KAAKiuD,GACjBA,EAAQ,GAGG,IAAX2B,GACFD,EAAY3vD,KAAKiuD,GAEnB,IAAMzgB,EAASmiB,EAAY,GAAK,GAAM,EAChCE,EAASF,EAAY,GAAK,GAOhC,GAJE1b,EADEvQ,EACOisB,EAEA,CAACniB,EAAOqiB,GAAQ5wD,OAAO0wD,EAAYhtD,MAAM,IAEhDqrD,EAAQ,CACV,IAAI7mC,EAAM6mC,EAAO/Z,EAAO3qC,KAAK,WACjBzL,IAARspB,IACFA,EAAM6mC,EAAO/Z,EAAO3qC,KAAK,YACfzL,IAARspB,IACF8sB,EAAS9sB,GAGb,OAAO8sB,GAGTwZ,EAAQvxD,UAAUg5C,YAAc,SAAoBz4C,EAAQojC,GAC1D,IAEIiwB,EACAC,EACAC,EACAC,EACAhpD,EACAipD,EAPE/pD,EAAM1J,EAAO06B,MAAM7zB,WAQzB,GAAY,YAARu8B,EACFiwB,EAAyB,EAAlB3pD,EAAIxD,MAAM,EAAG,GACpBotD,EAAwB,EAAlB5pD,EAAIxD,MAAM,EAAG,GACnBqtD,EAAwB,EAAlB7pD,EAAIxD,MAAM,EAAG,GACnBstD,EAA0B,EAAnB9pD,EAAIxD,MAAM,EAAG,IACpBsE,EAA0B,EAApBd,EAAIxD,MAAM,GAAI,IACpButD,EAA0B,EAApB/pD,EAAIxD,MAAM,GAAI,QACf,IAAY,YAARk9B,EAYT,OAAOpjC,EAAOmyB,MAAM,YAAciR,EAAM,8BAXxCiwB,EAAyB,EAAlB3pD,EAAIxD,MAAM,EAAG,GACpBotD,EAAwB,EAAlB5pD,EAAIxD,MAAM,EAAG,GACnBqtD,EAAwB,EAAlB7pD,EAAIxD,MAAM,EAAG,GACnBstD,EAAyB,EAAlB9pD,EAAIxD,MAAM,EAAG,GACpBsE,EAAyB,EAAnBd,EAAIxD,MAAM,EAAG,IACnButD,EAA0B,EAApB/pD,EAAIxD,MAAM,GAAI,IAElBmtD,EADEA,EAAO,GACF,IAAOA,EAEP,KAAOA,EAKlB,OAAOzB,KAAK8B,IAAIL,EAAMC,EAAM,EAAGC,EAAKC,EAAMhpD,EAAKipD,EAAK,IAGtDzC,EAAQvxD,UAAUi5C,YAAc,WAC9B,OAAO,MAGTsY,EAAQvxD,UAAUk5C,YAAc,SAAoB34C,GAClD,IAAMyK,EAAMzK,EAAO0O,YACnB,OAAI1O,EAAOk5B,QAAQzuB,GACVA,EAEQ,IAARA,GAGXumD,EAAQvxD,UAAUm5C,WAAa,SAAmB54C,EAAQuxD,GAExD,IAAM72B,EAAM16B,EAAO06B,MACfjwB,EAAM,IAAI+lD,EAAO91B,GAKrB,OAHI62B,IACF9mD,EAAM8mD,EAAO9mD,EAAI5D,SAAS,MAAQ4D,GAE7BA,GAGTumD,EAAQvxD,UAAUq5C,KAAO,SAAaD,EAAQzyC,GAG5C,MAFsB,oBAAXyyC,IACTA,EAASA,EAAOzyC,IACXyyC,EAAO8a,YAAY,OAAO5C,O,8MC1QnC,IAAI6C,EAAa3zD,EAAQ,IACrBC,EAASD,EAAQ,GAAeC,OAapC,SAAS2zD,EAAO3pD,GACd,IAAIsD,EAAMtN,EAAOW,YAAY,GAE7B,OADA2M,EAAIyC,cAAc/F,EAAG,GACdsD,EAdTpO,EAAOC,QAAU,SAAUy0D,EAAMnxD,GAI/B,IAHA,IAEIuH,EAFAkQ,EAAIla,EAAOU,MAAM,GACjB0C,EAAI,EAED8W,EAAE1Z,OAASiC,GAChBuH,EAAI2pD,EAAMvwD,KACV8W,EAAIla,EAAOsC,OAAO,CAAC4X,EAAGw5C,EAAW,QAAQnmC,OAAOqmC,GAAMrmC,OAAOvjB,GAAG2tB,WAElE,OAAOzd,EAAElU,MAAM,EAAGvD,K,cCXpBvD,EAAOC,QAAU,SAAc4M,EAAGpE,GAGhC,IAFA,IAAIlF,EAAMsJ,EAAEvL,OACR4C,GAAK,IACAA,EAAIX,GACXsJ,EAAE3I,IAAMuE,EAAEvE,GAEZ,OAAO2I,I,gBCNT,IAAIkG,EAAKlS,EAAQ,IACbC,EAASD,EAAQ,GAAeC,OAUpCd,EAAOC,QARP,SAAqB00D,EAAWzzD,GAC9B,OAAOJ,EAAOS,KAAKozD,EAChBnrC,MAAMzW,EAAGqa,KAAKlsB,EAAIyyC,UAClB5oB,OAAO,IAAIhY,EAAG7R,EAAI+yC,iBAClBrqB,UACA1W,a,8BCNL,SAAS0hD,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAcxC,IAEEC,+BAA+BD,SAASA,GACxC,MAAO5lC,GAGPyC,QAAQsB,MAAM/D,IAOhB4lC,GACA50D,EAAOC,QAAUY,EAAQ,M,6BClC3B,SAASi0D,EAAmBlH,EAAK39B,EAASC,EAAQ6kC,EAAOC,EAAQ9zD,EAAKE,GACpE,IACE,IAAI6zD,EAAOrH,EAAI1sD,GAAKE,GAChBb,EAAQ00D,EAAK10D,MACjB,MAAOwyB,GAEP,YADA7C,EAAO6C,GAILkiC,EAAK/lC,KACPe,EAAQ1vB,GAERyvB,QAAQC,QAAQ1vB,GAAO20D,KAAKH,EAAOC,GAIxB,SAASG,EAAkB94B,GACxC,OAAO,WACL,IAAIviB,EAAOjX,KACPkB,EAAOE,UACX,OAAO,IAAI+rB,SAAQ,SAAUC,EAASC,GACpC,IAAI09B,EAAMvxB,EAAGj4B,MAAM0V,EAAM/V,GAEzB,SAASgxD,EAAMx0D,GACbu0D,EAAmBlH,EAAK39B,EAASC,EAAQ6kC,EAAOC,EAAQ,OAAQz0D,GAGlE,SAASy0D,EAAOhmC,GACd8lC,EAAmBlH,EAAK39B,EAASC,EAAQ6kC,EAAOC,EAAQ,QAAShmC,GAGnE+lC,OAAM/yD,OA/BZ,mC,iBCCA,kBAYA,IAAIozD,OAAmBpzD,EAEnBqzD,EAAY,SAAUC,GAEtB,OAAIF,IAIJA,EAAmB,IAAIplC,SAAQ,SAAUulC,EAAerlC,GAYpD,IAuCJvtB,EAvCQ6yD,EAAiC,qBAAjBF,EAA+BA,EAAe,GAI9DG,EAA0BD,EAAM,QACpCA,EAAM,QAAc,SAAUE,GAC1BxlC,EAAO,IAAI5tB,MAAMozD,IACbD,GACFA,EAAwBC,IAI9BF,EAAM,QAAcA,EAAM,SAAe,GACzCA,EAAM,QAAYrxD,MAAK,WAEnBoxD,EAAcC,MAmBlBx1D,OAASgC,EAKXW,IAAIA,EAAoB,qBAAX6yD,EAAyBA,EAAS,IACrD7yD,EAAEgzD,qBAAqB,WAAW,SAAS9oD,EAAEgZ,EAAEjT,GAAG/P,KAAK+yD,GAAG/vC,EAAEhjB,KAAKgzD,GAAGjjD,EAAE/P,KAAKizD,GAAG,EAAEjzD,KAAKkzD,GAAG,GAAG,SAASttD,EAAEod,EAAEjT,GAAqC,GAAlC/P,KAAKgzD,GAAGjjD,EAAEA,EAAEojD,EAAGnwC,GAAG,EAAEhjB,KAAKqzB,GAAG+/B,GAAGrjD,GAAM,OAAO/P,KAAKqzB,GAAG,MAAM5zB,MAAM,gDAAgDsR,EAAEiS,EAAEnd,EAAE7F,KAAKqzB,GAAGtjB,GAAG/P,KAAKqzD,GAAGrzD,KAAKqzB,GAAGrzB,KAAKszD,GAAGtzD,KAAKuzD,GAAG,KAAK,SAAStrD,EAAE+a,GAA0D,GAAvDhjB,KAAKwzD,SAAS,WAAW,WAAWlrD,KAAKmrD,WAAW,GAAM,MAAMzwC,EAAE,CAAC,IAAIjT,EAAE/P,KAAKwzD,SAASx7C,EAAEjI,EAAEC,GAAE,KAAKD,GAAG,IAAwD,GAAxCiI,EAAE07C,GAAG17C,EAAqB,WAAlB,KAApBjI,EAAE4jD,IAAG,GAAG,IAAuB5jD,EAAE,KAAU,MAAM,GAAMiT,EAAE,CAAC,GAAG,kBAAkBA,EAAE,CAAC,IAAI,IAAInQ,EAAE1R,MAAM6hB,EAAEvkB,QAAQwS,EACpf,EAAE8O,EAAEiD,EAAEvkB,OAAOwS,EAAE8O,IAAI9O,EAAE4B,EAAE5B,GAAG+R,EAAErb,WAAWsJ,GAAG+R,EAAEnQ,EAAE+gD,GAAG57C,EAAI,IAAFjI,GAAmB8jD,GAAZhhD,EAAEihD,GAAG97C,EAAE,KAAUgL,EAAE,EAAEA,EAAEvkB,OAAO,OAAE,GAAQs1D,GAAGlhD,GAAG+gD,GAAG57C,EAAEjI,IAAI/P,KAAKg0D,YAAYvkD,EAAEzP,KAAKwzD,SAASjgD,IAAIvT,KAAKgzD,GAAGxgC,EAAEjf,EAAE,OAAO0gD,GAAGj0D,KAAKgzD,IAAIhzD,KAAKk0D,GAAG,GAAGl0D,KAAKm0D,GAAG,GAAG,IAAI5gD,EAAEtJ,GAAE,GAAGu6B,EAAE1kC,EAAEs0D,MAAM3kD,EAAE+0B,EAAE,eAAe,SAAS,CAAC,SAAS,WAAW1+B,EAAE0+B,EAAE,mBAAmB,SAAS,CAAC,WAAWrsB,EAAEqsB,EAAE,eAAe,SAAS,CAAC,SAAS,SAAS,SAAS,SAAS,WAAW9zB,EAAE8zB,EAAE,kBAAkB,SAAS,CAAC,WAAWha,EAAEga,EAAE,qBAAqB,SAAS,CAAC,SAAS,SAAS,SAAS,SAClf,WAAWvf,EAAEuf,EAAE,cAAc,SAAS,CAAC,WAAWjG,EAAEiG,EAAE,yBAAyB,SAAS,CAAC,WAAW6vB,EAAG7vB,EAAE,qBAAqB,SAAS,CAAC,SAAS,SAAS,SAAS,SAAS,WAAW8vB,EAAG9vB,EAAE,oBAAoB,SAAS,CAAC,SAAS,SAAS,SAAS,SAAS,WAAW+vB,EAAG/vB,EAAE,oBAAoB,SAAS,CAAC,SAAS,SAAS,SAAS,SAAS,WAAWgwB,EAAGhwB,EAAE,sBAAsB,SAAS,CAAC,SAAS,SAAS,WAAWiwB,EAAGjwB,EAAE,mBAAmB,SAAS,CAAC,SAAS,SAAS,WAAWkwB,EAAGlwB,EAAE,+BACje,SAAS,CAAC,SAAS,WAAWmwB,EAAGnwB,EAAE,eAAe,SAAS,CAAC,WAAWowB,EAAGpwB,EAAE,iBAAiB,SAAS,CAAC,WAAWqwB,EAAGrwB,EAAE,uBAAuB,SAAS,CAAC,WAAWswB,EAAGtwB,EAAE,qBAAqB,SAAS,CAAC,WAAWuwB,EAAGvwB,EAAE,wBAAwB,SAAS,CAAC,SAAS,WAAWvkB,EAAGukB,EAAE,sBAAsB,SAAS,CAAC,SAAS,WAAWwwB,EAAGxwB,EAAE,sBAAsB,SAAS,CAAC,SAAS,WAAWywB,EAAGzwB,EAAE,uBAAuB,SAAS,CAAC,SAAS,WAAW0wB,EAAG1wB,EAAE,sBAAsB,SAAS,CAAC,SAAS,WAAW2wB,EAClf3wB,EAAE,sBAAsB,SAAS,CAAC,SAAS,WAAW4wB,EAAG5wB,EAAE,gBAAgB,SAAS,CAAC,WAAW6wB,EAAG7wB,EAAE,yBAAyB,SAAS,CAAC,WAAW8wB,EAAG9wB,EAAE,mBAAmB,SAAS,CAAC,WAAW+wB,EAAG/wB,EAAE,6BAA6B,SAAS,iEAAiEjb,MAAM,MAAMisC,EAAGhxB,EAAE,qBAAqB,SAAS,CAAC,WAAWixB,EAAGjxB,EAAE,sBAAsB,SAAS,CAAC,WAAWkxB,EAAGlxB,EAAE,qBAAqB,SAAS,CAAC,WAAWmxB,EAAGnxB,EAAE,qBAAqB,SAAS,CAAC,WAC1eoxB,EAAGpxB,EAAE,uBAAuB,SAAS,CAAC,WAAWqxB,EAAGrxB,EAAE,wBAAwB,GAAG,CAAC,SAAS,WAAWsxB,EAAGtxB,EAAE,sBAAsB,GAAG,CAAC,WAAWuxB,EAAGvxB,EAAE,sBAAsB,GAAG,CAAC,SAAS,SAAS,SAAS,WAAWwxB,GAAGxxB,EAAE,sBAAsB,GAAG,CAAC,SAAS,SAAS,SAAS,WAAWyxB,GAAGzxB,EAAE,qBAAqB,GAAG,CAAC,SAAS,WAAW0xB,GAAG1xB,EAAE,uBAAuB,GAAG,CAAC,SAAS,SAAS,WAAWyvB,GAAGzvB,EAAE,6BAA6B,SAAS,CAAC,WAAWx6B,EAAExM,UAAU4xB,KAAK,SAASpM,GAAG,IAAIhjB,KAAK+yD,GAAG,KAAK,mBACje,OAAb/yD,KAAKm2D,QAAeh1D,MAAM6B,QAAQggB,GAAGhjB,KAAKo2D,GAAGpzC,GAAG,MAAMA,GAAG,kBAAkBA,GAAEhjB,KAAKq2D,GAAGrzC,IAAOhZ,EAAExM,UAAUghC,KAAK,WAAW,IAAIx+B,KAAK+yD,GAAG,KAAK,mBAAmB/yD,KAAKizD,GAAG,EAAE,IAAIjwC,EAAE2xC,EAAG30D,KAAK+yD,IAAI,OAAO/vC,GAAG,KAAK,IAAI,OAAM,EAAG,KAAK,IAAI,OAAM,EAAG,QAAQ,MAAMhjB,KAAKgzD,GAAGgB,YAAYhxC,KAAMhZ,EAAExM,UAAU84D,GAAG,SAAStzC,GAAmC,OAAhC,MAAMA,IAAIA,EAAEhjB,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAU8B,EAAG/0D,KAAK+yD,GAAG/vC,IAAIhZ,EAAExM,UAAU+4D,GAAG,SAASvzC,GAAmD,GAAhD,MAAMA,IAAIA,EAAEhjB,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAGjwC,EAAE/C,EAAGjgB,KAAK+yD,GAAG/vC,GAAM,oBAAoBwzC,OAAO,MAAM/2D,MAAM,2BAA2B,OAAO+2D,OAAOxzC,IAC7fhZ,EAAExM,UAAUi5D,GAAG,SAASzzC,GAAmC,OAAhC,MAAMA,IAAIA,EAAEhjB,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAUhzC,EAAGjgB,KAAK+yD,GAAG/vC,IAAIhZ,EAAExM,UAAUk5D,QAAQ,SAAS1zC,GAAG,MAAMA,IAAIA,EAAEhjB,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAG,IAAIljD,EAAEklD,EAAGj1D,KAAK+yD,GAAG/vC,GAAGA,EAAEgyC,EAAGh1D,KAAK+yD,GAAG/vC,GAAG,IAAI,IAAIhL,EAAE,IAAI1U,WAAWyM,GAAG8C,EAAE,EAAEA,EAAE9C,EAAE8C,GAAG,EAAEmF,EAAEnF,GAAG3I,EAAE8Y,EAAEnQ,GAAG,OAAOmF,GAAGhO,EAAExM,UAAUqtB,IAAI,SAAS7H,EAAEjT,GAAGA,EAAEA,GAAG,GAAG,MAAMiT,GAAGhjB,KAAKovB,KAAKpM,IAAIhjB,KAAKw+B,OAAOxb,EAAE,GAAG,IAAI,IAAIhL,EAAE88C,EAAG90D,KAAK+yD,IAAIlgD,EAAE,EAAEA,EAAEmF,EAAEnF,GAAG,EAAE,OAAOqiD,EAAGl1D,KAAK+yD,GAAGlgD,IAAI,KAAK,EAAE,IAAI5B,EAAElB,EAAE4mD,UAAU32D,KAAKu2D,GAAG1jD,GAAG7S,KAAKs2D,GAAGzjD,GAAGmQ,EAAE1hB,KAAK2P,GAAG,MAAM,KAAK,EAAE+R,EAAE1hB,KAAKtB,KAAKs2D,GAAGzjD,IAAI,MAAM,KAAK,EAAEmQ,EAAE1hB,KAAKtB,KAAKy2D,GAAG5jD,IAAI,MACpf,KAAK,EAAEmQ,EAAE1hB,KAAKtB,KAAK02D,QAAQ7jD,IAAI,MAAM,QAAQmQ,EAAE1hB,KAAK,MAAM,OAAO0hB,GAAGhZ,EAAExM,UAAUo5D,eAAe,WAAW,IAAI,IAAI5zC,EAAE,GAAGjT,EAAE8kD,EAAG70D,KAAK+yD,IAAI/6C,EAAE,EAAEA,EAAEjI,EAAEiI,GAAG,EAAEgL,EAAE1hB,KAAK6zD,EAAGn1D,KAAK+yD,GAAG/6C,IAAI,OAAOgL,GAAGhZ,EAAExM,UAAUq5D,YAAY,SAAS7zC,EAAEjT,GAAGiT,EAAEhjB,KAAK6qB,IAAI7H,EAAEjT,GAAGA,EAAE/P,KAAK42D,iBAAiB,IAAI,IAAI5+C,EAAE,GAAGnF,EAAE,EAAEA,EAAE9C,EAAEtR,OAAOoU,GAAG,EAAEmF,EAAEjI,EAAE8C,IAAImQ,EAAEnQ,GAAG,OAAOmF,GAAGhO,EAAExM,UAAUs5D,OAAO,WAAW,OAAO7xC,EAAEjlB,KAAK+yD,KAAK/oD,EAAExM,UAAUu5D,iBAAiB,WAAW,OAAOx4B,EAAEv+B,KAAK+yD,KAAK/oD,EAAExM,UAAUmD,IAAI,SAASqiB,GAAqC,OAAlC,MAAMA,GAAGhjB,KAAKovB,KAAKpM,GAAGhjB,KAAKw+B,OAAcx+B,KAAKm2D,SAC9ensD,EAAExM,UAAU04D,GAAG,SAASlzC,EAAEjT,GAAG,MAAMA,IAAIA,EAAE/P,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAW,IAAIj7C,EAAEg/C,EAAdh0C,EAAEi0C,GAAGj0C,IAAehjB,KAAKkzD,GAAG5xD,KAAK0W,GAAGhY,KAAKgzD,GAAGgB,YAAYM,EAAGt0D,KAAK+yD,GAAGhjD,EAAEiI,EAAEgL,EAAEvkB,OAAO,EAAE,KAAKuL,EAAExM,UAAU05D,GAAG,SAASl0C,EAAEjT,GAAG,MAAMA,IAAIA,EAAE/P,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAG,IAAIj7C,EAAEg/C,EAAGh0C,GAAGhjB,KAAKkzD,GAAG5xD,KAAK0W,GAAGhY,KAAKgzD,GAAGgB,YAAYO,EAAGv0D,KAAK+yD,GAAGhjD,EAAEiI,EAAEgL,EAAEvkB,OAAO,KAAKuL,EAAExM,UAAUs4D,GAAG,SAAS9yC,EAAEjT,GAAG,MAAMA,IAAIA,EAAE/P,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAGjzD,KAAKgzD,GAAGgB,aAAahxC,KAAO,EAAFA,GAAKyxC,EAAGD,GAAIx0D,KAAK+yD,GAAGhjD,EAAEiT,KAAKhZ,EAAExM,UAAU25D,GAAG,SAASn0C,GAAG,MAAMA,IAAIA,EAAEhjB,KAAKizD,GAAGjzD,KAAKizD,IAAI,GAAGsB,EAAGv0D,KAAK+yD,GAAG/vC,EAAE,EAAE,EAAE,IAAIhZ,EAAExM,UAAU45D,GAAG,SAASp0C,EACxfjT,GAAmC,OAAhC,MAAMA,IAAIA,EAAE/P,KAAKizD,GAAGjzD,KAAKizD,IAAI,UAAiBjwC,GAAG,IAAK,SAAsB,YAAbhjB,KAAKk2D,GAAGlzC,EAAEjT,GAAU,IAAK,SAAsB,YAAb/P,KAAK81D,GAAG9yC,EAAEjT,GAAU,IAAK,SAAiC,YAAxB/P,KAAKk2D,GAAGlzC,EAAEpe,WAAWmL,GAAU,IAAK,UAAyB,YAAf/P,KAAK81D,GAAG9yC,EAAE,EAAEjT,GAAU,IAAK,SAAS,GAAG,OAAOiT,EAAc,YAAXhjB,KAAKm3D,GAAGpnD,GAAU,GAAG,MAAMiT,EAAEvkB,OAAqB,YAAbuB,KAAKk3D,GAAGl0C,EAAEjT,GAAW,KAAK,6DAA6DiT,EAAE,MAAOhZ,EAAExM,UAAU64D,GAAG,SAASrzC,GAAG,IAAIjT,EAAE/P,KAA+E,OAA1E/C,OAAOyzB,KAAK1N,GAAG4V,SAAQ,SAAS5gB,GAAG,IAAInF,EAAE6hD,EAAG3kD,EAAEgjD,GAAG/6C,GAAG,IAAInF,GAAG9C,EAAEqnD,GAAGp0C,EAAEhL,GAAGnF,OAAW,GAAI7I,EAAExM,UAAU44D,GAAG,SAASpzC,GAAG,IAAI,IAAIjT,EACvgB,EAAEA,EAAEiT,EAAEvkB,OAAOsR,GAAG,EAAE/P,KAAKo3D,GAAGp0C,EAAEjT,GAAGA,EAAE,GAAG,OAAM,GAAI/F,EAAExM,UAAU24D,MAAM,WAA0B,OAAfn2D,KAAKq3D,UAAiB,IAAIhC,EAAGr1D,KAAK+yD,KAAK,IAAIqC,EAAGp1D,KAAK+yD,KAAK/oD,EAAExM,UAAU65D,QAAQ,WAAW,IAAI,IAAIr0C,OAAE,KAAUA,EAAEhjB,KAAKkzD,GAAG1iC,QAAQ8mC,GAAGt0C,IAAIhZ,EAAExM,UAAU+5D,KAAK,WAAWv3D,KAAKq3D,UAAU,IAAIr0C,EAAE,IAAIsyC,EAAGt1D,KAAK+yD,IAAyC,cAA9B/yD,KAAKgzD,GAAGkB,GAAGl0D,KAAK+yD,IAAI/yD,KAAK+yD,GAAG,EAAS/vC,GAAGpd,EAAEpI,UAAUssB,KAAK,WAAW,GAAG,OAAO9pB,KAAKqzB,GAAG,MAAM,CAAChH,MAAK,GAAkD,GAA9C,OAAOrsB,KAAKszD,KAAKtzD,KAAKszD,GAAGiE,OAAOv3D,KAAKszD,GAAG,OAAUtzD,KAAKgzD,GAAGA,GAAG,MAAMhzD,KAAKw3D,KAAK/3D,MAAM,mBAAmB,IAAIujB,EAAEy0C,KAAK1nD,EAAE9F,GAAE,GAClfytD,EAAGnkD,GAAGmkD,EAAG3nD,GAAG,IAAI/P,KAAKgzD,GAAGgB,YAAYK,EAAGr0D,KAAKgzD,GAAGA,GAAGhzD,KAAKqzD,IAAI,EAAE9/C,EAAExD,IAAI/P,KAAKqzD,GAAG7gC,EAAEziB,EAAE,OAAO,IAAIiI,EAAEwa,EAAEjf,EAAE,OAAO,OAAG,IAAIyE,GAAShY,KAAKw3D,KAAK,CAACnrC,MAAK,KAAIrsB,KAAKszD,GAAG,IAAItpD,EAAEgO,EAAEhY,KAAKgzD,IAAIhzD,KAAKgzD,GAAGkB,GAAGl8C,GAAGhY,KAAKszD,GAAS,CAAC51D,MAAMsC,KAAKszD,GAAGjnC,MAAK,IAAI,MAAMxZ,GAAG,MAAM7S,KAAKuzD,GAAGxuC,EAAE/kB,KAAKqzD,IAAIrzD,KAAKw3D,KAAK3kD,EAAxP,QAAmQ8kD,GAAG30C,KAAKpd,EAAEpI,UAAUg6D,GAAG,WAAWF,GAAGt3D,KAAKqzB,IAAIrzB,KAAKqzB,GAAG,MAAMztB,EAAEpI,UAAUo6D,gBAAgB,WAAW,OAAO,OAAO53D,KAAKuzD,GAAGvzD,KAAKuzD,GAAGxuC,EAAE/kB,KAAKqzD,KAAK,oBAAoB1pD,QAAQ,kBAAkBA,OAAOsvB,WAAWrzB,EAAEpI,UAAUmM,OAAOsvB,UAC/e,WAAW,OAAOj5B,OAAOiI,EAAEzK,UAAUmD,IAAI,SAASqiB,EAAEjT,GAAG,IAAI/P,KAAKgzD,GAAG,KAAK,kBAAkB,GAAGjjD,EAAE,CAACiT,EAAEhjB,KAAK63D,QAAQ70C,EAAEjT,GAAG,IAAIiT,EAAEwb,OAAN,QAAqBxb,EAAEu0C,aAAav3D,KAAKg0D,YAAY77C,EAAEnY,KAAKgzD,GAAGhwC,EAAE,EAAE,EAAEzP,IAAI,OAAOvT,MAAMiI,EAAEzK,UAAUs6D,KAAK,SAAS90C,EAAEjT,EAAEiI,GAAG,IAAIhY,KAAKgzD,GAAG,KAAK,kBAAkB,IAAIngD,EAAE4kD,KAAKxmD,EAAE,KAAK,IAAI,IAAI8O,EAAEozC,EAAGnwC,GAAG,EAAE+X,EAAE9wB,GAAE8V,GAAGhP,EAAEiS,EAAE9Y,EAAE6wB,EAAEhb,GAAG,IAAI2f,EAAG3E,EAAMg9B,EAAG9tD,GAAE,GAAG,IAAI+Y,EAAE,GAAG,IAAIwP,EAAEkN,EAAG,OAAO,CAACg4B,EAAGnkD,GAAGmkD,EAAGK,GAAI/3D,KAAKg0D,YAAYK,EAAGr0D,KAAKgzD,GAAGtzB,GAAI,EAAEnsB,EAAEwkD,IAAK,IAAI7yC,EAAEsN,EAAEjf,EAAE,OAAsB,GAAfmsB,EAAGlN,EAAEulC,EAAG,OAAU,IAAI7yC,EAAE,CAAwB,IAAvBnF,EAAE,KAAK9O,EAAE,IAAIjH,EAAEkb,EAAEllB,MAAU,MAAM+P,GACpfkB,EAAEme,KAAKrf,GAAGkB,EAAEutB,QAAQ,OAAOze,IAAIA,EAAE,CAACi4C,QAAQ/mD,EAAE2lD,iBAAiBtH,OAAO,IAAItsC,EAAE1hB,KAAKye,IAAIA,EAAEuvC,OAAOhuD,KAAK2P,EAAE4Z,IAAI,KAAK7S,IAAI/G,EAAEsmD,QAAQ,OAAOv0C,EAAE,MAAMi1C,GAAG,MAAMhnD,GAAGA,EAAEsmD,OAAOU,EADkI,QACvHN,GAAG9kD,KAAK5K,EAAEzK,UAAU06D,KAAK,SAASl1C,EAAEjT,EAAEiI,EAAEnF,EAAE5B,GAAG,oBAAoBlB,IAAI8C,EAAEmF,EAAEA,EAAEjI,EAAEA,OAAE,GAAQiT,EAAEhjB,KAAK63D,QAAQ70C,EAAEjT,GAAG,IAAI,KAAKiT,EAAEwb,QAAQxmB,EAAEgL,EAAE6zC,YAAY,KAAK5lD,IAAxC,QAAoD+R,EAAEu0C,OAAO,GAAG,oBAAoB1kD,EAAE,OAAOA,KAAK5K,EAAEzK,UAAUq6D,QAAQ,SAAS70C,EAAEjT,GAA4D,GAAzD2nD,EAAGnkD,GAAGvT,KAAKg0D,YAAYxpC,EAAExqB,KAAKgzD,GAAGhwC,GAAG,EAAEzP,EAAE,IAAoB,KAAhByP,EAAEwP,EAAEjf,EAAE,QAAgB,KAAK,qBAAqB,IAAIyE,EACxf,IAAIhO,EAAEgZ,EAAEhjB,MAAyB,OAAnB,MAAM+P,GAAGiI,EAAEoX,KAAKrf,GAAU/P,KAAKk0D,GAAGlxC,GAAGhL,GAAG/P,EAAEzK,UAAU26D,kBAAkB,SAASn1C,GAAG,OAAO,IAAIpd,EAAEod,EAAEhjB,OAAOiI,EAAEzK,UAAF,OAAsB,WAAWP,OAAOqyD,OAAOtvD,KAAKk0D,IAAIt7B,SAAQ,SAAS7oB,GAAGA,EAAEwnD,UAASt6D,OAAOqyD,OAAOtvD,KAAKm0D,IAAIv7B,QAAQw/B,GAAIp4D,KAAKm0D,GAAG,GAAGn0D,KAAKg0D,YAAYluD,EAAE9F,KAAKgzD,KAAK,IAAIhwC,EAoD5R,SAAYhZ,GAAG,IAAIpE,EAAE,CAAC3G,SAAS,UAAqE,IAA3D2G,EAAEA,GAAG,IAAK8nB,MAAM9nB,EAAE8nB,OAAO,EAAE9nB,EAAE3G,SAAS2G,EAAE3G,UAAU,SAAY,SAAS2G,EAAE3G,UAAU,WAAW2G,EAAE3G,SAAS,MAAMQ,MAAM,0BAA0BmG,EAAE3G,SAAS,KAAK,IAAIgJ,EAAEsL,EAAEugD,GAAG9pD,EAAEpE,EAAE8nB,OAAO1jB,EAAEquD,GAAGruD,GAAGjL,KAAK,IAAIylC,EAAE,IAAIlhC,WAAW0G,GAAkF,OAA/EsuD,GAAG/kD,EAAEixB,EAAE,EAAEx6B,EAAE,GAAG,SAASpE,EAAE3G,SAASgJ,EAAEswD,EAAG/zB,EAAE,GAAG,WAAW5+B,EAAE3G,WAAWgJ,EAAEu8B,GAAGuvB,GAAGxgD,GAAUtL,EApD3DuwD,CAAGx4D,KAAKwzD,UAAkE,OAAxDxzD,KAAKg0D,YAAYvkD,EAAEzP,KAAKwzD,SAASjgD,IAAIvT,KAAKgzD,GAAGxgC,EAAEjf,EAAE,OAAcyP,GAAG/a,EAAEzK,UAAUi7D,MAAM,WAAW,OAAOz4D,KAAKgzD,KAAK/1D,OAAOqyD,OAAOtvD,KAAKk0D,IAAIt7B,SAAQ,SAAS5V,GAAGA,EAAEu0C,UAASt6D,OAAOqyD,OAAOtvD,KAAKm0D,IAAIv7B,QAAQw/B,GACrfp4D,KAAKm0D,GAAG,GAAGn0D,KAAKg0D,YAAYluD,EAAE9F,KAAKgzD,KAAK0F,GAAG,IAAI14D,KAAKwzD,UAAUxzD,KAAKgzD,GAAG,OAAO/qD,EAAEzK,UAAUw2D,YAAY,SAAShxC,GAAG,GAAG,IAAIA,EAAE,OAAO,KAAmB,MAAdA,EAAE4xC,EAAG50D,KAAKgzD,IAAUvzD,MAAMujB,IAAK/a,EAAEzK,UAAUm7D,gBAAgB,WAAW,OAAOjoD,EAAE1Q,KAAKgzD,KAAK/qD,EAAEzK,UAAUo7D,gBAAgB,SAAS51C,EAAEjT,GAAG9S,OAAOO,UAAU2lC,eAAepjC,KAAKC,KAAKm0D,GAAGnxC,KAAKo1C,EAAGp4D,KAAKm0D,GAAGnxC,WAAWhjB,KAAKm0D,GAAGnxC,IAAI,IAAIhL,EAMjW,SAAYhO,GAAG,IAAI6uD,EAAG,CAACA,EAAG,IAAIC,QAAQ,IAAI,IAAIlzD,EAAE,EAAEA,EAAEmzD,EAAEt6D,OAAOmH,IAAI,CAAC,IAAIqC,EAAE8wD,EAAEluC,IAAIjlB,GAAGqC,GAAG4wD,EAAG9pD,IAAI9G,EAAErC,IAAI,GAAGizD,EAAGG,IAAIhvD,GAAGA,EAAE6uD,EAAGhuC,IAAI7gB,OAAO,CAAC,GAAGivD,EAAGx6D,OAAOmH,EAAEqzD,EAAGzoC,UAAU,CAAC,IAAIuoC,EAAEG,KAAK,GAAG,MAAMzpD,GAAG,KAAKA,aAAapM,YAAY,MAAMoM,EAAE,KAAK,qDAAsD7J,EAAEmzD,EAAEt6D,OAAO,EAAE,IAAIs6D,EAAEhqD,IAAInJ,EAAEoE,GAAG,MAAMyF,GAAG,KAAKA,aAAa3Q,WAAW,MAAM2Q,EAAE,GAAG,oBAAoB0pD,YAAYzpD,SAAS,CAAC,IAAI6D,EAAE,CAAClS,EAAE,MAAMwF,EAAE,MAAM29B,EAAE,MAAMjxB,EAAE,OAAOixB,EAAE,CAACvB,WAAW,GAAGm2B,QAAQ,IAAI,IAAInxD,EAAE,EAAE,EAAEA,IAAIA,EAAEu8B,EAAEvB,WAAW3hC,KAAKiS,EAAE,OAAOtL,KAC3fA,EAAE,IAAIkxD,YAAYzpD,SAAS80B,EAAEx6B,OAAO,CAAoD,IAAtCw6B,EAAE,CAACnjC,EAAE,IAAIwF,EAAE,IAAI29B,EAAE,IAAIjxB,EAAE,MAApCA,EAAE,CAAC,EAAE,EAAE,EAAE,KAAkCjS,KAAK,GAAO2G,EAAE,EAAE,EAAEA,IAAIA,EAAEsL,EAAEjS,KAAKkjC,EAAE,MAAMv8B,KAAKsL,EAAEjS,KAAK,GAAGiS,EAAE,GAAGA,EAAE9U,OAAO,EAAEwJ,EAAE,IAAI3E,WAAW,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG/C,OAAOgT,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAKtL,EAAE,IAAIkxD,YAAYxG,OAAO1qD,GAAGA,EAAG,IAAIkxD,YAAYE,SAASpxD,EAAE,CAACnI,EAAE,CAAC0kC,EAAEx6B,KAAM5M,QAAQonC,EAAEu0B,EAAEhqD,IAAInJ,EAAEqC,GAAG4wD,EAAG9pD,IAAI/E,EAAEpE,GAAGoE,EAAEpE,EAAE,OAAOoE,EAPAsvD,EAAG,SAASzmD,EAAE5B,EAAE8O,GAAG,IAAI,IAAIgb,EAAE2E,EAAG,GAAGq4B,EAAG,EAAEA,EAAG9mD,EAAE8mD,GAAI,EAAE,CAAC,IAAI7yC,EAAEsN,EAAEzS,EAAE,EAAEg4C,EAAG,OAAOE,EAAEzC,EAAGtwC,GAAG,GAAG,IAAI+yC,GAAG,IAAIA,EAAE/yC,EAAE0wC,EAAG1wC,QAAQ,GAAG,IAAI+yC,EAAE/yC,EAAEwwC,EAAGxwC,QAAQ,GAAG,IAAI+yC,EAAE,CACjf/yC,EAAEuwC,EADgfwC,EAAE/yC,GAC5e+yC,EAAEtC,EAAGsC,GAAG,IAAI,IAAIsB,EAAG,IAAIj2D,WAAW4hB,GAAGs0C,EAAG,EAAEA,EAAGt0C,EAAEs0C,GAAI,EAAED,EAAGC,GAAItvD,EAAE+tD,EAAEuB,GAAIt0C,EAAEq0C,OAAQr0C,EAAE,KAAKwa,EAAGp+B,KAAK4jB,GAAG,IAAI6V,EAAEhrB,EAAExO,MAAM,KAAKm+B,GAAI,MAAM+5B,GAAgB,YAAZvD,GAAGrjD,EAAE4mD,GAAI,GAAU,cAAc1+B,GAAG,IAAK,UAAUk7B,GAAGpjD,EAAEkoB,EAAE,EAAE,GAAG,MAAM,IAAK,SAAS86B,EAAGhjD,EAAEkoB,GAAG,MAAM,IAAK,SAASg7B,EAAGljD,EAAEkoB,GAAG,GAAG,GAAG,MAAM,IAAK,SAAS,OAAOA,EAAE+6B,EAAGjjD,GAAG,MAAMkoB,EAAEt8B,QAAQwS,EAAE+lD,EAAGj8B,GAAGi7B,GAAGnjD,EAAE5B,EAAE8pB,EAAEt8B,QAAQ,GAAG64D,GAAGrmD,IAAIilD,GAAGrjD,EAAE,+DAA+DkoB,EAAE,MAAM,GAAG,MAAM,QAAQ+6B,EAAGjjD,OAC9a,OADob7S,KAAKm0D,GAAGnxC,GAAGhL,EAAEhY,KAAKg0D,YAAYuB,EAAGv1D,KAAKgzD,GAAGhwC,EAAEjT,EAAEtR,OAC/e,EAAE,EAAEuZ,EAAE,EAAE,EAAE,IAAWhY,MAAMF,EAAE45D,SAASzxD,GAAG,IAAU+c,EAAN20C,EAAG,GAAK,IAAI30C,KAAKllB,EAAEA,EAAEqjC,eAAene,KAAK20C,EAAG30C,GAAGllB,EAAEklB,IAAI,IAAwM40C,EAAGC,EAAGC,EAAGC,EAAGC,EAAhNC,EAAG,iBAAiBC,EAAG,kBAAkBvqD,OAAOwqD,EAAG,oBAAoBC,cAAcC,EAAG,kBAAkB96D,GAAS,kBAAkBA,EAAQsC,UAAU,kBAAkBtC,EAAQsC,SAASk1C,KAAKujB,EAAE,GACpSD,GAAGC,EAAEH,EAAGn8D,EAAQ,IAAQunC,QAAQ+0B,GAAG,IAAIC,EAAU,IAAIX,EAAG,SAAS5vD,EAAEpE,GAAqE,OAAlEm0D,IAAKA,EAAG/7D,EAAQ,KAAOg8D,IAAKA,EAAGh8D,EAAQ,KAASgM,EAAEgwD,EAAGn1B,UAAU76B,GAAU+vD,EAAGS,aAAaxwD,EAAEpE,EAAE,KAAK,SAASk0D,EAAG,SAAS9vD,GAAyF,OAAtFA,EAAE4vD,EAAG5vD,GAAE,IAAMjM,SAASiM,EAAE,IAAI1G,WAAW0G,IAAIA,EAAEjM,QAAQ08D,GAAE,+BAAsCzwD,GAAG6vD,EAAG,SAAS7vD,EAAEpE,EAAEqC,GAAG8xD,IAAKA,EAAG/7D,EAAQ,KAAOg8D,IAAKA,EAAGh8D,EAAQ,KAASgM,EAAEgwD,EAAGn1B,UAAU76B,GAAG+vD,EAAGW,SAAS1wD,GAAE,SAASuJ,EAAEixB,GAAGjxB,EAAEtL,EAAEsL,GAAG3N,EAAE4+B,EAAEzmC,YAAW,EAAEwB,EAAQoC,KAAKlD,SAASw7D,EAAG16D,EAAQoC,KAAK,GAAG2N,QAAQ,MAAM,MAAM/P,EAAQoC,KAAKsC,MAAM,GAC9d9G,EAAOC,QAAQ0C,EAAGA,EAAE2K,QAAQ,WAAW,MAAM,gCAAsCyvD,GAAIC,KAAGA,EAAGG,EAAErjD,KAAK0jD,SAASC,KAAK,qBAAqBC,UAAUA,SAASC,gBAAgBR,EAAEO,SAASC,cAAc38D,KAAKm8D,EAAE,IAAIA,EAAEp0D,QAAQ,SAASo0D,EAAEjzD,OAAO,EAAEizD,EAAEn0D,YAAY,KAAK,GAAG,GAAGyzD,EAAG,SAAS5vD,GAAG,IAAIpE,EAAE,IAAIm1D,eAA+C,OAAhCn1D,EAAEo1D,KAAK,MAAMhxD,GAAE,GAAIpE,EAAEq1D,KAAK,MAAar1D,EAAEs1D,cAAcf,IAAKL,EAAG,SAAS9vD,GAAG,IAAIpE,EAAE,IAAIm1D,eAA4E,OAA7Dn1D,EAAEo1D,KAAK,MAAMhxD,GAAE,GAAIpE,EAAEu1D,aAAa,cAAcv1D,EAAEq1D,KAAK,MAAa,IAAI33D,WAAWsC,EAAEw1D,YACpgBvB,EAAG,SAAS7vD,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE,IAAIwnD,eAAexnD,EAAEynD,KAAK,MAAMhxD,GAAE,GAAIuJ,EAAE4nD,aAAa,cAAc5nD,EAAE8nD,OAAO,WAAW,KAAK9nD,EAAE+nD,QAAQ,GAAG/nD,EAAE+nD,QAAQ/nD,EAAE6nD,SAASx1D,EAAE2N,EAAE6nD,UAAUnzD,KAAKsL,EAAEm0B,QAAQz/B,EAAEsL,EAAE0nD,KAAK,QAAO,IAAIM,EAAGz7D,EAAE07D,OAAO5sC,QAAQ6sC,IAAIrsC,KAAKR,SAASgyB,EAAE9gD,EAAE47D,UAAU9sC,QAAQC,KAAKO,KAAKR,SAAS,IAAI5J,KAAK20C,EAAGA,EAAGx2B,eAAene,KAAKllB,EAAEklB,GAAG20C,EAAG30C,IAAI20C,EAAG,KAAK75D,EAAE67D,cAAc1B,EAAGn6D,EAAE67D,aAAa,IAAU9C,EAEjB+C,EAFW3C,EAAG,GAAM,SAASb,EAAGpuD,GAAG6uD,EAAGgD,OAAO9C,EAAEluC,IAAI7gB,IAAIivD,EAAG33D,KAAK0I,GAE5DlK,EAAEg8D,aAAaF,EAAG97D,EAAEg8D,YAA8Bh8D,EAAEi8D,cACha,SAASrE,EAAG1tD,GAAG,IAAIpE,EAAE,MAA4C,OAAtC,MAAMA,EAAEg/B,OAAOh/B,EAAEnH,OAAO,KAAKmH,EAAE,OAAcA,GAAG,IAAK,KAAqB,IAAK,KAAKsE,EAAEF,GAAG,GAAG,EAAE,MAAM,IAAK,MAAMgyD,EAAGhyD,GAAG,GAAG,EAAE,MAAM,IAAK,MAAM+1C,EAAE/1C,GAAG,GAAG,EAAE,MAAM,IAAK,MAAMiyD,GAAE,CAAC,GAAGriC,GAAE,EAAE,IAAItxB,KAAKkQ,IAAIohB,IAAG,EAAEA,IAAkD,EAA/CtxB,KAAKC,KAAKD,KAAKsF,MAAMgsB,GAAE,YAAY,eAAiB,KAAKtxB,KAAK6N,MAAMyjB,OAAMA,KAAI,IAAI,cAAc,EAAE,IAAImmB,EAAE/1C,GAAG,GAAGiyD,GAAE,GAAGlc,EAAE/1C,EAAE,GAAG,GAAGiyD,GAAE,GAAG,MAAM,IAAK,QAAQC,EAAGlyD,GAAG,GAAG,EAAE,MAAM,IAAK,SAASmyD,EAAGnyD,GAAG,GAAG,EAAE,MAAM,QAAQywD,GAAE,8BAA8B70D,IAC7c,SAAS4sB,EAAExoB,EAAEpE,GAAmD,OAAtC,OAAVA,EAAEA,GAAG,MAAag/B,OAAOh/B,EAAEnH,OAAO,KAAKmH,EAAE,OAAcA,GAAG,IAAK,KAAoB,IAAK,KAAK,OAAOsE,EAAEF,GAAG,GAAG,IAAK,MAAM,OAAOgyD,EAAGhyD,GAAG,GAAG,IAAK,MAAqB,IAAK,MAAM,OAAO+1C,EAAE/1C,GAAG,GAAG,IAAK,QAAQ,OAAOkyD,EAAGlyD,GAAG,GAAG,IAAK,SAAS,OAAOmyD,EAAGnyD,GAAG,GAAG,QAAQywD,GAAE,8BAA8B70D,GAAG,OAAO,KAF0H,kBAAkBuzD,aAAasB,GAAE,mCAEtJ,IAAIxH,EAAGmJ,GAAG,EAAG,SAASrJ,EAAG/oD,GAAG,IAAIpE,EAAE9F,EAAE,IAAIkK,GAA4F,OAAzFpE,GAAG60D,GAAE,kDAAmDzwD,EAAE,8BAAsCpE,EACxc,SAASy2D,EAAGryD,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIixB,EAAE,CAAC3gC,OAAO,SAAS2mB,GAAG,IAAIvF,EAAE,EAAE,GAAG,OAAOuF,QAAG,IAASA,GAAG,IAAIA,EAAE,CAAC,IAAI+T,EAAgB,GAAb/T,EAAE/rB,QAAQ,GAAKwmB,EAAEhb,GAAEs0B,GAAGxtB,EAAEyZ,EAAE3kB,EAAEof,EAAEsZ,GAAG,OAAOtZ,GAAGlkB,MAAM,SAASypB,GAAG,IAAIvF,EAAEhb,GAAEugB,EAAE/rB,QAAmB,OAAXyL,EAAE6E,IAAIyb,EAAEvF,GAAUA,IAAIjb,EAAE+oD,EAAG/oD,GAAG,IAA2IwgB,EAAvI/a,EAAE,GAAG3J,EAAE,EAAE,GAAGyN,EAAE,IAAI,IAAI4E,EAAE,EAAEA,EAAE5E,EAAE9U,OAAO0Z,IAAI,CAAC,IAAIzH,EAAE8zB,EAAEv8B,EAAEkQ,IAAIzH,GAAG,IAAI5K,IAAIA,EAAE2xD,MAAMhoD,EAAE0I,GAAGzH,EAAE6C,EAAE4E,KAAK1I,EAAE0I,GAAG5E,EAAE4E,GAAqB,OAAlBlQ,EAAE+B,EAAEzI,MAAM,KAAKkO,GAAqB+a,EAA6DviB,EAA1D,IAAInC,GAAG6xD,GAAG7xD,GAAS,WAAWF,EAAEmf,EAAEyF,GAAG,YAAY5kB,IAAI4kB,EAAEA,EAChZ,SAASwsC,EAAGhtD,GAAG,IAAIpE,EAAqBwtD,GAAGppD,EAAEvL,QAAkE,OAA1DuL,EAAET,UAAUS,EAAE/F,MAAM4B,EAAEkJ,IAAI/E,EAAEpE,GAAGC,EAAEkJ,IAAI,IAAIzL,WAAW0G,GAAGpE,GAAUA,EAAE,IAGoI02D,EAAGpyD,EAAErE,EAAEm2D,EAAGjc,EAAEmc,EAAGC,EAH/II,EAAG,qBAAqBC,YAAY,IAAIA,YAAY,aAAQ,EACxL,SAASjE,EAAGvuD,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE3N,EAAEqC,EAAE,IAAIA,EAAErC,EAAEoE,EAAE/B,MAAMA,GAAGsL,MAAMtL,EAAE,GAAG,GAAGA,EAAErC,GAAGoE,EAAET,UAAUgzD,EAAG,OAAOA,EAAGl7B,OAAOr3B,EAAET,SAAS3D,EAAEqC,IAAI,IAAIsL,EAAE,GAAG3N,EAAEqC,GAAG,CAAC,IAAIu8B,EAAEx6B,EAAEpE,KAAK,GAAK,IAAF4+B,EAAM,CAAC,IAAI/0B,EAAS,GAAPzF,EAAEpE,KAAQ,GAAG,MAAQ,IAAF4+B,GAAOjxB,GAAG/M,OAAO0C,cAAgB,GAAFs7B,IAAO,EAAE/0B,OAAO,CAAC,IAAI3J,EAAS,GAAPkE,EAAEpE,KAAwE,OAAhE4+B,EAAE,MAAQ,IAAFA,IAAU,GAAFA,IAAO,GAAG/0B,GAAG,EAAE3J,GAAK,EAAF0+B,IAAM,GAAG/0B,GAAG,GAAG3J,GAAG,EAAS,GAAPkE,EAAEpE,MAAgB2N,GAAG/M,OAAO0C,aAAas7B,IAAIA,GAAG,MAAMjxB,GAAG/M,OAAO0C,aAAa,MAAMs7B,GAAG,GAAG,MAAQ,KAAFA,UAAejxB,GAAG/M,OAAO0C,aAAas7B,GAAG,OAAOjxB,EAAE,SAASwR,EAAE/a,EAAEpE,GAAG,OAAOoE,EAAEuuD,EAAG1yD,EAAEmE,EAAEpE,GAAG,GAC7d,SAASmL,EAAE/G,EAAEpE,EAAEqC,EAAEsL,GAAG,KAAK,EAAEA,GAAG,OAAO,EAAE,IAAIixB,EAAEv8B,EAAEsL,EAAEtL,EAAEsL,EAAE,EAAE,IAAI,IAAI9D,EAAE,EAAEA,EAAEzF,EAAEvL,SAASgR,EAAE,CAAC,IAAI3J,EAAEkE,EAAErC,WAAW8H,GAAG,GAAG,OAAO3J,GAAG,OAAOA,EAA2BA,EAAE,QAAU,KAAFA,IAAS,IAAM,KAA3CkE,EAAErC,aAAa8H,GAAiC,GAAG,KAAK3J,EAAE,CAAC,GAAGmC,GAAGsL,EAAE,MAAM3N,EAAEqC,KAAKnC,MAAM,CAAC,GAAG,MAAMA,EAAE,CAAC,GAAGmC,EAAE,GAAGsL,EAAE,MAAM3N,EAAEqC,KAAK,IAAInC,GAAG,MAAM,CAAC,GAAG,OAAOA,EAAE,CAAC,GAAGmC,EAAE,GAAGsL,EAAE,MAAM3N,EAAEqC,KAAK,IAAInC,GAAG,OAAO,CAAC,GAAGmC,EAAE,GAAGsL,EAAE,MAAM3N,EAAEqC,KAAK,IAAInC,GAAG,GAAGF,EAAEqC,KAAK,IAAInC,GAAG,GAAG,GAAGF,EAAEqC,KAAK,IAAInC,GAAG,EAAE,GAAGF,EAAEqC,KAAK,IAAM,GAAFnC,GAAa,OAAPF,EAAEqC,GAAG,EAASA,EAAEu8B,EAC1a,SAAS2uB,EAAGnpD,GAAG,IAAI,IAAIpE,EAAE,EAAEqC,EAAE,EAAEA,EAAE+B,EAAEvL,SAASwJ,EAAE,CAAC,IAAIsL,EAAEvJ,EAAErC,WAAWM,GAAG,OAAOsL,GAAG,OAAOA,IAAIA,EAAE,QAAU,KAAFA,IAAS,IAAsB,KAAlBvJ,EAAErC,aAAaM,IAAS,KAAKsL,IAAI3N,EAAEA,EAAE,MAAM2N,EAAE3N,EAAE,EAAE,OAAO2N,EAAE3N,EAAE,EAAEA,EAAE,EAAE,OAAOA,EAAE,SAASuuD,EAAGnqD,GAAG,IAAIpE,EAAEutD,EAAGnpD,GAAG,EAAE/B,EAAEmrD,GAAGxtD,GAAiB,OAAdqC,GAAG8I,EAAE/G,EAAEE,EAAEjC,EAAErC,GAAUqC,EACtP,SAASw0D,IAAK,IAAIzyD,EAAEipD,EAAGl1D,OAAOu+D,EAAGtyD,EAAElK,EAAE48D,MAAMxyD,EAAE,IAAIyyD,UAAU3yD,GAAGlK,EAAE88D,OAAOZ,EAAG,IAAIa,WAAW7yD,GAAGlK,EAAEg9D,OAAO/c,EAAE,IAAIgd,WAAW/yD,GAAGlK,EAAEk9D,OAAOn3D,EAAE,IAAIvC,WAAW0G,GAAGlK,EAAEm9D,QAAQ,IAAIC,YAAYlzD,GAAGlK,EAAEq9D,QAAQ,IAAIC,YAAYpzD,GAAGlK,EAAEu9D,QAAQnB,EAAG,IAAIoB,aAAatzD,GAAGlK,EAAEy9D,QAAQpB,EAAG,IAAIqB,aAAaxzD,GAAG,IAAI+uD,EAAEzF,EAAG,GAAGmK,EAAG,GAAGC,EAAG,GAAG,SAASC,KAAK,IAAI3zD,EAAElK,EAAE89D,OAAO95C,QAAQwvC,EAAG7kC,QAAQzkB,GAAG,IAC5H6zD,GACoLjkC,GAAEqiC,GAEzC6B,GAJbzqC,GAAG,EAAE2/B,GAAG,KAAKkB,GAAG,KACjX,SAASuG,GAAEzwD,GAAwC,MAAlClK,EAAEi+D,SAAQj+D,EAAEi+D,QAAQ/zD,GAAG42C,EAAE52C,GAAGoyD,GAAG,EAAS,IAAIjD,YAAY6E,aAAa,SAASh0D,EAAE,gDAAiD,SAASi0D,KAAK,OAAOJ,GAAEK,WAAW,yCAAiE,GADiIp+D,EAAEq+D,gBAAgB,GAAGr+D,EAAEs+D,gBAAgB,GAC1LP,GAAE,iBAAoBI,KAAK,CAAC,IAAII,GAAGR,GAAEA,GAAE/9D,EAAEw+D,WAAWx+D,EAAEw+D,WAAWD,GAAG/D,GAAGA,EAAE+D,GAAG,SAASE,KAAK,IAAIv0D,EAAE6zD,GAAE,IAAI,GAAG7zD,GAAG6zD,IAAGjC,EAAG,OAAO,IAAIt4D,WAAWs4D,GAAI,GAAG9B,EAAG,OAAOA,EAAG9vD,GAAG,KAAK,kDAAmD,MAAMpE,GAAG60D,GAAE70D,IAErc,SAAS+5B,GAAG31B,GAAG,KAAK,EAAEA,EAAEvL,QAAQ,CAAC,IAAImH,EAAEoE,EAAE8Z,QAAQ,GAAG,mBAAmBle,EAAEA,EAAE9F,OAAO,CAAC,IAAImI,EAAErC,EAAE44D,GAAG,kBAAkBv2D,OAAE,IAASrC,EAAE64D,GAAG1F,EAAEluC,IAAI5iB,EAAN8wD,GAAWA,EAAEluC,IAAI5iB,EAAN8wD,CAASnzD,EAAE64D,IAAIx2D,OAAE,IAASrC,EAAE64D,GAAG,KAAK74D,EAAE64D,MAEjL,SAASrH,GAAGptD,EAAEpE,GAAG,IAAI,IAAIqC,EAAE,EAAEsL,EAAEvJ,EAAEvL,OAAO,EAAE,GAAG8U,EAAEA,IAAI,CAAC,IAAIixB,EAAEx6B,EAAEuJ,GAAG,MAAMixB,EAAEx6B,EAAEq6B,OAAO9wB,EAAE,GAAG,OAAOixB,GAAGx6B,EAAEq6B,OAAO9wB,EAAE,GAAGtL,KAAKA,IAAI+B,EAAEq6B,OAAO9wB,EAAE,GAAGtL,KAAK,GAAGrC,EAAE,KAAKqC,EAAEA,IAAI+B,EAAEykB,QAAQ,MAAM,OAAOzkB,EAAE,SAASgG,GAAEhG,GAAG,IAAIpE,EAAE,MAAMoE,EAAE46B,OAAO,GAAG38B,EAAE,MAAM+B,EAAE3C,QAAQ,GAA+F,OAA3F2C,EAAEotD,GAAGptD,EAAEuf,MAAM,KAAK+a,QAAO,SAAS/wB,GAAG,QAAQA,MAAK3N,GAAGgF,KAAK,OAAOhF,IAAIoE,EAAE,KAAKA,GAAG/B,IAAI+B,GAAG,MAAYpE,EAAE,IAAI,IAAIoE,EAC1V,SAAS00D,GAAG10D,GAAG,IAAIpE,EAAE,gEAAgEkyD,KAAK9tD,GAAG/F,MAAM,GAAiB,OAAd+F,EAAEpE,EAAE,GAAGA,EAAEA,EAAE,GAAOoE,GAAIpE,GAAYA,IAAIA,EAAEA,EAAEyB,OAAO,EAAEzB,EAAEnH,OAAO,IAAWuL,EAAEpE,GAA3C,IAA6C,SAAS+4D,GAAG30D,GAAG,GAAG,MAAMA,EAAE,MAAM,IAAiC,IAAIpE,GAA1BoE,GAAPA,EAAEgG,GAAEhG,IAAOsF,QAAQ,MAAM,KAAYnJ,YAAY,KAAK,OAAO,IAAIP,EAAEoE,EAAEA,EAAE3C,OAAOzB,EAAE,GAErS,SAASg5D,KAAK,IAAI,IAAI50D,EAAE,GAAGpE,GAAE,EAAGqC,EAAE7G,UAAU3C,OAAO,GAAG,GAAGwJ,IAAIrC,EAAEqC,IAAI,CAAyB,GAAG,kBAA3BrC,EAAE,GAAGqC,EAAE7G,UAAU6G,GAAG,KAA2B,MAAM,IAAInJ,UAAU,6CAA6C,IAAI8G,EAAE,MAAM,GAAGoE,EAAEpE,EAAE,IAAIoE,EAAEpE,EAAE,MAAMA,EAAEg/B,OAAO,GAAkE,OAAOh/B,EAAE,IAAI,KAA5EoE,EAAEotD,GAAGptD,EAAEuf,MAAM,KAAK+a,QAAO,SAAS/wB,GAAG,QAAQA,MAAK3N,GAAGgF,KAAK,OAAyB,IAAI,IAAIi0D,GAAG,GAAG,SAAS3H,GAAGltD,EAAEpE,GAAGi5D,GAAG70D,GAAG,CAAC0f,MAAM,GAAGC,OAAO,GAAGg0C,GAAG/3D,GAAGwwD,GAAGpsD,EAAEqsD,IACxX,IAAIA,GAAG,CAAC2E,KAAK,SAAShxD,GAAG,IAAIpE,EAAEi5D,GAAG70D,EAAE+sC,KAAK+nB,MAAM,IAAIl5D,EAAE,MAAM,IAAIm5D,GAAE,IAAI/0D,EAAEg1D,IAAIp5D,EAAEoE,EAAEi1D,UAAS,GAAIxG,MAAM,SAASzuD,GAAGA,EAAEg1D,IAAIrB,GAAG9d,MAAM71C,EAAEg1D,MAAMnf,MAAM,SAAS71C,GAAGA,EAAEg1D,IAAIrB,GAAG9d,MAAM71C,EAAEg1D,MAAMv4D,KAAK,SAASuD,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIvJ,EAAEg1D,MAAMh1D,EAAEg1D,IAAIrB,GAAGiB,GAAG,MAAM,IAAIG,GAAE,IAAI,IAAI,IAAIv6B,EAAE,EAAE/0B,EAAE,EAAEA,EAAE8D,EAAE9D,IAAI,CAAC,IAAI,IAAI3J,EAAEkE,EAAEg1D,IAAIrB,GAAGiB,GAAG50D,EAAEg1D,KAAK,MAAM7mD,GAAG,MAAM,IAAI4mD,GAAE,IAAK,QAAG,IAASj5D,GAAG,IAAI0+B,EAAE,MAAM,IAAIu6B,GAAE,GAAG,GAAG,OAAOj5D,QAAG,IAASA,EAAE,MAAM0+B,IAAI5+B,EAAEqC,EAAEwH,GAAG3J,EAAmC,OAAjC0+B,IAAIx6B,EAAE+sC,KAAKmoB,UAAUvP,KAAKpX,OAAc/T,GAAGxgC,MAAM,SAASgG,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIvJ,EAAEg1D,MAAMh1D,EAAEg1D,IAAIrB,GAAGG,GAAG,MAAM,IAAIiB,GAAE,IACnf,IAAI,IAAI,IAAIv6B,EAAE,EAAEA,EAAEjxB,EAAEixB,IAAIx6B,EAAEg1D,IAAIrB,GAAGG,GAAG9zD,EAAEg1D,IAAIp5D,EAAEqC,EAAEu8B,IAAI,MAAM/0B,GAAG,MAAM,IAAIsvD,GAAE,IAAsC,OAAjCxrD,IAAIvJ,EAAE+sC,KAAKmoB,UAAUvP,KAAKpX,OAAc/T,IAAI2yB,GAAG,CAACyH,GAAG,SAAS50D,GAAG,IAAIA,EAAE0f,MAAMjrB,OAAO,CAAC,IAAImH,EAAE,KAAK,GAAGy0D,EAAG,CAAC,IAAIpyD,EAAEhK,EAAOU,MAAM,KAAK4U,EAAE,EAAE,IAAIA,EAAEwmD,EAAGoF,SAAS5/D,EAAQ6/D,MAAMC,GAAGp3D,EAAE,EAAE,IAAI,MAAM,MAAMu8B,GAAG,IAAGA,EAAE5/B,WAAWsG,SAAS,OAAgB,MAAMs5B,EAAfjxB,EAAE,EAAoB3N,EAAJ,EAAE2N,EAAItL,EAAEhE,MAAM,EAAEsP,GAAG3O,SAAS,SAAW,SAAS,oBAAoB+K,QAAQ,mBAAmBA,OAAO2vD,OAAmC,QAA3B15D,EAAE+J,OAAO2vD,OAAO,cAAsB15D,GAAG,MAAO,mBAAmB25D,WAC/d,QAD0e35D,EACrf25D,cAAsB35D,GAAG,OAAO,IAAIA,EAAE,OAAO,KAAKoE,EAAE0f,MAAMutC,GAAGrxD,GAAE,GAAI,OAAOoE,EAAE0f,MAAM5F,SAASg6C,GAAG,SAAS9zD,EAAEpE,GAAG,OAAOA,GAAG,KAAKA,GAAG21D,EAAGhD,EAAGvuD,EAAE2f,OAAO,IAAI3f,EAAE2f,OAAO,IAAI,GAAG/jB,GAAGoE,EAAE2f,OAAOroB,KAAKsE,IAAIi6C,MAAM,SAAS71C,GAAGA,EAAE2f,QAAQ,EAAE3f,EAAE2f,OAAOlrB,SAAS88D,EAAGhD,EAAGvuD,EAAE2f,OAAO,IAAI3f,EAAE2f,OAAO,MAAM61C,GAAG,CAAC1B,GAAG,SAAS9zD,EAAEpE,GAAG,OAAOA,GAAG,KAAKA,GAAGg7C,EAAE2X,EAAGvuD,EAAE2f,OAAO,IAAI3f,EAAE2f,OAAO,IAAI,GAAG/jB,GAAGoE,EAAE2f,OAAOroB,KAAKsE,IAAIi6C,MAAM,SAAS71C,GAAGA,EAAE2f,QAAQ,EAAE3f,EAAE2f,OAAOlrB,SAASmiD,EAAE2X,EAAGvuD,EAAE2f,OAAO,IAAI3f,EAAE2f,OAAO,MACjb,SAAS4sC,GAAGvsD,GAAGA,EAAE,MAAM1B,KAAK6N,KAAKnM,EAAE,OAAO,IAAIpE,EAAE6wD,GAAG,MAAMzsD,GAAG,OAAIpE,GAAWC,EAAE7G,KAAK,EAAE4G,EAAEA,EAAEoE,GAAUpE,GAAzB,EACzE,IAAI4mB,GAAE,CAAC+vC,GAAG,KAAKhE,GAAG,WAAW,OAAO/rC,GAAEizC,WAAW,KAAK,IAAI,MAAM,IAAIA,WAAW,SAASz1D,EAAEpE,EAAEqC,EAAEsL,GAAG,GAAG,SAAW,MAAFtL,IAAU,QAAU,MAAFA,GAAS,MAAM,IAAI82D,GAAE,IAC2R,OADvRvyC,GAAE+vC,KAAK/vC,GAAE+vC,GAAG,CAAC35D,IAAI,CAACm0C,KAAK,CAAC2oB,GAAGlzC,GAAEwvC,GAAG0D,GAAGC,GAAGnzC,GAAEwvC,GAAG2D,GAAGC,OAAOpzC,GAAEwvC,GAAG4D,OAAO3B,GAAGzxC,GAAEwvC,GAAGiC,GAAG4B,OAAOrzC,GAAEwvC,GAAG6D,OAAOC,OAAOtzC,GAAEwvC,GAAG8D,OAAOC,MAAMvzC,GAAEwvC,GAAG+D,MAAMC,QAAQxzC,GAAEwvC,GAAGgE,QAAQC,QAAQzzC,GAAEwvC,GAAGiE,SAASj5B,OAAO,CAACy1B,GAAGjwC,GAAE0vC,GAAGO,KAAKyD,KAAK,CAACnpB,KAAK,CAAC2oB,GAAGlzC,GAAEwvC,GAAG0D,GAAGC,GAAGnzC,GAAEwvC,GAAG2D,IAAI34B,OAAO,CAACy1B,GAAGjwC,GAAE0vC,GAAGO,GAAGh2D,KAAK+lB,GAAE0vC,GAAGz1D,KAAKzC,MAAMwoB,GAAE0vC,GAAGl4D,MAAMic,GAAGuM,GAAE0vC,GAAGj8C,GAAGo+C,GAAG7xC,GAAE0vC,GAAGmC,GAAGE,GAAG/xC,GAAE0vC,GAAGqC,KAAK4B,KAAK,CAACppB,KAAK,CAAC2oB,GAAGlzC,GAAEwvC,GAAG0D,GAAGC,GAAGnzC,GAAEwvC,GAAG2D,GACnfS,SAAS5zC,GAAEwvC,GAAGoE,UAAUp5B,OAAO,IAAI03B,GAAG,CAAC3nB,KAAK,CAAC2oB,GAAGlzC,GAAEwvC,GAAG0D,GAAGC,GAAGnzC,GAAEwvC,GAAG2D,IAAI34B,OAAOq5B,MAAoBC,IAAdr4D,EAAEs4D,GAAGv2D,EAAEpE,EAAEqC,EAAEsL,IAAOyQ,OAAO/b,EAAE+zD,GAAGxvC,GAAE+vC,GAAG35D,IAAIm0C,KAAK9uC,EAAEi0D,GAAG1vC,GAAE+vC,GAAG35D,IAAIokC,OAAO/+B,EAAEk0D,GAAG,IAAI,SAAgB,MAAPl0D,EAAE+b,OAAa/b,EAAE+zD,GAAGxvC,GAAE+vC,GAAG2D,KAAKnpB,KAAK9uC,EAAEi0D,GAAG1vC,GAAE+vC,GAAG2D,KAAKl5B,OAAO/+B,EAAEo0D,GAAG,EAAEp0D,EAAEk0D,GAAG,MAAM,SAAgB,MAAPl0D,EAAE+b,OAAa/b,EAAE+zD,GAAGxvC,GAAE+vC,GAAG4D,KAAKppB,KAAK9uC,EAAEi0D,GAAG1vC,GAAE+vC,GAAG4D,KAAKn5B,QAAQ,QAAe,MAAP/+B,EAAE+b,QAAc/b,EAAE+zD,GAAGxvC,GAAE+vC,GAAGmC,GAAG3nB,KAAK9uC,EAAEi0D,GAAG1vC,GAAE+vC,GAAGmC,GAAG13B,QAAQ/+B,EAAEi3D,UAAUvP,KAAKpX,MAAMvuC,IAAIA,EAAEmyD,GAAGv2D,GAAGqC,EAAE+B,EAAEk1D,UAAUj3D,EAAEi3D,WAAkBj3D,GAAGu4D,GAAG,SAASx2D,GAAG,OAAOA,EAAEmyD,GAAGnyD,EAAEmyD,GAAG5yD,SAASS,EAAEmyD,GAAG5yD,SAAS,EAAES,EAAEqyD,IACpf,IAAI/4D,WAAW0G,EAAEmyD,IAAI,IAAI74D,WAAW,IAAIi2D,GAAG,SAASvvD,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAEmyD,GAAGnyD,EAAEmyD,GAAG19D,OAAO,EAAEwJ,GAAGrC,IAAIA,EAAE0C,KAAKoC,IAAI9E,EAAEqC,GAAG,QAAQA,EAAE,EAAE,SAAS,GAAG,GAAGA,IAAIrC,EAAE0C,KAAKoC,IAAI9E,EAAE,MAAMqC,EAAE+B,EAAEmyD,GAAGnyD,EAAEmyD,GAAG,IAAI74D,WAAWsC,GAAG,EAAEoE,EAAEqyD,IAAIryD,EAAEmyD,GAAGptD,IAAI9G,EAAEsB,SAAS,EAAES,EAAEqyD,IAAI,KAAKoE,GAAG,SAASz2D,EAAEpE,GAAG,GAAGoE,EAAEqyD,IAAIz2D,EAAE,GAAG,GAAGA,EAAEoE,EAAEmyD,GAAG,KAAKnyD,EAAEqyD,GAAG,MAAM,CAAC,IAAIp0D,EAAE+B,EAAEmyD,GAAGnyD,EAAEmyD,GAAG,IAAI74D,WAAWsC,GAAGqC,GAAG+B,EAAEmyD,GAAGptD,IAAI9G,EAAEsB,SAAS,EAAEjB,KAAKC,IAAI3C,EAAEoE,EAAEqyD,MAAMryD,EAAEqyD,GAAGz2D,IAAIo2D,GAAG,CAAC0D,GAAG,SAAS11D,GAAG,IAAIpE,EAAE,GACpK,OADuKA,EAAE86D,IAAI,QAAe,MAAP12D,EAAEga,MAAYha,EAAEqlD,GAAG,EAAEzpD,EAAE+6D,IAAI32D,EAAEqlD,GAAGzpD,EAAEoe,KAAKha,EAAEga,KAAKpe,EAAEg7D,MAAM,EAAEh7D,EAAEi7D,IAAI,EAAEj7D,EAAEk7D,IAAI,EAAEl7D,EAAEk5D,KAAK90D,EAAE80D,KAAKwB,GAAEt2D,EAAEga,MACvfpe,EAAE7G,KAAK,KAAK,SAAgB,MAAPiL,EAAEga,MAAYpe,EAAE7G,KAAKiL,EAAEqyD,GAAG,SAAgB,MAAPryD,EAAEga,MAAYpe,EAAE7G,KAAKiL,EAAEm2D,KAAK1hE,OAAOmH,EAAE7G,KAAK,EAAE6G,EAAEm7D,MAAM,IAAIpR,KAAK3lD,EAAEk1D,WAAWt5D,EAAEo7D,MAAM,IAAIrR,KAAK3lD,EAAEk1D,WAAWt5D,EAAEq7D,MAAM,IAAItR,KAAK3lD,EAAEk1D,WAAWt5D,EAAE45D,GAAG,KAAK55D,EAAEs7D,OAAO54D,KAAK6N,KAAKvQ,EAAE7G,KAAK6G,EAAE45D,IAAW55D,GAAG+5D,GAAG,SAAS31D,EAAEpE,QAAG,IAASA,EAAEoe,OAAOha,EAAEga,KAAKpe,EAAEoe,WAAM,IAASpe,EAAEs5D,YAAYl1D,EAAEk1D,UAAUt5D,EAAEs5D,gBAAW,IAASt5D,EAAE7G,MAAMytB,GAAEi0C,GAAGz2D,EAAEpE,EAAE7G,OAAO6gE,OAAO,WAAW,MAAMuB,GAAG,KAAMlD,GAAG,SAASj0D,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAOiZ,GAAEizC,WAAWz1D,EAAEpE,EAAEqC,EAAEsL,IAAIssD,OAAO,SAAS71D,EAAEpE,EAAEqC,GAAG,GAAGq4D,GAAEt2D,EAAEga,MAAM,CAAC,IAAI,IAAIzQ,EACtf6tD,GAAGx7D,EAAEqC,GAAG,MAAMwH,IAAI,GAAG8D,EAAE,IAAI,IAAIixB,KAAKjxB,EAAE4oD,GAAG,MAAM,IAAI4C,GAAE,WAAY/0D,EAAEgqC,OAAOmoB,GAAGnyD,EAAExH,MAAMwH,EAAEgqC,OAAOkrB,UAAUvP,KAAKpX,MAAMvuC,EAAExH,KAAKyF,EAAErC,EAAEu2D,GAAGl0D,GAAG+B,EAAEpE,EAAEs5D,UAAUl1D,EAAEgqC,OAAOkrB,UAAUl1D,EAAEgqC,OAAOpuC,GAAGk6D,OAAO,SAAS91D,EAAEpE,UAAUoE,EAAEmyD,GAAGv2D,GAAGoE,EAAEk1D,UAAUvP,KAAKpX,OAAOwnB,MAAM,SAAS/1D,EAAEpE,GAAG,IAAc2N,EAAVtL,EAAEm5D,GAAGp3D,EAAEpE,GAAK,IAAI2N,KAAKtL,EAAEk0D,GAAG,MAAM,IAAI4C,GAAE,WAAW/0D,EAAEmyD,GAAGv2D,GAAGoE,EAAEk1D,UAAUvP,KAAKpX,OAAOynB,QAAQ,SAASh2D,GAAG,IAAiB/B,EAAbrC,EAAE,CAAC,IAAI,MAAQ,IAAIqC,KAAK+B,EAAEmyD,GAAGnyD,EAAEmyD,GAAGh5B,eAAel7B,IAAIrC,EAAEtE,KAAK2G,GAAG,OAAOrC,GAAGq6D,QAAQ,SAASj2D,EAAEpE,EAAEqC,GAAwC,OAArC+B,EAAEwiB,GAAEizC,WAAWz1D,EAAEpE,EAAE,MAAM,IAAKu6D,KAAKl4D,EAAS+B,GAC3fo2D,SAAS,SAASp2D,GAAG,GAAG,SAAgB,MAAPA,EAAEga,MAAY,MAAM,IAAI+6C,GAAE,IAAI,OAAO/0D,EAAEm2D,OAAOjE,GAAG,CAACz1D,KAAK,SAASuD,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GAAG,IAAI/0B,EAAEzF,EAAE+sC,KAAKolB,GAAG,GAAG33B,GAAGx6B,EAAE+sC,KAAKslB,GAAG,OAAO,EAA4B,GAAG,GAA7BryD,EAAE1B,KAAKC,IAAIyB,EAAE+sC,KAAKslB,GAAG73B,EAAEjxB,KAAW9D,EAAElG,SAAS3D,EAAEmJ,IAAIU,EAAElG,SAASi7B,EAAEA,EAAEx6B,GAAG/B,QAAQ,IAAIsL,EAAE,EAAEA,EAAEvJ,EAAEuJ,IAAI3N,EAAEqC,EAAEsL,GAAG9D,EAAE+0B,EAAEjxB,GAAG,OAAOvJ,GAAGhG,MAAM,SAASgG,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE/0B,GAA+B,GAA5B7J,EAAE7H,SAASmM,EAAEnM,SAAS0R,GAAE,IAAQ8D,EAAE,OAAO,EAAkC,IAAhCvJ,EAAEA,EAAE+sC,MAAOmoB,UAAUvP,KAAKpX,MAAS3yC,EAAE2D,YAAYS,EAAEmyD,IAAInyD,EAAEmyD,GAAG5yD,UAAU,CAAC,GAAGkG,EAAE,OAAOzF,EAAEmyD,GAAGv2D,EAAE2D,SAAStB,EAAEA,EAAEsL,GAAGvJ,EAAEqyD,GAAG9oD,EAAE,GAAG,IAAIvJ,EAAEqyD,IAAI,IAAI73B,EAAE,OAAOx6B,EAAEmyD,GAAGv2D,EAAE3B,MAAMgE,EAAEA,EAAEsL,GAAGvJ,EAAEqyD,GAClf9oD,EAAE,GAAGixB,EAAEjxB,GAAGvJ,EAAEqyD,GAAG,OAAOryD,EAAEmyD,GAAGptD,IAAInJ,EAAE2D,SAAStB,EAAEA,EAAEsL,GAAGixB,GAAGjxB,EAAc,GAAZiZ,GAAE+sC,GAAGvvD,EAAEw6B,EAAEjxB,GAAMvJ,EAAEmyD,GAAG5yD,UAAU3D,EAAE2D,SAASS,EAAEmyD,GAAGptD,IAAInJ,EAAE2D,SAAStB,EAAEA,EAAEsL,GAAGixB,QAAQ,IAAI/0B,EAAE,EAAEA,EAAE8D,EAAE9D,IAAIzF,EAAEmyD,GAAG33B,EAAE/0B,GAAG7J,EAAEqC,EAAEwH,GAA2B,OAAxBzF,EAAEqyD,GAAG/zD,KAAKoC,IAAIV,EAAEqyD,GAAG73B,EAAEjxB,GAAUA,GAAGkpD,GAAG,SAASzyD,EAAEpE,EAAEqC,GAA0E,GAAvE,IAAIA,EAAErC,GAAGoE,EAAEsmB,SAAS,IAAIroB,GAAG,SAAqB,MAAZ+B,EAAE+sC,KAAK/yB,QAAcpe,GAAGoE,EAAE+sC,KAAKslB,IAAO,EAAEz2D,EAAE,MAAM,IAAIm5D,GAAE,IAAI,OAAOn5D,GAAGqa,GAAG,SAASjW,EAAEpE,EAAEqC,GAAGukB,GAAE+sC,GAAGvvD,EAAE+sC,KAAKnxC,EAAEqC,GAAG+B,EAAE+sC,KAAKslB,GAAG/zD,KAAKoC,IAAIV,EAAE+sC,KAAKslB,GAAGz2D,EAAEqC,IAAIo2D,GAAG,SAASr0D,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE/0B,GAAG,GAAG,IAAI7J,EAAE,MAAM,IAAIm5D,GAAE,IAAI,GAAG,SAAqB,MAAZ/0D,EAAE+sC,KAAK/yB,MAAY,MAAM,IAAI+6C,GAAE,IAAgB,GAAZ/0D,EAAEA,EAAE+sC,KAAKolB,GACjf,EADuf1sD,GACpfzF,EAAEjM,SAASu+D,EAAG,CAAwG,IAApG,EAAE/oD,GAAGA,EAAEtL,EAAE+B,EAAEvL,UAAkBuL,EAAXA,EAAET,SAAWS,EAAET,SAASgK,EAAEA,EAAEtL,GAAK9G,MAAM3D,UAAUyG,MAAMlE,KAAKiK,EAAEuJ,EAAEA,EAAEtL,IAAGsL,GAAE,IAAGtL,EAAEsuD,GAAGtuD,IAAS,MAAM,IAAI82D,GAAE,IAAI70D,EAAE6E,IAAI/E,EAAE/B,QAAQsL,GAAE,EAAGtL,EAAE+B,EAAEvG,WAAW,MAAM,CAAC49D,GAAGp5D,EAAE03B,GAAGpsB,IAAIgrD,GAAG,SAASv0D,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GAAG,GAAG,SAAqB,MAAZx6B,EAAE+sC,KAAK/yB,MAAY,MAAM,IAAI+6C,GAAE,IAAI,OAAK,EAAFv6B,GAAahY,GAAE0vC,GAAGl4D,MAAMgG,EAAEpE,EAAE,EAAE2N,EAAEtL,GAAE,GAAvB,KAAuCo5D,GAAG,KAAKZ,GAAG,GAAGla,GAAE,GAAG+a,GAAG,EAAE9a,GAAE,KAAK+a,IAAG,EAAGC,GAAE,GAAGzC,GAAE,KAAKoC,GAAG,GACrX,SAASnhB,GAAEh2C,EAAEpE,GAAuB,GAARA,EAAEA,GAAG,KAAjBoE,EAAE40D,GAAG,IAAI50D,IAAiB,MAAM,CAAC26B,KAAK,GAAGoS,KAAK,MAAM,IAAmBxjC,EAAftL,EAAE,CAAC02D,IAAG,EAAGpK,GAAG,GAAK,IAAIhhD,KAAKtL,OAAE,IAASrC,EAAE2N,KAAK3N,EAAE2N,GAAGtL,EAAEsL,IAAI,GAAG,EAAE3N,EAAE2uD,GAAG,MAAM,IAAIwK,GAAE,IAAI/0D,EAAEotD,GAAGptD,EAAEuf,MAAM,KAAK+a,QAAO,SAASx+B,GAAG,QAAQA,MAAI,GAAI,IAAI0+B,EAAE68B,GAAS,IAANp5D,EAAE,IAAQsL,EAAE,EAAEA,EAAEvJ,EAAEvL,OAAO8U,IAAI,CAAC,IAAI9D,EAAE8D,IAAIvJ,EAAEvL,OAAO,EAAE,GAAGgR,GAAG7J,EAAEouC,OAAO,MAAsE,GAAhExP,EAAE48B,GAAG58B,EAAEx6B,EAAEuJ,IAAItL,EAAE+H,GAAE/H,EAAE,IAAI+B,EAAEuJ,IAAIixB,EAAEi5B,MAAMhuD,GAAGA,GAAG7J,EAAE+4D,MAAMn6B,EAAEA,EAAEi5B,GAAGgE,OAAUhyD,GAAG7J,EAAE02D,GAAG,IAAI7sD,EAAE,EAAE,SAAgB,MAAP+0B,EAAExgB,OAAa,GAAGwgB,EAAEg6B,GAAGv2D,GAAiBu8B,EAAEwb,GAAhB/3C,EAAE22D,GAAGF,GAAGz2D,GAAGu8B,GAAS,CAAC+vB,GAAG3uD,EAAE2uD,KAAKxd,KAAK,GAAGtnC,IAAI,MAAM,IAAIsvD,GAAE,IAAK,MAAM,CAACp6B,KAAK18B,EAAE8uC,KAAKvS,GACre,SAASg8B,GAAGx2D,GAAG,IAAI,IAAIpE,IAAI,CAAC,GAAGoE,IAAIA,EAAEgqC,OAAO,OAAOhqC,EAAEA,EAAEuuD,GAAGsG,GAAGj5D,EAAE,MAAMoE,EAAEA,EAAEvL,OAAO,GAAGuL,EAAE,IAAIpE,EAAEoE,EAAEpE,EAAEoE,EAAEpE,EAAEA,EAAEoE,EAAExH,KAAK,IAAIoD,EAAEoE,EAAExH,KAAKwH,EAAEA,EAAEgqC,QAAQ,SAAS0tB,GAAG13D,EAAEpE,GAAG,IAAI,IAAIqC,EAAE,EAAEsL,EAAE,EAAEA,EAAE3N,EAAEnH,OAAO8U,IAAItL,GAAGA,GAAG,GAAGA,EAAErC,EAAE+B,WAAW4L,GAAG,EAAE,OAAOvJ,EAAE/B,IAAI,GAAGu+C,GAAE/nD,OAAO,SAASkjE,GAAG33D,GAAG,IAAIpE,EAAE87D,GAAG13D,EAAEgqC,OAAOqb,GAAGrlD,EAAExH,MAAM,GAAGgkD,GAAE5gD,KAAKoE,EAAEw8C,GAAE5gD,GAAGoE,EAAE0zD,QAAQ,IAAI93D,EAAE4gD,GAAE5gD,GAAGA,GAAG,CAAC,GAAGA,EAAE83D,KAAK1zD,EAAE,CAACpE,EAAE83D,GAAG1zD,EAAE0zD,GAAG,MAAM93D,EAAEA,EAAE83D,IAClW,SAAS0D,GAAGp3D,EAAEpE,GAAG,IAAIqC,EAAE,GAAGA,GAAGA,EAAE25D,GAAG53D,EAAE,MAAM/B,EAAE+B,EAAEgyD,GAAG4D,OAAO,EAAE,EAAE,MAAM,IAAIb,GAAE92D,EAAE+B,GAAG,IAAI/B,EAAEu+C,GAAEkb,GAAG13D,EAAEqlD,GAAGzpD,IAAIqC,EAAEA,EAAEA,EAAEy1D,GAAG,CAAC,IAAInqD,EAAEtL,EAAEzF,KAAK,GAAGyF,EAAE+rC,OAAOqb,KAAKrlD,EAAEqlD,IAAI97C,IAAI3N,EAAE,OAAOqC,EAAE,OAAO+B,EAAEgyD,GAAG4D,OAAO51D,EAAEpE,GAAG,SAAS26D,GAAGv2D,EAAEpE,EAAEqC,EAAEsL,GAAwD,OAAnC3N,EAAE87D,IAApB13D,EAAE,IAAI63D,GAAG73D,EAAEpE,EAAEqC,EAAEsL,IAAUygC,OAAOqb,GAAGrlD,EAAExH,MAAMwH,EAAE0zD,GAAGlX,GAAE5gD,GAAU4gD,GAAE5gD,GAAGoE,EAAE,SAASs2D,GAAEt2D,GAAG,OAAO,SAAW,MAAFA,GAAS,IAAI83D,GAAG,CAAC9xD,EAAE,EAAE,KAAK,EAAEU,EAAE,IAAI,KAAK,IAAI1G,EAAE,KAAK,KAAK,MAAM,SAAS+3D,GAAG/3D,GAAG,IAAIpE,EAAE,CAAC,IAAI,IAAI,MAAQ,EAAFoE,GAAqB,OAAd,IAAFA,IAAQpE,GAAG,KAAYA,EACza,SAASg8D,GAAG53D,EAAEpE,GAAG,OAAG27D,GAAU,GAAM37D,EAAEsF,SAAS,MAAa,IAAPlB,EAAEga,KAAape,EAAEsF,SAAS,QAAe,IAAPlB,EAAEga,OAAWpe,EAAEsF,SAAS,QAAe,GAAPlB,EAAEga,MAAgB,EAAuB,EAAT,EAAW,SAASg+C,GAAGh4D,EAAEpE,GAAG,IAAI,OAAOw7D,GAAGp3D,EAAEpE,GAAG,GAAG,MAAMqC,IAAI,OAAO25D,GAAG53D,EAAE,MAAM,SAASi4D,GAAGj4D,EAAEpE,EAAEqC,GAAG,IAAI,IAAIsL,EAAE6tD,GAAGp3D,EAAEpE,GAAG,MAAM4+B,GAAG,OAAOA,EAAE43B,GAAG,GAAGpyD,EAAE43D,GAAG53D,EAAE,MAAM,OAAOA,EAAE,GAAG/B,EAAE,CAAC,IAAIq4D,GAAE/sD,EAAEyQ,MAAM,OAAO,GAAG,GAAGzQ,IAAIA,EAAEygC,QAAQ,MAAMwsB,GAAGjtD,GAAG,OAAO,QAAQ,GAAG+sD,GAAE/sD,EAAEyQ,MAAM,OAAO,GAAG,OAAO,EACha,SAASk+C,GAAGl4D,EAAEpE,GAAGu8D,MAAKA,GAAG,cAAgB3kE,UAAU,IAAI,IAAa+V,EAATtL,EAAE,IAAIk6D,GAAK,IAAI5uD,KAAKvJ,EAAE/B,EAAEsL,GAAGvJ,EAAEuJ,GAAsB,OAAnBvJ,EAAE/B,EAAErC,EADmU,SAAYoE,GAAc,IAAIA,EAAEA,GAAG,EAAEA,GAAhB,KAAqBA,IAAI,IAAIu8C,GAAEv8C,GAAG,OAAOA,EAAE,MAAM,IAAI+0D,GAAE,IAC7YqD,CAAGx8D,GAAGoE,EAAEq1D,GAAGz5D,EAAS2gD,GAAE3gD,GAAGoE,EAAE,IAY0Hq4D,GAZtHhC,GAAG,CAACrF,KAAK,SAAShxD,GAAGA,EAAEkyD,GAAGuE,GAAGz2D,EAAE+sC,KAAK+nB,MAAM5C,GAAGlyD,EAAEkyD,GAAGlB,MAAMhxD,EAAEkyD,GAAGlB,KAAKhxD,IAAIyyD,GAAG,WAAW,MAAM,IAAIsC,GAAE,MAAO,SAAS3I,GAAGpsD,EAAEpE,GAAG66D,GAAGz2D,GAAG,CAACkyD,GAAGt2D,GAClQ,SAAS08D,GAAGt4D,EAAEpE,GAAG,IAAIqC,EAAE,MAAMrC,EAAE2N,GAAG3N,EAAE,GAAGqC,GAAGo5D,GAAG,MAAM,IAAItC,GAAE,IAAI,IAAI92D,IAAIsL,EAAE,CAAC,IAAIixB,EAAEwb,GAAEp6C,EAAE,CAAC+4D,IAAG,IAAuB,GAAlB/4D,EAAE4+B,EAAEG,MAAKH,EAAEA,EAAEuS,MAAU0mB,GAAG,MAAM,IAAIsB,GAAE,IAAI,IAAIuB,GAAE97B,EAAExgB,MAAM,MAAM,IAAI+6C,GAAE,IAAKn5D,EAAE,CAACpB,KAAKwF,EAAE03D,GAAG,GAAG7C,GAAGj5D,EAAEu7D,GAAG,KAAIn3D,EAAEA,EAAEuuD,GAAG3yD,IAAK2yD,GAAG3yD,EAAEA,EAAE67D,KAAKz3D,EAAE/B,EAAEo5D,GAAGr3D,EAAEw6B,IAAIA,EAAEi5B,GAAG73D,EAAE4+B,EAAE+zB,IAAI/zB,EAAE+zB,GAAG4I,GAAG7/D,KAAKsE,IAAI,SAAS8tD,GAAG1pD,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEysC,GAAEh2C,EAAE,CAACgqC,QAAO,IAAK+C,KAAa,KAAR/sC,EAAE20D,GAAG30D,KAAU,MAAMA,GAAG,OAAOA,EAAE,MAAM,IAAI+0D,GAAE,IAAI,IAAIv6B,EAAEw9B,GAAGzuD,EAAEvJ,GAAG,GAAGw6B,EAAE,MAAM,IAAIu6B,GAAEv6B,GAAG,IAAIjxB,EAAEyoD,GAAGiC,GAAG,MAAM,IAAIc,GAAE,IAAI,OAAOxrD,EAAEyoD,GAAGiC,GAAG1qD,EAAEvJ,EAAEpE,EAAEqC,GACtb,SAASs6D,GAAEv4D,EAAEpE,GAAG,OAAO8tD,GAAG1pD,EAAqB,WAAlB,IAASpE,EAAEA,EAAE,KAAU,MAAM,GAAG,SAAS48D,GAAGx4D,EAAEpE,EAAEqC,GAAG,qBAAqBA,IAAIA,EAAErC,EAAEA,EAAE,KAAK8tD,GAAG1pD,EAAI,KAAFpE,EAAOqC,GAAG,SAASwqC,GAAGzoC,EAAEpE,GAAG,IAAIg5D,GAAG50D,GAAG,MAAM,IAAI+0D,GAAE,IAAI,IAAI92D,EAAE+3C,GAAEp6C,EAAE,CAACouC,QAAO,IAAK+C,KAAK,IAAI9uC,EAAE,MAAM,IAAI82D,GAAE,IAAY,IAAIxrD,EAAEyuD,GAAG/5D,EAAjBrC,EAAE+4D,GAAG/4D,IAAiB,GAAG2N,EAAE,MAAM,IAAIwrD,GAAExrD,GAAG,IAAItL,EAAE+zD,GAAGiE,QAAQ,MAAM,IAAIlB,GAAE,IAAI92D,EAAE+zD,GAAGiE,QAAQh4D,EAAErC,EAAEoE,GAC5T,SAAS0uD,GAAG1uD,GAAG,IAAIpE,EAAEo6C,GAAEh2C,EAAE,CAACgqC,QAAO,IAAK+C,KAAK9uC,EAAE02D,GAAG30D,GAAGuJ,EAAE6tD,GAAGx7D,EAAEqC,GAAGu8B,EAAEy9B,GAAGr8D,EAAEqC,GAAE,GAAI,GAAGu8B,EAAE,MAAM,IAAIu6B,GAAEv6B,GAAG,IAAI5+B,EAAEo2D,GAAG8D,OAAO,MAAM,IAAIf,GAAE,IAAI,GAAGxrD,EAAEkqD,GAAG,MAAM,IAAIsB,GAAE,IAAI,IAAIyC,GAAEiB,gBAAgBjB,GAAEiB,eAAez4D,GAAG,MAAMyF,GAAGmxC,EAAE,0CAA0C52C,EAAE,0BAA0ByF,EAAE2gB,SAASxqB,EAAEo2D,GAAG8D,OAAOl6D,EAAEqC,GAAG05D,GAAGpuD,GAAG,IAAOiuD,GAAEkB,cAAalB,GAAEkB,aAAa14D,GAAG,MAAMyF,GAAGmxC,EAAE,wCAAwC52C,EAAE,0BAA0ByF,EAAE2gB,UAC5a,SAASouC,GAAGx0D,GAAe,KAAZA,EAAEg2C,GAAEh2C,GAAG+sC,MAAW,MAAM,IAAIgoB,GAAE,IAAI,IAAI/0D,EAAEgyD,GAAGoE,SAAS,MAAM,IAAIrB,GAAE,IAAI,OAAOH,GAAG4B,GAAGx2D,EAAEgqC,QAAQhqC,EAAEgyD,GAAGoE,SAASp2D,IAAI,SAASquD,GAAGruD,EAAEpE,GAAuB,KAApBoE,EAAEg2C,GAAEh2C,EAAE,CAACsyD,IAAI12D,IAAImxC,MAAW,MAAM,IAAIgoB,GAAE,IAAI,IAAI/0D,EAAEgyD,GAAG0D,GAAG,MAAM,IAAIX,GAAE,IAAI,OAAO/0D,EAAEgyD,GAAG0D,GAAG11D,GAAG,SAAS24D,GAAG34D,GAAG,OAAOquD,GAAGruD,GAAE,GAAI,SAAS4pD,GAAG5pD,EAAEpE,GAA6C,KAA1CoE,EAAE,kBAAkBA,EAAEg2C,GAAEh2C,EAAE,CAACsyD,IAAG,IAAKvlB,KAAK/sC,GAAQgyD,GAAG2D,GAAG,MAAM,IAAIZ,GAAE,IAAI/0D,EAAEgyD,GAAG2D,GAAG31D,EAAE,CAACga,KAAO,KAAFpe,GAAe,KAARoE,EAAEga,KAAWk7C,UAAUvP,KAAKpX,QAC9Y,SAASqqB,GAAG54D,GAA6C,KAA1CA,EAAE,kBAAkBA,EAAEg2C,GAAEh2C,EAAE,CAACsyD,IAAG,IAAKvlB,KAAK/sC,GAAQgyD,GAAG2D,GAAG,MAAM,IAAIZ,GAAE,IAAI/0D,EAAEgyD,GAAG2D,GAAG31D,EAAE,CAACk1D,UAAUvP,KAAKpX,QAAQ,SAASsqB,GAAG74D,EAAEpE,GAAG,GAAG,EAAEA,EAAE,MAAM,IAAIm5D,GAAE,IAA8C,KAA1C/0D,EAAE,kBAAkBA,EAAEg2C,GAAEh2C,EAAE,CAACsyD,IAAG,IAAKvlB,KAAK/sC,GAAQgyD,GAAG2D,GAAG,MAAM,IAAIZ,GAAE,IAAI,GAAGuB,GAAEt2D,EAAEga,MAAM,MAAM,IAAI+6C,GAAE,IAAI,GAAG,SAAgB,MAAP/0D,EAAEga,MAAY,MAAM,IAAI+6C,GAAE,IAAI,IAAI92D,EAAE25D,GAAG53D,EAAE,KAAK,GAAG/B,EAAE,MAAM,IAAI82D,GAAE92D,GAAG+B,EAAEgyD,GAAG2D,GAAG31D,EAAE,CAACjL,KAAK6G,EAAEs5D,UAAUvP,KAAKpX,QACjX,SAASub,GAAG9pD,EAAEpE,EAAEqC,EAAEsL,GAAG,GAAG,KAAKvJ,EAAE,MAAM,IAAI+0D,GAAE,IAAI,GAAG,kBAAkBn5D,EAAE,CAAC,IAAI4+B,EAAEs9B,GAAGl8D,GAAG,GAAG,qBAAqB4+B,EAAE,MAAM/kC,MAAM,2BAA2BmG,GAAGA,EAAE4+B,EAAqD,GAAnDv8B,EAAI,GAAFrC,EAAoC,MAA9B,qBAAqBqC,EAAE,IAAIA,GAAQ,MAAM,EAAK,kBAAkB+B,EAAE,IAAIyF,EAAEzF,MAAM,CAACA,EAAEgG,GAAEhG,GAAG,IAAIyF,EAAEuwC,GAAEh2C,EAAE,CAACsyD,KAAO,OAAF12D,KAAYmxC,KAAK,MAAMjxC,KAAU,GAAL0+B,GAAE,EAAQ,GAAF5+B,EAAK,GAAG6J,GAAG,GAAK,IAAF7J,EAAM,MAAM,IAAIm5D,GAAE,SAAUtvD,EAAEikD,GAAG1pD,EAAE/B,EAAE,GAAGu8B,GAAE,EAAG,IAAI/0B,EAAE,MAAM,IAAIsvD,GAAE,IAAqC,GAAjC,QAAe,MAAPtvD,EAAEuU,QAAcpe,IAAI,KAAU,MAAFA,IAAU06D,GAAE7wD,EAAEuU,MAAM,MAAM,IAAI+6C,GAAE,IAAI,IAAIv6B,IAAIv8B,EAAEwH,EAAE,SAAgB,MAAPA,EAAEuU,MAAY,GAAGs8C,GAAE7wD,EAAEuU,QAC/e,MAAM+9C,GAAGn8D,IAAM,IAAFA,GAAO,GAAGg8D,GAAGnyD,EAAEsyD,GAAGn8D,IAAI,IAAI,MAAM,IAAIm5D,GAAE92D,GAAK,IAAFrC,GAAOi9D,GAAGpzD,EAAE,GAAG7J,IAAI,QAAO2N,EAAE2uD,GAAG,CAACnrB,KAAKtnC,EAAEk1B,KAAK67B,GAAG/wD,GAAGie,MAAM9nB,EAAEq5D,UAAS,EAAG3uC,SAAS,EAAE4rC,GAAGzsD,EAAEysD,GAAGqF,GAAG,GAAGrxC,OAAM,GAAI3c,IAAK2oD,GAAGlB,MAAMznD,EAAE2oD,GAAGlB,KAAKznD,IAAIzT,EAAEgjE,cAAgB,EAAFl9D,IAAMm9D,KAAKA,GAAG,IAAI/4D,KAAK+4D,KAAKA,GAAG/4D,GAAG,EAAE42C,EAAE,2CAA2C52C,KAAK,IAAIw3D,GAAEwB,aAAavzD,EAAE,EAAE,KAAO,QAAF7J,KAAa6J,GAAG,GAAG,KAAO,QAAF7J,KAAa6J,GAAG,GAAG+xD,GAAEwB,WAAWh5D,EAAEyF,IAAI,MAAM3J,GAAG86C,EAAE,sCAAsC52C,EAAE,iCAAiClE,EAAEsqB,SAAS,OAAO7c,EACle,SAASwgD,GAAG/pD,GAAG,GAAG,OAAOA,EAAEq1D,GAAG,MAAM,IAAIN,GAAE,GAAG/0D,EAAE6mB,KAAK7mB,EAAE6mB,GAAG,MAAM,IAAI7mB,EAAEkyD,GAAGzD,OAAOzuD,EAAEkyD,GAAGzD,MAAMzuD,GAAG,MAAMpE,GAAG,MAAMA,EAA7C,QAAwD2gD,GAAEv8C,EAAEq1D,IAAI,KAAKr1D,EAAEq1D,GAAG,KAAK,SAAS4D,GAAGj5D,EAAEpE,EAAEqC,GAAG,GAAG,OAAO+B,EAAEq1D,GAAG,MAAM,IAAIN,GAAE,GAAG,IAAI/0D,EAAEi1D,WAAWj1D,EAAEkyD,GAAGO,GAAG,MAAM,IAAIsC,GAAE,IAAI,GAAG,GAAG92D,GAAG,GAAGA,GAAG,GAAGA,EAAE,MAAM,IAAI82D,GAAE,IAAI/0D,EAAEsmB,SAAStmB,EAAEkyD,GAAGO,GAAGzyD,EAAEpE,EAAEqC,GAAG+B,EAAEu3D,GAAG,GAC3S,SAASjJ,GAAGtuD,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GAAG,GAAG,EAAEjxB,GAAG,EAAEixB,EAAE,MAAM,IAAIu6B,GAAE,IAAI,GAAG,OAAO/0D,EAAEq1D,GAAG,MAAM,IAAIN,GAAE,GAAG,GAAG,KAAa,QAAR/0D,EAAE0jB,OAAe,MAAM,IAAIqxC,GAAE,GAAG,GAAGuB,GAAEt2D,EAAE+sC,KAAK/yB,MAAM,MAAM,IAAI+6C,GAAE,IAAI,IAAI/0D,EAAEkyD,GAAGz1D,KAAK,MAAM,IAAIs4D,GAAE,IAAI,IAAItvD,EAAE,qBAAqB+0B,EAAE,GAAI/0B,GAAoB,IAAIzF,EAAEi1D,SAAS,MAAM,IAAIF,GAAE,SAA7Cv6B,EAAEx6B,EAAEsmB,SAAuF,OAA1C1qB,EAAEoE,EAAEkyD,GAAGz1D,KAAKuD,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GAAG/0B,IAAIzF,EAAEsmB,UAAU1qB,GAAUA,EAC9T,SAASiuD,GAAG7pD,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE/0B,GAAG,GAAG,EAAE8D,GAAG,EAAEixB,EAAE,MAAM,IAAIu6B,GAAE,IAAI,GAAG,OAAO/0D,EAAEq1D,GAAG,MAAM,IAAIN,GAAE,GAAG,GAAG,KAAa,QAAR/0D,EAAE0jB,OAAe,MAAM,IAAIqxC,GAAE,GAAG,GAAGuB,GAAEt2D,EAAE+sC,KAAK/yB,MAAM,MAAM,IAAI+6C,GAAE,IAAI,IAAI/0D,EAAEkyD,GAAGl4D,MAAM,MAAM,IAAI+6D,GAAE,IAAI/0D,EAAEi1D,UAAkB,KAARj1D,EAAE0jB,OAAYu1C,GAAGj5D,EAAE,EAAE,GAAG,IAAIlE,EAAE,qBAAqB0+B,EAAE,GAAI1+B,GAAoB,IAAIkE,EAAEi1D,SAAS,MAAM,IAAIF,GAAE,SAA7Cv6B,EAAEx6B,EAAEsmB,SAA6C1qB,EAAEoE,EAAEkyD,GAAGl4D,MAAMgG,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE/0B,GAAG3J,IAAIkE,EAAEsmB,UAAU1qB,GAAG,IAAOoE,EAAE26B,MAAM68B,GAAE0B,eAAc1B,GAAE0B,cAAcl5D,EAAE26B,MAAM,MAAMxsB,GAAGyoC,EAAE,yCAAyC52C,EAAE26B,KAAK,0BAA0BxsB,EAAEiY,SAAS,OAAOxqB,EAE/f,SAASu9D,KAAKpE,MAAIA,GAAE,SAAS/0D,EAAEpE,GAAG5F,KAAK+2C,KAAKnxC,EAAE5F,KAAKshE,GAAG,SAASr5D,GAAGjI,KAAKo8D,GAAGn0D,GAAGjI,KAAKshE,GAAGt3D,GAAGhK,KAAKowB,QAAQ,aAAc5yB,UAAUiC,QAAQs/D,GAAEvhE,UAAUC,YAAYshE,GAAE,CAAC,IAAInmC,SAAQ,SAAS5uB,GAAGm3D,GAAGn3D,GAAG,IAAI+0D,GAAE/0D,GAAGm3D,GAAGn3D,GAAG0uC,MAAM,gCAAsC,SAASib,GAAG3pD,EAAEpE,GAAG,IAAIqC,EAAE,EAA0B,OAAxB+B,IAAI/B,GAAG,KAAKrC,IAAIqC,GAAG,KAAYA,EACjT,SAASm7D,GAAGp5D,EAAEpE,EAAEqC,GAAG+B,EAAEgG,GAAE,QAAQhG,GAAG,IAAIuJ,EAAEogD,KAAK/tD,IAAIqC,GAAGo7D,KAAKA,GAAG,IAAI,IAAI7+B,EAAE6+B,MAAM,EAAE,EAAEjN,GAAG5xB,EAAE,CAACw2B,KAAK,SAASvrD,GAAGA,EAAEwvD,UAAS,GAAIxG,MAAM,WAAWxwD,GAAGA,EAAElK,QAAQkK,EAAElK,OAAOU,QAAQwJ,EAAE,KAAKxB,KAAK,SAASgJ,EAAE3J,EAAEqS,EAAEzH,GAAG,IAAI,IAAI8Z,EAAE,EAAEvF,EAAE,EAAEA,EAAEvU,EAAEuU,IAAI,CAAC,IAAI,IAAIsZ,EAAE34B,IAAI,MAAMyuD,GAAI,MAAM,IAAI0K,GAAE,IAAK,QAAG,IAASxgC,GAAG,IAAI/T,EAAE,MAAM,IAAIu0C,GAAE,GAAG,GAAG,OAAOxgC,QAAG,IAASA,EAAE,MAAM/T,IAAI1kB,EAAEqS,EAAE8M,GAAGsZ,EAAmC,OAAjC/T,IAAI/a,EAAEsnC,KAAKmoB,UAAUvP,KAAKpX,OAAc/tB,GAAGxmB,MAAM,SAASyL,EAAE3J,EAAEqS,EAAEzH,GAAG,IAAI,IAAI8Z,EAAE,EAAEA,EAAE9Z,EAAE8Z,IAAI,IAAIviB,EAAEnC,EAAEqS,EAAEqS,IAAI,MAAMvF,GAAG,MAAM,IAAI85C,GAAE,IAAsC,OAAjCruD,IAAIjB,EAAEsnC,KAAKmoB,UAAUvP,KAAKpX,OAAc/tB,KAC3fg4C,GAAGx4D,EAAEuJ,EAAEixB,GAAG,IAAI6+B,GAAQlB,GAAGY,GAARO,GAAE,GAASC,GAAG,GAC/B,SAASC,GAAGx5D,EAAEpE,EAAEqC,GAAG,IAAI,IAAIsL,EAAEvJ,EAAEpE,GAAG,MAAM4+B,GAAG,GAAGA,GAAGA,EAAEuS,MAAM/mC,GAAEpK,KAAKoK,GAAEwwD,GAAGh8B,EAAEuS,OAAO,OAAO,GAAG,MAAMvS,EACqL,OADlLub,EAAE93C,GAAG,GAAGsL,EAAEmtD,IAAI3gB,EAAE93C,EAAE,GAAG,GAAG,EAAE83C,EAAE93C,EAAE,GAAG,GAAGsL,EAAEotD,IAAI5gB,EAAE93C,EAAE,IAAI,GAAGsL,EAAEyQ,KAAK+7B,EAAE93C,EAAE,IAAI,GAAGsL,EAAEqtD,MAAM7gB,EAAE93C,EAAE,IAAI,GAAGsL,EAAEstD,IAAI9gB,EAAE93C,EAAE,IAAI,GAAGsL,EAAEutD,IAAI/gB,EAAE93C,EAAE,IAAI,GAAGsL,EAAEurD,KAAK/e,EAAE93C,EAAE,IAAI,GAAG,EAAEg0D,GAAE,CAAC1oD,EAAExU,OAAO,GAAG66B,GAAErmB,EAAExU,KAAK,IAAIuJ,KAAKkQ,IAAIohB,IAAG,EAAEA,IAAkD,EAA/CtxB,KAAKC,KAAKD,KAAKsF,MAAMgsB,GAAE,YAAY,eAAiB,KAAKtxB,KAAK6N,MAAMyjB,OAAMA,KAAI,IAAI,cAAc,EAAE,IAAImmB,EAAE93C,EAAE,IAAI,GAAGg0D,GAAE,GAAGlc,EAAE93C,EAAE,IAAI,GAAGg0D,GAAE,GAAGlc,EAAE93C,EAAE,IAAI,GAAG,KAAK83C,EAAE93C,EAAE,IAAI,GAAGsL,EAAE2tD,OAAOnhB,EAAE93C,EAAE,IAAI,GAAGsL,EAAEwtD,MAAM0C,UAAU,IAAI,EAAE1jB,EAAE93C,EAAE,IAAI,GACnf,EAAE83C,EAAE93C,EAAE,IAAI,GAAGsL,EAAEytD,MAAMyC,UAAU,IAAI,EAAE1jB,EAAE93C,EAAE,IAAI,GAAG,EAAE83C,EAAE93C,EAAE,IAAI,GAAGsL,EAAE0tD,MAAMwC,UAAU,IAAI,EAAE1jB,EAAE93C,EAAE,IAAI,GAAG,EAAEg0D,GAAE,CAAC1oD,EAAEotD,MAAM,GAAG/mC,GAAErmB,EAAEotD,IAAI,IAAIr4D,KAAKkQ,IAAIohB,IAAG,EAAEA,IAAkD,EAA/CtxB,KAAKC,KAAKD,KAAKsF,MAAMgsB,GAAE,YAAY,eAAiB,KAAKtxB,KAAK6N,MAAMyjB,OAAMA,KAAI,IAAI,cAAc,EAAE,IAAImmB,EAAE93C,EAAE,IAAI,GAAGg0D,GAAE,GAAGlc,EAAE93C,EAAE,IAAI,GAAGg0D,GAAE,GAAU,EAAE,IAA2GyH,GAAvGC,QAAG,EAAO,SAASC,KAAW,OAAO7jB,GAAb4jB,IAAI,GAAc,GAAG,GAAG,SAASE,GAAE75D,GAAU,KAAPA,EAAEu8C,GAAEv8C,IAAS,MAAM,IAAI+0D,GAAE,GAAG,OAAO/0D,EAAS05D,GAAGrJ,EAAG,WAAW,IAAIrwD,EAAEzK,EAAQukE,SAAS,OAAO,IAAI95D,EAAE,GAAGA,EAAE,GAAG,KAAK,WAAW,OAAO+5D,YAAYxrB,OAC1e,IAAsWyrB,GAAlWC,GAAG,GAAG,SAASC,KAAK,IAAIF,GAAG,CAAC,IAAwNp+D,EAApNoE,EAAE,CAACm6D,KAAK,WAAWC,QAAQ,WAAWC,KAAK,IAAIC,IAAI,IAAIC,KAAK,iBAAiBC,MAAM,kBAAkBC,WAAWA,UAAUC,WAAWD,UAAUC,UAAU,IAAI,KAAKp1D,QAAQ,IAAI,KAAK,SAASwS,EAAEm4C,GAAI,kBAAoB,IAAIr0D,KAAKq+D,QAAG,IAASA,GAAGr+D,UAAUoE,EAAEpE,GAAGoE,EAAEpE,GAAGq+D,GAAGr+D,GAAG,IAAIqC,EAAE,GAAG,IAAIrC,KAAKoE,EAAE/B,EAAE3G,KAAKsE,EAAE,IAAIoE,EAAEpE,IAAIo+D,GAAG/7D,EAAE,OAAO+7D,GAC/V,SAASnC,GAAG73D,EAAEpE,EAAEqC,EAAEsL,GAAGvJ,IAAIA,EAAEhK,MAAMA,KAAKg0C,OAAOhqC,EAAEhK,KAAKu4D,GAAGvuD,EAAEuuD,GAAGv4D,KAAKy9D,GAAG,KAAKz9D,KAAKqvD,GAAGiS,KAAKthE,KAAKwC,KAAKoD,EAAE5F,KAAKgkB,KAAK/b,EAAEjI,KAAKg8D,GAAG,GAAGh8D,KAAKk8D,GAAG,GAAGl8D,KAAK8+D,KAAKvrD,EAEqJ,SAAS0jD,GAAGjtD,EAAEpE,GAAG,IAAIqC,EAAE9G,MAAMgyD,EAAGnpD,GAAG,GAAuC,OAApCA,EAAE+G,EAAE/G,EAAE/B,EAAE,EAAEA,EAAExJ,QAAQmH,IAAIqC,EAAExJ,OAAOuL,GAAU/B,EAFpOhL,OAAO0nE,iBAAiB9C,GAAGrkE,UAAU,CAACiJ,KAAK,CAACokB,IAAI,WAAW,OAAO,OAAiB,IAAV7qB,KAAKgkB,OAAWjV,IAAI,SAAS/E,GAAGA,EAAEhK,KAAKgkB,MAAM,IAAIhkB,KAAKgkB,OAAO,MAAMhgB,MAAM,CAAC6mB,IAAI,WAAW,OAAO,OAAiB,IAAV7qB,KAAKgkB,OAAWjV,IAAI,SAAS/E,GAAGA,EAAEhK,KAAKgkB,MAAM,IAAIhkB,KAAKgkB,OAAO,QAAQm/C,KAAK3c,GAAErlD,MAAM,MAAMmhE,GAAG91C,GAAE,KAAK+1C,GAAE,QAAQA,GAAE,SAASA,GAAE,kBACzb,WAAYA,GAAE,QAAQnM,GAAG,IAAI,CAAC3vD,KAAK,WAAW,OAAO,GAAGzC,MAAM,SAAS4B,EAAEqC,EAAEsL,EAAEixB,GAAG,OAAOA,KAAKg+B,GAAG,YAAY,KAAKtL,GAAG,KAAKC,IAAID,GAAG,KAAKsI,IAAIgD,GAAG,WAAW,MAAMA,GAAG,YAAY,MAAM,IAAIx4D,EArCrL,WAAc,GAAG,kBAAkBwpB,QAAQ,oBAAoBA,OAAOE,gBAAgB,CAAC,IAAI1pB,EAAE,IAAI1G,WAAW,GAAG,OAAO,WAAqC,OAA1BkwB,OAAOE,gBAAgB1pB,GAAUA,EAAE,IAAI,GAAGqwD,EAAG,IAAI,IAAIz0D,EAAE5H,EAAQ,KAAU,OAAO,WAAW,OAAO4H,EAAE+qC,YAAY,GAAG,IAAI,MAAM1oC,IAAI,OAAO,WAAWwyD,GAAE,iBAqC/FnE,GAAK8M,GAAG,SAASp5D,GAAGo5D,GAAG,UAAUp5D,GAAGu4D,GAAE,YAAYA,GAAE,gBAA3O,GACA,WAAYA,GAAE,SAAS,IAAIv4D,EAAEu4D,GAAE,cAAcA,GAAE,iBAAiBD,GAAG,CAAC/J,GAAG,WAAW,IAAI3yD,EAAE26D,GAAGv2D,EAAE,KAAK,MAAM,IAA2J,OAAvJpE,EAAEo2D,GAAG,CAAC4D,OAAO,SAAS33D,EAAEsL,GAAG,IAAIixB,EAAE+hB,IAAGhzC,GAAG,IAAIixB,EAAE,MAAM,IAAIu6B,GAAE,GAA0E,OAAvE92D,EAAE,CAAC+rC,OAAO,KAAKukB,GAAG,CAACsG,GAAG,QAAQ7C,GAAG,CAACoE,SAAS,WAAW,OAAO57B,EAAEG,SAAiBqP,OAAO/rC,IAAWrC,IAAI,iBAA9Q,GACA,IAAIg/D,GAAG,CAAC56D,EAAE,SAASA,EAAEpE,EAAEqC,EAAEsL,GAAGknD,GAAE,qBAAqB11C,EAAE/a,GAAG,SAAS,CAACpE,EAAEmf,EAAEnf,GAAG,mBAAmBqC,EAAEsL,EAAEwR,EAAExR,GAAG,sBAAsBkN,EAAE,SAASzW,EAAEpE,GAAGk4D,KAAKA,IAAG,EA1CnJ,WAAc,SAAS9zD,EAAElE,GAAG,OAAOA,EAAEA,EAAE++D,eAAel6D,MAAM,sBAAsB7E,EAAE,GAAG,MAAM,IAAIF,GAAG,IAAI+pD,MAAMmV,cAAc78D,EAAE,IAAI0nD,KAAK/pD,EAAE,EAAE,GAAG2N,EAAE,IAAIo8C,KAAK/pD,EAAE,EAAE,GAAGA,EAAEqC,EAAE88D,oBAAoB,IAAIvgC,EAAEjxB,EAAEwxD,oBAAoBt1D,EAAEnH,KAAKoC,IAAI9E,EAAE4+B,GAAGub,EAAEyX,MAAM,GAAG,GAAG/nD,EAAEswC,EAAElvB,MAAM,GAAG7pB,OAAOpB,GAAG4+B,GAAGv8B,EAAE+B,EAAE/B,GAAGsL,EAAEvJ,EAAEuJ,GAAGtL,EAAEksD,EAAGlsD,GAAGsL,EAAE4gD,EAAG5gD,GAAGixB,EAAE5+B,GAAGm6C,EAAEwT,MAAM,GAAGtrD,EAAE83C,EAAEwT,KAAK,GAAG,GAAGhgD,IAAIwsC,EAAEwT,MAAM,GAAGhgD,EAAEwsC,EAAEwT,KAAK,GAAG,GAAGtrD,GA0CjNw2D,IAAMz0D,EAAE,IAAI2lD,KAAK,IAAI5P,EAAE/1C,GAAG,IAAI+1C,EAAEn6C,GAAG,GAAGoE,EAAEg7D,aAAajlB,EAAEn6C,EAAE,GAAG,GAAGoE,EAAEi7D,aAAallB,EAAEn6C,EAAE,GAAG,GAAGoE,EAAEk7D,WAAWnlB,EAAEn6C,EAAE,IAAI,GAAGoE,EAAEm7D,UAAUplB,EAAEn6C,EAAE,IAAI,GAAGoE,EAAEo7D,WAAWrlB,EAAEn6C,EAAE,IAAI,GAAGoE,EAAE86D,cAAc,KAAK/kB,EAAEn6C,EAAE,IAAI,GAAGoE,EAAEq7D,SAAS,IAAIp9D,EAAE,IAAI0nD,KAAK3lD,EAAE86D,cAAc,EAAE,GAAG/kB,EAAEn6C,EAAE,IAAI,IAAIoE,EAAEy5D,UAAUx7D,EAAEw7D,WAAW,MAAM,EAAE1jB,EAAEn6C,EAAE,IAAI,IAAK,GAAGoE,EAAE+6D,oBAAqB,IAAIxxD,EAAG,IAAIo8C,KAAK3lD,EAAE86D,cAC1e,EAAE,GAAIC,oBAA4I,OAAhG/6D,EAA+C,GAA5CuJ,IAA3BtL,EAAEA,EAAE88D,sBAA6B/6D,EAAE+6D,qBAAqBz8D,KAAKC,IAAIN,EAAEsL,IAAMwsC,EAAEn6C,EAAE,IAAI,GAAGoE,EAAEA,EAAE+1C,EAAEwT,MAAMvpD,EAAE,EAAE,IAAI,GAAG+1C,EAAEn6C,EAAE,IAAI,GAAGoE,EAASpE,GAAGsE,EAAE,SAASF,EAAEpE,GAAG,IAAkC,IAAI2N,EAA3B,GAAPvJ,EAAE+a,EAAE/a,IAAS,EAAHpE,EAAK,IAAIqC,GAAG,QAAesL,EAAEysC,GAAEh2C,EAAE,CAACsyD,IAAG,IAAKvlB,OAAO/sC,EAAE,GAAK,EAAFpE,IAAMoE,GAAG,KAAO,EAAFpE,IAAMoE,GAAG,KAAO,EAAFpE,IAAMoE,GAAG,KAAK/B,EAAE+B,GAAG43D,GAAGruD,EAAEvJ,IAAI,EAAE,GAAG/B,GAAG,GAAG,OAAOA,EAAE,MAAMu8B,GAAG,MAAM,qBAAqB8+B,IAAG9+B,aAAau6B,IAAGtE,GAAEj2B,IAAIA,EAAE43B,KAAK/6D,EAAE,SAAS2I,EAAEpE,GAAG,IAAI,OAAcguD,GAAP5pD,EAAE+a,EAAE/a,GAAQpE,GAAG,EAAE,MAAMqC,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,IAAIA,EAAEm0D,KAAKnrD,EAAE,SAASjH,GAAG,IAAI,OAC7f44D,GADogB54D,EACzgB+a,EAAE/a,IAAS,EAAE,MAAMpE,GAAG,MAAM,qBAAqB09D,IAAG19D,aAAam5D,IAAGtE,GAAE70D,IAAIA,EAAEw2D,KAAKv1D,EAAE,SAASmD,EAAEpE,GAAG,IAAI,IAAIqC,EAAEs+C,GAAEv8C,GAAG,IAAI/B,EAAE,MAAM,IAAI82D,GAAE,GAAgB,OAAbnL,GAAG3rD,EAAE8uC,KAAKnxC,GAAU,EAAE,MAAM2N,GAAG,MAAM,qBAAqB+vD,IAAG/vD,aAAawrD,IAAGtE,GAAElnD,IAAIA,EAAE6oD,KAAKr3C,EAAE,SAAS/a,GAAG,IAAI,IAAIpE,EAAE2gD,GAAEv8C,GAAG,IAAIpE,EAAE,MAAM,IAAIm5D,GAAE,GAAc,OAAX6D,GAAGh9D,EAAEmxC,MAAa,EAAE,MAAM9uC,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,IAAIA,EAAEm0D,KAAKx2D,EAAE,SAASoE,EAAEpE,EAAEqC,GAAG07D,GAAG17D,EAAE,IAAI,IAAIsL,EAAEswD,GAAE75D,GAAG,OAAOpE,GAAG,KAAK,EAAE,IAAI4+B,EAAEo/B,KAAK,OAAO,EAAEp/B,GAAG,GAAGsvB,GAAGvgD,EAAEoxB,KAAKpxB,EAAEma,MAAM,EAAE8W,GAAG66B,GAAG,KAAK,EAAE,KAAK,EACzZ,KAAK,GAAG,KAAK,GAAG,OAAO,EAD6Y,KAAK,EAAE,OAAO9rD,EAAEma,MAC3f,KAAK,EAAE,OAAO8W,EAAEo/B,KAAKrwD,EAAEma,OAAO8W,EAAE,EAAE,KAAK,GAAG,OAAOA,EAAEo/B,KAAK5H,EAAGx3B,EAAE,GAAG,GAAG,EAAE,EAA2B,KAAK,GAAG,KAAK,EAA2C,QAAQ,OAAO,GAA9C,KAAK,EAAE,OAAOub,EAAEulB,MAAM,GAAG,IAAI,GAAqB,MAAM71D,GAAG,MAAM,qBAAqB6zD,IAAG7zD,aAAasvD,IAAGtE,GAAEhrD,IAAIA,EAAE2sD,KAAKrrD,EAAE,SAAS/G,EAAEpE,GAAG,IAAe,OAAO49D,GAAGnL,GAAfwL,GAAE75D,GAAkB26B,KAAK/+B,GAAG,MAAM2N,GAAG,MAAM,qBAAqB+vD,IAAG/vD,aAAawrD,IAAGtE,GAAElnD,IAAIA,EAAE6oD,KAAK9B,EAAE,SAAStwD,EAAEpE,EAAEqC,GAAG,IAAI,IAAIsL,EAAEgzC,GAAEv8C,GAAG,IAAIuJ,EAAE,MAAM,IAAIwrD,GAAE,GAAG,GAAG,KAAa,QAARxrD,EAAEma,OAAe,MAAM,IAAIqxC,GAAE,IAAiB,OAAb8D,GAAGtvD,EAAEwjC,KAAK9uC,GAAU,EAAE,MAAMu8B,GAAG,MAAM,qBACte8+B,IAAG9+B,aAAau6B,IAAGtE,GAAEj2B,IAAIA,EAAE43B,KAAKl3C,EAAE,SAASlb,EAAEpE,GAAG,IAAI,OAAG,IAAIA,GAAS,GAAMA,EAAEutD,EAAG,KAAK,GAAS,IAAGpiD,EAAE,IAAIlL,EAAEmE,EAAEpE,GAAUoE,GAAE,MAAM/B,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,IAAIA,EAAEm0D,KAAK5pC,EAAE,WAAW,OAAO,GAAGjf,EAAE,WAAW,OAAO,IAAIyP,EAAE,SAAShZ,EAAEpE,GAAG,IAAI,OAAc49D,GAAGb,GAAV34D,EAAE+a,EAAE/a,GAAWpE,GAAG,MAAMqC,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,IAAIA,EAAEm0D,KAAKrsD,EAAE,SAAS/F,EAAEpE,GAAG,IAAI,MAAqB,OAAPoE,EAAEgG,GAAThG,EAAE+a,EAAE/a,KAAkBA,EAAEvL,OAAO,KAAKuL,EAAEA,EAAE3C,OAAO,EAAE2C,EAAEvL,OAAO,IAAI8jE,GAAEv4D,EAAEpE,GAAG,EAAE,MAAMqC,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAC1e82D,IAAGtE,GAAExyD,IAAIA,EAAEm0D,KAAKjkD,EAAE,SAASnO,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE/0B,GAAG,IAAIzF,EAAE,CAACyF,IAAI,GAAG,IAAI3J,GAAE,EAAG,GAAG,KAAO,GAAFyN,IAAO,IAAIvJ,EAAE,MAAM,IAAImO,GAAG,OAAO,CAAC,GAAG,KAAO,GAAF5E,GAAM,CAAC,IAAI7C,EAAE6lD,GAAG3wD,GAAG,IAAI8K,EAAE,CAACyH,GAAG,GAAG,MAAMnO,EAAElE,GAAE,MAAO,CAAC,IAAI0kB,EAAE+7B,GAAE/hB,GAAG,IAAIha,EAAE,CAACrS,GAAG,EAAE,MAAMnO,EAAE,IAAIib,EAAExV,EAAE,GAAG,KAAO,EAAFxH,IAAM,KAAO,EAAFsL,IAAM,KAAa,QAARiX,EAAEkD,OAAe,MAAM,IAAIqxC,GAAE,GAAG,GAAG,KAAa,QAARv0C,EAAEkD,OAAe,MAAM,IAAIqxC,GAAE,GAAG,IAAIv0C,EAAE0xC,GAAGmC,GAAG,MAAM,IAAIU,GAAE,IAAI,IAAIxgC,EAAE/T,EAAE0xC,GAAGmC,GAAG7zC,EAAExgB,EAAEpE,EAAEqf,EAAEhd,EAAEsL,GAAG7C,EAAE6tB,EAAE8iC,GAAGv7D,EAAEy4B,EAAEoB,GAAG4jC,GAAG7yD,GAAG,CAAC6vD,GAAG7vD,EAAE2vD,GAAGz6D,EAAE+5B,GAAG75B,EAAEu5D,GAAG76B,EAAE48B,GAAGn5D,EAAEylB,MAAMna,EAAExM,OAAO0I,GAAG0I,EAAEzH,GAAG,OAAOyH,EAAE,MAAMk8C,GAAI,MAAM,qBAAqBiP,IAAGjP,aAAc0K,IAAGtE,GAAEpG,IAAKA,EAAG+H,KACxf5xC,EAAE,SAASxgB,EAAEpE,GAAG,IAAI,IAAIqC,EAAEs7D,GAAGv5D,GAAG,GAAG,IAAIpE,GAAGqC,EAAE,CAAC,GAAGrC,IAAIqC,EAAEo4D,GAAG,CAAC,IAAI9sD,EAAEgzC,GAAEt+C,EAAEo3D,IAAI,GAAG9rD,GAAQ,EAALtL,EAAEm5D,GAAK,CAAC,IAAI58B,EAAEv8B,EAAEylB,MAAMje,EAAExH,EAAElB,OAAOjB,EAAED,EAAE5B,MAAM+F,EAAEA,EAAEpE,GAAG2N,GAAGA,EAAE2oD,GAAGqC,IAAIhrD,EAAE2oD,GAAGqC,GAAGhrD,EAAEzN,EAAE2J,EAAE7J,EAAE4+B,GAAG++B,GAAGv5D,GAAG,KAAK/B,EAAE03B,IAAI23B,GAAGrvD,EAAEs4D,IAAI,IAAIpoD,EAAE,OAAOA,GAAG,GAAG,OAAOA,EAAE,MAAMzH,GAAG,MAAM,qBAAqB4yD,IAAG5yD,aAAaquD,IAAGtE,GAAE/pD,IAAIA,EAAE0rD,KAAK79B,EAAE,SAASv0B,EAAEpE,EAAEqC,GAAG07D,GAAG17D,EAAE,IAA0B,OAAO6rD,GAAvB/uC,EAAE/a,GAA0BpE,EAArBqC,EAAE27D,KAAK,GAAmBvE,GAAG,MAAM5vD,GAAG,MAAM,qBAAqB6zD,IAAG7zD,aAAasvD,IAAGtE,GAAEhrD,IAAIA,EAAE2sD,KAAK3B,EAAE,SAASzwD,EAAEpE,EAAEqC,GAAG,IAAW,GAAP+B,EAAE+a,EAAE/a,GAAM,GAAG/B,EAAE,IAAIsL,GAAG,OAAO,CAAC,IAAIixB,EAAEg6B,GAAGx0D,GAAGyF,EAAEnH,KAAKC,IAAIN,EAAEkrD,EAAG3uB,IAClf1+B,EAAEoE,EAAEtE,EAAE6J,GAAGsB,EAAEyzB,EAAE3+B,EAAED,EAAEqC,EAAE,GAAGiC,EAAEtE,EAAE6J,GAAG3J,EAAEyN,EAAE9D,EAAE,OAAO8D,EAAE,MAAM4E,GAAG,MAAM,qBAAqBmrD,IAAGnrD,aAAa4mD,IAAGtE,GAAEtiD,IAAIA,EAAEikD,KAAKxb,EAAE,SAAS52C,GAAG,IAAW,IAAIpE,EAAEo6C,GAAbh2C,EAAE+a,EAAE/a,GAAa,CAACgqC,QAAO,IAAK+C,KAAK9uC,EAAE02D,GAAG30D,GAAGuJ,EAAE6tD,GAAGx7D,EAAEqC,GAAGu8B,EAAEy9B,GAAGr8D,EAAEqC,GAAE,GAAI,GAAGu8B,EAAE,MAAM,IAAIu6B,GAAEv6B,GAAG,IAAI5+B,EAAEo2D,GAAG+D,MAAM,MAAM,IAAIhB,GAAE,IAAI,GAAGxrD,EAAEkqD,GAAG,MAAM,IAAIsB,GAAE,IAAI,IAAIyC,GAAEiB,gBAAgBjB,GAAEiB,eAAez4D,GAAG,MAAMyF,GAAGmxC,EAAE,0CAA0C52C,EAAE,0BAA0ByF,EAAE2gB,SAASxqB,EAAEo2D,GAAG+D,MAAMn6D,EAAEqC,GAAG05D,GAAGpuD,GAAG,IAAOiuD,GAAEkB,cAAalB,GAAEkB,aAAa14D,GAAG,MAAMyF,GAAGmxC,EAAE,wCAC9d52C,EAAE,0BAA0ByF,EAAE2gB,SAAS,OAAO,EAAE,MAAM3gB,GAAG,MAAM,qBAAqB6zD,IAAG7zD,aAAasvD,IAAGtE,GAAEhrD,IAAIA,EAAE2sD,KAAKt8D,EAAE,SAASkK,EAAEpE,GAAG,IAAI,OAAc49D,GAAGnL,GAAVruD,EAAE+a,EAAE/a,GAAWpE,GAAG,MAAMqC,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,IAAIA,EAAEm0D,KAAKnyD,EAAE,SAASD,GAAG,IAAI,OAAc0uD,GAAP1uD,EAAE+a,EAAE/a,IAAS,EAAE,MAAMpE,GAAG,MAAM,qBAAqB09D,IAAG19D,aAAam5D,IAAGtE,GAAE70D,IAAIA,EAAEw2D,KAAKrD,EAAE,WAAW,OAAO,YAAYlzD,EAAE,SAASmE,EAAEpE,EAAEqC,GAAGpC,EAAE0/D,WAAWv7D,EAAEpE,EAAEA,EAAEqC,IAAIA,EAAE,SAAS+B,GAAG,IAAIpE,EAAEC,EAAEpH,OAAc,GAAG,YAAVuL,KAAK,GAAkB,OAAM,EAAG,IAAI,IAAI/B,EAAE,EAAE,GAAGA,EAAEA,GAAG,EAAE,CAAC,IAAIsL,EAAE3N,GACnf,EAAE,GAAGqC,GAAGsL,EAAEjL,KAAKC,IAAIgL,EAAEvJ,EAAE,WAA2B,GAAhBuJ,EAAEjL,KAAKoC,IAAIV,EAAEuJ,IAAO,QAAQA,GAAG,MAAMA,EAAE,OAAOvJ,EAAE,CAAC,IAAIipD,EAAGiG,KAAK5wD,KAAKC,IAAI,WAAWgL,GAAG+oD,EAAG54D,WAAW,QAAQ,IAAI+4D,IAAK,IAAIj4B,EAAE,EAAE,MAAMx6B,EAAE,MAAMyF,IAAI+0B,OAAE,EAAO,GAAGA,EAAE,OAAM,EAAG,OAAM,GAAIx0B,EAAE,SAAShG,GAAG,IAAI,IAAIpE,EAAE89D,KAAKA,KAAK99D,EAAEoE,MAAM6I,EAAE,SAAS7I,EAAEpE,GAAG,IAAIqC,EAAE,EAAkI,OAAhIi8D,KAAKtrC,SAAQ,SAASrlB,EAAEixB,GAAG,IAAI/0B,EAAE7J,EAAEqC,EAAkB,IAAhBu8B,EAAEub,EAAE/1C,EAAE,EAAEw6B,GAAG,GAAG/0B,EAAMA,EAAE,EAAEA,EAAE8D,EAAE9U,SAASgR,EAAEvF,EAAEs6B,KAAK,GAAGjxB,EAAE5L,WAAW8H,GAAGvF,EAAEs6B,GAAG,GAAG,EAAEv8B,GAAGsL,EAAE9U,OAAO,KAAW,GAAGuZ,EAAE,SAAShO,EAAEpE,GAAG,IAAIqC,EAAEi8D,KAAKnkB,EAAE/1C,GAAG,GAAG/B,EAAExJ,OAAO,IAAI8U,EAAE,EACrc,OADuctL,EAAE2wB,SAAQ,SAAS4L,GAAGjxB,GAAGixB,EAAE/lC,OAAO,KACnfshD,EAAEn6C,GAAG,GAAG2N,EAAS,GAAGixB,EAAE,SAASx6B,GAAG,IAAqB,OAAN+pD,GAAL8P,GAAE75D,IAAgB,EAAE,MAAM/B,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,GAAGA,EAAEm0D,KAAK7hD,EAAE,SAASvQ,EAAEpE,GAAG,IAAI,IAAIqC,EAAE47D,GAAE75D,GAA0D,OAAvDE,EAAEtE,GAAG,GAAGqC,EAAE+2D,IAAI,EAAEsB,GAAEr4D,EAAE+b,MAAM,EAAE,SAAgB,MAAP/b,EAAE+b,MAAY,EAAE,EAAS,EAAE,MAAMzQ,GAAG,MAAM,qBAAqB+vD,IAAG/vD,aAAawrD,IAAGtE,GAAElnD,GAAGA,EAAE6oD,KAAK1rD,EAAE,SAAS1G,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIvJ,EAAE,CAAC,IAAI,IAAIw6B,EAAEq/B,GAAE75D,GAAGyF,EAAEzF,EAAE,EAAEyF,EAAExH,EAAEwH,IAAI,CAAC,IAAI3J,EAAEi6C,EAAEn6C,GAAG,EAAE6J,EAAE,IAAI,GAAG0I,EAAEmgD,GAAG9zB,EAAEt6B,EAAE61C,EAAEn6C,EAAE,EAAE6J,GAAG,GAAG3J,OAAE,GAAQ,GAAG,EAAEqS,EAAE,CAAC,IAAIzH,GAAG,EAAE,MAAM1G,EAAO,GAALA,GAAGmO,EAAKA,EAAErS,EAAE,MAAM4K,EAAE1G,EAAY,OAAV+1C,EAAExsC,GAAG,GAAG7C,EAAS,EAAE,MAAM8Z,GAAG,MAAM,qBAAqB84C,IACzf94C,aAAau0C,IAAGtE,GAAEjwC,GAAGA,EAAE4xC,KAAKt2D,EAAE,WAASkE,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GAAG,IAAI,IAAI/0B,EAAEo0D,GAAE75D,GAA0B,OAAI,mBAA3BA,EAAE,WAAW/B,GAAGrC,IAAI,KAA4B,kBAAkBoE,GAAS,IAAGi5D,GAAGxzD,EAAEzF,EAAEuJ,GAAG0oD,GAAE,CAACxsD,EAAE6gB,WAAW,GAAGsJ,GAAEnqB,EAAE6gB,SAAS,IAAIhoB,KAAKkQ,IAAIohB,IAAG,EAAEA,IAAkD,EAA/CtxB,KAAKC,KAAKD,KAAKsF,MAAMgsB,GAAE,YAAY,eAAiB,KAAKtxB,KAAK6N,MAAMyjB,OAAMA,KAAI,IAAI,cAAc,EAAE,IAAImmB,EAAEvb,GAAG,GAAGy3B,GAAE,GAAGlc,EAAEvb,EAAE,GAAG,GAAGy3B,GAAE,GAAGxsD,EAAEohB,IAAI,IAAI7mB,GAAG,IAAIuJ,IAAI9D,EAAEohB,GAAG,MAAa,GAAE,MAAM/qB,GAAG,MAAM,qBAAqBw9D,IAAGx9D,aAAai5D,IAAGtE,GAAE30D,GAAGA,EAAEs2D,KAAKrhC,EAAE,SAAS/wB,GAAG,IAAI,IAAIpE,EAAEi+D,GAAE75D,GAAG,OAAOpE,EAAEs2D,IAAIt2D,EAAEs2D,GAAGsJ,OAAO5/D,EAAEs2D,GAAGsJ,MAAM5/D,GAC7f,EAAE,MAAMqC,GAAG,MAAM,qBAAqBq7D,IAAGr7D,aAAa82D,IAAGtE,GAAExyD,GAAGA,EAAEm0D,KAAKp3C,EAAE,SAAShb,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIvJ,EAAE,CAAC,IAAI,IAAIw6B,EAAEq/B,GAAE75D,GAAGyF,EAAEzF,EAAE,EAAEyF,EAAExH,EAAEwH,IAAI,CAAC,IAAI3J,EAAE+tD,GAAGrvB,EAAEt6B,EAAE61C,EAAEn6C,EAAE,EAAE6J,GAAG,GAAGswC,EAAEn6C,GAAG,EAAE6J,EAAE,IAAI,QAAG,GAAQ,GAAG,EAAE3J,EAAE,CAAC,IAAIqS,GAAG,EAAE,MAAMnO,EAAEA,GAAGlE,EAAEqS,EAAEnO,EAAY,OAAV+1C,EAAExsC,GAAG,GAAG4E,EAAS,EAAE,MAAMzH,GAAG,MAAM,qBAAqB4yD,IAAG5yD,aAAaquD,IAAGtE,GAAE/pD,GAAGA,EAAE0rD,KAAK3sD,EAAE,SAASzF,GAAG,IAAIpE,EAAE+pD,KAAKpX,MAA4C,OAAtCwH,EAAE/1C,GAAG,GAAGpE,EAAE,IAAI,EAAEm6C,EAAE/1C,EAAE,GAAG,GAAGpE,EAAE,IAAI,IAAI,EAAS,GAAGm6C,EAAE,SAAS/1C,GAAG,IAAIpE,EAAE+pD,KAAKpX,MAAM,IAAI,EAAiB,OAAfvuC,IAAI+1C,EAAE/1C,GAAG,GAAGpE,GAAUA,GAAGqf,EAAE,SAASjb,EAAEpE,GAAG,GAAGA,EAAE,CAAC,IAAIqC,EAAErC,EAAE,EAAEA,EAAE,IAAIm6C,EAAE93C,GAAG,GAAGrC,GAAGm6C,EAAE93C,EAAE,GAAG,GAAG,SAASrC,EACxf+pD,KAAKpX,MAAMvuC,EAAE+a,EAAE/a,GAAG,IAAI,IAAIuJ,EAAEysC,GAAEh2C,EAAE,CAACsyD,IAAG,IAAKvlB,KAAKxjC,EAAEyoD,GAAG2D,GAAGpsD,EAAE,CAAC2rD,UAAU52D,KAAKoC,IAAI9E,EAAEA,KAAK,IAAI4+B,EAAE,EAAE,MAAM/0B,GAAG,KAAKA,aAAasvD,IAAG,CAACn5D,EAAE,CAAW,KAAV4+B,EAAE/kC,SAAci5C,MAAM,CAAC,IAAI,MAAMj5C,QAAS,MAAMqG,GAAG0+B,EAAE1+B,EAAE,IAAI0+B,EAAEkU,MAAM,CAAClU,EAAE,6BAA6B,MAAM5+B,GAAG4+B,EAAEA,EAAEkU,MAAM9zC,WAAoE,MAAzD9E,EAAE2lE,kBAAkBjhC,GAAG,KAAK1kC,EAAE2lE,mBAAmBjhC,EAxDxH,SAAYx6B,GAAG,OAAOA,EAAEsF,QAAQ,iBAAgB,SAAS1J,GAAG,OAAOA,IAAIA,EAAEA,EAAEA,EAAE,KAAKA,EAAE,OAwDsCstD,CAAG1uB,GAAS/0B,EAAE,MAAM+0B,EAAGA,EAAE/0B,EAAE2sD,GAAGrc,EAAEulB,MAAM,GAAG9gC,EAAEA,GAAG,EAAE,OAAOA,KACxW,WAAY,SAASx6B,EAAEw6B,GAAG1kC,EAAE4lE,IAAIlhC,EAAEpnC,QAAQ61D,EAAGnzD,EAAE4lE,IAAIzJ,EAAEQ,IAAK1D,EAAEj5D,EAAE4lE,IAAI9L,GAAG6D,EAAGhvC,QAAQ3uB,EAAE4lE,IAAI9rC,GAAGvG,KAAKvzB,EAAE6lE,wBAAwB7lE,EAAE6lE,uBAAuBtyC,IAAI,GAAGA,KAAK,OAAO2/B,KAAK4S,cAAc5S,IAAIA,GAAG,MAAMkB,KAAK1vB,EAAE0vB,GAAGA,GAAG,KAAK1vB,MAAM,SAAS5+B,EAAE4+B,GAAGx6B,EAAEw6B,EAAEqhC,UAAU,SAAS59D,EAAEu8B,GAAG,OA1DtQ,WAAc,IAAIo3B,IAAK1B,GAAIC,GAAI,CAAC,GAAG,oBAAoB2L,QAAQjI,GAAEK,WAAW,WAAW,OAAO4H,MAAMjI,GAAE,CAACkI,YAAY,gBAAgB1T,MAAK,SAASroD,GAAG,IAAIA,EAAEg8D,GAAG,KAAK,uCAAuCnI,GAAE,IAAI,OAAO7zD,EAAEi8D,iBAAgBC,OAAM,WAAW,OAAO3H,QAAO,GAAG1E,EAAG,OAAO,IAAI1sC,SAAQ,SAASnjB,EAAEpE,GAAGi0D,EAAGgE,IAAE,SAAS51D,GAAG+B,EAAE,IAAI1G,WAAW2E,MAAKrC,MAAK,OAAOunB,QAAQC,UAAUilC,MAAK,WAAW,OAAOkM,QA0D7HlL,GAAKhB,MAAK,SAAS5iD,GAAG,OAAO0pD,YAAYgN,YAAY12D,EAAE8D,MAAK8+C,MAAK,SAAS5iD,GAAG,OAAOA,KAAI4iD,KAAK7tB,GAAE,SAAS/0B,GAAGmxC,EAAE,0CAA0CnxC,GAAGgrD,GAAEhrD,MAAK,IAAI8D,EAAE,CAACvJ,EAAE46D,IACvb,GAD2bvxC,KAAKvzB,EAAE6lE,wBAAwB7lE,EAAE6lE,uBAAuBtyC,IAChfvzB,EAAEsmE,gBAAgB,IAAI,OAAOtmE,EAAEsmE,gBAAgB7yD,EAAEvJ,GAAG,MAAMw6B,GAAG,OAAOoc,EAAE,sDAAsDpc,IAAG,EAAsBo3B,GAAI,oBAAoBzC,YAAYkN,sBAAsBpI,MAAMJ,GAAEK,WAAW,YAAY,oBAAoB4H,MAAM79D,EAAErC,GAAGkgE,MAAMjI,GAAE,CAACkI,YAAY,gBAAgB1T,MAAK,SAAS7tB,GAAG,OAAO20B,YAAYkN,qBAAqB7hC,EAAEjxB,GAAG8+C,KAAKzsD,GAAE,SAAS6J,GAAyF,OAAtFmxC,EAAE,kCAAkCnxC,GAAGmxC,EAAE,6CAAoD34C,EAAErC,SADre,GAEA9F,EAAEwmE,mBAAmB,WAAW,OAAOxmE,EAAEwmE,mBAAmBxmE,EAAE4lE,IAAI9rC,GAAGr4B,MAAM,KAAKH,YAAYtB,EAAEymE,cAAc,WAAW,OAAOzmE,EAAEymE,cAAczmE,EAAE4lE,IAAI3lD,GAAGxe,MAAM,KAAKH,YAAY,IAAIkkE,GAAGxlE,EAAE0mE,kBAAkB,WAAW,OAAOlB,GAAGxlE,EAAE0mE,kBAAkB1mE,EAAE4lE,IAAIzN,GAAG12D,MAAM,KAAKH,YAAYtB,EAAE2mE,cAAc,WAAW,OAAO3mE,EAAE2mE,cAAc3mE,EAAE4lE,IAAI7H,GAAGt8D,MAAM,KAAKH,YAAYtB,EAAE4mE,kBAAkB,WAAW,OAAO5mE,EAAE4mE,kBAAkB5mE,EAAE4lE,IAAI3G,GAAGx9D,MAAM,KAAKH,YAClbtB,EAAE6mE,oBAAoB,WAAW,OAAO7mE,EAAE6mE,oBAAoB7mE,EAAE4lE,IAAIl5C,GAAGjrB,MAAM,KAAKH,YAAYtB,EAAE8mE,eAAe,WAAW,OAAO9mE,EAAE8mE,eAAe9mE,EAAE4lE,IAAIpF,GAAG/+D,MAAM,KAAKH,YAAYtB,EAAE+mE,wBAAwB,WAAW,OAAO/mE,EAAE+mE,wBAAwB/mE,EAAE4lE,IAAInf,GAAGhlD,MAAM,KAAKH,YAAYtB,EAAEgnE,oBAAoB,WAAW,OAAOhnE,EAAEgnE,oBAAoBhnE,EAAE4lE,IAAIlf,GAAGjlD,MAAM,KAAKH,YAAYtB,EAAEinE,oBAAoB,WAAW,OAAOjnE,EAAEinE,oBAAoBjnE,EAAE4lE,IAAIlE,GAAGjgE,MAAM,KAAKH,YACxctB,EAAEknE,qBAAqB,WAAW,OAAOlnE,EAAEknE,qBAAqBlnE,EAAE4lE,IAAI1lB,GAAGz+C,MAAM,KAAKH,YAAYtB,EAAEmnE,sBAAsB,WAAW,OAAOnnE,EAAEmnE,sBAAsBnnE,EAAE4lE,IAAInD,GAAGhhE,MAAM,KAAKH,YAAYtB,EAAEonE,mBAAmB,WAAW,OAAOpnE,EAAEonE,mBAAmBpnE,EAAE4lE,IAAIpC,GAAG/hE,MAAM,KAAKH,YAAYtB,EAAEqnE,oBAAoB,WAAW,OAAOrnE,EAAEqnE,oBAAoBrnE,EAAE4lE,IAAI7B,GAAGtiE,MAAM,KAAKH,YAAYtB,EAAEsnE,qBAAqB,WAAW,OAAOtnE,EAAEsnE,qBAAqBtnE,EAAE4lE,IAAI5jD,GAAGvgB,MAAM,KAAKH,YAChdtB,EAAEunE,uBAAuB,WAAW,OAAOvnE,EAAEunE,uBAAuBvnE,EAAE4lE,IAAI4B,GAAG/lE,MAAM,KAAKH,YAAYtB,EAAEynE,sBAAsB,WAAW,OAAOznE,EAAEynE,sBAAsBznE,EAAE4lE,IAAIvS,IAAI5xD,MAAM,KAAKH,YAAYtB,EAAE0nE,oBAAoB,WAAW,OAAO1nE,EAAE0nE,oBAAoB1nE,EAAE4lE,IAAIrR,IAAI9yD,MAAM,KAAKH,YAAYtB,EAAE2nE,sBAAsB,WAAW,OAAO3nE,EAAE2nE,sBAAsB3nE,EAAE4lE,IAAI3N,IAAIx2D,MAAM,KAAKH,YAAYtB,EAAE4nE,qBAAqB,WAAW,OAAO5nE,EAAE4nE,qBAAqB5nE,EAAE4lE,IAAItS,IAAI7xD,MAAM,KAAKH,YAC9dtB,EAAE6nE,qBAAqB,WAAW,OAAO7nE,EAAE6nE,qBAAqB7nE,EAAE4lE,IAAI/R,IAAIpyD,MAAM,KAAKH,YAAYtB,EAAE8nE,sBAAsB,WAAW,OAAO9nE,EAAE8nE,sBAAsB9nE,EAAE4lE,IAAIhS,IAAInyD,MAAM,KAAKH,YAAYtB,EAAE+nE,oBAAoB,WAAW,OAAO/nE,EAAE+nE,oBAAoB/nE,EAAE4lE,IAAIoC,IAAIvmE,MAAM,KAAKH,YAAYtB,EAAEioE,qBAAqB,WAAW,OAAOjoE,EAAEioE,qBAAqBjoE,EAAE4lE,IAAI9R,IAAIryD,MAAM,KAAKH,YAAYtB,EAAEkoE,sBAAsB,WAAW,OAAOloE,EAAEkoE,sBAAsBloE,EAAE4lE,IAAI5R,IAAIvyD,MAAM,KAAKH,YAC3dtB,EAAEmoE,uBAAuB,WAAW,OAAOnoE,EAAEmoE,uBAAuBnoE,EAAE4lE,IAAIhmC,IAAIn+B,MAAM,KAAKH,YAAYtB,EAAEooE,qBAAqB,WAAW,OAAOpoE,EAAEooE,qBAAqBpoE,EAAE4lE,IAAI7R,IAAItyD,MAAM,KAAKH,YAAYtB,EAAEqoE,qBAAqB,WAAW,OAAOroE,EAAEqoE,qBAAqBroE,EAAE4lE,IAAI3R,IAAIxyD,MAAM,KAAKH,YAAYtB,EAAEsoE,qBAAqB,WAAW,OAAOtoE,EAAEsoE,qBAAqBtoE,EAAE4lE,IAAIzO,IAAI11D,MAAM,KAAKH,YAAYtB,EAAEuoE,mBAAmB,WAAW,OAAOvoE,EAAEuoE,mBAAmBvoE,EAAE4lE,IAAI1O,IAAIz1D,MAAM,KAAKH,YACzdtB,EAAEwoE,qBAAqB,WAAW,OAAOxoE,EAAEwoE,qBAAqBxoE,EAAE4lE,IAAIpO,IAAI/1D,MAAM,KAAKH,YAAYtB,EAAEyoE,kBAAkB,WAAW,OAAOzoE,EAAEyoE,kBAAkBzoE,EAAE4lE,IAAIjO,IAAIl2D,MAAM,KAAKH,YAAYtB,EAAE0oE,mBAAmB,WAAW,OAAO1oE,EAAE0oE,mBAAmB1oE,EAAE4lE,IAAIhO,IAAIn2D,MAAM,KAAKH,YAAYtB,EAAE2oE,8BAA8B,WAAW,OAAO3oE,EAAE2oE,8BAA8B3oE,EAAE4lE,IAAI/N,IAAIp2D,MAAM,KAAKH,YAAYtB,EAAE4oE,aAAa,WAAW,OAAO5oE,EAAE4oE,aAAa5oE,EAAE4lE,IAAItN,IAAI72D,MAAM,KAAKH,YACjdtB,EAAE6oE,wBAAwB,WAAW,OAAO7oE,EAAE6oE,wBAAwB7oE,EAAE4lE,IAAIlN,IAAIj3D,MAAM,KAAKH,YAAYtB,EAAE8oE,gBAAgB,WAAW,OAAO9oE,EAAE8oE,gBAAgB9oE,EAAE4lE,IAAIhN,IAAIn3D,MAAM,KAAKH,YAAYtB,EAAE+oE,cAAc,WAAW,OAAO/oE,EAAE+oE,cAAc/oE,EAAE4lE,IAAIpM,IAAI/3D,MAAM,KAAKH,YAAYtB,EAAEgpE,iBAAiB,WAAW,OAAOhpE,EAAEgpE,iBAAiBhpE,EAAE4lE,IAAI/L,IAAIp4D,MAAM,KAAKH,YAAYtB,EAAEipE,kBAAkB,WAAW,OAAOjpE,EAAEipE,kBAAkBjpE,EAAE4lE,IAAIzL,IAAI14D,MAAM,KAAKH,YACzbtB,EAAEkpE,4BAA4B,WAAW,OAAOlpE,EAAEkpE,4BAA4BlpE,EAAE4lE,IAAIxL,IAAI34D,MAAM,KAAKH,YAAYtB,EAAEmpE,cAAc,WAAW,OAAOnpE,EAAEmpE,cAAcnpE,EAAE4lE,IAAIvL,IAAI54D,MAAM,KAAKH,YAAY,IAAIgyD,GAAGtzD,EAAEopE,QAAQ,WAAW,OAAO9V,GAAGtzD,EAAEopE,QAAQppE,EAAE4lE,IAAIlM,IAAIj4D,MAAM,KAAKH,YAAYk2D,GAAGx3D,EAAEqpE,MAAM,WAAW,OAAO7R,GAAGx3D,EAAEqpE,MAAMrpE,EAAE4lE,IAAIrL,IAAI94D,MAAM,KAAKH,YAAYtB,EAAEspE,4BAA4B,WAAW,OAAOtpE,EAAEspE,4BAA4BtpE,EAAE4lE,IAAI7L,IAAIt4D,MAAM,KAAKH,YAC/b,IAC2TioE,GADvT9V,GAAGzzD,EAAEwpE,aAAa,WAAW,OAAO/V,GAAGzzD,EAAEwpE,aAAaxpE,EAAE4lE,IAAI5L,IAAIv4D,MAAM,KAAKH,YAAYyvB,GAAG/wB,EAAEypE,eAAe,WAAW,OAAO14C,GAAG/wB,EAAEypE,eAAezpE,EAAE4lE,IAAI3L,IAAIx4D,MAAM,KAAKH,YAAYo2D,GAAG13D,EAAE0pE,eAAe,WAAW,OAAOhS,GAAG13D,EAAE0pE,eAAe1pE,EAAE4lE,IAAI1L,IAAIz4D,MAAM,KAAKH,YAAYq2D,GAAG33D,EAAE2pE,UAAU,WAAW,OAAOhS,GAAG33D,EAAE2pE,UAAU3pE,EAAE4lE,IAAInK,IAAIh6D,MAAM,KAAKH,YAAYu2D,GAAG73D,EAAE4pE,aAAa,WAAW,OAAO/R,GAAG73D,EAAE4pE,aAAa5pE,EAAE4lE,IAAIzM,IAAI13D,MAAM,KAAKH,YAAY6I,GAAEnK,EAAE6pE,WAAW,WAAW,OAAO1/D,GAAEnK,EAAE6pE,WAAW7pE,EAAE4lE,IAAI7M,IAAIt3D,MAAM,KACzfH,YAAYq1D,GAAG32D,EAAE8pE,UAAU,WAAW,OAAOnT,GAAG32D,EAAE8pE,UAAU9pE,EAAE4lE,IAAI9J,IAAIr6D,MAAM,KAAKH,YACjF,SAASyoE,KAAK,SAAS7/D,IAAI,IAAIq/D,KAAKA,IAAG,EAAGvpE,EAAEgqE,WAAU,GAAI1N,GAAI,CAAwY,GAAvYt8D,EAAEiqE,UAAU1H,KAAKA,IAAG,EAAGc,KAAKrjE,EAAEs/D,MAAMt/D,EAAEs/D,MAAMt/D,EAAEo9C,OAAOp9C,EAAEo9C,OAAOp9C,EAAEq9C,OAAOr9C,EAAEq9C,OAAOr9C,EAAEs/D,MAAMgE,GAAG,QAAQtjE,EAAEs/D,OAAO3sB,GAAG,WAAW,cAAc3yC,EAAEo9C,OAAOkmB,GAAG,SAAS,KAAKtjE,EAAEo9C,QAAQzK,GAAG,WAAW,eAAe3yC,EAAEq9C,OAAOimB,GAAG,SAAS,KAAKtjE,EAAEq9C,QAAQ1K,GAAG,YAAY,eAAeqhB,GAAG,aAAa,GAAGA,GAAG,cAAc,GAAGA,GAAG,cAAc,IAAIyN,IAAG,EAAG5hC,GAAG89B,GAAO39D,EAAEgzD,sBAAqBhzD,EAAEgzD,uBAA0BhzD,EAAEkqE,QAAQ,IAAI,mBAAmBlqE,EAAEkqE,UAC3elqE,EAAEkqE,QAAQ,CAAClqE,EAAEkqE,UAAUlqE,EAAEkqE,QAAQvrE,QAAQ,CAAC,IAAImH,EAAE9F,EAAEkqE,QAAQlmD,QAAQ45C,EAAGjvC,QAAQ7oB,GAAG+5B,GAAG+9B,IAAK,KAAK,EAAErqC,IAAI,CAAC,GAAGvzB,EAAE89D,OAAO,IAAI,mBAAmB99D,EAAE89D,SAAS99D,EAAE89D,OAAO,CAAC99D,EAAE89D,SAAS99D,EAAE89D,OAAOn/D,QAAQk/D,KAAKh+B,GAAG2zB,GAAI,EAAEjgC,KAAKvzB,EAAEmqE,WAAWnqE,EAAEmqE,UAAU,cAAcpqE,YAAW,WAAWA,YAAW,WAAWC,EAAEmqE,UAAU,MAAK,GAAGjgE,MAAK,IAAIA,MAAe,GAF9OlK,EAAEs0D,MAAM,SAASpqD,EAAEpE,EAAEqC,EAAEsL,GAAW,IAAIixB,GAAZv8B,EAAEA,GAAG,IAAWiiE,OAAM,SAASz6D,GAAG,MAAM,WAAWA,KAAI,MAAM,WAAW7J,GAAG4+B,IAAIjxB,EAAEw/C,EAAG/oD,GAAG,WAAW,OAAOqyD,EAAGryD,EAAEpE,EAAEqC,EAAE7G,aAAatB,EAAEqqE,aAAaplD,EAAEjlB,EAAE2pE,UAAUhS,GAAG33D,EAAE4pE,aAAa/R,GAAG73D,EAAE6pE,WAAW1/D,GAASiqD,GAAG,SAASkW,IAAKf,IAAIQ,KAAKR,KAAKnV,GAAGkW,IAE9BtqE,EAAEa,IAAIkpE,GAAM/pE,EAAEuqE,QAAQ,IAAI,mBAAmBvqE,EAAEuqE,UAAUvqE,EAAEuqE,QAAQ,CAACvqE,EAAEuqE,UAAU,EAAEvqE,EAAEuqE,QAAQ5rE,QAAQqB,EAAEuqE,QAAQ75C,KAAV1wB,GAI9Z,OAJgb+pE,KAIzalX,KAGNJ,IAMLp1D,EAAOC,QAAUo1D,EAEjBr1D,EAAOC,QAAQktE,QAAU9X,I,uECjMd,QAA0B,kD,6BCQ5B,IAAIziD,EAAE/R,EAAQ,IAAiB6H,EAAE,MAAMgN,EAAE,MAAMzV,EAAQmtE,SAAS,MAAMntE,EAAQotE,WAAW,MAAMptE,EAAQqtE,SAAS,MAAM,IAAIzyD,EAAE,MAAMhI,EAAE,MAAMmI,EAAE,MAAM/a,EAAQstE,SAAS,MAAM,IAAIlgD,EAAE,MAAMgI,EAAE,MACpM,GAAG,oBAAoB7oB,QAAQA,OAAOsoC,IAAI,CAAC,IAAIvhC,EAAE/G,OAAOsoC,IAAIpsC,EAAE6K,EAAE,iBAAiBmC,EAAEnC,EAAE,gBAAgBtT,EAAQmtE,SAAS75D,EAAE,kBAAkBtT,EAAQotE,WAAW95D,EAAE,qBAAqBtT,EAAQqtE,SAAS/5D,EAAE,kBAAkBsH,EAAEtH,EAAE,kBAAkBV,EAAEU,EAAE,iBAAiByH,EAAEzH,EAAE,qBAAqBtT,EAAQstE,SAASh6D,EAAE,kBAAkB8Z,EAAE9Z,EAAE,cAAc8hB,EAAE9hB,EAAE,cAAc,IAAIzG,EAAE,oBAAoBN,QAAQA,OAAOsvB,SACtR,SAAShoB,EAAEjH,GAAG,IAAI,IAAIpE,EAAE,yDAAyDoE,EAAE/B,EAAE,EAAEA,EAAE7G,UAAU3C,OAAOwJ,IAAIrC,GAAG,WAAW+kE,mBAAmBvpE,UAAU6G,IAAI,MAAM,yBAAyB+B,EAAE,WAAWpE,EAAE,iHACpU,IAAImf,EAAE,CAAC6lD,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAc/lD,EAAE,GAAG,SAASC,EAAEjb,EAAEpE,EAAEqC,GAAGjI,KAAKgrE,MAAMhhE,EAAEhK,KAAKqwB,QAAQzqB,EAAE5F,KAAKirE,KAAKjmD,EAAEhlB,KAAKkrE,QAAQjjE,GAAG8c,EACpN,SAASG,KAA6B,SAASo1C,EAAEtwD,EAAEpE,EAAEqC,GAAGjI,KAAKgrE,MAAMhhE,EAAEhK,KAAKqwB,QAAQzqB,EAAE5F,KAAKirE,KAAKjmD,EAAEhlB,KAAKkrE,QAAQjjE,GAAG8c,EADsGE,EAAEznB,UAAU2tE,iBAAiB,GAAGlmD,EAAEznB,UAAU4tE,SAAS,SAASphE,EAAEpE,GAAG,GAAG,kBAAkBoE,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMvK,MAAMwR,EAAE,KAAKjR,KAAKkrE,QAAQH,gBAAgB/qE,KAAKgK,EAAEpE,EAAE,aAAaqf,EAAEznB,UAAU6tE,YAAY,SAASrhE,GAAGhK,KAAKkrE,QAAQL,mBAAmB7qE,KAAKgK,EAAE,gBACndkb,EAAE1nB,UAAUynB,EAAEznB,UAAsF,IAAIi9D,EAAEH,EAAE98D,UAAU,IAAI0nB,EAAEu1C,EAAEh9D,YAAY68D,EAAEvqD,EAAE0qD,EAAEx1C,EAAEznB,WAAWi9D,EAAE6Q,sBAAqB,EAAG,IAAIvwC,EAAE,CAAC1Q,QAAQ,MAAMu2B,EAAE3jD,OAAOO,UAAU2lC,eAAe5E,EAAE,CAAClgC,KAAI,EAAGktE,KAAI,EAAGC,QAAO,EAAGC,UAAS,GAChS,SAAS1S,EAAE/uD,EAAEpE,EAAEqC,GAAG,IAAInI,EAAEyT,EAAE,GAAGxC,EAAE,KAAKiS,EAAE,KAAK,GAAG,MAAMpd,EAAE,IAAI9F,UAAK,IAAS8F,EAAE2lE,MAAMvoD,EAAEpd,EAAE2lE,UAAK,IAAS3lE,EAAEvH,MAAM0S,EAAE,GAAGnL,EAAEvH,KAAKuH,EAAEg7C,EAAE7gD,KAAK6F,EAAE9F,KAAKy+B,EAAE4E,eAAerjC,KAAKyT,EAAEzT,GAAG8F,EAAE9F,IAAI,IAAI2P,EAAErO,UAAU3C,OAAO,EAAE,GAAG,IAAIgR,EAAE8D,EAAEqX,SAAS3iB,OAAO,GAAG,EAAEwH,EAAE,CAAC,IAAI,IAAI+0B,EAAErjC,MAAMsO,GAAG3J,EAAE,EAAEA,EAAE2J,EAAE3J,IAAI0+B,EAAE1+B,GAAG1E,UAAU0E,EAAE,GAAGyN,EAAEqX,SAAS4Z,EAAE,GAAGx6B,GAAGA,EAAE0hE,aAAa,IAAI5rE,KAAK2P,EAAEzF,EAAE0hE,kBAAe,IAASn4D,EAAEzT,KAAKyT,EAAEzT,GAAG2P,EAAE3P,IAAI,MAAM,CAAC6rE,SAAS9lE,EAAErB,KAAKwF,EAAE3L,IAAI0S,EAAEw6D,IAAIvoD,EAAEgoD,MAAMz3D,EAAEq4D,OAAO7wC,EAAE1Q,SACxU,SAAS4xC,EAAEjyD,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE2hE,WAAW9lE,EAAqG,IAAI+zB,EAAE,OAAO,SAAS7Z,EAAE/V,EAAEpE,GAAG,MAAM,kBAAkBoE,GAAG,OAAOA,GAAG,MAAMA,EAAE3L,IAA7K,SAAgB2L,GAAG,IAAIpE,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAIoE,EAAEsF,QAAQ,SAAQ,SAAStF,GAAG,OAAOpE,EAAEoE,MAAmF6hE,CAAO,GAAG7hE,EAAE3L,KAAKuH,EAAEhB,SAAS,IAC5W,SAASqzD,EAAEjuD,EAAEpE,EAAEqC,EAAEnI,EAAEyT,GAAG,IAAIxC,SAAS/G,EAAK,cAAc+G,GAAG,YAAYA,IAAE/G,EAAE,MAAK,IAAIgZ,GAAE,EAAG,GAAG,OAAOhZ,EAAEgZ,GAAE,OAAQ,OAAOjS,GAAG,IAAK,SAAS,IAAK,SAASiS,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOhZ,EAAE2hE,UAAU,KAAK9lE,EAAE,KAAKgN,EAAEmQ,GAAE,GAAI,GAAGA,EAAE,OAAWzP,EAAEA,EAANyP,EAAEhZ,GAASA,EAAE,KAAKlK,EAAE,IAAIigB,EAAEiD,EAAE,GAAGljB,EAAEqB,MAAM6B,QAAQuQ,IAAItL,EAAE,GAAG,MAAM+B,IAAI/B,EAAE+B,EAAEsF,QAAQsqB,EAAE,OAAO,KAAKq+B,EAAE1kD,EAAE3N,EAAEqC,EAAE,IAAG,SAAS+B,GAAG,OAAOA,MAAK,MAAMuJ,IAAI0oD,EAAE1oD,KAAKA,EAD/W,SAAWvJ,EAAEpE,GAAG,MAAM,CAAC+lE,SAAS9lE,EAAErB,KAAKwF,EAAExF,KAAKnG,IAAIuH,EAAE2lE,IAAIvhE,EAAEuhE,IAAIP,MAAMhhE,EAAEghE,MAAMY,OAAO5hE,EAAE4hE,QAC4R7rB,CAAExsC,EAAEtL,IAAIsL,EAAElV,KAAK2kB,GAAGA,EAAE3kB,MAAMkV,EAAElV,IAAI,IAAI,GAAGkV,EAAElV,KAAKiR,QAAQsqB,EAAE,OAAO,KAAK5vB,IAAIpE,EAAEtE,KAAKiS,IAAI,EAAyB,GAAvByP,EAAE,EAAEljB,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOqB,MAAM6B,QAAQgH,GAAG,IAAI,IAAIyF,EACzf,EAAEA,EAAEzF,EAAEvL,OAAOgR,IAAI,CAAQ,IAAI+0B,EAAE1kC,EAAEigB,EAAfhP,EAAE/G,EAAEyF,GAAeA,GAAGuT,GAAGi1C,EAAElnD,EAAEnL,EAAEqC,EAAEu8B,EAAEjxB,QAAQ,GAAGixB,EANhE,SAAWx6B,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEC,GAAGD,EAAEC,IAAID,EAAE,eAA0CA,EAAE,KAMlDE,CAAEF,GAAG,oBAAoBw6B,EAAE,IAAIx6B,EAAEw6B,EAAEzkC,KAAKiK,GAAGyF,EAAE,IAAIsB,EAAE/G,EAAE8f,QAAQuC,MAA6BrJ,GAAGi1C,EAA1BlnD,EAAEA,EAAErT,MAA0BkI,EAAEqC,EAAtBu8B,EAAE1kC,EAAEigB,EAAEhP,EAAEtB,KAAkB8D,QAAQ,GAAG,WAAWxC,EAAE,MAAMnL,EAAE,GAAGoE,EAAEvK,MAAMwR,EAAE,GAAG,oBAAoBrL,EAAE,qBAAqB3I,OAAOyzB,KAAK1mB,GAAGY,KAAK,MAAM,IAAIhF,IAAI,OAAOod,EAAE,SAAS66C,EAAE7zD,EAAEpE,EAAEqC,GAAG,GAAG,MAAM+B,EAAE,OAAOA,EAAE,IAAIlK,EAAE,GAAGyT,EAAE,EAAmD,OAAjD0kD,EAAEjuD,EAAElK,EAAE,GAAG,IAAG,SAASkK,GAAG,OAAOpE,EAAE7F,KAAKkI,EAAE+B,EAAEuJ,QAAczT,EAC1Z,SAASi/D,EAAE/0D,GAAG,IAAI,IAAIA,EAAE8hE,QAAQ,CAAC,IAAIlmE,EAAEoE,EAAE+hE,QAAQnmE,EAAEA,IAAIoE,EAAE8hE,QAAQ,EAAE9hE,EAAE+hE,QAAQnmE,EAAEA,EAAEysD,MAAK,SAASzsD,GAAG,IAAIoE,EAAE8hE,UAAUlmE,EAAEA,EAAE0kE,QAAQtgE,EAAE8hE,QAAQ,EAAE9hE,EAAE+hE,QAAQnmE,MAAI,SAASA,GAAG,IAAIoE,EAAE8hE,UAAU9hE,EAAE8hE,QAAQ,EAAE9hE,EAAE+hE,QAAQnmE,MAAK,GAAG,IAAIoE,EAAE8hE,QAAQ,OAAO9hE,EAAE+hE,QAAQ,MAAM/hE,EAAE+hE,QAAS,IAAIv/C,EAAE,CAACnC,QAAQ,MAAM,SAASi2C,IAAI,IAAIt2D,EAAEwiB,EAAEnC,QAAQ,GAAG,OAAOrgB,EAAE,MAAMvK,MAAMwR,EAAE,MAAM,OAAOjH,EAAE,IAAIu8C,EAAE,CAACylB,uBAAuBx/C,EAAEy/C,wBAAwB,CAACC,WAAW,GAAGC,kBAAkBpxC,EAAEqxC,qBAAqB,CAAC/hD,SAAQ,GAAIkZ,OAAOxzB,GACje3S,EAAQivE,SAAS,CAAC33C,IAAImpC,EAAEjlC,QAAQ,SAAS5uB,EAAEpE,EAAEqC,GAAG41D,EAAE7zD,GAAE,WAAWpE,EAAErE,MAAMvB,KAAKoB,aAAY6G,IAAI0mB,MAAM,SAAS3kB,GAAG,IAAIpE,EAAE,EAAuB,OAArBi4D,EAAE7zD,GAAE,WAAWpE,OAAaA,GAAGyK,QAAQ,SAASrG,GAAG,OAAO6zD,EAAE7zD,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAIsiE,KAAK,SAAStiE,GAAG,IAAIiyD,EAAEjyD,GAAG,MAAMvK,MAAMwR,EAAE,MAAM,OAAOjH,IAAI5M,EAAQmvE,UAAUtnD,EAAE7nB,EAAQovE,cAAclS,EAAEl9D,EAAQqvE,mDAAmDlmB,EAChXnpD,EAAQsvE,aAAa,SAAS1iE,EAAEpE,EAAEqC,GAAG,GAAG,OAAO+B,QAAG,IAASA,EAAE,MAAMvK,MAAMwR,EAAE,IAAIjH,IAAI,IAAIlK,EAAEiQ,EAAE,GAAG/F,EAAEghE,OAAOz3D,EAAEvJ,EAAE3L,IAAI0S,EAAE/G,EAAEuhE,IAAIvoD,EAAEhZ,EAAE4hE,OAAO,GAAG,MAAMhmE,EAAE,CAAoE,QAAnE,IAASA,EAAE2lE,MAAMx6D,EAAEnL,EAAE2lE,IAAIvoD,EAAE+X,EAAE1Q,cAAS,IAASzkB,EAAEvH,MAAMkV,EAAE,GAAG3N,EAAEvH,KAAQ2L,EAAExF,MAAMwF,EAAExF,KAAKknE,aAAa,IAAIj8D,EAAEzF,EAAExF,KAAKknE,aAAa,IAAIlnC,KAAK5+B,EAAEg7C,EAAE7gD,KAAK6F,EAAE4+B,KAAKjG,EAAE4E,eAAeqB,KAAK1kC,EAAE0kC,QAAG,IAAS5+B,EAAE4+B,SAAI,IAAS/0B,EAAEA,EAAE+0B,GAAG5+B,EAAE4+B,IAAI,IAAIA,EAAEpjC,UAAU3C,OAAO,EAAE,GAAG,IAAI+lC,EAAE1kC,EAAE8qB,SAAS3iB,OAAO,GAAG,EAAEu8B,EAAE,CAAC/0B,EAAEtO,MAAMqjC,GAAG,IAAI,IAAI1+B,EAAE,EAAEA,EAAE0+B,EAAE1+B,IAAI2J,EAAE3J,GAAG1E,UAAU0E,EAAE,GAAGhG,EAAE8qB,SAASnb,EAAE,MAAM,CAACk8D,SAAS9lE,EAAErB,KAAKwF,EAAExF,KACxfnG,IAAIkV,EAAEg4D,IAAIx6D,EAAEi6D,MAAMlrE,EAAE8rE,OAAO5oD,IAAI5lB,EAAQuvE,cAAc,SAAS3iE,EAAEpE,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMoE,EAAE,CAAC2hE,SAAS37D,EAAE48D,sBAAsBhnE,EAAEinE,cAAc7iE,EAAE8iE,eAAe9iE,EAAE+iE,aAAa,EAAEC,SAAS,KAAKC,SAAS,OAAQD,SAAS,CAACrB,SAAS3zD,EAAEk1D,SAASljE,GAAUA,EAAEijE,SAASjjE,GAAG5M,EAAQ+vE,cAAcpU,EAAE37D,EAAQgwE,cAAc,SAASpjE,GAAG,IAAIpE,EAAEmzD,EAAE3pC,KAAK,KAAKplB,GAAY,OAATpE,EAAEpB,KAAKwF,EAASpE,GAAGxI,EAAQiwE,UAAU,WAAW,MAAM,CAAChjD,QAAQ,OAAOjtB,EAAQkwE,WAAW,SAAStjE,GAAG,MAAM,CAAC2hE,SAASxzD,EAAEo1D,OAAOvjE,IAAI5M,EAAQowE,eAAevR,EAC3e7+D,EAAQqwE,KAAK,SAASzjE,GAAG,MAAM,CAAC2hE,SAASn5C,EAAEk7C,SAAS,CAAC5B,SAAS,EAAEC,QAAQ/hE,GAAGqL,MAAM0pD,IAAI3hE,EAAQuwE,KAAK,SAAS3jE,EAAEpE,GAAG,MAAM,CAAC+lE,SAASnhD,EAAEhmB,KAAKwF,EAAED,aAAQ,IAASnE,EAAE,KAAKA,IAAIxI,EAAQwwE,YAAY,SAAS5jE,EAAEpE,GAAG,OAAO06D,IAAIsN,YAAY5jE,EAAEpE,IAAIxI,EAAQywE,WAAW,SAAS7jE,EAAEpE,GAAG,OAAO06D,IAAIuN,WAAW7jE,EAAEpE,IAAIxI,EAAQ0wE,cAAc,aAAa1wE,EAAQ2wE,UAAU,SAAS/jE,EAAEpE,GAAG,OAAO06D,IAAIyN,UAAU/jE,EAAEpE,IAAIxI,EAAQ4wE,oBAAoB,SAAShkE,EAAEpE,EAAEqC,GAAG,OAAOq4D,IAAI0N,oBAAoBhkE,EAAEpE,EAAEqC,IAC9c7K,EAAQ6wE,gBAAgB,SAASjkE,EAAEpE,GAAG,OAAO06D,IAAI2N,gBAAgBjkE,EAAEpE,IAAIxI,EAAQ8wE,QAAQ,SAASlkE,EAAEpE,GAAG,OAAO06D,IAAI4N,QAAQlkE,EAAEpE,IAAIxI,EAAQ+wE,WAAW,SAASnkE,EAAEpE,EAAEqC,GAAG,OAAOq4D,IAAI6N,WAAWnkE,EAAEpE,EAAEqC,IAAI7K,EAAQgxE,OAAO,SAASpkE,GAAG,OAAOs2D,IAAI8N,OAAOpkE,IAAI5M,EAAQixE,SAAS,SAASrkE,GAAG,OAAOs2D,IAAI+N,SAASrkE,IAAI5M,EAAQwE,QAAQ,U,6BCXxS,IAAIuxD,EAAGn1D,EAAQ,GAAS8H,EAAE9H,EAAQ,IAAiBgS,EAAEhS,EAAQ,KAAa,SAASkM,EAAEF,GAAG,IAAI,IAAIpE,EAAE,yDAAyDoE,EAAE/B,EAAE,EAAEA,EAAE7G,UAAU3C,OAAOwJ,IAAIrC,GAAG,WAAW+kE,mBAAmBvpE,UAAU6G,IAAI,MAAM,yBAAyB+B,EAAE,WAAWpE,EAAE,iHAAiH,IAAIutD,EAAG,MAAM1zD,MAAMyK,EAAE,MAAM,IAAImqD,EAAG,IAAIia,IAAIvW,EAAG,GAAG,SAAS3E,EAAGppD,EAAEpE,GAAG+tD,EAAG3pD,EAAEpE,GAAG+tD,EAAG3pD,EAAE,UAAUpE,GAC3e,SAAS+tD,EAAG3pD,EAAEpE,GAAW,IAARmyD,EAAG/tD,GAAGpE,EAAMoE,EAAE,EAAEA,EAAEpE,EAAEnH,OAAOuL,IAAIqqD,EAAGj6C,IAAIxU,EAAEoE,IACzD,IAAI0pD,IAAK,qBAAqB/jD,QAAQ,qBAAqBA,OAAOkrD,UAAU,qBAAqBlrD,OAAOkrD,SAASsS,eAAevZ,EAAG,8VAA8VE,EAAG72D,OAAOO,UAAU2lC,eACrfzD,EAAG,GAAGm0B,EAAG,GAC+M,SAAS7uC,EAAEhb,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,EAAE/0B,GAAGzP,KAAKuuE,gBAAgB,IAAI3oE,GAAG,IAAIA,GAAG,IAAIA,EAAE5F,KAAKwuE,cAAcj7D,EAAEvT,KAAKyuE,mBAAmB3uE,EAAEE,KAAK0uE,gBAAgBzmE,EAAEjI,KAAK2uE,aAAa3kE,EAAEhK,KAAKwE,KAAKoB,EAAE5F,KAAK4uE,YAAYpqC,EAAExkC,KAAK6uE,kBAAkBp/D,EAAE,IAAIyV,EAAE,GACnb,uIAAuIqE,MAAM,KAAKqP,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe4uB,SAAQ,SAAS5uB,GAAG,IAAIpE,EAAEoE,EAAE,GAAGkb,EAAEtf,GAAG,IAAIof,EAAEpf,EAAE,GAAE,EAAGoE,EAAE,GAAG,MAAK,GAAG,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAAS4uB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE/E,cAAc,MAAK,GAAG,MACve,CAAC,cAAc,4BAA4B,YAAY,iBAAiB2zB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,8OAA8Ouf,MAAM,KAAKqP,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE/E,cAAc,MAAK,GAAG,MACrb,CAAC,UAAU,WAAW,QAAQ,YAAY2zB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,YAAY4uB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQ4uB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,SAAS4uB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE/E,cAAc,MAAK,GAAG,MAAM,IAAIqyD,EAAG,gBAAgB,SAASG,EAAGztD,GAAG,OAAOA,EAAE,GAAG8kE,cAI3Y,SAASpX,EAAG1tD,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEolB,EAAEie,eAAev9B,GAAGsf,EAAEtf,GAAG,MAAW,OAAO9F,EAAE,IAAIA,EAAE0E,MAAK+O,IAAO,EAAE3N,EAAEnH,SAAS,MAAMmH,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYoE,EAAEpE,EAAEqC,EAAEsL,GAAG,GAAG,OAAO3N,GAAG,qBAAqBA,GADwE,SAAYoE,EAAEpE,EAAEqC,EAAEsL,GAAG,GAAG,OAAOtL,GAAG,IAAIA,EAAEzD,KAAK,OAAM,EAAG,cAAcoB,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG2N,IAAc,OAAOtL,GAASA,EAAEsmE,gBAAmD,WAAnCvkE,EAAEA,EAAE/E,cAAchB,MAAM,EAAE,KAAsB,UAAU+F,GAAE,QAAQ,OAAM,GAC/TitD,CAAGjtD,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOtL,EAAE,OAAOA,EAAEzD,MAAM,KAAK,EAAE,OAAOoB,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOI,MAAMJ,GAAG,KAAK,EAAE,OAAOI,MAAMJ,IAAI,EAAEA,EAAE,OAAM,EAOrDoxD,CAAGpxD,EAAEqC,EAAEnI,EAAEyT,KAAKtL,EAAE,MAAMsL,GAAG,OAAOzT,EARpL,SAAYkK,GAAG,QAAG8pD,EAAG/zD,KAAK8zD,EAAG7pD,KAAe8pD,EAAG/zD,KAAK2/B,EAAG11B,KAAe4pD,EAAGr6B,KAAKvvB,GAAU6pD,EAAG7pD,IAAG,GAAG01B,EAAG11B,IAAG,GAAS,IAQsE+pD,CAAGnuD,KAAK,OAAOqC,EAAE+B,EAAE+kE,gBAAgBnpE,GAAGoE,EAAEglE,aAAappE,EAAE,GAAGqC,IAAInI,EAAE4uE,gBAAgB1kE,EAAElK,EAAE6uE,cAAc,OAAO1mE,EAAE,IAAInI,EAAE0E,MAAQ,GAAGyD,GAAGrC,EAAE9F,EAAE0uE,cAAcj7D,EAAEzT,EAAE2uE,mBAAmB,OAAOxmE,EAAE+B,EAAE+kE,gBAAgBnpE,IAAaqC,EAAE,KAAXnI,EAAEA,EAAE0E,OAAc,IAAI1E,IAAG,IAAKmI,EAAE,GAAG,GAAGA,EAAEsL,EAAEvJ,EAAEilE,eAAe17D,EAAE3N,EAAEqC,GAAG+B,EAAEglE,aAAappE,EAAEqC,MAH5d,0jCAA0jCshB,MAAM,KAAKqP,SAAQ,SAAS5uB,GAAG,IAAIpE,EAAEoE,EAAEsF,QAAQgoD,EACzmCG,GAAIvyC,EAAEtf,GAAG,IAAIof,EAAEpf,EAAE,GAAE,EAAGoE,EAAE,MAAK,GAAG,MAAM,2EAA2Euf,MAAM,KAAKqP,SAAQ,SAAS5uB,GAAG,IAAIpE,EAAEoE,EAAEsF,QAAQgoD,EAAGG,GAAIvyC,EAAEtf,GAAG,IAAIof,EAAEpf,EAAE,GAAE,EAAGoE,EAAE,gCAA+B,GAAG,MAAM,CAAC,WAAW,WAAW,aAAa4uB,SAAQ,SAAS5uB,GAAG,IAAIpE,EAAEoE,EAAEsF,QAAQgoD,EAAGG,GAAIvyC,EAAEtf,GAAG,IAAIof,EAAEpf,EAAE,GAAE,EAAGoE,EAAE,wCAAuC,GAAG,MAAM,CAAC,WAAW,eAAe4uB,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE/E,cAAc,MAAK,GAAG,MAC/cigB,EAAEgqD,UAAU,IAAIlqD,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAc4T,SAAQ,SAAS5uB,GAAGkb,EAAElb,GAAG,IAAIgb,EAAEhb,EAAE,GAAE,EAAGA,EAAE/E,cAAc,MAAK,GAAG,MAEzL,IAAI0yD,EAAGxE,EAAGsZ,mDAAmDrU,EAAG,MAAMI,EAAG,MAAME,EAAG,MAAMiB,EAAG,MAAMM,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMX,EAAG,MAAMa,EAAG,MAAMT,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMuB,EAAG,MAAMtC,EAAG,MAAMJ,EAAG,MAChN,GAAG,oBAAoBlvD,QAAQA,OAAOsoC,IAAI,CAAC,IAAIqoB,EAAE3wD,OAAOsoC,IAAImmB,EAAGkC,EAAE,iBAAiB9B,EAAG8B,EAAE,gBAAgB5B,EAAG4B,EAAE,kBAAkBX,EAAGW,EAAE,qBAAqBL,EAAGK,EAAE,kBAAkBJ,EAAGI,EAAE,kBAAkBH,EAAGG,EAAE,iBAAiBd,EAAGc,EAAE,qBAAqBD,EAAGC,EAAE,kBAAkBV,EAAGU,EAAE,uBAAuBT,EAAGS,EAAE,cAAcR,EAAGQ,EAAE,cAAcP,EAAGO,EAAE,eAAeA,EAAE,eAAeN,EAAGM,EAAE,mBAAmBiB,EAAGjB,EAAE,0BAA0BrB,EAAGqB,EAAE,mBAAmBzB,EAAGyB,EAAE,uBACxc,IAAmL4B,EAA/KN,EAAG,oBAAoBjyD,QAAQA,OAAOsvB,SAAS,SAAS+iC,EAAGhyD,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAE4xD,GAAI5xD,EAAE4xD,IAAK5xD,EAAE,eAA0CA,EAAE,KAAY,SAASmyD,EAAGnyD,GAAG,QAAG,IAASkyD,EAAG,IAAI,MAAMz8D,QAAS,MAAMwI,GAAG,IAAIrC,EAAEqC,EAAEywC,MAAMrpC,OAAO1E,MAAM,gBAAgBuxD,EAAGt2D,GAAGA,EAAE,IAAI,GAAG,MAAM,KAAKs2D,EAAGlyD,EAAE,IAAIipD,GAAG,EACjU,SAASmJ,EAAGpyD,EAAEpE,GAAG,IAAIoE,GAAGipD,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAIhrD,EAAExI,MAAM0vE,kBAAkB1vE,MAAM0vE,uBAAkB,EAAO,IAAI,GAAGvpE,EAAE,GAAGA,EAAE,WAAW,MAAMnG,SAAUxC,OAAO4M,eAAejE,EAAEpI,UAAU,QAAQ,CAACuR,IAAI,WAAW,MAAMtP,WAAY,kBAAkBgtB,SAASA,QAAQ2iD,UAAU,CAAC,IAAI3iD,QAAQ2iD,UAAUxpE,EAAE,IAAI,MAAMmL,GAAG,IAAIwC,EAAExC,EAAE0b,QAAQ2iD,UAAUplE,EAAE,GAAGpE,OAAO,CAAC,IAAIA,EAAE7F,OAAO,MAAMgR,GAAGwC,EAAExC,EAAE/G,EAAEjK,KAAK6F,EAAEpI,eAAe,CAAC,IAAI,MAAMiC,QAAS,MAAMsR,GAAGwC,EAAExC,EAAE/G,KAAK,MAAM+G,GAAG,GAAGA,GAAGwC,GAAG,kBAAkBxC,EAAE2nC,MAAM,CAAC,IAAI,IAAI54C,EAAEiR,EAAE2nC,MAAMnvB,MAAM,MACnfib,EAAEjxB,EAAEmlC,MAAMnvB,MAAM,MAAM9Z,EAAE3P,EAAErB,OAAO,EAAEukB,EAAEwhB,EAAE/lC,OAAO,EAAE,GAAGgR,GAAG,GAAGuT,GAAGljB,EAAE2P,KAAK+0B,EAAExhB,IAAIA,IAAI,KAAK,GAAGvT,GAAG,GAAGuT,EAAEvT,IAAIuT,IAAI,GAAGljB,EAAE2P,KAAK+0B,EAAExhB,GAAG,CAAC,GAAG,IAAIvT,GAAG,IAAIuT,EAAG,GAAG,GAAGvT,IAAQ,IAAJuT,GAASljB,EAAE2P,KAAK+0B,EAAExhB,GAAG,MAAM,KAAKljB,EAAE2P,GAAGH,QAAQ,WAAW,cAAc,GAAGG,GAAG,GAAGuT,GAAG,QAD3H,QAC2IiwC,GAAG,EAAGxzD,MAAM0vE,kBAAkBlnE,EAAE,OAAO+B,EAAEA,EAAEA,EAAEqlE,aAAarlE,EAAExH,KAAK,IAAI25D,EAAGnyD,GAAG,GAC7T,SAAS+oD,EAAG/oD,GAAG,OAAOA,EAAEm3B,KAAK,KAAK,EAAE,OAAOg7B,EAAGnyD,EAAExF,MAAM,KAAK,GAAG,OAAO23D,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOnyD,EAAEoyD,EAAGpyD,EAAExF,MAAK,GAAM,KAAK,GAAG,OAAOwF,EAAEoyD,EAAGpyD,EAAExF,KAAK+oE,QAAO,GAAM,KAAK,GAAG,OAAOvjE,EAAEoyD,EAAGpyD,EAAExF,KAAK8qE,SAAQ,GAAM,KAAK,EAAE,OAAOtlE,EAAEoyD,EAAGpyD,EAAExF,MAAK,GAAM,QAAQ,MAAM,IAC9T,SAAS63D,EAAGryD,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEqlE,aAAarlE,EAAExH,MAAM,KAAK,GAAG,kBAAkBwH,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK0uD,EAAG,MAAM,WAAW,KAAKF,EAAG,MAAM,SAAS,KAAKyB,EAAG,MAAM,WAAW,KAAKN,EAAG,MAAM,aAAa,KAAKU,EAAG,MAAM,WAAW,KAAKT,EAAG,MAAM,eAAe,GAAG,kBAAkB5vD,EAAE,OAAOA,EAAE2hE,UAAU,KAAKxR,EAAG,OAAOnwD,EAAEqlE,aAAa,WAAW,YAAY,KAAKnV,EAAG,OAAOlwD,EAAEkjE,SAASmC,aAAa,WAAW,YAAY,KAAK7V,EAAG,IAAI5zD,EAAEoE,EAAEujE,OACnd,OAD0d3nE,EAAEA,EAAEypE,aAAazpE,EAAEpD,MAAM,GAC5ewH,EAAEqlE,cAAc,KAAKzpE,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAKi0D,EAAG,OAAOwC,EAAGryD,EAAExF,MAAM,KAAKu1D,EAAG,OAAOsC,EAAGryD,EAAEslE,SAAS,KAAKxV,EAAGl0D,EAAEoE,EAAE0jE,SAAS1jE,EAAEA,EAAEqL,MAAM,IAAI,OAAOgnD,EAAGryD,EAAEpE,IAAI,MAAMqC,KAAK,OAAO,KAAK,SAAS03D,EAAG31D,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAAS01D,EAAG11D,GAAG,IAAIpE,EAAEoE,EAAExF,KAAK,OAAOwF,EAAEA,EAAEulE,WAAW,UAAUvlE,EAAE/E,gBAAgB,aAAaW,GAAG,UAAUA,GAE1Z,SAAS2yD,EAAGvuD,GAAGA,EAAEwlE,gBAAgBxlE,EAAEwlE,cADvD,SAAYxlE,GAAG,IAAIpE,EAAE85D,EAAG11D,GAAG,UAAU,QAAQ/B,EAAEhL,OAAOwyE,yBAAyBzlE,EAAEvM,YAAYD,UAAUoI,GAAG2N,EAAE,GAAGvJ,EAAEpE,GAAG,IAAIoE,EAAEm5B,eAAev9B,IAAI,qBAAqBqC,GAAG,oBAAoBA,EAAE4iB,KAAK,oBAAoB5iB,EAAE8G,IAAI,CAAC,IAAIjP,EAAEmI,EAAE4iB,IAAI2Z,EAAEv8B,EAAE8G,IAAiL,OAA7K9R,OAAO4M,eAAeG,EAAEpE,EAAE,CAAC/H,cAAa,EAAGgtB,IAAI,WAAW,OAAO/qB,EAAEC,KAAKC,OAAO+O,IAAI,SAAS/E,GAAGuJ,EAAE,GAAGvJ,EAAEw6B,EAAEzkC,KAAKC,KAAKgK,MAAM/M,OAAO4M,eAAeG,EAAEpE,EAAE,CAACjI,WAAWsK,EAAEtK,aAAmB,CAAC+xE,SAAS,WAAW,OAAOn8D,GAAGo8D,SAAS,SAAS3lE,GAAGuJ,EAAE,GAAGvJ,GAAG4lE,aAAa,WAAW5lE,EAAEwlE,cACxf,YAAYxlE,EAAEpE,MAAuD22D,CAAGvyD,IAAI,SAASmqD,EAAGnqD,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIpE,EAAEoE,EAAEwlE,cAAc,IAAI5pE,EAAE,OAAM,EAAG,IAAIqC,EAAErC,EAAE8pE,WAAen8D,EAAE,GAAqD,OAAlDvJ,IAAIuJ,EAAEmsD,EAAG11D,GAAGA,EAAE3F,QAAQ,OAAO,QAAQ2F,EAAEtM,QAAOsM,EAAEuJ,KAAatL,IAAGrC,EAAE+pE,SAAS3lE,IAAG,GAAO,SAASsyD,EAAGtyD,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqB6wD,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAO7wD,EAAE6lE,eAAe7lE,EAAE+qC,KAAK,MAAMnvC,GAAG,OAAOoE,EAAE+qC,MAC/Z,SAAS0nB,EAAGzyD,EAAEpE,GAAG,IAAIqC,EAAErC,EAAEvB,QAAQ,OAAOyB,EAAE,GAAGF,EAAE,CAACkqE,oBAAe,EAAOC,kBAAa,EAAOryE,WAAM,EAAO2G,QAAQ,MAAM4D,EAAEA,EAAE+B,EAAEgmE,cAAcC,iBAAiB,SAAS3c,GAAGtpD,EAAEpE,GAAG,IAAIqC,EAAE,MAAMrC,EAAEmqE,aAAa,GAAGnqE,EAAEmqE,aAAax8D,EAAE,MAAM3N,EAAEvB,QAAQuB,EAAEvB,QAAQuB,EAAEkqE,eAAe7nE,EAAE03D,EAAG,MAAM/5D,EAAElI,MAAMkI,EAAElI,MAAMuK,GAAG+B,EAAEgmE,cAAc,CAACC,eAAe18D,EAAE28D,aAAajoE,EAAEkoE,WAAW,aAAavqE,EAAEpB,MAAM,UAAUoB,EAAEpB,KAAK,MAAMoB,EAAEvB,QAAQ,MAAMuB,EAAElI,OAAO,SAAS+/D,GAAGzzD,EAAEpE,GAAe,OAAZA,EAAEA,EAAEvB,UAAiBqzD,EAAG1tD,EAAE,UAAUpE,GAAE,GAC3d,SAAS83D,GAAG1zD,EAAEpE,GAAG63D,GAAGzzD,EAAEpE,GAAG,IAAIqC,EAAE03D,EAAG/5D,EAAElI,OAAO6V,EAAE3N,EAAEpB,KAAK,GAAG,MAAMyD,EAAK,WAAWsL,GAAM,IAAItL,GAAG,KAAK+B,EAAEtM,OAAOsM,EAAEtM,OAAOuK,KAAE+B,EAAEtM,MAAM,GAAGuK,GAAO+B,EAAEtM,QAAQ,GAAGuK,IAAI+B,EAAEtM,MAAM,GAAGuK,QAAQ,GAAG,WAAWsL,GAAG,UAAUA,EAA8B,YAA3BvJ,EAAE+kE,gBAAgB,SAAgBnpE,EAAEu9B,eAAe,SAASw6B,GAAG3zD,EAAEpE,EAAEpB,KAAKyD,GAAGrC,EAAEu9B,eAAe,iBAAiBw6B,GAAG3zD,EAAEpE,EAAEpB,KAAKm7D,EAAG/5D,EAAEmqE,eAAe,MAAMnqE,EAAEvB,SAAS,MAAMuB,EAAEkqE,iBAAiB9lE,EAAE8lE,iBAAiBlqE,EAAEkqE,gBACnZ,SAASz8C,GAAGrpB,EAAEpE,EAAEqC,GAAG,GAAGrC,EAAEu9B,eAAe,UAAUv9B,EAAEu9B,eAAe,gBAAgB,CAAC,IAAI5vB,EAAE3N,EAAEpB,KAAK,KAAK,WAAW+O,GAAG,UAAUA,QAAG,IAAS3N,EAAElI,OAAO,OAAOkI,EAAElI,OAAO,OAAOkI,EAAE,GAAGoE,EAAEgmE,cAAcE,aAAajoE,GAAGrC,IAAIoE,EAAEtM,QAAQsM,EAAEtM,MAAMkI,GAAGoE,EAAE+lE,aAAanqE,EAAW,MAATqC,EAAE+B,EAAExH,QAAcwH,EAAExH,KAAK,IAAIwH,EAAE8lE,iBAAiB9lE,EAAEgmE,cAAcC,eAAe,KAAKhoE,IAAI+B,EAAExH,KAAKyF,GACvV,SAAS01D,GAAG3zD,EAAEpE,EAAEqC,GAAM,WAAWrC,GAAG02D,EAAGtyD,EAAEomE,iBAAiBpmE,IAAE,MAAM/B,EAAE+B,EAAE+lE,aAAa,GAAG/lE,EAAEgmE,cAAcE,aAAalmE,EAAE+lE,eAAe,GAAG9nE,IAAI+B,EAAE+lE,aAAa,GAAG9nE,IAAwF,SAASisD,GAAGlqD,EAAEpE,GAA6D,OAA1DoE,EAAElE,EAAE,CAAC8kB,cAAS,GAAQhlB,IAAMA,EAAlI,SAAYoE,GAAG,IAAIpE,EAAE,GAAuD,OAApDutD,EAAGkZ,SAASzzC,QAAQ5uB,GAAE,SAASA,GAAG,MAAMA,IAAIpE,GAAGoE,MAAYpE,EAAiDotD,CAAGptD,EAAEglB,aAAU5gB,EAAE4gB,SAAShlB,GAASoE,EACvU,SAASi0D,GAAGj0D,EAAEpE,EAAEqC,EAAEsL,GAAe,GAAZvJ,EAAEA,EAAE0oB,QAAW9sB,EAAE,CAACA,EAAE,GAAG,IAAI,IAAI9F,EAAE,EAAEA,EAAEmI,EAAExJ,OAAOqB,IAAI8F,EAAE,IAAIqC,EAAEnI,KAAI,EAAG,IAAImI,EAAE,EAAEA,EAAE+B,EAAEvL,OAAOwJ,IAAInI,EAAE8F,EAAEu9B,eAAe,IAAIn5B,EAAE/B,GAAGvK,OAAOsM,EAAE/B,GAAGooE,WAAWvwE,IAAIkK,EAAE/B,GAAGooE,SAASvwE,GAAGA,GAAGyT,IAAIvJ,EAAE/B,GAAGqoE,iBAAgB,OAAQ,CAAmB,IAAlBroE,EAAE,GAAG03D,EAAG13D,GAAGrC,EAAE,KAAS9F,EAAE,EAAEA,EAAEkK,EAAEvL,OAAOqB,IAAI,CAAC,GAAGkK,EAAElK,GAAGpC,QAAQuK,EAAiD,OAA9C+B,EAAElK,GAAGuwE,UAAS,OAAG98D,IAAIvJ,EAAElK,GAAGwwE,iBAAgB,IAAW,OAAO1qE,GAAGoE,EAAElK,GAAGywE,WAAW3qE,EAAEoE,EAAElK,IAAI,OAAO8F,IAAIA,EAAEyqE,UAAS,IACpY,SAAShS,GAAGr0D,EAAEpE,GAAG,GAAG,MAAMA,EAAE4qE,wBAAwB,MAAM/wE,MAAMyK,EAAE,KAAK,OAAOpE,EAAE,GAAGF,EAAE,CAAClI,WAAM,EAAOqyE,kBAAa,EAAOnlD,SAAS,GAAG5gB,EAAEgmE,cAAcE,eAAe,SAAS3R,GAAGv0D,EAAEpE,GAAG,IAAIqC,EAAErC,EAAElI,MAAM,GAAG,MAAMuK,EAAE,CAA+B,GAA9BA,EAAErC,EAAEglB,SAAShlB,EAAEA,EAAEmqE,aAAgB,MAAM9nE,EAAE,CAAC,GAAG,MAAMrC,EAAE,MAAMnG,MAAMyK,EAAE,KAAK,GAAG/I,MAAM6B,QAAQiF,GAAG,CAAC,KAAK,GAAGA,EAAExJ,QAAQ,MAAMgB,MAAMyK,EAAE,KAAKjC,EAAEA,EAAE,GAAGrC,EAAEqC,EAAE,MAAMrC,IAAIA,EAAE,IAAIqC,EAAErC,EAAEoE,EAAEgmE,cAAc,CAACE,aAAavQ,EAAG13D,IAC/Y,SAASorD,GAAGrpD,EAAEpE,GAAG,IAAIqC,EAAE03D,EAAG/5D,EAAElI,OAAO6V,EAAEosD,EAAG/5D,EAAEmqE,cAAc,MAAM9nE,KAAIA,EAAE,GAAGA,KAAM+B,EAAEtM,QAAQsM,EAAEtM,MAAMuK,GAAG,MAAMrC,EAAEmqE,cAAc/lE,EAAE+lE,eAAe9nE,IAAI+B,EAAE+lE,aAAa9nE,IAAI,MAAMsL,IAAIvJ,EAAE+lE,aAAa,GAAGx8D,GAAG,SAASosB,GAAG31B,GAAG,IAAIpE,EAAEoE,EAAEymE,YAAY7qE,IAAIoE,EAAEgmE,cAAcE,cAAc,KAAKtqE,GAAG,OAAOA,IAAIoE,EAAEtM,MAAMkI,GAAG,IAAIstD,GAAS,+BAATA,GAAwF,6BAC9X,SAASuL,GAAGz0D,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAASwtD,GAAGxtD,EAAEpE,GAAG,OAAO,MAAMoE,GAAG,iCAAiCA,EAAEy0D,GAAG74D,GAAG,+BAA+BoE,GAAG,kBAAkBpE,EAAE,+BAA+BoE,EAC3U,IAAI6mB,GAAe7mB,GAAZupD,IAAYvpD,GAAsJ,SAASA,EAAEpE,GAAG,GAAGoE,EAAE0mE,eAAexd,IAAQ,cAAclpD,EAAEA,EAAE2mE,UAAU/qE,MAAM,CAA2F,KAA1FirB,GAAGA,IAAIgqC,SAASsS,cAAc,QAAUwD,UAAU,QAAQ/qE,EAAEgrE,UAAUhsE,WAAW,SAAagB,EAAEirB,GAAGggD,WAAW7mE,EAAE6mE,YAAY7mE,EAAE8mE,YAAY9mE,EAAE6mE,YAAY,KAAKjrE,EAAEirE,YAAY7mE,EAAE+mE,YAAYnrE,EAAEirE,cAArZ,qBAAqBG,OAAOA,MAAMC,wBAAwB,SAASrrE,EAAEqC,EAAEsL,EAAEzT,GAAGkxE,MAAMC,yBAAwB,WAAW,OAAOjnE,GAAEpE,EAAEqC,OAAU+B,IACtK,SAAS8zD,GAAG9zD,EAAEpE,GAAG,GAAGA,EAAE,CAAC,IAAIqC,EAAE+B,EAAE6mE,WAAW,GAAG5oE,GAAGA,IAAI+B,EAAEknE,WAAW,IAAIjpE,EAAEkpE,SAAwB,YAAdlpE,EAAEmpE,UAAUxrE,GAAUoE,EAAEymE,YAAY7qE,EACrH,IAAI2uD,GAAG,CAAC8c,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAG5Z,SAAQ,EAAG6Z,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGC,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAI5zD,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAAS61C,GAAG9rD,EAAEpE,EAAEqC,GAAG,OAAO,MAAMrC,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGqC,GAAG,kBAAkBrC,GAAG,IAAIA,GAAG2uD,GAAGpxB,eAAen5B,IAAIuqD,GAAGvqD,IAAI,GAAGpE,GAAGyJ,OAAOzJ,EAAE,KAC9Z,SAASswD,GAAGlsD,EAAEpE,GAAa,IAAI,IAAIqC,KAAlB+B,EAAEA,EAAE8pE,MAAmBluE,EAAE,GAAGA,EAAEu9B,eAAel7B,GAAG,CAAC,IAAIsL,EAAE,IAAItL,EAAE/B,QAAQ,MAAMpG,EAAEg2D,GAAG7tD,EAAErC,EAAEqC,GAAGsL,GAAG,UAAUtL,IAAIA,EAAE,YAAYsL,EAAEvJ,EAAE+pE,YAAY9rE,EAAEnI,GAAGkK,EAAE/B,GAAGnI,GADT7C,OAAOyzB,KAAK6jC,IAAI37B,SAAQ,SAAS5uB,GAAGiW,GAAG2Y,SAAQ,SAAShzB,GAAGA,EAAEA,EAAEoE,EAAE46B,OAAO,GAAGkqC,cAAc9kE,EAAE8qB,UAAU,GAAGy/B,GAAG3uD,GAAG2uD,GAAGvqD,SACrG,IAAIotD,GAAGtxD,EAAE,CAACkuE,UAAS,GAAI,CAACC,MAAK,EAAGj/D,MAAK,EAAG6zB,IAAG,EAAGqrC,KAAI,EAAGC,OAAM,EAAG7rC,IAAG,EAAG8rC,KAAI,EAAG1qD,OAAM,EAAG2qD,QAAO,EAAGlU,MAAK,EAAGmU,MAAK,EAAGC,OAAM,EAAG1wC,QAAO,EAAGmS,OAAM,EAAGw+B,KAAI,IAClT,SAAS9V,GAAG10D,EAAEpE,GAAG,GAAGA,EAAE,CAAC,GAAGwxD,GAAGptD,KAAK,MAAMpE,EAAEglB,UAAU,MAAMhlB,EAAE4qE,yBAAyB,MAAM/wE,MAAMyK,EAAE,IAAIF,IAAI,GAAG,MAAMpE,EAAE4qE,wBAAwB,CAAC,GAAG,MAAM5qE,EAAEglB,SAAS,MAAMnrB,MAAMyK,EAAE,KAAK,GAAK,kBAAkBtE,EAAE4qE,2BAAyB,WAAW5qE,EAAE4qE,yBAAyB,MAAM/wE,MAAMyK,EAAE,KAAM,GAAG,MAAMtE,EAAEkuE,OAAO,kBAAkBluE,EAAEkuE,MAAM,MAAMr0E,MAAMyK,EAAE,MAC5V,SAASqvD,GAAGvvD,EAAEpE,GAAG,IAAI,IAAIoE,EAAE9D,QAAQ,KAAK,MAAM,kBAAkBN,EAAE6uE,GAAG,OAAOzqE,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS20D,GAAG30D,GAA6F,OAA1FA,EAAEA,EAAEa,QAAQb,EAAE0qE,YAAY/kE,QAASglE,0BAA0B3qE,EAAEA,EAAE2qE,yBAAgC,IAAI3qE,EAAEmnE,SAASnnE,EAAE4qE,WAAW5qE,EAAE,IAAIssD,GAAG,KAAKsI,GAAG,KAAKC,GAAG,KACxb,SAAS3H,GAAGltD,GAAG,GAAGA,EAAEosD,GAAGpsD,GAAG,CAAC,GAAG,oBAAoBssD,GAAG,MAAM72D,MAAMyK,EAAE,MAAM,IAAItE,EAAEoE,EAAE6qE,UAAUjvE,IAAIA,EAAEywD,GAAGzwD,GAAG0wD,GAAGtsD,EAAE6qE,UAAU7qE,EAAExF,KAAKoB,KAAK,SAASuxD,GAAGntD,GAAG40D,GAAGC,GAAGA,GAAGv9D,KAAK0I,GAAG60D,GAAG,CAAC70D,GAAG40D,GAAG50D,EAAE,SAASw1D,KAAK,GAAGZ,GAAG,CAAC,IAAI50D,EAAE40D,GAAGh5D,EAAEi5D,GAAoB,GAAjBA,GAAGD,GAAG,KAAK1H,GAAGltD,GAAMpE,EAAE,IAAIoE,EAAE,EAAEA,EAAEpE,EAAEnH,OAAOuL,IAAIktD,GAAGtxD,EAAEoE,KAAK,SAASusD,GAAGvsD,EAAEpE,GAAG,OAAOoE,EAAEpE,GAAG,SAAS6wD,GAAGzsD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,OAAOkK,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,SAASugE,MAAM,IAAIE,GAAGhK,GAAG4K,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOzC,IAAI,OAAOC,KAAGwB,KAAKb,MAE9Z,SAAS8B,GAAGt3D,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAE6qE,UAAU,GAAG,OAAO5sE,EAAE,OAAO,KAAK,IAAIsL,EAAE8iD,GAAGpuD,GAAG,GAAG,OAAOsL,EAAE,OAAO,KAAKtL,EAAEsL,EAAE3N,GAAGoE,EAAE,OAAOpE,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB2N,GAAGA,EAAEg9D,YAAqBh9D,IAAI,YAAbvJ,EAAEA,EAAExF,OAAuB,UAAUwF,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGuJ,EAAE,MAAMvJ,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAG/B,GAAG,oBACleA,EAAE,MAAMxI,MAAMyK,EAAE,IAAItE,SAASqC,IAAI,OAAOA,EAAE,IAAIs5D,IAAG,EAAG,GAAG7N,EAAG,IAAI,IAAI8K,GAAG,GAAGvhE,OAAO4M,eAAe20D,GAAG,UAAU,CAAC3zC,IAAI,WAAW02C,IAAG,KAAM5xD,OAAOggB,iBAAiB,OAAO6uC,GAAGA,IAAI7uD,OAAOkgB,oBAAoB,OAAO2uC,GAAGA,IAAI,MAAMx0D,IAAGu3D,IAAG,EAAG,SAASf,GAAGx2D,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,EAAE/0B,EAAEuT,EAAEjS,GAAG,IAAIhB,EAAE5O,MAAM3D,UAAUyG,MAAMlE,KAAKqB,UAAU,GAAG,IAAIwE,EAAErE,MAAM0G,EAAE8H,GAAG,MAAMlK,GAAG7F,KAAK80E,QAAQjvE,IAAI,IAAI67D,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACgT,QAAQ,SAAS9qE,GAAG03D,IAAG,EAAGC,GAAG33D,IAAI,SAAS+3D,GAAG/3D,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,EAAE/0B,EAAEuT,EAAEjS,GAAG2wD,IAAG,EAAGC,GAAG,KAAKnB,GAAGj/D,MAAMugE,GAAG1gE,WACvV,SAAS6gE,GAAGj4D,GAAG,IAAIpE,EAAEoE,EAAE/B,EAAE+B,EAAE,GAAGA,EAAE+qE,UAAU,KAAKnvE,EAAEovE,QAAQpvE,EAAEA,EAAEovE,WAAW,CAAChrE,EAAEpE,EAAE,GAAO,KAAa,MAAjBA,EAAEoE,GAAS0jB,SAAczlB,EAAErC,EAAEovE,QAAQhrE,EAAEpE,EAAEovE,aAAahrE,GAAG,OAAO,IAAIpE,EAAEu7B,IAAIl5B,EAAE,KAAK,SAASm6D,GAAGp4D,GAAG,GAAG,KAAKA,EAAEm3B,IAAI,CAAC,IAAIv7B,EAAEoE,EAAEirE,cAAsE,GAAxD,OAAOrvE,IAAkB,QAAdoE,EAAEA,EAAE+qE,aAAqBnvE,EAAEoE,EAAEirE,gBAAmB,OAAOrvE,EAAE,OAAOA,EAAEsvE,WAAW,OAAO,KAAK,SAAShT,GAAGl4D,GAAG,GAAGi4D,GAAGj4D,KAAKA,EAAE,MAAMvK,MAAMyK,EAAE,MAEpS,SAASo4D,GAAGt4D,GAAW,GAARA,EADtN,SAAYA,GAAG,IAAIpE,EAAEoE,EAAE+qE,UAAU,IAAInvE,EAAE,CAAS,GAAG,QAAXA,EAAEq8D,GAAGj4D,IAAe,MAAMvK,MAAMyK,EAAE,MAAM,OAAOtE,IAAIoE,EAAE,KAAKA,EAAE,IAAI,IAAI/B,EAAE+B,EAAEuJ,EAAE3N,IAAI,CAAC,IAAI9F,EAAEmI,EAAE+sE,OAAO,GAAG,OAAOl1E,EAAE,MAAM,IAAI0kC,EAAE1kC,EAAEi1E,UAAU,GAAG,OAAOvwC,EAAE,CAAY,GAAG,QAAdjxB,EAAEzT,EAAEk1E,QAAmB,CAAC/sE,EAAEsL,EAAE,SAAS,MAAM,GAAGzT,EAAEk1C,QAAQxQ,EAAEwQ,MAAM,CAAC,IAAIxQ,EAAE1kC,EAAEk1C,MAAMxQ,GAAG,CAAC,GAAGA,IAAIv8B,EAAE,OAAOi6D,GAAGpiE,GAAGkK,EAAE,GAAGw6B,IAAIjxB,EAAE,OAAO2uD,GAAGpiE,GAAG8F,EAAE4+B,EAAEA,EAAE2wC,QAAQ,MAAM11E,MAAMyK,EAAE,MAAO,GAAGjC,EAAE+sE,SAASzhE,EAAEyhE,OAAO/sE,EAAEnI,EAAEyT,EAAEixB,MAAM,CAAC,IAAI,IAAI/0B,GAAE,EAAGuT,EAAEljB,EAAEk1C,MAAMhyB,GAAG,CAAC,GAAGA,IAAI/a,EAAE,CAACwH,GAAE,EAAGxH,EAAEnI,EAAEyT,EAAEixB,EAAE,MAAM,GAAGxhB,IAAIzP,EAAE,CAAC9D,GAAE,EAAG8D,EAAEzT,EAAEmI,EAAEu8B,EAAE,MAAMxhB,EAAEA,EAAEmyD,QAAQ,IAAI1lE,EAAE,CAAC,IAAIuT,EAAEwhB,EAAEwQ,MAAMhyB,GAAG,CAAC,GAAGA,IAC5f/a,EAAE,CAACwH,GAAE,EAAGxH,EAAEu8B,EAAEjxB,EAAEzT,EAAE,MAAM,GAAGkjB,IAAIzP,EAAE,CAAC9D,GAAE,EAAG8D,EAAEixB,EAAEv8B,EAAEnI,EAAE,MAAMkjB,EAAEA,EAAEmyD,QAAQ,IAAI1lE,EAAE,MAAMhQ,MAAMyK,EAAE,OAAQ,GAAGjC,EAAE8sE,YAAYxhE,EAAE,MAAM9T,MAAMyK,EAAE,MAAO,GAAG,IAAIjC,EAAEk5B,IAAI,MAAM1hC,MAAMyK,EAAE,MAAM,OAAOjC,EAAE4sE,UAAUxqD,UAAUpiB,EAAE+B,EAAEpE,EAAmBu8D,CAAGn4D,IAAOA,EAAE,OAAO,KAAK,IAAI,IAAIpE,EAAEoE,IAAI,CAAC,GAAG,IAAIpE,EAAEu7B,KAAK,IAAIv7B,EAAEu7B,IAAI,OAAOv7B,EAAE,GAAGA,EAAEovC,MAAMpvC,EAAEovC,MAAMggC,OAAOpvE,EAAEA,EAAEA,EAAEovC,UAAU,CAAC,GAAGpvC,IAAIoE,EAAE,MAAM,MAAMpE,EAAEuvE,SAAS,CAAC,IAAIvvE,EAAEovE,QAAQpvE,EAAEovE,SAAShrE,EAAE,OAAO,KAAKpE,EAAEA,EAAEovE,OAAOpvE,EAAEuvE,QAAQH,OAAOpvE,EAAEovE,OAAOpvE,EAAEA,EAAEuvE,SAAS,OAAO,KAC5c,SAAS3S,GAAGx4D,EAAEpE,GAAG,IAAI,IAAIqC,EAAE+B,EAAE+qE,UAAU,OAAOnvE,GAAG,CAAC,GAAGA,IAAIoE,GAAGpE,IAAIqC,EAAE,OAAM,EAAGrC,EAAEA,EAAEovE,OAAO,OAAM,EAAG,IAAIviC,GAAG4lB,GAAGsK,GAAG1O,GAAGK,IAAG,EAAGE,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIwgB,IAAIvgB,GAAG,IAAIugB,IAAItgB,GAAG,GAAGC,GAAG,6PAA6PxrC,MAAM,KACrb,SAASyrC,GAAGhrD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,MAAM,CAACu1E,UAAUrrE,EAAEsrE,aAAa1vE,EAAE2vE,iBAAmB,GAAFttE,EAAKutE,YAAY11E,EAAE21E,iBAAiB,CAACliE,IAAI,SAAS0hD,GAAGjrD,EAAEpE,GAAG,OAAOoE,GAAG,IAAK,UAAU,IAAK,WAAWyqD,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGiH,OAAOj2D,EAAE8vE,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqB7gB,GAAGgH,OAAOj2D,EAAE8vE,YAC3Z,SAASxgB,GAAGlrD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAG,OAAG,OAAOx6B,GAAGA,EAAEwrE,cAAchxC,GAASx6B,EAAEgrD,GAAGpvD,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAG,OAAO5+B,IAAY,QAARA,EAAEwwD,GAAGxwD,KAAayyD,GAAGzyD,IAAIoE,IAAEA,EAAEurE,kBAAkBhiE,EAAE3N,EAAEoE,EAAEyrE,iBAAiB,OAAO31E,IAAI,IAAI8F,EAAEM,QAAQpG,IAAI8F,EAAEtE,KAAKxB,GAAUkK,GAE9M,SAASorD,GAAGprD,GAAG,IAAIpE,EAAEyvD,GAAGrrD,EAAEa,QAAQ,GAAG,OAAOjF,EAAE,CAAC,IAAIqC,EAAEg6D,GAAGr8D,GAAG,GAAG,OAAOqC,EAAE,GAAW,MAARrC,EAAEqC,EAAEk5B,MAAY,GAAW,QAARv7B,EAAEw8D,GAAGn6D,IAAmH,OAAtG+B,EAAEqrE,UAAUzvE,OAAEquD,GAAGjqD,EAAE2rE,cAAa,WAAW3lE,EAAE4lE,yBAAyB5rE,EAAE6rE,UAAS,WAAWlT,GAAG16D,cAAoB,GAAG,IAAIrC,GAAGqC,EAAE4sE,UAAUiB,QAA8D,YAArD9rE,EAAEqrE,UAAU,IAAIptE,EAAEk5B,IAAIl5B,EAAE4sE,UAAUkB,cAAc,MAAa/rE,EAAEqrE,UAAU,KAC1U,SAAS/f,GAAGtrD,GAAG,GAAG,OAAOA,EAAEqrE,UAAU,OAAM,EAAG,IAAI,IAAIzvE,EAAEoE,EAAEyrE,iBAAiB,EAAE7vE,EAAEnH,QAAQ,CAAC,IAAIwJ,EAAEstD,GAAGvrD,EAAEsrE,aAAatrE,EAAEurE,iBAAiB3vE,EAAE,GAAGoE,EAAEwrE,aAAa,GAAG,OAAOvtE,EAAE,OAAe,QAARrC,EAAEwwD,GAAGnuD,KAAaowD,GAAGzyD,GAAGoE,EAAEqrE,UAAUptE,GAAE,EAAGrC,EAAEke,QAAQ,OAAM,EAAG,SAAS0xC,GAAGxrD,EAAEpE,EAAEqC,GAAGqtD,GAAGtrD,IAAI/B,EAAE4zD,OAAOj2D,GACzQ,SAAS6vD,KAAK,IAAInB,IAAG,EAAG,EAAEE,GAAG/1D,QAAQ,CAAC,IAAIuL,EAAEwqD,GAAG,GAAG,GAAG,OAAOxqD,EAAEqrE,UAAU,CAAmB,QAAlBrrE,EAAEosD,GAAGpsD,EAAEqrE,aAAqB5iC,GAAGzoC,GAAG,MAAM,IAAI,IAAIpE,EAAEoE,EAAEyrE,iBAAiB,EAAE7vE,EAAEnH,QAAQ,CAAC,IAAIwJ,EAAEstD,GAAGvrD,EAAEsrE,aAAatrE,EAAEurE,iBAAiB3vE,EAAE,GAAGoE,EAAEwrE,aAAa,GAAG,OAAOvtE,EAAE,CAAC+B,EAAEqrE,UAAUptE,EAAE,MAAMrC,EAAEke,QAAQ,OAAO9Z,EAAEqrE,WAAW7gB,GAAG1wC,QAAQ,OAAO2wC,IAAIa,GAAGb,MAAMA,GAAG,MAAM,OAAOC,IAAIY,GAAGZ,MAAMA,GAAG,MAAM,OAAOC,IAAIW,GAAGX,MAAMA,GAAG,MAAMC,GAAGh8B,QAAQ48B,IAAIX,GAAGj8B,QAAQ48B,IACrZ,SAASE,GAAG1rD,EAAEpE,GAAGoE,EAAEqrE,YAAYzvE,IAAIoE,EAAEqrE,UAAU,KAAK/gB,KAAKA,IAAG,EAAGtkD,EAAEgmE,0BAA0BhmE,EAAEimE,wBAAwBxgB,MACrH,SAASE,GAAG3rD,GAAG,SAASpE,EAAEA,GAAG,OAAO8vD,GAAG9vD,EAAEoE,GAAG,GAAG,EAAEwqD,GAAG/1D,OAAO,CAACi3D,GAAGlB,GAAG,GAAGxqD,GAAG,IAAI,IAAI/B,EAAE,EAAEA,EAAEusD,GAAG/1D,OAAOwJ,IAAI,CAAC,IAAIsL,EAAEihD,GAAGvsD,GAAGsL,EAAE8hE,YAAYrrE,IAAIuJ,EAAE8hE,UAAU,OAA+F,IAAxF,OAAO5gB,IAAIiB,GAAGjB,GAAGzqD,GAAG,OAAO0qD,IAAIgB,GAAGhB,GAAG1qD,GAAG,OAAO2qD,IAAIe,GAAGf,GAAG3qD,GAAG4qD,GAAGh8B,QAAQhzB,GAAGivD,GAAGj8B,QAAQhzB,GAAOqC,EAAE,EAAEA,EAAE6sD,GAAGr2D,OAAOwJ,KAAIsL,EAAEuhD,GAAG7sD,IAAKotE,YAAYrrE,IAAIuJ,EAAE8hE,UAAU,MAAM,KAAK,EAAEvgB,GAAGr2D,QAAiB,QAARwJ,EAAE6sD,GAAG,IAAYugB,WAAYjgB,GAAGntD,GAAG,OAAOA,EAAEotE,WAAWvgB,GAAGhxC,QAC/X,SAAS8xC,GAAG5rD,EAAEpE,GAAG,IAAIqC,EAAE,GAAkF,OAA/EA,EAAE+B,EAAE/E,eAAeW,EAAEX,cAAcgD,EAAE,SAAS+B,GAAG,SAASpE,EAAEqC,EAAE,MAAM+B,GAAG,MAAMpE,EAASqC,EAAE,IAAI4tD,GAAG,CAACqgB,aAAatgB,GAAG,YAAY,gBAAgBugB,mBAAmBvgB,GAAG,YAAY,sBAAsBwgB,eAAexgB,GAAG,YAAY,kBAAkBygB,cAAczgB,GAAG,aAAa,kBAAkBG,GAAG,GAAGC,GAAG,GACnF,SAASC,GAAGjsD,GAAG,GAAG+rD,GAAG/rD,GAAG,OAAO+rD,GAAG/rD,GAAG,IAAI6rD,GAAG7rD,GAAG,OAAOA,EAAE,IAAY/B,EAARrC,EAAEiwD,GAAG7rD,GAAK,IAAI/B,KAAKrC,EAAE,GAAGA,EAAEu9B,eAAel7B,IAAIA,KAAK+tD,GAAG,OAAOD,GAAG/rD,GAAGpE,EAAEqC,GAAG,OAAO+B,EAA9X0pD,IAAKsC,GAAG6E,SAASsS,cAAc,OAAO2G,MAAM,mBAAmBnkE,gBAAgBkmD,GAAGqgB,aAAaI,iBAAiBzgB,GAAGsgB,mBAAmBG,iBAAiBzgB,GAAGugB,eAAeE,WAAW,oBAAoB3mE,eAAekmD,GAAGwgB,cAAcnK,YACxO,IAAItJ,GAAG3M,GAAG,gBAAgB4M,GAAG5M,GAAG,sBAAsBwD,GAAGxD,GAAG,kBAAkB8M,GAAG9M,GAAG,iBAAiBgN,GAAG,IAAImS,IAAI9c,GAAG,IAAI8c,IAAIjS,GAAG,CAAC,QAAQ,QAAQP,GAAG,eAAeC,GAAG,qBAAqBpJ,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAasJ,GAAG,gBAAgB,UAAU,WAAW,SAASV,GAAGr4D,EAAEpE,GAAG,IAAI,IAAIqC,EAAE,EAAEA,EAAE+B,EAAEvL,OAAOwJ,GAAG,EAAE,CAAC,IAAIsL,EAAEvJ,EAAE/B,GAAGnI,EAAEkK,EAAE/B,EAAE,GAAGnI,EAAE,MAAMA,EAAE,GAAGgvE,cAAchvE,EAAEmE,MAAM,IAAIq0D,GAAGvpD,IAAIwE,EAAE3N,GAAGq9D,GAAGl0D,IAAIwE,EAAEzT,GAAGszD,EAAGtzD,EAAE,CAACyT,MAA2B6vD,EAAfpzD,EAAEumE,gBAAkB,IAAI9b,GAAE,EAC/X,SAAS4I,GAAGr5D,GAAG,GAAG,KAAK,EAAEA,GAAG,OAAOywD,GAAE,GAAG,EAAE,GAAG,KAAK,EAAEzwD,GAAG,OAAOywD,GAAE,GAAG,EAAE,GAAG,KAAK,EAAEzwD,GAAG,OAAOywD,GAAE,GAAG,EAAE,IAAI70D,EAAE,GAAGoE,EAAE,OAAG,IAAIpE,GAAS60D,GAAE,GAAG70D,GAAK,KAAO,GAAFoE,IAAaywD,GAAE,GAAG,IAAc,KAAX70D,EAAE,IAAIoE,IAAkBywD,GAAE,GAAG70D,GAAK,KAAO,IAAFoE,IAAcywD,GAAE,EAAE,KAAgB,KAAZ70D,EAAE,KAAKoE,IAAkBywD,GAAE,EAAE70D,GAAK,KAAO,KAAFoE,IAAeywD,GAAE,EAAE,MAAoB,KAAf70D,EAAE,QAAQoE,IAAkBywD,GAAE,EAAE70D,GAAkB,KAAhBA,EAAE,SAASoE,IAAkBywD,GAAE,EAAE70D,GAAO,SAAFoE,GAAkBywD,GAAE,EAAE,UAAY,KAAO,UAAFzwD,IAAoBywD,GAAE,EAAE,WAA2B,KAAjB70D,EAAE,UAAUoE,IAAkBywD,GAAE,EAAE70D,GAAK,KAAK,WAAWoE,IAAUywD,GAAE,EAAE,aACjfA,GAAE,EAASzwD,GACX,SAAS25D,GAAG35D,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAEwsE,aAAa,GAAG,IAAIvuE,EAAE,OAAOwyD,GAAE,EAAE,IAAIlnD,EAAE,EAAEzT,EAAE,EAAE0kC,EAAEx6B,EAAEysE,aAAahnE,EAAEzF,EAAE0sE,eAAe1zD,EAAEhZ,EAAE2sE,YAAY,GAAG,IAAInyC,EAAEjxB,EAAEixB,EAAE1kC,EAAE26D,GAAE,QAAQ,GAAiB,KAAdj2B,EAAI,UAAFv8B,GAAkB,CAAC,IAAI8I,EAAEyzB,GAAG/0B,EAAE,IAAIsB,GAAGwC,EAAE8vD,GAAGtyD,GAAGjR,EAAE26D,IAAS,KAALz3C,GAAGwhB,KAAUjxB,EAAE8vD,GAAGrgD,GAAGljB,EAAE26D,SAAgB,KAAPj2B,EAAEv8B,GAAGwH,IAAS8D,EAAE8vD,GAAG7+B,GAAG1kC,EAAE26D,IAAG,IAAIz3C,IAAIzP,EAAE8vD,GAAGrgD,GAAGljB,EAAE26D,IAAG,GAAG,IAAIlnD,EAAE,OAAO,EAAqC,GAAxBA,EAAEtL,IAAI,GAAjBsL,EAAE,GAAGqwD,GAAGrwD,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAI3N,GAAGA,IAAI2N,GAAG,KAAK3N,EAAE6J,GAAG,CAAO,GAAN4zD,GAAGz9D,GAAM9F,GAAG26D,GAAE,OAAO70D,EAAE60D,GAAE36D,EAAqB,GAAG,KAAtB8F,EAAEoE,EAAE4sE,gBAAwB,IAAI5sE,EAAEA,EAAE6sE,cAAcjxE,GAAG2N,EAAE,EAAE3N,GAAc9F,EAAE,IAAbmI,EAAE,GAAG27D,GAAGh+D,IAAU2N,GAAGvJ,EAAE/B,GAAGrC,IAAI9F,EAAE,OAAOyT,EAC1e,SAASmwD,GAAG15D,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEwsE,cAAsCxsE,EAAI,WAAFA,EAAa,WAAW,EAAE,SAASi6D,GAAGj6D,EAAEpE,GAAG,OAAOoE,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAEk6D,GAAG,IAAIt+D,IAASq+D,GAAG,GAAGr+D,GAAGoE,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAEk6D,GAAG,KAAKt+D,IAASq+D,GAAG,EAAEr+D,GAAGoE,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAEk6D,GAAG,MAAMt+D,MAA4B,KAAjBoE,EAAEk6D,GAAG,SAASt+D,MAAWoE,EAAE,MAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBpE,EAAEs+D,GAAG,WAAWt+D,MAAWA,EAAE,WAAWA,EAAE,MAAMnG,MAAMyK,EAAE,IAAIF,IAAK,SAASk6D,GAAGl6D,GAAG,OAAOA,GAAGA,EAAE,SAASg6D,GAAGh6D,GAAG,IAAI,IAAIpE,EAAE,GAAGqC,EAAE,EAAE,GAAGA,EAAEA,IAAIrC,EAAEtE,KAAK0I,GAAG,OAAOpE,EACrd,SAAS0/D,GAAGt7D,EAAEpE,EAAEqC,GAAG+B,EAAEwsE,cAAc5wE,EAAE,IAAI2N,EAAE3N,EAAE,EAAEoE,EAAE0sE,gBAAgBnjE,EAAEvJ,EAAE2sE,aAAapjE,GAAEvJ,EAAEA,EAAE8sE,YAAWlxE,EAAE,GAAGg+D,GAAGh+D,IAAQqC,EAAE,IAAI27D,GAAGt7D,KAAK2P,MAAM3P,KAAK2P,MAAiC,SAAYjO,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIq/D,GAAGr/D,GAAGogE,GAAG,GAAG,GAAvEf,GAAG/gE,KAAKmzD,IAAI2O,GAAG9hE,KAAKyuE,IAAqD,IAAIlN,GAAG75D,EAAEgnE,8BAA8BC,GAAGjnE,EAAE4lE,yBAAyBvW,IAAG,EAAG,SAAS6X,GAAGltE,EAAEpE,EAAEqC,EAAEsL,GAAG4tD,IAAId,KAAK,IAAIvgE,EAAEq3E,GAAG3yC,EAAE28B,GAAGA,IAAG,EAAG,IAAI1K,GAAG32D,EAAEkK,EAAEpE,EAAEqC,EAAEsL,GAAf,SAA2B4tD,GAAG38B,IAAI68B,MAAM,SAAShS,GAAGrlD,EAAEpE,EAAEqC,EAAEsL,GAAG0jE,GAAGpN,GAAGsN,GAAG/nD,KAAK,KAAKplB,EAAEpE,EAAEqC,EAAEsL,IACjb,SAAS4jE,GAAGntE,EAAEpE,EAAEqC,EAAEsL,GAAU,IAAIzT,EAAX,GAAGu/D,GAAU,IAAIv/D,EAAE,KAAO,EAAF8F,KAAO,EAAE4uD,GAAG/1D,SAAS,EAAEs2D,GAAG7uD,QAAQ8D,GAAGA,EAAEgrD,GAAG,KAAKhrD,EAAEpE,EAAEqC,EAAEsL,GAAGihD,GAAGlzD,KAAK0I,OAAO,CAAC,IAAIw6B,EAAE+wB,GAAGvrD,EAAEpE,EAAEqC,EAAEsL,GAAG,GAAG,OAAOixB,EAAE1kC,GAAGm1D,GAAGjrD,EAAEuJ,OAAO,CAAC,GAAGzT,EAAE,CAAC,IAAI,EAAEi1D,GAAG7uD,QAAQ8D,GAA+B,OAA3BA,EAAEgrD,GAAGxwB,EAAEx6B,EAAEpE,EAAEqC,EAAEsL,QAAGihD,GAAGlzD,KAAK0I,GAAU,GAfhO,SAAYA,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,OAAO8F,GAAG,IAAK,UAAU,OAAO6uD,GAAGS,GAAGT,GAAGzqD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,IAAG,EAAG,IAAK,YAAY,OAAO40D,GAAGQ,GAAGR,GAAG1qD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,IAAG,EAAG,IAAK,YAAY,OAAO60D,GAAGO,GAAGP,GAAG3qD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,IAAG,EAAG,IAAK,cAAc,IAAI0kC,EAAE1kC,EAAE41E,UAAkD,OAAxC9gB,GAAG7lD,IAAIy1B,EAAE0wB,GAAGN,GAAG/pC,IAAI2Z,IAAI,KAAKx6B,EAAEpE,EAAEqC,EAAEsL,EAAEzT,KAAU,EAAG,IAAK,oBAAoB,OAAO0kC,EAAE1kC,EAAE41E,UAAU7gB,GAAG9lD,IAAIy1B,EAAE0wB,GAAGL,GAAGhqC,IAAI2Z,IAAI,KAAKx6B,EAAEpE,EAAEqC,EAAEsL,EAAEzT,KAAI,EAAG,OAAM,EAe9Hq1D,CAAG3wB,EAAEx6B,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAO0hD,GAAGjrD,EAAEuJ,GAAG6jE,GAAGptE,EAAEpE,EAAE2N,EAAE,KAAKtL,KAC9Q,SAASstD,GAAGvrD,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE6+D,GAAGprD,GAAW,GAAG,QAAXzT,EAAEu1D,GAAGv1D,IAAe,CAAC,IAAI0kC,EAAEy9B,GAAGniE,GAAG,GAAG,OAAO0kC,EAAE1kC,EAAE,SAAS,CAAC,IAAI2P,EAAE+0B,EAAErD,IAAI,GAAG,KAAK1xB,EAAE,CAAS,GAAG,QAAX3P,EAAEsiE,GAAG59B,IAAe,OAAO1kC,EAAEA,EAAE,UAAU,GAAG,IAAI2P,EAAE,CAAC,GAAG+0B,EAAEqwC,UAAUiB,QAAQ,OAAO,IAAItxC,EAAErD,IAAIqD,EAAEqwC,UAAUkB,cAAc,KAAKj2E,EAAE,UAAU0kC,IAAI1kC,IAAIA,EAAE,OAAqB,OAAds3E,GAAGptE,EAAEpE,EAAE2N,EAAEzT,EAAEmI,GAAU,KAAK,IAAIovE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIvtE,EAAkBuJ,EAAhB3N,EAAE0xE,GAAGrvE,EAAErC,EAAEnH,OAASqB,EAAE,UAAUu3E,GAAGA,GAAG35E,MAAM25E,GAAG5G,YAAYjsC,EAAE1kC,EAAErB,OAAO,IAAIuL,EAAE,EAAEA,EAAE/B,GAAGrC,EAAEoE,KAAKlK,EAAEkK,GAAGA,KAAK,IAAIyF,EAAExH,EAAE+B,EAAE,IAAIuJ,EAAE,EAAEA,GAAG9D,GAAG7J,EAAEqC,EAAEsL,KAAKzT,EAAE0kC,EAAEjxB,GAAGA,KAAK,OAAOgkE,GAAGz3E,EAAEmE,MAAM+F,EAAE,EAAEuJ,EAAE,EAAEA,OAAE,GAAQ,SAASkkE,GAAGztE,GAAG,IAAIpE,EAAEoE,EAAE0tE,QAA+E,MAAvE,aAAa1tE,EAAgB,KAAbA,EAAEA,EAAE2tE,WAAgB,KAAK/xE,IAAIoE,EAAE,IAAKA,EAAEpE,EAAE,KAAKoE,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAAE,SAAS4tE,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EACjY,SAASC,GAAG9tE,GAAG,SAASpE,EAAEA,EAAE2N,EAAEzT,EAAE0kC,EAAE/0B,GAA6G,IAAI,IAAIxH,KAAlHjI,KAAK+3E,WAAWnyE,EAAE5F,KAAKg4E,YAAYl4E,EAAEE,KAAKwE,KAAK+O,EAAEvT,KAAKw1E,YAAYhxC,EAAExkC,KAAK6K,OAAO4E,EAAEzP,KAAKi4E,cAAc,KAAkBjuE,EAAEA,EAAEm5B,eAAel7B,KAAKrC,EAAEoE,EAAE/B,GAAGjI,KAAKiI,GAAGrC,EAAEA,EAAE4+B,GAAGA,EAAEv8B,IAAgI,OAA5HjI,KAAKk4E,oBAAoB,MAAM1zC,EAAE2zC,iBAAiB3zC,EAAE2zC,kBAAiB,IAAK3zC,EAAE4zC,aAAaR,GAAGC,GAAG73E,KAAKq4E,qBAAqBR,GAAU73E,KAC1E,OAD+E8F,EAAEF,EAAEpI,UAAU,CAAC86E,eAAe,WAAWt4E,KAAKm4E,kBAAiB,EAAG,IAAInuE,EAAEhK,KAAKw1E,YAAYxrE,IAAIA,EAAEsuE,eAAetuE,EAAEsuE,iBAAiB,mBAAmBtuE,EAAEouE,cAC7epuE,EAAEouE,aAAY,GAAIp4E,KAAKk4E,mBAAmBN,KAAKW,gBAAgB,WAAW,IAAIvuE,EAAEhK,KAAKw1E,YAAYxrE,IAAIA,EAAEuuE,gBAAgBvuE,EAAEuuE,kBAAkB,mBAAmBvuE,EAAEwuE,eAAexuE,EAAEwuE,cAAa,GAAIx4E,KAAKq4E,qBAAqBT,KAAKa,QAAQ,aAAaC,aAAad,KAAYhyE,EAChR,IAAoL+yE,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASlvE,GAAG,OAAOA,EAAEkvE,WAAWvpB,KAAKpX,OAAO4/B,iBAAiB,EAAEgB,UAAU,GAAGC,GAAGtB,GAAGgB,IAAIO,GAAGvzE,EAAE,GAAGgzE,GAAG,CAACQ,KAAK,EAAEC,OAAO,IAAIC,GAAG1B,GAAGuB,IAAaI,GAAG3zE,EAAE,GAAGuzE,GAAG,CAACK,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAASxwE,GAAG,YAAO,IAASA,EAAEwwE,cAAcxwE,EAAEywE,cAAczwE,EAAE0qE,WAAW1qE,EAAE0wE,UAAU1wE,EAAEywE,YAAYzwE,EAAEwwE,eAAeG,UAAU,SAAS3wE,GAAG,MAAG,cAC3eA,EAASA,EAAE2wE,WAAU3wE,IAAI6uE,KAAKA,IAAI,cAAc7uE,EAAExF,MAAMm0E,GAAG3uE,EAAE0vE,QAAQb,GAAGa,QAAQd,GAAG5uE,EAAE2vE,QAAQd,GAAGc,SAASf,GAAGD,GAAG,EAAEE,GAAG7uE,GAAU2uE,KAAIiC,UAAU,SAAS5wE,GAAG,MAAM,cAAcA,EAAEA,EAAE4wE,UAAUhC,MAAMiC,GAAG/C,GAAG2B,IAAiCqB,GAAGhD,GAA7BhyE,EAAE,GAAG2zE,GAAG,CAACsB,aAAa,KAA4CC,GAAGlD,GAA9BhyE,EAAE,GAAGuzE,GAAG,CAACmB,cAAc,KAA0ES,GAAGnD,GAA5DhyE,EAAE,GAAGgzE,GAAG,CAACoC,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcC,GAAGv1E,EAAE,GAAGgzE,GAAG,CAACwC,cAAc,SAAStxE,GAAG,MAAM,kBAAkBA,EAAEA,EAAEsxE,cAAc3rE,OAAO2rE,iBAAiBC,GAAGzD,GAAGuD,IAAyBG,GAAG1D,GAArBhyE,EAAE,GAAGgzE,GAAG,CAACr0E,KAAK,KAAcg3E,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAG5yE,GAAG,IAAIpE,EAAE5F,KAAKw1E,YAAY,OAAO5vE,EAAEw0E,iBAAiBx0E,EAAEw0E,iBAAiBpwE,MAAIA,EAAEuyE,GAAGvyE,OAAMpE,EAAEoE,GAAM,SAASqwE,KAAK,OAAOuC,GAC9R,IAAIC,GAAG/2E,EAAE,GAAGuzE,GAAG,CAACh7E,IAAI,SAAS2L,GAAG,GAAGA,EAAE3L,IAAI,CAAC,IAAIuH,EAAE61E,GAAGzxE,EAAE3L,MAAM2L,EAAE3L,IAAI,GAAG,iBAAiBuH,EAAE,OAAOA,EAAE,MAAM,aAAaoE,EAAExF,KAAc,MAARwF,EAAEytE,GAAGztE,IAAU,QAAQxD,OAAO0C,aAAac,GAAI,YAAYA,EAAExF,MAAM,UAAUwF,EAAExF,KAAK83E,GAAGtyE,EAAE0tE,UAAU,eAAe,IAAI1oE,KAAK,EAAE2rD,SAAS,EAAEqf,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE2C,OAAO,EAAEC,OAAO,EAAE3C,iBAAiBC,GAAG1C,SAAS,SAAS3tE,GAAG,MAAM,aAAaA,EAAExF,KAAKizE,GAAGztE,GAAG,GAAG0tE,QAAQ,SAAS1tE,GAAG,MAAM,YAAYA,EAAExF,MAAM,UAAUwF,EAAExF,KAAKwF,EAAE0tE,QAAQ,GAAGsF,MAAM,SAAShzE,GAAG,MAAM,aAC7eA,EAAExF,KAAKizE,GAAGztE,GAAG,YAAYA,EAAExF,MAAM,UAAUwF,EAAExF,KAAKwF,EAAE0tE,QAAQ,KAAKuF,GAAGnF,GAAG+E,IAAiIK,GAAGpF,GAA7HhyE,EAAE,GAAG2zE,GAAG,CAAC/D,UAAU,EAAEn9D,MAAM,EAAE4kE,OAAO,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAG7F,GAArHhyE,EAAE,GAAGuzE,GAAG,CAACuE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE5D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0E0D,GAAGjG,GAA3DhyE,EAAE,GAAGgzE,GAAG,CAACnK,aAAa,EAAEwM,YAAY,EAAEC,cAAc,KAAc4C,GAAGl4E,EAAE,GAAG2zE,GAAG,CAACwE,OAAO,SAASj0E,GAAG,MAAM,WAAWA,EAAEA,EAAEi0E,OAAO,gBAAgBj0E,GAAGA,EAAEk0E,YAAY,GAClfC,OAAO,SAASn0E,GAAG,MAAM,WAAWA,EAAEA,EAAEm0E,OAAO,gBAAgBn0E,GAAGA,EAAEo0E,YAAY,eAAep0E,GAAGA,EAAEq0E,WAAW,GAAGC,OAAO,EAAEC,UAAU,IAAIC,GAAG1G,GAAGkG,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGhrB,GAAI,qBAAqB/jD,OAAOgvE,GAAG,KAAKjrB,GAAI,iBAAiBmH,WAAW8jB,GAAG9jB,SAAS+jB,cAAc,IAAIC,GAAGnrB,GAAI,cAAc/jD,SAASgvE,GAAGG,GAAGprB,KAAMgrB,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGv4E,OAAO0C,aAAa,IAAI81E,IAAG,EAC1W,SAASC,GAAGj1E,EAAEpE,GAAG,OAAOoE,GAAG,IAAK,QAAQ,OAAO,IAAIy0E,GAAGv4E,QAAQN,EAAE8xE,SAAS,IAAK,UAAU,OAAO,MAAM9xE,EAAE8xE,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASwH,GAAGl1E,GAAc,MAAM,kBAAjBA,EAAEA,EAAEuvE,SAAkC,SAASvvE,EAAEA,EAAEvF,KAAK,KAAK,IAAIyc,IAAG,EAE9Q,IAAIi+D,GAAG,CAACC,OAAM,EAAG1vB,MAAK,EAAG2vB,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGxqE,QAAO,EAAGynB,UAAS,EAAGgjD,OAAM,EAAG5qD,QAAO,EAAG6qD,KAAI,EAAGvuD,MAAK,EAAGu+B,MAAK,EAAGiwB,KAAI,EAAGC,MAAK,GAAI,SAASC,GAAG51E,GAAG,IAAIpE,EAAEoE,GAAGA,EAAEulE,UAAUvlE,EAAEulE,SAAStqE,cAAc,MAAM,UAAUW,IAAIu5E,GAAGn1E,EAAExF,MAAM,aAAaoB,EAAQ,SAASi6E,GAAG71E,EAAEpE,EAAEqC,EAAEsL,GAAG4jD,GAAG5jD,GAAsB,GAAnB3N,EAAEk6E,GAAGl6E,EAAE,aAAgBnH,SAASwJ,EAAE,IAAImxE,GAAG,WAAW,SAAS,KAAKnxE,EAAEsL,GAAGvJ,EAAE1I,KAAK,CAACu8C,MAAM51C,EAAE1F,UAAUqD,KAAK,IAAIm6E,GAAG,KAAKC,GAAG,KAAK,SAAS/+D,GAAGjX,GAAGi2E,GAAGj2E,EAAE,GAAG,SAASk2E,GAAGl2E,GAAe,GAAGmqD,EAATgsB,GAAGn2E,IAAY,OAAOA,EACne,SAASo2E,GAAGp2E,EAAEpE,GAAG,GAAG,WAAWoE,EAAE,OAAOpE,EAAE,IAAIy6E,IAAG,EAAG,GAAG3sB,EAAG,CAAC,IAAI4sB,GAAG,GAAG5sB,EAAG,CAAC,IAAI6sB,GAAG,YAAY1lB,SAAS,IAAI0lB,GAAG,CAAC,IAAIC,GAAG3lB,SAASsS,cAAc,OAAOqT,GAAGxR,aAAa,UAAU,WAAWuR,GAAG,oBAAoBC,GAAGC,QAAQH,GAAGC,QAAQD,IAAG,EAAGD,GAAGC,MAAMzlB,SAAS+jB,cAAc,EAAE/jB,SAAS+jB,cAAc,SAAS8B,KAAKX,KAAKA,GAAGY,YAAY,mBAAmBC,IAAIZ,GAAGD,GAAG,MAAM,SAASa,GAAG52E,GAAG,GAAG,UAAUA,EAAE2kE,cAAcuR,GAAGF,IAAI,CAAC,IAAIp6E,EAAE,GAAyB,GAAtBi6E,GAAGj6E,EAAEo6E,GAAGh2E,EAAE20D,GAAG30D,IAAIA,EAAEiX,GAAMkgD,GAAGn3D,EAAEpE,OAAO,CAACu7D,IAAG,EAAG,IAAI5K,GAAGvsD,EAAEpE,GAAT,QAAoBu7D,IAAG,EAAGE,QAC3e,SAASwf,GAAG72E,EAAEpE,EAAEqC,GAAG,YAAY+B,GAAG02E,KAAUV,GAAG/3E,GAAR83E,GAAGn6E,GAAUk7E,YAAY,mBAAmBF,KAAK,aAAa52E,GAAG02E,KAAK,SAASK,GAAG/2E,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOk2E,GAAGF,IAAI,SAASgB,GAAGh3E,EAAEpE,GAAG,GAAG,UAAUoE,EAAE,OAAOk2E,GAAGt6E,GAAG,SAASq7E,GAAGj3E,EAAEpE,GAAG,GAAG,UAAUoE,GAAG,WAAWA,EAAE,OAAOk2E,GAAGt6E,GAAmE,IAAIs7E,GAAG,oBAAoBjkF,OAAOw3E,GAAGx3E,OAAOw3E,GAA5G,SAAYzqE,EAAEpE,GAAG,OAAOoE,IAAIpE,IAAI,IAAIoE,GAAG,EAAEA,IAAI,EAAEpE,IAAIoE,IAAIA,GAAGpE,IAAIA,GAAoDu7E,GAAGlkF,OAAOO,UAAU2lC,eAC7a,SAASi+C,GAAGp3E,EAAEpE,GAAG,GAAGs7E,GAAGl3E,EAAEpE,GAAG,OAAM,EAAG,GAAG,kBAAkBoE,GAAG,OAAOA,GAAG,kBAAkBpE,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIqC,EAAEhL,OAAOyzB,KAAK1mB,GAAGuJ,EAAEtW,OAAOyzB,KAAK9qB,GAAG,GAAGqC,EAAExJ,SAAS8U,EAAE9U,OAAO,OAAM,EAAG,IAAI8U,EAAE,EAAEA,EAAEtL,EAAExJ,OAAO8U,IAAI,IAAI4tE,GAAGphF,KAAK6F,EAAEqC,EAAEsL,MAAM2tE,GAAGl3E,EAAE/B,EAAEsL,IAAI3N,EAAEqC,EAAEsL,KAAK,OAAM,EAAG,OAAM,EAAG,SAAS8tE,GAAGr3E,GAAG,KAAKA,GAAGA,EAAE6mE,YAAY7mE,EAAEA,EAAE6mE,WAAW,OAAO7mE,EAClU,SAASs3E,GAAGt3E,EAAEpE,GAAG,IAAwB2N,EAApBtL,EAAEo5E,GAAGr3E,GAAO,IAAJA,EAAE,EAAY/B,GAAG,CAAC,GAAG,IAAIA,EAAEkpE,SAAS,CAA0B,GAAzB59D,EAAEvJ,EAAE/B,EAAEwoE,YAAYhyE,OAAUuL,GAAGpE,GAAG2N,GAAG3N,EAAE,MAAM,CAACmxC,KAAK9uC,EAAElB,OAAOnB,EAAEoE,GAAGA,EAAEuJ,EAAEvJ,EAAE,CAAC,KAAK/B,GAAG,CAAC,GAAGA,EAAEs5E,YAAY,CAACt5E,EAAEA,EAAEs5E,YAAY,MAAMv3E,EAAE/B,EAAEA,EAAE2sE,WAAW3sE,OAAE,EAAOA,EAAEo5E,GAAGp5E,IAAI,SAASu5E,GAAGx3E,EAAEpE,GAAG,SAAOoE,IAAGpE,KAAEoE,IAAIpE,KAAKoE,GAAG,IAAIA,EAAEmnE,YAAYvrE,GAAG,IAAIA,EAAEurE,SAASqQ,GAAGx3E,EAAEpE,EAAEgvE,YAAY,aAAa5qE,EAAEA,EAAE0qC,SAAS9uC,KAAGoE,EAAEy3E,4BAAwD,GAA7Bz3E,EAAEy3E,wBAAwB77E,MAClZ,SAAS87E,KAAK,IAAI,IAAI13E,EAAE2F,OAAO/J,EAAE02D,IAAK12D,aAAaoE,EAAE23E,mBAAmB,CAAC,IAAI,IAAI15E,EAAE,kBAAkBrC,EAAEg8E,cAAcjnB,SAASC,KAAK,MAAMrnD,GAAGtL,GAAE,EAAG,IAAGA,EAAyB,MAAMrC,EAAE02D,GAA/BtyD,EAAEpE,EAAEg8E,eAAgC/mB,UAAU,OAAOj1D,EAAE,SAASi8E,GAAG73E,GAAG,IAAIpE,EAAEoE,GAAGA,EAAEulE,UAAUvlE,EAAEulE,SAAStqE,cAAc,OAAOW,IAAI,UAAUA,IAAI,SAASoE,EAAExF,MAAM,WAAWwF,EAAExF,MAAM,QAAQwF,EAAExF,MAAM,QAAQwF,EAAExF,MAAM,aAAawF,EAAExF,OAAO,aAAaoB,GAAG,SAASoE,EAAE83E,iBACxZ,IAAIC,GAAGruB,GAAI,iBAAiBmH,UAAU,IAAIA,SAAS+jB,aAAaoD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGp4E,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEtL,EAAE0H,SAAS1H,EAAEA,EAAE4yD,SAAS,IAAI5yD,EAAEkpE,SAASlpE,EAAEA,EAAEmoE,cAAc+R,IAAI,MAAMH,IAAIA,KAAK1lB,EAAG/oD,KAAU,mBAALA,EAAEyuE,KAAyBH,GAAGtuE,GAAGA,EAAE,CAACpO,MAAMoO,EAAE8uE,eAAej9E,IAAImO,EAAE+uE,cAAuF/uE,EAAE,CAACgvE,YAA3EhvE,GAAGA,EAAE68D,eAAe78D,EAAE68D,cAAcoS,aAAa7yE,QAAQ8yE,gBAA+BF,WAAWG,aAAanvE,EAAEmvE,aAAaC,UAAUpvE,EAAEovE,UAAUC,YAAYrvE,EAAEqvE,aAAcV,IAAId,GAAGc,GAAG3uE,KAAK2uE,GAAG3uE,EAAsB,GAApBA,EAAEusE,GAAGmC,GAAG,aAAgBxjF,SAASmH,EAAE,IAAIwzE,GAAG,WAAW,SAAS,KAAKxzE,EAAEqC,GAAG+B,EAAE1I,KAAK,CAACu8C,MAAMj4C,EAAErD,UAAUgR,IAAI3N,EAAEiF,OAAOm3E,MACjf3f,GAAG,mjBAAmjB94C,MAAM,KAC5jB,GAAG84C,GAAG,oRAAoR94C,MAAM,KAAK,GAAG84C,GAAGc,GAAG,GAAG,IAAI,IAAI0f,GAAG,qFAAqFt5D,MAAM,KAAKu5D,GAAG,EAAEA,GAAGD,GAAGpkF,OAAOqkF,KAAKxqB,GAAGvpD,IAAI8zE,GAAGC,IAAI,GAAGnvB,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBP,EAAG,WAAW,oEAAoE7pC,MAAM,MAAM6pC,EAAG,WAAW,uFAAuF7pC,MAAM,MAAM6pC,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2D7pC,MAAM,MAC5f6pC,EAAG,qBAAqB,6DAA6D7pC,MAAM,MAAM6pC,EAAG,sBAAsB,8DAA8D7pC,MAAM,MAAM,IAAIw5D,GAAG,sNAAsNx5D,MAAM,KAAKy5D,GAAG,IAAI1U,IAAI,0CAA0C/kD,MAAM,KAAKhpB,OAAOwiF,KACnf,SAASE,GAAGj5E,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEvJ,EAAExF,MAAM,gBAAgBwF,EAAEiuE,cAAchwE,EA/CjE,SAAY+B,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,EAAE/0B,EAAEuT,EAAEjS,GAA4B,GAAzBgxD,GAAGxgE,MAAMvB,KAAKoB,WAAcsgE,GAAG,CAAC,IAAGA,GAAgC,MAAMjiE,MAAMyK,EAAE,MAA1C,IAAI6F,EAAE4xD,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAG9xD,IA+CjEiyD,CAAGzuD,EAAE3N,OAAE,EAAOoE,GAAGA,EAAEiuE,cAAc,KACpG,SAASgI,GAAGj2E,EAAEpE,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIqC,EAAE,EAAEA,EAAE+B,EAAEvL,OAAOwJ,IAAI,CAAC,IAAIsL,EAAEvJ,EAAE/B,GAAGnI,EAAEyT,EAAEsqC,MAAMtqC,EAAEA,EAAEhR,UAAUyH,EAAE,CAAC,IAAIw6B,OAAE,EAAO,GAAG5+B,EAAE,IAAI,IAAI6J,EAAE8D,EAAE9U,OAAO,EAAE,GAAGgR,EAAEA,IAAI,CAAC,IAAIuT,EAAEzP,EAAE9D,GAAGsB,EAAEiS,EAAE6iD,SAAS91D,EAAEiT,EAAEi1D,cAA2B,GAAbj1D,EAAEA,EAAEiL,SAAYld,IAAIyzB,GAAG1kC,EAAEu4E,uBAAuB,MAAMruE,EAAEi5E,GAAGnjF,EAAEkjB,EAAEjT,GAAGy0B,EAAEzzB,OAAO,IAAItB,EAAE,EAAEA,EAAE8D,EAAE9U,OAAOgR,IAAI,CAAoD,GAA5CsB,GAAPiS,EAAEzP,EAAE9D,IAAOo2D,SAAS91D,EAAEiT,EAAEi1D,cAAcj1D,EAAEA,EAAEiL,SAAYld,IAAIyzB,GAAG1kC,EAAEu4E,uBAAuB,MAAMruE,EAAEi5E,GAAGnjF,EAAEkjB,EAAEjT,GAAGy0B,EAAEzzB,IAAI,GAAG6wD,GAAG,MAAM53D,EAAE63D,GAAGD,IAAG,EAAGC,GAAG,KAAK73D,EAC1a,SAAS+wB,GAAE/wB,EAAEpE,GAAG,IAAIqC,EAAEi7E,GAAGt9E,GAAG2N,EAAEvJ,EAAE,WAAW/B,EAAE+wD,IAAIzlD,KAAK4vE,GAAGv9E,EAAEoE,EAAE,GAAE,GAAI/B,EAAEmS,IAAI7G,IAAI,IAAI6vE,GAAG,kBAAkB96E,KAAKmrD,SAAS7uD,SAAS,IAAIX,MAAM,GAAG,SAASo/E,GAAGr5E,GAAGA,EAAEo5E,MAAMp5E,EAAEo5E,KAAI,EAAG/uB,EAAGz7B,SAAQ,SAAShzB,GAAGo9E,GAAGhqB,IAAIpzD,IAAI09E,GAAG19E,GAAE,EAAGoE,EAAE,MAAMs5E,GAAG19E,GAAE,EAAGoE,EAAE,UACtO,SAASs5E,GAAGt5E,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE,EAAEsB,UAAU3C,aAAQ,IAAS2C,UAAU,GAAGA,UAAU,GAAG,EAAEojC,EAAEv8B,EAA6D,GAA3D,oBAAoB+B,GAAG,IAAI/B,EAAEkpE,WAAW3sC,EAAEv8B,EAAEmoE,eAAkB,OAAO78D,IAAI3N,GAAGo9E,GAAGhqB,IAAIhvD,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAOlK,GAAG,EAAE0kC,EAAEjxB,EAAE,IAAI9D,EAAEyzE,GAAG1+C,GAAGxhB,EAAEhZ,EAAE,MAAMpE,EAAE,UAAU,UAAU6J,EAAEupD,IAAIh2C,KAAKpd,IAAI9F,GAAG,GAAGqjF,GAAG3+C,EAAEx6B,EAAElK,EAAE8F,GAAG6J,EAAE2K,IAAI4I,IAClS,SAASmgE,GAAGn5E,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEw4D,GAAGztC,IAAIjlB,GAAG,YAAO,IAAS9F,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAEo3E,GAAG,MAAM,KAAK,EAAEp3E,EAAEuvD,GAAG,MAAM,QAAQvvD,EAAEq3E,GAAGlvE,EAAEnI,EAAEsvB,KAAK,KAAKxpB,EAAEqC,EAAE+B,GAAGlK,OAAE,GAAQyhE,IAAI,eAAe37D,GAAG,cAAcA,GAAG,UAAUA,IAAI9F,GAAE,GAAIyT,OAAE,IAASzT,EAAEkK,EAAE2lB,iBAAiB/pB,EAAEqC,EAAE,CAACs7E,SAAQ,EAAGC,QAAQ1jF,IAAIkK,EAAE2lB,iBAAiB/pB,EAAEqC,GAAE,QAAI,IAASnI,EAAEkK,EAAE2lB,iBAAiB/pB,EAAEqC,EAAE,CAACu7E,QAAQ1jF,IAAIkK,EAAE2lB,iBAAiB/pB,EAAEqC,GAAE,GACpW,SAASmvE,GAAGptE,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,IAAI0kC,EAAEjxB,EAAE,GAAG,KAAO,EAAF3N,IAAM,KAAO,EAAFA,IAAM,OAAO2N,EAAEvJ,EAAE,OAAO,CAAC,GAAG,OAAOuJ,EAAE,OAAO,IAAI9D,EAAE8D,EAAE4tB,IAAI,GAAG,IAAI1xB,GAAG,IAAIA,EAAE,CAAC,IAAIuT,EAAEzP,EAAEshE,UAAUkB,cAAc,GAAG/yD,IAAIljB,GAAG,IAAIkjB,EAAEmuD,UAAUnuD,EAAE4xD,aAAa90E,EAAE,MAAM,GAAG,IAAI2P,EAAE,IAAIA,EAAE8D,EAAEyhE,OAAO,OAAOvlE,GAAG,CAAC,IAAIsB,EAAEtB,EAAE0xB,IAAI,IAAG,IAAIpwB,GAAG,IAAIA,MAAKA,EAAEtB,EAAEolE,UAAUkB,iBAAkBj2E,GAAG,IAAIiR,EAAEogE,UAAUpgE,EAAE6jE,aAAa90E,GAAE,OAAO2P,EAAEA,EAAEulE,OAAO,KAAK,OAAOhyD,GAAG,CAAS,GAAG,QAAXvT,EAAE4lD,GAAGryC,IAAe,OAAe,GAAG,KAAXjS,EAAEtB,EAAE0xB,MAAc,IAAIpwB,EAAE,CAACwC,EAAEixB,EAAE/0B,EAAE,SAASzF,EAAEgZ,EAAEA,EAAE4xD,YAAYrhE,EAAEA,EAAEyhE,QAvD7c,SAAYhrE,EAAEpE,EAAEqC,GAAG,GAAGm5D,GAAG,OAAOp3D,EAAEpE,EAAEqC,GAAGm5D,IAAG,EAAG,IAAWb,GAAGv2D,EAAEpE,EAAEqC,GAAlB,QAA6Bm5D,IAAG,EAAGC,MAuDoYZ,EAAG,WAAW,IAAIltD,EAAEixB,EAAE1kC,EAAE6+D,GAAG12D,GAAGwH,EAAE,GACpfzF,EAAE,CAAC,IAAIgZ,EAAEigD,GAAGp4C,IAAI7gB,GAAG,QAAG,IAASgZ,EAAE,CAAC,IAAIjS,EAAEqoE,GAAGnvE,EAAED,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIytE,GAAGxvE,GAAG,MAAM+B,EAAE,IAAK,UAAU,IAAK,QAAQ+G,EAAEksE,GAAG,MAAM,IAAK,UAAUhzE,EAAE,QAAQ8G,EAAEiqE,GAAG,MAAM,IAAK,WAAW/wE,EAAE,OAAO8G,EAAEiqE,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYjqE,EAAEiqE,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI/yE,EAAEqyE,OAAO,MAAMtwE,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc+G,EAAE8pE,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO9pE,EAC1iB+pE,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa/pE,EAAE4sE,GAAG,MAAM,KAAK/a,GAAG,KAAKC,GAAG,KAAKpJ,GAAG1oD,EAAEkqE,GAAG,MAAM,KAAKlY,GAAGhyD,EAAEgtE,GAAG,MAAM,IAAK,SAAShtE,EAAEyoE,GAAG,MAAM,IAAK,QAAQzoE,EAAEytE,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQztE,EAAEwqE,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYxqE,EAAEmsE,GAAG,IAAIxsE,EAAE,KAAO,EAAF9K,GAAKqL,GAAGP,GAAG,WAAW1G,EAAEwgB,EAAE9Z,EAAE,OAAOsS,EAAEA,EAAE,UAAU,KAAKA,EAAEtS,EAAE,GAAG,IAAI,IAAQsH,EAAJG,EAAE5E,EAAI,OAC/e4E,GAAG,CAAK,IAAIqa,GAARxa,EAAEG,GAAU08D,UAAsF,GAA5E,IAAI78D,EAAEmpB,KAAK,OAAO3O,IAAIxa,EAAEwa,EAAE,OAAOhI,IAAc,OAAVgI,EAAE8uC,GAAGnpD,EAAEqS,KAAY9Z,EAAEpP,KAAKmiF,GAAGtrE,EAAEqa,EAAExa,MAAS/G,EAAE,MAAMkH,EAAEA,EAAE68D,OAAO,EAAEtkE,EAAEjS,SAASukB,EAAE,IAAIjS,EAAEiS,EAAE/Y,EAAE,KAAKhC,EAAEnI,GAAG2P,EAAEnO,KAAK,CAACu8C,MAAM76B,EAAEzgB,UAAUmO,MAAM,GAAG,KAAO,EAAF9K,GAAK,CAA4E,GAAnCmL,EAAE,aAAa/G,GAAG,eAAeA,KAAtEgZ,EAAE,cAAchZ,GAAG,gBAAgBA,IAA2C,KAAO,GAAFpE,MAAQqE,EAAEhC,EAAEuyE,eAAevyE,EAAEwyE,eAAeplB,GAAGprD,KAAIA,EAAEy5E,OAAgB3yE,GAAGiS,KAAGA,EAAEljB,EAAE6P,SAAS7P,EAAEA,GAAGkjB,EAAEljB,EAAEswE,eAAeptD,EAAEw/D,aAAax/D,EAAE2gE,aAAah0E,OAAUoB,GAAqCA,EAAEwC,EAAiB,QAAftJ,GAAnCA,EAAEhC,EAAEuyE,eAAevyE,EAAEyyE,WAAkBrlB,GAAGprD,GAAG,QACleA,KAARgH,EAAEgxD,GAAGh4D,KAAU,IAAIA,EAAEk3B,KAAK,IAAIl3B,EAAEk3B,OAAKl3B,EAAE,QAAU8G,EAAE,KAAK9G,EAAEsJ,GAAKxC,IAAI9G,GAAE,CAAgU,GAA/TyG,EAAEmqE,GAAGroD,EAAE,eAAehI,EAAE,eAAerS,EAAE,QAAW,eAAenO,GAAG,gBAAgBA,IAAE0G,EAAEwsE,GAAG1qD,EAAE,iBAAiBhI,EAAE,iBAAiBrS,EAAE,WAAUlH,EAAE,MAAMF,EAAEiS,EAAEm9D,GAAGpvE,GAAGiH,EAAE,MAAM/N,EAAE+Y,EAAEm9D,GAAGl2E,IAAG+Y,EAAE,IAAItS,EAAE8hB,EAAEra,EAAE,QAAQpH,EAAE9I,EAAEnI,IAAK+K,OAAOoG,EAAE+R,EAAEw3D,cAAcxiE,EAAEwa,EAAE,KAAK6iC,GAAGv1D,KAAKyT,KAAI7C,EAAE,IAAIA,EAAE8Z,EAAErS,EAAE,QAAQlO,EAAEhC,EAAEnI,IAAK+K,OAAOmN,EAAEtH,EAAE8pE,cAAcvpE,EAAEuhB,EAAE9hB,GAAGO,EAAEuhB,EAAKzhB,GAAG9G,EAAErE,EAAE,CAAa,IAAR4kB,EAAEvgB,EAAEkO,EAAE,EAAMH,EAAhBtH,EAAEK,EAAkBiH,EAAEA,EAAE4rE,GAAG5rE,GAAGG,IAAQ,IAAJH,EAAE,EAAMwa,EAAEhI,EAAEgI,EAAEA,EAAEoxD,GAAGpxD,GAAGxa,IAAI,KAAK,EAAEG,EAAEH,GAAGtH,EAAEkzE,GAAGlzE,GAAGyH,IAAI,KAAK,EAAEH,EAAEG,GAAGqS,EACpfo5D,GAAGp5D,GAAGxS,IAAI,KAAKG,KAAK,CAAC,GAAGzH,IAAI8Z,GAAG,OAAOA,GAAG9Z,IAAI8Z,EAAEuqD,UAAU,MAAMnvE,EAAE8K,EAAEkzE,GAAGlzE,GAAG8Z,EAAEo5D,GAAGp5D,GAAG9Z,EAAE,UAAUA,EAAE,KAAK,OAAOK,GAAG8yE,GAAGp0E,EAAEuT,EAAEjS,EAAEL,GAAE,GAAI,OAAOzG,GAAG,OAAOgH,GAAG4yE,GAAGp0E,EAAEwB,EAAEhH,EAAEyG,GAAE,GAAiE,GAAG,YAA1CK,GAAjBiS,EAAEzP,EAAE4sE,GAAG5sE,GAAG5D,QAAW4/D,UAAUvsD,EAAEusD,SAAStqE,gBAA+B,UAAU8L,GAAG,SAASiS,EAAExe,KAAK,IAAIu0D,EAAEqnB,QAAQ,GAAGR,GAAG58D,GAAG,GAAGq9D,GAAGtnB,EAAEkoB,OAAO,CAACloB,EAAEgoB,GAAG,IAAIhhC,EAAE8gC,QAAQ9vE,EAAEiS,EAAEusD,WAAW,UAAUx+D,EAAE9L,gBAAgB,aAAa+d,EAAExe,MAAM,UAAUwe,EAAExe,QAAQu0D,EAAEioB,IAClV,OADyVjoB,IAAIA,EAAEA,EAAE/uD,EAAEuJ,IAAKssE,GAAGpwE,EAAEspD,EAAE9wD,EAAEnI,IAAWigD,GAAGA,EAAE/1C,EAAEgZ,EAAEzP,GAAG,aAAavJ,IAAI+1C,EAAE/8B,EAAEgtD,gBACtejwB,EAAEowB,YAAY,WAAWntD,EAAExe,MAAMm5D,GAAG36C,EAAE,SAASA,EAAEtlB,QAAOqiD,EAAExsC,EAAE4sE,GAAG5sE,GAAG5D,OAAc3F,GAAG,IAAK,WAAa41E,GAAG7/B,IAAI,SAASA,EAAE+hC,mBAAgBE,GAAGjiC,EAAEkiC,GAAG1uE,EAAE2uE,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAG3yE,EAAExH,EAAEnI,GAAG,MAAM,IAAK,kBAAkB,GAAGiiF,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAG3yE,EAAExH,EAAEnI,GAAG,IAAIi/D,EAAE,GAAG2f,GAAG94E,EAAE,CAAC,OAAOoE,GAAG,IAAK,mBAAmB,IAAIiyD,EAAE,qBAAqB,MAAMr2D,EAAE,IAAK,iBAAiBq2D,EAAE,mBAAmB,MAAMr2D,EACrf,IAAK,oBAAoBq2D,EAAE,sBAAsB,MAAMr2D,EAAEq2D,OAAE,OAAY/6C,GAAG+9D,GAAGj1E,EAAE/B,KAAKg0D,EAAE,oBAAoB,YAAYjyD,GAAG,MAAM/B,EAAEyvE,UAAUzb,EAAE,sBAAsBA,IAAI6iB,IAAI,OAAO72E,EAAE80E,SAAS77D,IAAI,uBAAuB+6C,EAAE,qBAAqBA,GAAG/6C,KAAK69C,EAAEyY,OAAYF,GAAG,UAARD,GAAGv3E,GAAkBu3E,GAAG35E,MAAM25E,GAAG5G,YAAYvvD,IAAG,IAAe,GAAV6+B,EAAE+/B,GAAGvsE,EAAE0oD,IAAOx9D,SAASw9D,EAAE,IAAIuf,GAAGvf,EAAEjyD,EAAE,KAAK/B,EAAEnI,GAAG2P,EAAEnO,KAAK,CAACu8C,MAAMoe,EAAE15D,UAAUw9C,IAAIgf,EAAE9C,EAAEx3D,KAAKs6D,EAAW,QAARA,EAAEmgB,GAAGj3E,MAAcg0D,EAAEx3D,KAAKs6D,MAASA,EAAE8f,GA1BjK,SAAY70E,EAAEpE,GAAG,OAAOoE,GAAG,IAAK,iBAAiB,OAAOk1E,GAAGt5E,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEo3E,MAAa,MAAKgC,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAO/0E,EAAEpE,EAAEnB,QAASs6E,IAAIC,GAAG,KAAKh1E,EAAE,QAAQ,OAAO,MA0BxB85E,CAAG95E,EAAE/B,GAzB1b,SAAY+B,EAAEpE,GAAG,GAAGsb,GAAG,MAAM,mBAAmBlX,IAAI00E,IAAIO,GAAGj1E,EAAEpE,IAAIoE,EAAEwtE,KAAKD,GAAGD,GAAGD,GAAG,KAAKn2D,IAAG,EAAGlX,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKpE,EAAEo0E,SAASp0E,EAAEs0E,QAAQt0E,EAAEu0E,UAAUv0E,EAAEo0E,SAASp0E,EAAEs0E,OAAO,CAAC,GAAGt0E,EAAEm+E,MAAM,EAAEn+E,EAAEm+E,KAAKtlF,OAAO,OAAOmH,EAAEm+E,KAAK,GAAGn+E,EAAEo3E,MAAM,OAAOx2E,OAAO0C,aAAatD,EAAEo3E,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAO8B,IAAI,OAAOl5E,EAAEm3E,OAAO,KAAKn3E,EAAEnB,MAyB+Eu/E,CAAGh6E,EAAE/B,MAA2B,GAAxBsL,EAAEusE,GAAGvsE,EAAE,kBAAqB9U,SAASqB,EAAE,IAAI07E,GAAG,gBACnf,cAAc,KAAKvzE,EAAEnI,GAAG2P,EAAEnO,KAAK,CAACu8C,MAAM/9C,EAAEyC,UAAUgR,IAAIzT,EAAE2E,KAAKs6D,IAAGkhB,GAAGxwE,EAAE7J,MAAK,SAAS69E,GAAGz5E,EAAEpE,EAAEqC,GAAG,MAAM,CAAC49D,SAAS77D,EAAEikB,SAASroB,EAAEqyE,cAAchwE,GAAG,SAAS63E,GAAG91E,EAAEpE,GAAG,IAAI,IAAIqC,EAAErC,EAAE,UAAU2N,EAAE,GAAG,OAAOvJ,GAAG,CAAC,IAAIlK,EAAEkK,EAAEw6B,EAAE1kC,EAAE+0E,UAAU,IAAI/0E,EAAEqhC,KAAK,OAAOqD,IAAI1kC,EAAE0kC,EAAY,OAAVA,EAAE88B,GAAGt3D,EAAE/B,KAAYsL,EAAEkb,QAAQg1D,GAAGz5E,EAAEw6B,EAAE1kC,IAAc,OAAV0kC,EAAE88B,GAAGt3D,EAAEpE,KAAY2N,EAAEjS,KAAKmiF,GAAGz5E,EAAEw6B,EAAE1kC,KAAKkK,EAAEA,EAAEgrE,OAAO,OAAOzhE,EAAE,SAASqwE,GAAG55E,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEgrE,aAAahrE,GAAG,IAAIA,EAAEm3B,KAAK,OAAOn3B,GAAI,KACxa,SAAS65E,GAAG75E,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,IAAI,IAAI0kC,EAAE5+B,EAAEmyE,WAAWtoE,EAAE,GAAG,OAAOxH,GAAGA,IAAIsL,GAAG,CAAC,IAAIyP,EAAE/a,EAAE8I,EAAEiS,EAAE+xD,UAAUhlE,EAAEiT,EAAE6xD,UAAU,GAAG,OAAO9jE,GAAGA,IAAIwC,EAAE,MAAM,IAAIyP,EAAEme,KAAK,OAAOpxB,IAAIiT,EAAEjT,EAAEjQ,EAAa,OAAViR,EAAEuwD,GAAGr5D,EAAEu8B,KAAY/0B,EAAEgf,QAAQg1D,GAAGx7E,EAAE8I,EAAEiS,IAAKljB,GAAc,OAAViR,EAAEuwD,GAAGr5D,EAAEu8B,KAAY/0B,EAAEnO,KAAKmiF,GAAGx7E,EAAE8I,EAAEiS,KAAM/a,EAAEA,EAAE+sE,OAAO,IAAIvlE,EAAEhR,QAAQuL,EAAE1I,KAAK,CAACu8C,MAAMj4C,EAAErD,UAAUkN,IAAI,SAASw0E,MAAM,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGp6E,EAAEpE,GAAG,OAAOoE,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQpE,EAAEy+E,UAAU,OAAM,EAC3b,SAASC,GAAGt6E,EAAEpE,GAAG,MAAM,aAAaoE,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBpE,EAAEglB,UAAU,kBAAkBhlB,EAAEglB,UAAU,kBAAkBhlB,EAAE4qE,yBAAyB,OAAO5qE,EAAE4qE,yBAAyB,MAAM5qE,EAAE4qE,wBAAwB+T,OAAO,IAAIC,GAAG,oBAAoB3kF,WAAWA,gBAAW,EAAO4kF,GAAG,oBAAoBxkF,aAAaA,kBAAa,EAAO,SAASykF,GAAG16E,GAAG,IAAIA,EAAEmnE,SAASnnE,EAAEymE,YAAY,GAAG,IAAIzmE,EAAEmnE,WAAoB,OAATnnE,EAAEA,EAAE+qC,QAAe/qC,EAAEymE,YAAY,KACxc,SAASkU,GAAG36E,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEu3E,YAAY,CAAC,IAAI37E,EAAEoE,EAAEmnE,SAAS,GAAG,IAAIvrE,GAAG,IAAIA,EAAE,MAAM,OAAOoE,EAAE,SAAS46E,GAAG56E,GAAGA,EAAEA,EAAE66E,gBAAgB,IAAI,IAAIj/E,EAAE,EAAEoE,GAAG,CAAC,GAAG,IAAIA,EAAEmnE,SAAS,CAAC,IAAIlpE,EAAE+B,EAAEvF,KAAK,GAAG,MAAMwD,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIrC,EAAE,OAAOoE,EAAEpE,QAAQ,OAAOqC,GAAGrC,IAAIoE,EAAEA,EAAE66E,gBAAgB,OAAO,KAAK,IAAIC,GAAG,EAA0D,IAAIC,GAAGz8E,KAAKmrD,SAAS7uD,SAAS,IAAIX,MAAM,GAAG+gF,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGrB,GAAG,oBAAoBqB,GAAGG,GAAG,iBAAiBH,GAC9d,SAAS1vB,GAAGrrD,GAAG,IAAIpE,EAAEoE,EAAEg7E,IAAI,GAAGp/E,EAAE,OAAOA,EAAE,IAAI,IAAIqC,EAAE+B,EAAE4qE,WAAW3sE,GAAG,CAAC,GAAGrC,EAAEqC,EAAEy7E,KAAKz7E,EAAE+8E,IAAI,CAAe,GAAd/8E,EAAErC,EAAEmvE,UAAa,OAAOnvE,EAAEovC,OAAO,OAAO/sC,GAAG,OAAOA,EAAE+sC,MAAM,IAAIhrC,EAAE46E,GAAG56E,GAAG,OAAOA,GAAG,CAAC,GAAG/B,EAAE+B,EAAEg7E,IAAI,OAAO/8E,EAAE+B,EAAE46E,GAAG56E,GAAG,OAAOpE,EAAMqC,GAAJ+B,EAAE/B,GAAM2sE,WAAW,OAAO,KAAK,SAASxe,GAAGpsD,GAAkB,QAAfA,EAAEA,EAAEg7E,KAAKh7E,EAAE05E,MAAc,IAAI15E,EAAEm3B,KAAK,IAAIn3B,EAAEm3B,KAAK,KAAKn3B,EAAEm3B,KAAK,IAAIn3B,EAAEm3B,IAAI,KAAKn3B,EAAE,SAASm2E,GAAGn2E,GAAG,GAAG,IAAIA,EAAEm3B,KAAK,IAAIn3B,EAAEm3B,IAAI,OAAOn3B,EAAE6qE,UAAU,MAAMp1E,MAAMyK,EAAE,KAAM,SAASmsD,GAAGrsD,GAAG,OAAOA,EAAEi7E,KAAK,KAClb,SAAS/B,GAAGl5E,GAAG,IAAIpE,EAAEoE,EAAEk7E,IAAkC,YAA9B,IAASt/E,IAAIA,EAAEoE,EAAEk7E,IAAI,IAAI5W,KAAY1oE,EAAE,IAAIu/E,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGr7E,GAAG,MAAM,CAACqgB,QAAQrgB,GAAG,SAAS42C,GAAE52C,GAAG,EAAEo7E,KAAKp7E,EAAEqgB,QAAQ86D,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAAM,SAAS7mD,GAAEv0B,EAAEpE,GAAGw/E,KAAKD,GAAGC,IAAIp7E,EAAEqgB,QAAQrgB,EAAEqgB,QAAQzkB,EAAE,IAAI0/E,GAAG,GAAG1rD,GAAEyrD,GAAGC,IAAIvlE,GAAEslE,IAAG,GAAIE,GAAGD,GAC5P,SAASE,GAAGx7E,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAExF,KAAKihF,aAAa,IAAIx9E,EAAE,OAAOq9E,GAAG,IAAI/xE,EAAEvJ,EAAE6qE,UAAU,GAAGthE,GAAGA,EAAEmyE,8CAA8C9/E,EAAE,OAAO2N,EAAEoyE,0CAA0C,IAASnhD,EAAL1kC,EAAE,GAAK,IAAI0kC,KAAKv8B,EAAEnI,EAAE0kC,GAAG5+B,EAAE4+B,GAAoH,OAAjHjxB,KAAIvJ,EAAEA,EAAE6qE,WAAY6Q,4CAA4C9/E,EAAEoE,EAAE27E,0CAA0C7lF,GAAUA,EAAE,SAAS8lF,GAAG57E,GAAyB,OAAO,QAA7BA,EAAEA,EAAE67E,yBAAmC,IAAS77E,EAAE,SAAS87E,KAAKllC,GAAE7gC,IAAG6gC,GAAEhnB,IAAG,SAASmsD,GAAG/7E,EAAEpE,EAAEqC,GAAG,GAAG2xB,GAAEvP,UAAUi7D,GAAG,MAAM7lF,MAAMyK,EAAE,MAAMq0B,GAAE3E,GAAEh0B,GAAG24B,GAAExe,GAAE9X,GAC/e,SAAS+9E,GAAGh8E,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEvJ,EAAE6qE,UAAgC,GAAtB7qE,EAAEpE,EAAEigF,kBAAqB,oBAAoBtyE,EAAE0yE,gBAAgB,OAAOh+E,EAAwB,IAAI,IAAInI,KAA9ByT,EAAEA,EAAE0yE,kBAAiC,KAAKnmF,KAAKkK,GAAG,MAAMvK,MAAMyK,EAAE,IAAImyD,EAAGz2D,IAAI,UAAU9F,IAAI,OAAOgG,EAAE,GAAGmC,EAAEsL,GAAG,SAAS2yE,GAAGl8E,GAAyG,OAAtGA,GAAGA,EAAEA,EAAE6qE,YAAY7qE,EAAEm8E,2CAA2Cb,GAAGC,GAAG3rD,GAAEvP,QAAQkU,GAAE3E,GAAE5vB,GAAGu0B,GAAExe,GAAEA,GAAEsK,UAAe,EAAG,SAAS+7D,GAAGp8E,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEvJ,EAAE6qE,UAAU,IAAIthE,EAAE,MAAM9T,MAAMyK,EAAE,MAAMjC,GAAG+B,EAAEg8E,GAAGh8E,EAAEpE,EAAE2/E,IAAIhyE,EAAE4yE,0CAA0Cn8E,EAAE42C,GAAE7gC,IAAG6gC,GAAEhnB,IAAG2E,GAAE3E,GAAE5vB,IAAI42C,GAAE7gC,IAAGwe,GAAExe,GAAE9X,GAC7e,IAAIo+E,GAAG,KAAKC,GAAG,KAAKC,GAAGv2E,EAAE4lE,yBAAyB4Q,GAAGx2E,EAAEgmE,0BAA0ByQ,GAAGz2E,EAAE02E,wBAAwBC,GAAG32E,EAAE42E,qBAAqBC,GAAG72E,EAAE82E,sBAAsBC,GAAG/2E,EAAEumE,aAAayQ,GAAGh3E,EAAEi3E,iCAAiCC,GAAGl3E,EAAEm3E,2BAA2BC,GAAGp3E,EAAEgnE,8BAA8BqQ,GAAGr3E,EAAEimE,wBAAwBqR,GAAGt3E,EAAEu3E,qBAAqBC,GAAGx3E,EAAEy3E,sBAAsBC,GAAG,GAAGC,QAAG,IAASd,GAAGA,GAAG,aAAae,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGhB,KAAK9uB,GAAE,IAAI8vB,GAAGhB,GAAG,WAAW,OAAOA,KAAKgB,IACtd,SAASC,KAAK,OAAOhB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAM/nF,MAAMyK,EAAE,OAAQ,SAAS+9E,GAAGj+E,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOk9E,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAM/nF,MAAMyK,EAAE,OAAQ,SAASg+E,GAAGl+E,EAAEpE,GAAW,OAARoE,EAAEi+E,GAAGj+E,GAAUu8E,GAAGv8E,EAAEpE,GAAG,SAASuiF,GAAGn+E,EAAEpE,EAAEqC,GAAW,OAAR+B,EAAEi+E,GAAGj+E,GAAUw8E,GAAGx8E,EAAEpE,EAAEqC,GAAG,SAASmgF,KAAK,GAAG,OAAOP,GAAG,CAAC,IAAI79E,EAAE69E,GAAGA,GAAG,KAAKpB,GAAGz8E,GAAGq+E,KAC3a,SAASA,KAAK,IAAIP,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAI99E,EAAE,EAAE,IAAI,IAAIpE,EAAEgiF,GAAGM,GAAG,IAAG,WAAW,KAAKl+E,EAAEpE,EAAEnH,OAAOuL,IAAI,CAAC,IAAI/B,EAAErC,EAAEoE,GAAG,GAAG/B,EAAEA,GAAE,SAAU,OAAOA,OAAM2/E,GAAG,KAAK,MAAM3/E,GAAG,MAAM,OAAO2/E,KAAKA,GAAGA,GAAG3jF,MAAM+F,EAAE,IAAIw8E,GAAGU,GAAGkB,IAAIngF,EAA3J,QAAsK6/E,IAAG,IAAK,IAAIQ,GAAG3wB,EAAGsU,wBAAwB,SAASsc,GAAGv+E,EAAEpE,GAAG,GAAGoE,GAAGA,EAAE0hE,aAAa,CAA4B,IAAI,IAAIzjE,KAAnCrC,EAAEE,EAAE,GAAGF,GAAGoE,EAAEA,EAAE0hE,kBAA4B,IAAS9lE,EAAEqC,KAAKrC,EAAEqC,GAAG+B,EAAE/B,IAAI,OAAOrC,EAAE,OAAOA,EAAE,IAAI4iF,GAAGnD,GAAG,MAAMoD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KAC5b,SAASI,GAAG7+E,GAAG,IAAIpE,EAAE4iF,GAAGn+D,QAAQu2B,GAAE4nC,IAAIx+E,EAAExF,KAAK0oE,SAASL,cAAcjnE,EAAE,SAASkjF,GAAG9+E,EAAEpE,GAAG,KAAK,OAAOoE,GAAG,CAAC,IAAI/B,EAAE+B,EAAE+qE,UAAU,IAAI/qE,EAAE++E,WAAWnjF,KAAKA,EAAtB,CAAwB,GAAG,OAAOqC,IAAIA,EAAE8gF,WAAWnjF,KAAKA,EAAE,MAAWqC,EAAE8gF,YAAYnjF,OAAOoE,EAAE++E,YAAYnjF,EAAE,OAAOqC,IAAIA,EAAE8gF,YAAYnjF,GAAGoE,EAAEA,EAAEgrE,QAAQ,SAASgU,GAAGh/E,EAAEpE,GAAG6iF,GAAGz+E,EAAE2+E,GAAGD,GAAG,KAAsB,QAAjB1+E,EAAEA,EAAEi/E,eAAuB,OAAOj/E,EAAEk/E,eAAe,KAAKl/E,EAAEm/E,MAAMvjF,KAAKwjF,IAAG,GAAIp/E,EAAEk/E,aAAa,MACvY,SAASG,GAAGr/E,EAAEpE,GAAG,GAAG+iF,KAAK3+E,IAAG,IAAKpE,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAE+iF,GAAG3+E,EAAEpE,EAAE,YAAWA,EAAE,CAACyqB,QAAQrmB,EAAEs/E,aAAa1jF,EAAEkkB,KAAK,MAAS,OAAO4+D,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMhpF,MAAMyK,EAAE,MAAMw+E,GAAG9iF,EAAE6iF,GAAGQ,aAAa,CAACE,MAAM,EAAED,aAAatjF,EAAE2jF,WAAW,WAAWb,GAAGA,GAAG5+D,KAAKlkB,EAAE,OAAOoE,EAAE6iE,cAAc,IAAI2c,IAAG,EAAG,SAASC,GAAGz/E,GAAGA,EAAE0/E,YAAY,CAACC,UAAU3/E,EAAEirE,cAAc2U,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACzyD,QAAQ,MAAM0yD,QAAQ,MAC1a,SAASC,GAAGhgF,EAAEpE,GAAGoE,EAAEA,EAAE0/E,YAAY9jF,EAAE8jF,cAAc1/E,IAAIpE,EAAE8jF,YAAY,CAACC,UAAU3/E,EAAE2/E,UAAUC,gBAAgB5/E,EAAE4/E,gBAAgBC,eAAe7/E,EAAE6/E,eAAeC,OAAO9/E,EAAE8/E,OAAOC,QAAQ//E,EAAE+/E,UAAU,SAASE,GAAGjgF,EAAEpE,GAAG,MAAM,CAACskF,UAAUlgF,EAAEmgF,KAAKvkF,EAAEu7B,IAAI,EAAEipD,QAAQ,KAAKljD,SAAS,KAAKpd,KAAK,MAAM,SAASugE,GAAGrgF,EAAEpE,GAAmB,GAAG,QAAnBoE,EAAEA,EAAE0/E,aAAwB,CAAY,IAAIzhF,GAAf+B,EAAEA,EAAE8/E,QAAezyD,QAAQ,OAAOpvB,EAAErC,EAAEkkB,KAAKlkB,GAAGA,EAAEkkB,KAAK7hB,EAAE6hB,KAAK7hB,EAAE6hB,KAAKlkB,GAAGoE,EAAEqtB,QAAQzxB,GACrZ,SAAS0kF,GAAGtgF,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAE0/E,YAAYn2E,EAAEvJ,EAAE+qE,UAAU,GAAG,OAAOxhE,GAAoBtL,KAAhBsL,EAAEA,EAAEm2E,aAAmB,CAAC,IAAI5pF,EAAE,KAAK0kC,EAAE,KAAyB,GAAG,QAAvBv8B,EAAEA,EAAE2hF,iBAA4B,CAAC,EAAE,CAAC,IAAIn6E,EAAE,CAACy6E,UAAUjiF,EAAEiiF,UAAUC,KAAKliF,EAAEkiF,KAAKhpD,IAAIl5B,EAAEk5B,IAAIipD,QAAQniF,EAAEmiF,QAAQljD,SAASj/B,EAAEi/B,SAASpd,KAAK,MAAM,OAAO0a,EAAE1kC,EAAE0kC,EAAE/0B,EAAE+0B,EAAEA,EAAE1a,KAAKra,EAAExH,EAAEA,EAAE6hB,WAAW,OAAO7hB,GAAG,OAAOu8B,EAAE1kC,EAAE0kC,EAAE5+B,EAAE4+B,EAAEA,EAAE1a,KAAKlkB,OAAO9F,EAAE0kC,EAAE5+B,EAAiH,OAA/GqC,EAAE,CAAC0hF,UAAUp2E,EAAEo2E,UAAUC,gBAAgB9pF,EAAE+pF,eAAerlD,EAAEslD,OAAOv2E,EAAEu2E,OAAOC,QAAQx2E,EAAEw2E,cAAS//E,EAAE0/E,YAAYzhF,GAA4B,QAAnB+B,EAAE/B,EAAE4hF,gBAAwB5hF,EAAE2hF,gBAAgBhkF,EAAEoE,EAAE8f,KACnflkB,EAAEqC,EAAE4hF,eAAejkF,EACnB,SAAS2kF,GAAGvgF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEkK,EAAE0/E,YAAYF,IAAG,EAAG,IAAIhlD,EAAE1kC,EAAE8pF,gBAAgBn6E,EAAE3P,EAAE+pF,eAAe7mE,EAAEljB,EAAEgqF,OAAOzyD,QAAQ,GAAG,OAAOrU,EAAE,CAACljB,EAAEgqF,OAAOzyD,QAAQ,KAAK,IAAItmB,EAAEiS,EAAEjT,EAAEgB,EAAE+Y,KAAK/Y,EAAE+Y,KAAK,KAAK,OAAOra,EAAE+0B,EAAEz0B,EAAEN,EAAEqa,KAAK/Z,EAAEN,EAAEsB,EAAE,IAAIlL,EAAEmE,EAAE+qE,UAAU,GAAG,OAAOlvE,EAAE,CAAiB,IAAIkf,GAApBlf,EAAEA,EAAE6jF,aAAoBG,eAAe9kE,IAAItV,IAAI,OAAOsV,EAAElf,EAAE+jF,gBAAgB75E,EAAEgV,EAAE+E,KAAK/Z,EAAElK,EAAEgkF,eAAe94E,IAAI,GAAG,OAAOyzB,EAAE,CAA8B,IAA7Bzf,EAAEjlB,EAAE6pF,UAAUl6E,EAAE,EAAE5J,EAAEkK,EAAEgB,EAAE,OAAO,CAACiS,EAAEwhB,EAAE2lD,KAAK,IAAIt3E,EAAE2xB,EAAE0lD,UAAU,IAAI32E,EAAEyP,KAAKA,EAAE,CAAC,OAAOnd,IAAIA,EAAEA,EAAEikB,KAAK,CAACogE,UAAUr3E,EAAEs3E,KAAK,EAAEhpD,IAAIqD,EAAErD,IAAIipD,QAAQ5lD,EAAE4lD,QAAQljD,SAAS1C,EAAE0C,SACrfpd,KAAK,OAAO9f,EAAE,CAAC,IAAIib,EAAEjb,EAAEC,EAAEu6B,EAAU,OAARxhB,EAAEpd,EAAEiN,EAAE5K,EAASgC,EAAEk3B,KAAK,KAAK,EAAc,GAAG,oBAAflc,EAAEhb,EAAEmgF,SAAiC,CAACrlE,EAAEE,EAAEllB,KAAK8S,EAAEkS,EAAE/B,GAAG,MAAMhZ,EAAE+a,EAAEE,EAAE,MAAMjb,EAAE,KAAK,EAAEib,EAAEyI,OAAe,KAATzI,EAAEyI,MAAY,GAAG,KAAK,EAAsD,GAAG,QAA3C1K,EAAE,oBAAdiC,EAAEhb,EAAEmgF,SAAgCnlE,EAAEllB,KAAK8S,EAAEkS,EAAE/B,GAAGiC,SAAe,IAASjC,EAAE,MAAMhZ,EAAE+a,EAAEjf,EAAE,GAAGif,EAAE/B,GAAG,MAAMhZ,EAAE,KAAK,EAAEw/E,IAAG,GAAI,OAAOhlD,EAAE0C,WAAWl9B,EAAE0jB,OAAO,GAAe,QAAZ1K,EAAEljB,EAAEiqF,SAAiBjqF,EAAEiqF,QAAQ,CAACvlD,GAAGxhB,EAAE1hB,KAAKkjC,SAAS3xB,EAAE,CAACq3E,UAAUr3E,EAAEs3E,KAAKnnE,EAAEme,IAAIqD,EAAErD,IAAIipD,QAAQ5lD,EAAE4lD,QAAQljD,SAAS1C,EAAE0C,SAASpd,KAAK,MAAM,OAAOjkB,GAAGkK,EAAElK,EAAEgN,EAAE9B,EAAEgU,GAAGlf,EAAEA,EAAEikB,KAAKjX,EAAEpD,GAAGuT,EAAW,GAAG,QAAZwhB,EAAEA,EAAE1a,MAC1e,IAAsB,QAAnB9G,EAAEljB,EAAEgqF,OAAOzyD,SAAiB,MAAWmN,EAAExhB,EAAE8G,KAAK9G,EAAE8G,KAAK,KAAKhqB,EAAE+pF,eAAe7mE,EAAEljB,EAAEgqF,OAAOzyD,QAAQ,MAAc,OAAOxxB,IAAIkL,EAAEgU,GAAGjlB,EAAE6pF,UAAU54E,EAAEjR,EAAE8pF,gBAAgB75E,EAAEjQ,EAAE+pF,eAAehkF,EAAE2kF,IAAI/6E,EAAEzF,EAAEm/E,MAAM15E,EAAEzF,EAAEirE,cAAclwD,GAAG,SAAS0lE,GAAGzgF,EAAEpE,EAAEqC,GAA8B,GAA3B+B,EAAEpE,EAAEmkF,QAAQnkF,EAAEmkF,QAAQ,KAAQ,OAAO//E,EAAE,IAAIpE,EAAE,EAAEA,EAAEoE,EAAEvL,OAAOmH,IAAI,CAAC,IAAI2N,EAAEvJ,EAAEpE,GAAG9F,EAAEyT,EAAE2zB,SAAS,GAAG,OAAOpnC,EAAE,CAAqB,GAApByT,EAAE2zB,SAAS,KAAK3zB,EAAEtL,EAAK,oBAAoBnI,EAAE,MAAML,MAAMyK,EAAE,IAAIpK,IAAIA,EAAEC,KAAKwT,KAAK,IAAIm3E,IAAI,IAAIv3B,EAAGoZ,WAAWtB,KAC3b,SAAS0f,GAAG3gF,EAAEpE,EAAEqC,EAAEsL,GAA8BtL,EAAE,QAAXA,EAAEA,EAAEsL,EAAtB3N,EAAEoE,EAAEirE,sBAAmC,IAAShtE,EAAErC,EAAEE,EAAE,GAAGF,EAAEqC,GAAG+B,EAAEirE,cAAchtE,EAAE,IAAI+B,EAAEm/E,QAAQn/E,EAAE0/E,YAAYC,UAAU1hF,GAC3I,IAAI2iF,GAAG,CAAChgB,UAAU,SAAS5gE,GAAG,SAAOA,EAAEA,EAAE6gF,kBAAiB5oB,GAAGj4D,KAAKA,GAAM+gE,gBAAgB,SAAS/gE,EAAEpE,EAAEqC,GAAG+B,EAAEA,EAAE6gF,gBAAgB,IAAIt3E,EAAEu3E,KAAKhrF,EAAEirF,GAAG/gF,GAAGw6B,EAAEylD,GAAG12E,EAAEzT,GAAG0kC,EAAE4lD,QAAQxkF,OAAE,IAASqC,GAAG,OAAOA,IAAIu8B,EAAE0C,SAASj/B,GAAGoiF,GAAGrgF,EAAEw6B,GAAGwmD,GAAGhhF,EAAElK,EAAEyT,IAAIu3D,oBAAoB,SAAS9gE,EAAEpE,EAAEqC,GAAG+B,EAAEA,EAAE6gF,gBAAgB,IAAIt3E,EAAEu3E,KAAKhrF,EAAEirF,GAAG/gF,GAAGw6B,EAAEylD,GAAG12E,EAAEzT,GAAG0kC,EAAErD,IAAI,EAAEqD,EAAE4lD,QAAQxkF,OAAE,IAASqC,GAAG,OAAOA,IAAIu8B,EAAE0C,SAASj/B,GAAGoiF,GAAGrgF,EAAEw6B,GAAGwmD,GAAGhhF,EAAElK,EAAEyT,IAAIs3D,mBAAmB,SAAS7gE,EAAEpE,GAAGoE,EAAEA,EAAE6gF,gBAAgB,IAAI5iF,EAAE6iF,KAAKv3E,EAAEw3E,GAAG/gF,GAAGlK,EAAEmqF,GAAGhiF,EAAEsL,GAAGzT,EAAEqhC,IAAI,OAAE,IAASv7B,GAAG,OAAOA,IAAI9F,EAAEonC,SACjfthC,GAAGykF,GAAGrgF,EAAElK,GAAGkrF,GAAGhhF,EAAEuJ,EAAEtL,KAAK,SAASgjF,GAAGjhF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,EAAE/0B,GAAiB,MAAM,oBAApBzF,EAAEA,EAAE6qE,WAAsCqW,sBAAsBlhF,EAAEkhF,sBAAsB33E,EAAEixB,EAAE/0B,IAAG7J,EAAEpI,YAAWoI,EAAEpI,UAAU8tE,wBAAsB8V,GAAGn5E,EAAEsL,KAAK6tE,GAAGthF,EAAE0kC,IAC/M,SAAS2mD,GAAGnhF,EAAEpE,EAAEqC,GAAG,IAAIsL,GAAE,EAAGzT,EAAEwlF,GAAO9gD,EAAE5+B,EAAEwlF,YAA2W,MAA/V,kBAAkB5mD,GAAG,OAAOA,EAAEA,EAAE6kD,GAAG7kD,IAAI1kC,EAAE8lF,GAAGhgF,GAAG2/E,GAAG3rD,GAAEvP,QAAyBma,GAAGjxB,EAAE,QAAtBA,EAAE3N,EAAE6/E,oBAA4B,IAASlyE,GAAGiyE,GAAGx7E,EAAElK,GAAGwlF,IAAI1/E,EAAE,IAAIA,EAAEqC,EAAEu8B,GAAGx6B,EAAEirE,cAAc,OAAOrvE,EAAEspB,YAAO,IAAStpB,EAAEspB,MAAMtpB,EAAEspB,MAAM,KAAKtpB,EAAEslE,QAAQ0f,GAAG5gF,EAAE6qE,UAAUjvE,EAAEA,EAAEilF,gBAAgB7gF,EAAEuJ,KAAIvJ,EAAEA,EAAE6qE,WAAY6Q,4CAA4C5lF,EAAEkK,EAAE27E,0CAA0CnhD,GAAU5+B,EAC3Z,SAASylF,GAAGrhF,EAAEpE,EAAEqC,EAAEsL,GAAGvJ,EAAEpE,EAAEspB,MAAM,oBAAoBtpB,EAAE0lF,2BAA2B1lF,EAAE0lF,0BAA0BrjF,EAAEsL,GAAG,oBAAoB3N,EAAE2lF,kCAAkC3lF,EAAE2lF,iCAAiCtjF,EAAEsL,GAAG3N,EAAEspB,QAAQllB,GAAG4gF,GAAG9f,oBAAoBllE,EAAEA,EAAEspB,MAAM,MAC/P,SAASs8D,GAAGxhF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEkK,EAAE6qE,UAAU/0E,EAAEkrE,MAAM/iE,EAAEnI,EAAEovB,MAAMllB,EAAEirE,cAAcn1E,EAAEmrE,KAAKyf,GAAGjB,GAAGz/E,GAAG,IAAIw6B,EAAE5+B,EAAEwlF,YAAY,kBAAkB5mD,GAAG,OAAOA,EAAE1kC,EAAEuwB,QAAQg5D,GAAG7kD,IAAIA,EAAEohD,GAAGhgF,GAAG2/E,GAAG3rD,GAAEvP,QAAQvqB,EAAEuwB,QAAQm1D,GAAGx7E,EAAEw6B,IAAI+lD,GAAGvgF,EAAE/B,EAAEnI,EAAEyT,GAAGzT,EAAEovB,MAAMllB,EAAEirE,cAA2C,oBAA7BzwC,EAAE5+B,EAAE6lF,4BAAiDd,GAAG3gF,EAAEpE,EAAE4+B,EAAEv8B,GAAGnI,EAAEovB,MAAMllB,EAAEirE,eAAe,oBAAoBrvE,EAAE6lF,0BAA0B,oBAAoB3rF,EAAE4rF,yBAAyB,oBAAoB5rF,EAAE6rF,2BAA2B,oBAAoB7rF,EAAE8rF,qBACvehmF,EAAE9F,EAAEovB,MAAM,oBAAoBpvB,EAAE8rF,oBAAoB9rF,EAAE8rF,qBAAqB,oBAAoB9rF,EAAE6rF,2BAA2B7rF,EAAE6rF,4BAA4B/lF,IAAI9F,EAAEovB,OAAO07D,GAAG9f,oBAAoBhrE,EAAEA,EAAEovB,MAAM,MAAMq7D,GAAGvgF,EAAE/B,EAAEnI,EAAEyT,GAAGzT,EAAEovB,MAAMllB,EAAEirE,eAAe,oBAAoBn1E,EAAE+rF,oBAAoB7hF,EAAE0jB,OAAO,GAAG,IAAIo+D,GAAG3qF,MAAM6B,QACvT,SAAS+oF,GAAG/hF,EAAEpE,EAAEqC,GAAW,GAAG,QAAX+B,EAAE/B,EAAEsjE,MAAiB,oBAAoBvhE,GAAG,kBAAkBA,EAAE,CAAC,GAAG/B,EAAE2jE,OAAO,CAAY,GAAX3jE,EAAEA,EAAE2jE,OAAY,CAAC,GAAG,IAAI3jE,EAAEk5B,IAAI,MAAM1hC,MAAMyK,EAAE,MAAM,IAAIqJ,EAAEtL,EAAE4sE,UAAU,IAAIthE,EAAE,MAAM9T,MAAMyK,EAAE,IAAIF,IAAI,IAAIlK,EAAE,GAAGkK,EAAE,OAAG,OAAOpE,GAAG,OAAOA,EAAE2lE,KAAK,oBAAoB3lE,EAAE2lE,KAAK3lE,EAAE2lE,IAAIygB,aAAalsF,EAAS8F,EAAE2lE,KAAI3lE,EAAE,SAASoE,GAAG,IAAIpE,EAAE2N,EAAE03D,KAAKrlE,IAAI8kF,KAAK9kF,EAAE2N,EAAE03D,KAAK,IAAI,OAAOjhE,SAASpE,EAAE9F,GAAG8F,EAAE9F,GAAGkK,GAAGpE,EAAEomF,WAAWlsF,EAAS8F,GAAE,GAAG,kBAAkBoE,EAAE,MAAMvK,MAAMyK,EAAE,MAAM,IAAIjC,EAAE2jE,OAAO,MAAMnsE,MAAMyK,EAAE,IAAIF,IAAK,OAAOA,EAChe,SAASiiF,GAAGjiF,EAAEpE,GAAG,GAAG,aAAaoE,EAAExF,KAAK,MAAM/E,MAAMyK,EAAE,GAAG,oBAAoBjN,OAAOO,UAAUoH,SAAS7E,KAAK6F,GAAG,qBAAqB3I,OAAOyzB,KAAK9qB,GAAGgF,KAAK,MAAM,IAAIhF,IAClK,SAASsmF,GAAGliF,GAAG,SAASpE,EAAEA,EAAEqC,GAAG,GAAG+B,EAAE,CAAC,IAAIuJ,EAAE3N,EAAEumF,WAAW,OAAO54E,GAAGA,EAAE64E,WAAWnkF,EAAErC,EAAEumF,WAAWlkF,GAAGrC,EAAEymF,YAAYzmF,EAAEumF,WAAWlkF,EAAEA,EAAEmkF,WAAW,KAAKnkF,EAAEylB,MAAM,GAAG,SAASzlB,EAAEA,EAAEsL,GAAG,IAAIvJ,EAAE,OAAO,KAAK,KAAK,OAAOuJ,GAAG3N,EAAEqC,EAAEsL,GAAGA,EAAEA,EAAE4hE,QAAQ,OAAO,KAAK,SAAS5hE,EAAEvJ,EAAEpE,GAAG,IAAIoE,EAAE,IAAIorE,IAAI,OAAOxvE,GAAG,OAAOA,EAAEvH,IAAI2L,EAAE+E,IAAInJ,EAAEvH,IAAIuH,GAAGoE,EAAE+E,IAAInJ,EAAE4P,MAAM5P,GAAGA,EAAEA,EAAEuvE,QAAQ,OAAOnrE,EAAE,SAASlK,EAAEkK,EAAEpE,GAAsC,OAAnCoE,EAAEsiF,GAAGtiF,EAAEpE,IAAK4P,MAAM,EAAExL,EAAEmrE,QAAQ,KAAYnrE,EAAE,SAASw6B,EAAE5+B,EAAEqC,EAAEsL,GAAa,OAAV3N,EAAE4P,MAAMjC,EAAMvJ,EAA4B,QAAjBuJ,EAAE3N,EAAEmvE,YAA6BxhE,EAAEA,EAAEiC,OAAQvN,GAAGrC,EAAE8nB,MAAM,EACpfzlB,GAAGsL,GAAE3N,EAAE8nB,MAAM,EAASzlB,GADoaA,EACla,SAASwH,EAAE7J,GAAsC,OAAnCoE,GAAG,OAAOpE,EAAEmvE,YAAYnvE,EAAE8nB,MAAM,GAAU9nB,EAAE,SAASod,EAAEhZ,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAG,OAAO3N,GAAG,IAAIA,EAAEu7B,MAAWv7B,EAAE2mF,GAAGtkF,EAAE+B,EAAEga,KAAKzQ,IAAKyhE,OAAOhrE,EAAEpE,KAAEA,EAAE9F,EAAE8F,EAAEqC,IAAK+sE,OAAOhrE,EAASpE,GAAE,SAASmL,EAAE/G,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAG,OAAO3N,GAAGA,EAAE4mF,cAAcvkF,EAAEzD,OAAY+O,EAAEzT,EAAE8F,EAAEqC,EAAE+iE,QAASO,IAAIwgB,GAAG/hF,EAAEpE,EAAEqC,GAAGsL,EAAEyhE,OAAOhrE,EAAEuJ,KAAEA,EAAEk5E,GAAGxkF,EAAEzD,KAAKyD,EAAE5J,IAAI4J,EAAE+iE,MAAM,KAAKhhE,EAAEga,KAAKzQ,IAAKg4D,IAAIwgB,GAAG/hF,EAAEpE,EAAEqC,GAAGsL,EAAEyhE,OAAOhrE,EAASuJ,GAAE,SAASxD,EAAE/F,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAG,OAAO3N,GAAG,IAAIA,EAAEu7B,KAAKv7B,EAAEivE,UAAUkB,gBAAgB9tE,EAAE8tE,eAAenwE,EAAEivE,UAAU6X,iBAAiBzkF,EAAEykF,iBAAsB9mF,EACrgB+mF,GAAG1kF,EAAE+B,EAAEga,KAAKzQ,IAAKyhE,OAAOhrE,EAAEpE,KAAEA,EAAE9F,EAAE8F,EAAEqC,EAAE2iB,UAAU,KAAMoqD,OAAOhrE,EAASpE,GAAE,SAASC,EAAEmE,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GAAG,OAAG,OAAO5+B,GAAG,IAAIA,EAAEu7B,MAAWv7B,EAAEgnF,GAAG3kF,EAAE+B,EAAEga,KAAKzQ,EAAEixB,IAAKwwC,OAAOhrE,EAAEpE,KAAEA,EAAE9F,EAAE8F,EAAEqC,IAAK+sE,OAAOhrE,EAASpE,GAAE,SAASmf,EAAE/a,EAAEpE,EAAEqC,GAAG,GAAG,kBAAkBrC,GAAG,kBAAkBA,EAAE,OAAOA,EAAE2mF,GAAG,GAAG3mF,EAAEoE,EAAEga,KAAK/b,IAAK+sE,OAAOhrE,EAAEpE,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE+lE,UAAU,KAAKvT,EAAG,OAAOnwD,EAAEwkF,GAAG7mF,EAAEpB,KAAKoB,EAAEvH,IAAIuH,EAAEolE,MAAM,KAAKhhE,EAAEga,KAAK/b,IAAKsjE,IAAIwgB,GAAG/hF,EAAE,KAAKpE,GAAGqC,EAAE+sE,OAAOhrE,EAAE/B,EAAE,KAAKuwD,EAAG,OAAO5yD,EAAE+mF,GAAG/mF,EAAEoE,EAAEga,KAAK/b,IAAK+sE,OAAOhrE,EAAEpE,EAAE,GAAGkmF,GAAGlmF,IAAIo2D,EAAGp2D,GAAG,OAAOA,EAAEgnF,GAAGhnF,EACnfoE,EAAEga,KAAK/b,EAAE,OAAQ+sE,OAAOhrE,EAAEpE,EAAEqmF,GAAGjiF,EAAEpE,GAAG,OAAO,KAAK,SAASiN,EAAE7I,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE,OAAO8F,EAAEA,EAAEvH,IAAI,KAAK,GAAG,kBAAkB4J,GAAG,kBAAkBA,EAAE,OAAO,OAAOnI,EAAE,KAAKkjB,EAAEhZ,EAAEpE,EAAE,GAAGqC,EAAEsL,GAAG,GAAG,kBAAkBtL,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE0jE,UAAU,KAAKvT,EAAG,OAAOnwD,EAAE5J,MAAMyB,EAAEmI,EAAEzD,OAAOk0D,EAAG7yD,EAAEmE,EAAEpE,EAAEqC,EAAE+iE,MAAMpgD,SAASrX,EAAEzT,GAAGiR,EAAE/G,EAAEpE,EAAEqC,EAAEsL,GAAG,KAAK,KAAKilD,EAAG,OAAOvwD,EAAE5J,MAAMyB,EAAEiQ,EAAE/F,EAAEpE,EAAEqC,EAAEsL,GAAG,KAAK,GAAGu4E,GAAG7jF,IAAI+zD,EAAG/zD,GAAG,OAAO,OAAOnI,EAAE,KAAK+F,EAAEmE,EAAEpE,EAAEqC,EAAEsL,EAAE,MAAM04E,GAAGjiF,EAAE/B,GAAG,OAAO,KAAK,SAASgd,EAAEjb,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,GAAG,kBAAkByT,GAAG,kBAAkBA,EAAE,OACleyP,EAAEpd,EADueoE,EAAEA,EAAE6gB,IAAI5iB,IACtf,KAAW,GAAGsL,EAAEzT,GAAG,GAAG,kBAAkByT,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEo4D,UAAU,KAAKvT,EAAG,OAAOpuD,EAAEA,EAAE6gB,IAAI,OAAOtX,EAAElV,IAAI4J,EAAEsL,EAAElV,MAAM,KAAKkV,EAAE/O,OAAOk0D,EAAG7yD,EAAED,EAAEoE,EAAEuJ,EAAEy3D,MAAMpgD,SAAS9qB,EAAEyT,EAAElV,KAAK0S,EAAEnL,EAAEoE,EAAEuJ,EAAEzT,GAAG,KAAK04D,EAAG,OAA2CzoD,EAAEnK,EAAtCoE,EAAEA,EAAE6gB,IAAI,OAAOtX,EAAElV,IAAI4J,EAAEsL,EAAElV,MAAM,KAAWkV,EAAEzT,GAAG,GAAGgsF,GAAGv4E,IAAIyoD,EAAGzoD,GAAG,OAAwB1N,EAAED,EAAnBoE,EAAEA,EAAE6gB,IAAI5iB,IAAI,KAAWsL,EAAEzT,EAAE,MAAMmsF,GAAGrmF,EAAE2N,GAAG,OAAO,KAAK,SAAStJ,EAAEnK,EAAE2P,EAAEuT,EAAEjS,GAAG,IAAI,IAAIhB,EAAE,KAAKoI,EAAE,KAAKqS,EAAE/a,EAAEwB,EAAExB,EAAE,EAAEuI,EAAE,KAAK,OAAOwS,GAAGvZ,EAAE+R,EAAEvkB,OAAOwS,IAAI,CAACuZ,EAAEhV,MAAMvE,GAAG+G,EAAEwS,EAAEA,EAAE,MAAMxS,EAAEwS,EAAE2qD,QAAQ,IAAItvE,EAAEgN,EAAE/S,EAAE0qB,EAAExH,EAAE/R,GAAGF,GAAG,GAAG,OAAOlL,EAAE,CAAC,OAAO2kB,IAAIA,EAAExS,GAAG,MAAMhO,GAAGwgB,GAAG,OACjf3kB,EAAEkvE,WAAWnvE,EAAE9F,EAAE0qB,GAAG/a,EAAE+0B,EAAE3+B,EAAE4J,EAAEwB,GAAG,OAAOkH,EAAEpI,EAAElK,EAAEsS,EAAEg9D,QAAQtvE,EAAEsS,EAAEtS,EAAE2kB,EAAExS,EAAE,GAAG/G,IAAI+R,EAAEvkB,OAAO,OAAOwJ,EAAEnI,EAAE0qB,GAAGza,EAAE,GAAG,OAAOya,EAAE,CAAC,KAAKvZ,EAAE+R,EAAEvkB,OAAOwS,IAAkB,QAAduZ,EAAEzF,EAAEjlB,EAAEkjB,EAAE/R,GAAGF,MAActB,EAAE+0B,EAAEha,EAAE/a,EAAEwB,GAAG,OAAOkH,EAAEpI,EAAEya,EAAErS,EAAEg9D,QAAQ3qD,EAAErS,EAAEqS,GAAG,OAAOza,EAAE,IAAIya,EAAEjX,EAAEzT,EAAE0qB,GAAGvZ,EAAE+R,EAAEvkB,OAAOwS,IAAsB,QAAlB+G,EAAEiN,EAAEuF,EAAE1qB,EAAEmR,EAAE+R,EAAE/R,GAAGF,MAAc/G,GAAG,OAAOgO,EAAE+8D,WAAWvqD,EAAEqxC,OAAO,OAAO7jD,EAAE3Z,IAAI4S,EAAE+G,EAAE3Z,KAAKoR,EAAE+0B,EAAExsB,EAAEvI,EAAEwB,GAAG,OAAOkH,EAAEpI,EAAEiI,EAAEG,EAAEg9D,QAAQn9D,EAAEG,EAAEH,GAA4C,OAAzChO,GAAGwgB,EAAEoO,SAAQ,SAAS5uB,GAAG,OAAOpE,EAAE9F,EAAEkK,MAAY+F,EAAE,SAASW,EAAE5Q,EAAE2P,EAAEuT,EAAEjS,GAAG,IAAIhB,EAAEisD,EAAGh5C,GAAG,GAAG,oBAAoBjT,EAAE,MAAMtQ,MAAMyK,EAAE,MAAkB,GAAG,OAAf8Y,EAAEjT,EAAEhQ,KAAKijB,IAC1e,MAAMvjB,MAAMyK,EAAE,MAAM,IAAI,IAAIiO,EAAEpI,EAAE,KAAKya,EAAE/a,EAAEwB,EAAExB,EAAE,EAAEuI,EAAE,KAAKnS,EAAEmd,EAAE8G,OAAO,OAAOU,IAAI3kB,EAAEwmB,KAAKpb,IAAIpL,EAAEmd,EAAE8G,OAAO,CAACU,EAAEhV,MAAMvE,GAAG+G,EAAEwS,EAAEA,EAAE,MAAMxS,EAAEwS,EAAE2qD,QAAQ,IAAIzkE,EAAEmC,EAAE/S,EAAE0qB,EAAE3kB,EAAEnI,MAAMqT,GAAG,GAAG,OAAOL,EAAE,CAAC,OAAO8Z,IAAIA,EAAExS,GAAG,MAAMhO,GAAGwgB,GAAG,OAAO9Z,EAAEqkE,WAAWnvE,EAAE9F,EAAE0qB,GAAG/a,EAAE+0B,EAAE9zB,EAAEjB,EAAEwB,GAAG,OAAOkH,EAAEpI,EAAEW,EAAEyH,EAAEg9D,QAAQzkE,EAAEyH,EAAEzH,EAAE8Z,EAAExS,EAAE,GAAGnS,EAAEwmB,KAAK,OAAOpkB,EAAEnI,EAAE0qB,GAAGza,EAAE,GAAG,OAAOya,EAAE,CAAC,MAAM3kB,EAAEwmB,KAAKpb,IAAIpL,EAAEmd,EAAE8G,OAAwB,QAAjBjkB,EAAEkf,EAAEjlB,EAAE+F,EAAEnI,MAAMqT,MAActB,EAAE+0B,EAAE3+B,EAAE4J,EAAEwB,GAAG,OAAOkH,EAAEpI,EAAElK,EAAEsS,EAAEg9D,QAAQtvE,EAAEsS,EAAEtS,GAAG,OAAOkK,EAAE,IAAIya,EAAEjX,EAAEzT,EAAE0qB,IAAI3kB,EAAEwmB,KAAKpb,IAAIpL,EAAEmd,EAAE8G,OAA4B,QAArBjkB,EAAEof,EAAEuF,EAAE1qB,EAAEmR,EAAEpL,EAAEnI,MAAMqT,MAAc/G,GAAG,OAAOnE,EAAEkvE,WAChfvqD,EAAEqxC,OAAO,OAAOh2D,EAAExH,IAAI4S,EAAEpL,EAAExH,KAAKoR,EAAE+0B,EAAE3+B,EAAE4J,EAAEwB,GAAG,OAAOkH,EAAEpI,EAAElK,EAAEsS,EAAEg9D,QAAQtvE,EAAEsS,EAAEtS,GAA4C,OAAzCmE,GAAGwgB,EAAEoO,SAAQ,SAAS5uB,GAAG,OAAOpE,EAAE9F,EAAEkK,MAAY+F,EAAE,OAAO,SAAS/F,EAAEuJ,EAAEixB,EAAExhB,GAAG,IAAIjS,EAAE,kBAAkByzB,GAAG,OAAOA,GAAGA,EAAEhgC,OAAOk0D,GAAI,OAAOl0B,EAAEnmC,IAAI0S,IAAIyzB,EAAEA,EAAEwmC,MAAMpgD,UAAU,IAAI7a,EAAE,kBAAkBy0B,GAAG,OAAOA,EAAE,GAAGz0B,EAAE,OAAOy0B,EAAEmnC,UAAU,KAAKvT,EAAGpuD,EAAE,CAAS,IAAR+F,EAAEy0B,EAAEnmC,IAAQ0S,EAAEwC,EAAE,OAAOxC,GAAG,CAAC,GAAGA,EAAE1S,MAAM0R,EAAE,CAAC,GAAmB,IAAZgB,EAAEowB,KAAY,GAAGqD,EAAEhgC,OAAOk0D,EAAG,CAACzwD,EAAE+B,EAAE+G,EAAEokE,UAAS5hE,EAAEzT,EAAEiR,EAAEyzB,EAAEwmC,MAAMpgD,WAAYoqD,OAAOhrE,EAAEA,EAAEuJ,EAAE,MAAMvJ,QAAgB,GAAG+G,EAAEy7E,cAAchoD,EAAEhgC,KAAK,CAACyD,EAAE+B,EAAE+G,EAAEokE,UAC5e5hE,EAAEzT,EAAEiR,EAAEyzB,EAAEwmC,QAASO,IAAIwgB,GAAG/hF,EAAE+G,EAAEyzB,GAAGjxB,EAAEyhE,OAAOhrE,EAAEA,EAAEuJ,EAAE,MAAMvJ,EAAG/B,EAAE+B,EAAE+G,GAAG,MAAWnL,EAAEoE,EAAE+G,GAAGA,EAAEA,EAAEokE,QAAQ3wC,EAAEhgC,OAAOk0D,IAAInlD,EAAEq5E,GAAGpoD,EAAEwmC,MAAMpgD,SAAS5gB,EAAEga,KAAKhB,EAAEwhB,EAAEnmC,MAAO22E,OAAOhrE,EAAEA,EAAEuJ,KAAIyP,EAAEypE,GAAGjoD,EAAEhgC,KAAKggC,EAAEnmC,IAAImmC,EAAEwmC,MAAM,KAAKhhE,EAAEga,KAAKhB,IAAKuoD,IAAIwgB,GAAG/hF,EAAEuJ,EAAEixB,GAAGxhB,EAAEgyD,OAAOhrE,EAAEA,EAAEgZ,GAAG,OAAOvT,EAAEzF,GAAG,KAAKwuD,EAAGxuD,EAAE,CAAC,IAAI+G,EAAEyzB,EAAEnmC,IAAI,OAAOkV,GAAG,CAAC,GAAGA,EAAElV,MAAM0S,EAAX,CAAa,GAAG,IAAIwC,EAAE4tB,KAAK5tB,EAAEshE,UAAUkB,gBAAgBvxC,EAAEuxC,eAAexiE,EAAEshE,UAAU6X,iBAAiBloD,EAAEkoD,eAAe,CAACzkF,EAAE+B,EAAEuJ,EAAE4hE,UAAS5hE,EAAEzT,EAAEyT,EAAEixB,EAAE5Z,UAAU,KAAMoqD,OAAOhrE,EAAEA,EAAEuJ,EAAE,MAAMvJ,EAAO/B,EAAE+B,EAAEuJ,GAAG,MAAW3N,EAAEoE,EAAEuJ,GAAGA,EAAEA,EAAE4hE,SAAQ5hE,EACpfo5E,GAAGnoD,EAAEx6B,EAAEga,KAAKhB,IAAKgyD,OAAOhrE,EAAEA,EAAEuJ,EAAE,OAAO9D,EAAEzF,GAAG,GAAG,kBAAkBw6B,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOjxB,GAAG,IAAIA,EAAE4tB,KAAKl5B,EAAE+B,EAAEuJ,EAAE4hE,UAAS5hE,EAAEzT,EAAEyT,EAAEixB,IAAKwwC,OAAOhrE,EAAEA,EAAEuJ,IAAItL,EAAE+B,EAAEuJ,IAAGA,EAAEg5E,GAAG/nD,EAAEx6B,EAAEga,KAAKhB,IAAKgyD,OAAOhrE,EAAEA,EAAEuJ,GAAG9D,EAAEzF,GAAG,GAAG8hF,GAAGtnD,GAAG,OAAOv6B,EAAED,EAAEuJ,EAAEixB,EAAExhB,GAAG,GAAGg5C,EAAGx3B,GAAG,OAAO9zB,EAAE1G,EAAEuJ,EAAEixB,EAAExhB,GAAc,GAAXjT,GAAGk8E,GAAGjiF,EAAEw6B,GAAM,qBAAqBA,IAAIzzB,EAAE,OAAO/G,EAAEm3B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM1hC,MAAMyK,EAAE,IAAImyD,EAAGryD,EAAExF,OAAO,cAAe,OAAOyD,EAAE+B,EAAEuJ,IAAI,IAAIs5E,GAAGX,IAAG,GAAIY,GAAGZ,IAAG,GAAIa,GAAG,GAAGr5E,GAAG2xE,GAAG0H,IAAIn5E,GAAGyxE,GAAG0H,IAAI94E,GAAGoxE,GAAG0H,IACtd,SAAS54E,GAAGnK,GAAG,GAAGA,IAAI+iF,GAAG,MAAMttF,MAAMyK,EAAE,MAAM,OAAOF,EAAE,SAASwK,GAAGxK,EAAEpE,GAAyC,OAAtC24B,GAAEtqB,GAAGrO,GAAG24B,GAAE3qB,GAAG5J,GAAGu0B,GAAE7qB,GAAGq5E,IAAI/iF,EAAEpE,EAAEurE,UAAmB,KAAK,EAAE,KAAK,GAAGvrE,GAAGA,EAAEA,EAAEonF,iBAAiBpnF,EAAE8qE,aAAalZ,GAAG,KAAK,IAAI,MAAM,QAAkE5xD,EAAE4xD,GAArC5xD,GAAvBoE,EAAE,IAAIA,EAAEpE,EAAEgvE,WAAWhvE,GAAM8qE,cAAc,KAAK1mE,EAAEA,EAAEijF,SAAkBrsC,GAAEltC,IAAI6qB,GAAE7qB,GAAG9N,GAAG,SAASy8C,KAAKzB,GAAEltC,IAAIktC,GAAEhtC,IAAIgtC,GAAE3sC,IAAI,SAASquC,GAAGt4C,GAAGmK,GAAGF,GAAGoW,SAAS,IAAIzkB,EAAEuO,GAAGT,GAAG2W,SAAapiB,EAAEuvD,GAAG5xD,EAAEoE,EAAExF,MAAMoB,IAAIqC,IAAIs2B,GAAE3qB,GAAG5J,GAAGu0B,GAAE7qB,GAAGzL,IAAI,SAASs6C,GAAGv4C,GAAG4J,GAAGyW,UAAUrgB,IAAI42C,GAAEltC,IAAIktC,GAAEhtC,KAAK,IAAIiqD,GAAEwnB,GAAG,GAC9c,SAAS6H,GAAGljF,GAAG,IAAI,IAAIpE,EAAEoE,EAAE,OAAOpE,GAAG,CAAC,GAAG,KAAKA,EAAEu7B,IAAI,CAAC,IAAIl5B,EAAErC,EAAEqvE,cAAc,GAAG,OAAOhtE,IAAmB,QAAfA,EAAEA,EAAEitE,aAAqB,OAAOjtE,EAAExD,MAAM,OAAOwD,EAAExD,MAAM,OAAOmB,OAAO,GAAG,KAAKA,EAAEu7B,UAAK,IAASv7B,EAAEunF,cAAcC,aAAa,GAAG,KAAa,GAARxnF,EAAE8nB,OAAU,OAAO9nB,OAAO,GAAG,OAAOA,EAAEovC,MAAM,CAACpvC,EAAEovC,MAAMggC,OAAOpvE,EAAEA,EAAEA,EAAEovC,MAAM,SAAS,GAAGpvC,IAAIoE,EAAE,MAAM,KAAK,OAAOpE,EAAEuvE,SAAS,CAAC,GAAG,OAAOvvE,EAAEovE,QAAQpvE,EAAEovE,SAAShrE,EAAE,OAAO,KAAKpE,EAAEA,EAAEovE,OAAOpvE,EAAEuvE,QAAQH,OAAOpvE,EAAEovE,OAAOpvE,EAAEA,EAAEuvE,QAAQ,OAAO,KAAK,IAAIkY,GAAG,KAAKC,GAAG,KAAKC,IAAG,EACpd,SAASC,GAAGxjF,EAAEpE,GAAG,IAAIqC,EAAEwlF,GAAG,EAAE,KAAK,KAAK,GAAGxlF,EAAEukF,YAAY,UAAUvkF,EAAEzD,KAAK,UAAUyD,EAAE4sE,UAAUjvE,EAAEqC,EAAE+sE,OAAOhrE,EAAE/B,EAAEylB,MAAM,EAAE,OAAO1jB,EAAEmiF,YAAYniF,EAAEmiF,WAAWC,WAAWnkF,EAAE+B,EAAEmiF,WAAWlkF,GAAG+B,EAAEqiF,YAAYriF,EAAEmiF,WAAWlkF,EAAE,SAASylF,GAAG1jF,EAAEpE,GAAG,OAAOoE,EAAEm3B,KAAK,KAAK,EAAE,IAAIl5B,EAAE+B,EAAExF,KAAyE,OAAO,QAA3EoB,EAAE,IAAIA,EAAEurE,UAAUlpE,EAAEhD,gBAAgBW,EAAE2pE,SAAStqE,cAAc,KAAKW,KAAmBoE,EAAE6qE,UAAUjvE,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKoE,EAAE2jF,cAAc,IAAI/nF,EAAEurE,SAAS,KAAKvrE,KAAYoE,EAAE6qE,UAAUjvE,GAAE,GAAwB,QAAQ,OAAM,GACve,SAASic,GAAG7X,GAAG,GAAGujF,GAAG,CAAC,IAAI3nF,EAAE0nF,GAAG,GAAG1nF,EAAE,CAAC,IAAIqC,EAAErC,EAAE,IAAI8nF,GAAG1jF,EAAEpE,GAAG,CAAqB,KAApBA,EAAE++E,GAAG18E,EAAEs5E,gBAAqBmM,GAAG1jF,EAAEpE,GAAuC,OAAnCoE,EAAE0jB,OAAe,KAAT1jB,EAAE0jB,MAAY,EAAE6/D,IAAG,OAAGF,GAAGrjF,GAASwjF,GAAGH,GAAGplF,GAAGolF,GAAGrjF,EAAEsjF,GAAG3I,GAAG/+E,EAAEirE,iBAAiB7mE,EAAE0jB,OAAe,KAAT1jB,EAAE0jB,MAAY,EAAE6/D,IAAG,EAAGF,GAAGrjF,GAAG,SAAS4jF,GAAG5jF,GAAG,IAAIA,EAAEA,EAAEgrE,OAAO,OAAOhrE,GAAG,IAAIA,EAAEm3B,KAAK,IAAIn3B,EAAEm3B,KAAK,KAAKn3B,EAAEm3B,KAAKn3B,EAAEA,EAAEgrE,OAAOqY,GAAGrjF,EAC5S,SAAS6jF,GAAG7jF,GAAG,GAAGA,IAAIqjF,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOK,GAAG5jF,GAAGujF,IAAG,GAAG,EAAG,IAAI3nF,EAAEoE,EAAExF,KAAK,GAAG,IAAIwF,EAAEm3B,KAAK,SAASv7B,GAAG,SAASA,IAAI0+E,GAAG1+E,EAAEoE,EAAEmjF,eAAe,IAAIvnF,EAAE0nF,GAAG1nF,GAAG4nF,GAAGxjF,EAAEpE,GAAGA,EAAE++E,GAAG/+E,EAAE27E,aAAmB,GAANqM,GAAG5jF,GAAM,KAAKA,EAAEm3B,IAAI,CAAgD,KAA7Bn3B,EAAE,QAApBA,EAAEA,EAAEirE,eAAyBjrE,EAAEkrE,WAAW,MAAW,MAAMz1E,MAAMyK,EAAE,MAAMF,EAAE,CAAiB,IAAhBA,EAAEA,EAAEu3E,YAAgB37E,EAAE,EAAEoE,GAAG,CAAC,GAAG,IAAIA,EAAEmnE,SAAS,CAAC,IAAIlpE,EAAE+B,EAAEvF,KAAK,GAAG,OAAOwD,EAAE,CAAC,GAAG,IAAIrC,EAAE,CAAC0nF,GAAG3I,GAAG36E,EAAEu3E,aAAa,MAAMv3E,EAAEpE,QAAQ,MAAMqC,GAAG,OAAOA,GAAG,OAAOA,GAAGrC,IAAIoE,EAAEA,EAAEu3E,YAAY+L,GAAG,WAAWA,GAAGD,GAAG1I,GAAG36E,EAAE6qE,UAAU0M,aAAa,KAAK,OAAM,EACtf,SAASuM,KAAKR,GAAGD,GAAG,KAAKE,IAAG,EAAG,IAAIQ,GAAG,GAAG,SAASC,KAAK,IAAI,IAAIhkF,EAAE,EAAEA,EAAE+jF,GAAGtvF,OAAOuL,IAAI+jF,GAAG/jF,GAAGikF,8BAA8B,KAAKF,GAAGtvF,OAAO,EAAE,IAAIyvF,GAAGv2B,EAAGqU,uBAAuBmiB,GAAGx2B,EAAGsU,wBAAwBvpB,GAAG,EAAEl2B,GAAE,KAAK8zC,GAAE,KAAK/Z,GAAE,KAAKmG,IAAG,EAAGE,IAAG,EAAG,SAASwhC,KAAK,MAAM3uF,MAAMyK,EAAE,MAAO,SAASmkF,GAAGrkF,EAAEpE,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIqC,EAAE,EAAEA,EAAErC,EAAEnH,QAAQwJ,EAAE+B,EAAEvL,OAAOwJ,IAAI,IAAIi5E,GAAGl3E,EAAE/B,GAAGrC,EAAEqC,IAAI,OAAM,EAAG,OAAM,EAC9X,SAAS64C,GAAG92C,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAyH,GAAtHke,GAAGle,EAAEhY,GAAE5mB,EAAEA,EAAEqvE,cAAc,KAAKrvE,EAAE8jF,YAAY,KAAK9jF,EAAEujF,MAAM,EAAE+E,GAAG7jE,QAAQ,OAAOrgB,GAAG,OAAOA,EAAEirE,cAAcqZ,GAAGC,GAAGvkF,EAAE/B,EAAEsL,EAAEzT,GAAM8sD,GAAG,CAACpoB,EAAE,EAAE,EAAE,CAAO,GAANooB,IAAG,IAAQ,GAAGpoB,GAAG,MAAM/kC,MAAMyK,EAAE,MAAMs6B,GAAG,EAAE+hB,GAAE+Z,GAAE,KAAK16D,EAAE8jF,YAAY,KAAKwE,GAAG7jE,QAAQmkE,GAAGxkF,EAAE/B,EAAEsL,EAAEzT,SAAS8sD,IAAkE,GAA9DshC,GAAG7jE,QAAQokE,GAAG7oF,EAAE,OAAO06D,IAAG,OAAOA,GAAEx2C,KAAK44B,GAAG,EAAE6D,GAAE+Z,GAAE9zC,GAAE,KAAKkgC,IAAG,EAAM9mD,EAAE,MAAMnG,MAAMyK,EAAE,MAAM,OAAOF,EAAE,SAAS0kF,KAAK,IAAI1kF,EAAE,CAACirE,cAAc,KAAK0U,UAAU,KAAKgF,UAAU,KAAKxuF,MAAM,KAAK2pB,KAAK,MAA8C,OAAxC,OAAOy8B,GAAE/5B,GAAEyoD,cAAc1uB,GAAEv8C,EAAEu8C,GAAEA,GAAEz8B,KAAK9f,EAASu8C,GAC/e,SAASqoC,KAAK,GAAG,OAAOtuB,GAAE,CAAC,IAAIt2D,EAAEwiB,GAAEuoD,UAAU/qE,EAAE,OAAOA,EAAEA,EAAEirE,cAAc,UAAUjrE,EAAEs2D,GAAEx2C,KAAK,IAAIlkB,EAAE,OAAO2gD,GAAE/5B,GAAEyoD,cAAc1uB,GAAEz8B,KAAK,GAAG,OAAOlkB,EAAE2gD,GAAE3gD,EAAE06D,GAAEt2D,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMvK,MAAMyK,EAAE,MAAUF,EAAE,CAACirE,eAAP3U,GAAEt2D,GAAqBirE,cAAc0U,UAAUrpB,GAAEqpB,UAAUgF,UAAUruB,GAAEquB,UAAUxuF,MAAMmgE,GAAEngE,MAAM2pB,KAAK,MAAM,OAAOy8B,GAAE/5B,GAAEyoD,cAAc1uB,GAAEv8C,EAAEu8C,GAAEA,GAAEz8B,KAAK9f,EAAE,OAAOu8C,GAAE,SAASsoC,GAAG7kF,EAAEpE,GAAG,MAAM,oBAAoBA,EAAEA,EAAEoE,GAAGpE,EACvY,SAASkpF,GAAG9kF,GAAG,IAAIpE,EAAEgpF,KAAK3mF,EAAErC,EAAEzF,MAAM,GAAG,OAAO8H,EAAE,MAAMxI,MAAMyK,EAAE,MAAMjC,EAAE8mF,oBAAoB/kF,EAAE,IAAIuJ,EAAE+sD,GAAExgE,EAAEyT,EAAEo7E,UAAUnqD,EAAEv8B,EAAEovB,QAAQ,GAAG,OAAOmN,EAAE,CAAC,GAAG,OAAO1kC,EAAE,CAAC,IAAI2P,EAAE3P,EAAEgqB,KAAKhqB,EAAEgqB,KAAK0a,EAAE1a,KAAK0a,EAAE1a,KAAKra,EAAE8D,EAAEo7E,UAAU7uF,EAAE0kC,EAAEv8B,EAAEovB,QAAQ,KAAK,GAAG,OAAOv3B,EAAE,CAACA,EAAEA,EAAEgqB,KAAKvW,EAAEA,EAAEo2E,UAAU,IAAI3mE,EAAEvT,EAAE+0B,EAAE,KAAKzzB,EAAEjR,EAAE,EAAE,CAAC,IAAIiQ,EAAEgB,EAAEo5E,KAAK,IAAIznC,GAAG3yC,KAAKA,EAAE,OAAOiT,IAAIA,EAAEA,EAAE8G,KAAK,CAACqgE,KAAK,EAAE6E,OAAOj+E,EAAEi+E,OAAOC,aAAal+E,EAAEk+E,aAAaC,WAAWn+E,EAAEm+E,WAAWplE,KAAK,OAAOvW,EAAExC,EAAEk+E,eAAejlF,EAAE+G,EAAEm+E,WAAWllF,EAAEuJ,EAAExC,EAAEi+E,YAAY,CAAC,IAAInpF,EAAE,CAACskF,KAAKp6E,EAAEi/E,OAAOj+E,EAAEi+E,OAAOC,aAAal+E,EAAEk+E,aAC9fC,WAAWn+E,EAAEm+E,WAAWplE,KAAK,MAAM,OAAO9G,GAAGvT,EAAEuT,EAAEnd,EAAE2+B,EAAEjxB,GAAGyP,EAAEA,EAAE8G,KAAKjkB,EAAE2mB,GAAE28D,OAAOp5E,EAAEy6E,IAAIz6E,EAAEgB,EAAEA,EAAE+Y,WAAW,OAAO/Y,GAAGA,IAAIjR,GAAG,OAAOkjB,EAAEwhB,EAAEjxB,EAAEyP,EAAE8G,KAAKra,EAAEyxE,GAAG3tE,EAAE3N,EAAEqvE,iBAAiBmU,IAAG,GAAIxjF,EAAEqvE,cAAc1hE,EAAE3N,EAAE+jF,UAAUnlD,EAAE5+B,EAAE+oF,UAAU3rE,EAAE/a,EAAEknF,kBAAkB57E,EAAE,MAAM,CAAC3N,EAAEqvE,cAAchtE,EAAEmnF,UACtQ,SAASC,GAAGrlF,GAAG,IAAIpE,EAAEgpF,KAAK3mF,EAAErC,EAAEzF,MAAM,GAAG,OAAO8H,EAAE,MAAMxI,MAAMyK,EAAE,MAAMjC,EAAE8mF,oBAAoB/kF,EAAE,IAAIuJ,EAAEtL,EAAEmnF,SAAStvF,EAAEmI,EAAEovB,QAAQmN,EAAE5+B,EAAEqvE,cAAc,GAAG,OAAOn1E,EAAE,CAACmI,EAAEovB,QAAQ,KAAK,IAAI5nB,EAAE3P,EAAEA,EAAEgqB,KAAK,GAAG0a,EAAEx6B,EAAEw6B,EAAE/0B,EAAEu/E,QAAQv/E,EAAEA,EAAEqa,WAAWra,IAAI3P,GAAGohF,GAAG18C,EAAE5+B,EAAEqvE,iBAAiBmU,IAAG,GAAIxjF,EAAEqvE,cAAczwC,EAAE,OAAO5+B,EAAE+oF,YAAY/oF,EAAE+jF,UAAUnlD,GAAGv8B,EAAEknF,kBAAkB3qD,EAAE,MAAM,CAACA,EAAEjxB,GACnV,SAAS+7E,GAAGtlF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE3N,EAAE2pF,YAAYh8E,EAAEA,EAAE3N,EAAE4pF,SAAS,IAAI1vF,EAAE8F,EAAEqoF,8BAAyI,GAAxG,OAAOnuF,EAAEkK,EAAElK,IAAIyT,GAAUvJ,EAAEA,EAAEylF,kBAAiBzlF,GAAG04C,GAAG14C,KAAKA,KAAEpE,EAAEqoF,8BAA8B16E,EAAEw6E,GAAGzsF,KAAKsE,KAAMoE,EAAE,OAAO/B,EAAErC,EAAE4pF,SAAoB,MAAXzB,GAAGzsF,KAAKsE,GAASnG,MAAMyK,EAAE,MACzP,SAASwlF,GAAG1lF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE0mD,GAAE,GAAG,OAAO1mD,EAAE,MAAML,MAAMyK,EAAE,MAAM,IAAIs6B,EAAE5+B,EAAE2pF,YAAY9/E,EAAE+0B,EAAE5+B,EAAE4pF,SAASxsE,EAAEkrE,GAAG7jE,QAAQtZ,EAAEiS,EAAEqrD,UAAS,WAAW,OAAOihB,GAAGxvF,EAAE8F,EAAEqC,MAAK8H,EAAEgB,EAAE,GAAGlL,EAAEkL,EAAE,GAAGA,EAAEw1C,GAAE,IAAIxhC,EAAE/a,EAAEirE,cAAcpiE,EAAEkS,EAAEkmD,KAAKhmD,EAAEpS,EAAE88E,YAAY1lF,EAAE8a,EAAE8e,OAAO9e,EAAEA,EAAE6qE,UAAU,IAAIl/E,EAAE8b,GACuO,OADrOxiB,EAAEirE,cAAc,CAAChK,KAAKp4D,EAAEgxB,OAAOj+B,EAAEgqF,UAAUr8E,GAAGyP,EAAE+qD,WAAU,WAAWl7D,EAAE88E,YAAY1nF,EAAE4K,EAAEg9E,YAAY9/E,EAAE,IAAI/F,EAAEw6B,EAAE5+B,EAAE4pF,SAAS,IAAItO,GAAGzxE,EAAEzF,GAAG,CAACA,EAAE/B,EAAErC,EAAE4pF,SAAStO,GAAGr7E,EAAEmE,KAAK+F,EAAE/F,GAAGA,EAAE+gF,GAAGr6E,GAAG5Q,EAAE2vF,kBAAkBzlF,EAAElK,EAAE02E,cAAcxsE,EAAElK,EAAE2vF,iBAAiB3vF,EAAE82E,gBAAgB5sE,EAAE,IAAI,IAAIuJ,EAC5fzT,EAAE+2E,cAAc7zD,EAAEhZ,EAAE,EAAEgZ,GAAG,CAAC,IAAIjS,EAAE,GAAG6yD,GAAG5gD,GAAGwP,EAAE,GAAGzhB,EAAEwC,EAAExC,IAAI/G,EAAEgZ,IAAIwP,MAAK,CAACvqB,EAAErC,EAAE2N,IAAIyP,EAAE+qD,WAAU,WAAW,OAAOx6D,EAAE3N,EAAE4pF,SAAQ,WAAW,IAAIxlF,EAAE6I,EAAE88E,YAAY1nF,EAAE4K,EAAEg9E,YAAY,IAAI5nF,EAAE+B,EAAEpE,EAAE4pF,UAAU,IAAIj8E,EAAEw3E,GAAGr6E,GAAG5Q,EAAE2vF,kBAAkBl8E,EAAEzT,EAAE02E,aAAa,MAAMx+D,GAAG/P,GAAE,WAAW,MAAM+P,WAAS,CAACpS,EAAE2N,IAAI2tE,GAAGj8D,EAAEhd,IAAIi5E,GAAGj3E,EAAErE,IAAIs7E,GAAGn8D,EAAExR,MAAKvJ,EAAE,CAACqtB,QAAQ,KAAK+3D,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkBtpF,IAAKupF,SAASr/E,EAAE+/E,GAAG1gE,KAAK,KAAK5C,GAAExiB,GAAG+G,EAAE5Q,MAAM6J,EAAE+G,EAAE49E,UAAU,KAAK9oF,EAAEypF,GAAGxvF,EAAE8F,EAAEqC,GAAG8I,EAAEkkE,cAAclkE,EAAE44E,UAAU9jF,GAAUA,EACte,SAASkqF,GAAG/lF,EAAEpE,EAAEqC,GAAc,OAAOynF,GAAZd,KAAiB5kF,EAAEpE,EAAEqC,GAAG,SAAS+nF,GAAGhmF,GAAG,IAAIpE,EAAE8oF,KAAmL,MAA9K,oBAAoB1kF,IAAIA,EAAEA,KAAKpE,EAAEqvE,cAAcrvE,EAAE+jF,UAAU3/E,EAAoFA,GAAlFA,EAAEpE,EAAEzF,MAAM,CAACk3B,QAAQ,KAAK+3D,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkBnlF,IAAOolF,SAASU,GAAG1gE,KAAK,KAAK5C,GAAExiB,GAAS,CAACpE,EAAEqvE,cAAcjrE,GAChR,SAASimF,GAAGjmF,EAAEpE,EAAEqC,EAAEsL,GAAkO,OAA/NvJ,EAAE,CAACm3B,IAAIn3B,EAAE9M,OAAO0I,EAAEgnC,QAAQ3kC,EAAEioF,KAAK38E,EAAEuW,KAAK,MAAsB,QAAhBlkB,EAAE4mB,GAAEk9D,cAAsB9jF,EAAE,CAACumF,WAAW,MAAM3/D,GAAEk9D,YAAY9jF,EAAEA,EAAEumF,WAAWniF,EAAE8f,KAAK9f,GAAmB,QAAf/B,EAAErC,EAAEumF,YAAoBvmF,EAAEumF,WAAWniF,EAAE8f,KAAK9f,GAAGuJ,EAAEtL,EAAE6hB,KAAK7hB,EAAE6hB,KAAK9f,EAAEA,EAAE8f,KAAKvW,EAAE3N,EAAEumF,WAAWniF,GAAWA,EAAE,SAASmmF,GAAGnmF,GAA4B,OAAdA,EAAE,CAACqgB,QAAQrgB,GAAhB0kF,KAA4BzZ,cAAcjrE,EAAE,SAASomF,KAAK,OAAOxB,KAAK3Z,cAAc,SAASob,GAAGrmF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE4uF,KAAKliE,GAAEkB,OAAO1jB,EAAElK,EAAEm1E,cAAcgb,GAAG,EAAErqF,EAAEqC,OAAE,OAAO,IAASsL,EAAE,KAAKA,GACjc,SAAS+8E,GAAGtmF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE8uF,KAAKr7E,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIixB,OAAE,EAAO,GAAG,OAAO87B,GAAE,CAAC,IAAI7wD,EAAE6wD,GAAE2U,cAA0B,GAAZzwC,EAAE/0B,EAAEm9B,QAAW,OAAOr5B,GAAG86E,GAAG96E,EAAE9D,EAAEygF,MAAmB,YAAZD,GAAGrqF,EAAEqC,EAAEu8B,EAAEjxB,GAAWiZ,GAAEkB,OAAO1jB,EAAElK,EAAEm1E,cAAcgb,GAAG,EAAErqF,EAAEqC,EAAEu8B,EAAEjxB,GAAG,SAASg9E,GAAGvmF,EAAEpE,GAAG,OAAOyqF,GAAG,IAAI,EAAErmF,EAAEpE,GAAG,SAAS4qF,GAAGxmF,EAAEpE,GAAG,OAAO0qF,GAAG,IAAI,EAAEtmF,EAAEpE,GAAG,SAAS6qF,GAAGzmF,EAAEpE,GAAG,OAAO0qF,GAAG,EAAE,EAAEtmF,EAAEpE,GAAG,SAAS8qF,GAAG1mF,EAAEpE,GAAG,MAAG,oBAAoBA,GAASoE,EAAEA,IAAIpE,EAAEoE,GAAG,WAAWpE,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASoE,EAAEA,IAAIpE,EAAEykB,QAAQrgB,EAAE,WAAWpE,EAAEykB,QAAQ,YAAtE,EACxY,SAASsmE,GAAG3mF,EAAEpE,EAAEqC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE1H,OAAO,CAACyJ,IAAI,KAAYsmF,GAAG,EAAE,EAAEI,GAAGthE,KAAK,KAAKxpB,EAAEoE,GAAG/B,GAAG,SAAS2oF,MAAM,SAASC,GAAG7mF,EAAEpE,GAAG,IAAIqC,EAAE2mF,KAAKhpF,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI2N,EAAEtL,EAAEgtE,cAAc,OAAG,OAAO1hE,GAAG,OAAO3N,GAAGyoF,GAAGzoF,EAAE2N,EAAE,IAAWA,EAAE,IAAGtL,EAAEgtE,cAAc,CAACjrE,EAAEpE,GAAUoE,GAAE,SAAS8mF,GAAG9mF,EAAEpE,GAAG,IAAIqC,EAAE2mF,KAAKhpF,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI2N,EAAEtL,EAAEgtE,cAAc,OAAG,OAAO1hE,GAAG,OAAO3N,GAAGyoF,GAAGzoF,EAAE2N,EAAE,IAAWA,EAAE,IAAGvJ,EAAEA,IAAI/B,EAAEgtE,cAAc,CAACjrE,EAAEpE,GAAUoE,GACzZ,SAAS+mF,GAAG/mF,EAAEpE,GAAG,IAAIqC,EAAE+/E,KAAKE,GAAG,GAAGjgF,EAAE,GAAGA,GAAE,WAAW+B,GAAE,MAAMk+E,GAAG,GAAGjgF,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEkmF,GAAGjiB,WAAWiiB,GAAGjiB,WAAW,EAAE,IAAIliE,GAAE,GAAIpE,IAAV,QAAsBuoF,GAAGjiB,WAAWjkE,MAC5J,SAAS6nF,GAAG9lF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEu3E,KAAKhrF,EAAEirF,GAAG/gF,GAAGw6B,EAAE,CAAC2lD,KAAKrqF,EAAEkvF,OAAO/mF,EAAEgnF,aAAa,KAAKC,WAAW,KAAKplE,KAAK,MAAMra,EAAE7J,EAAEyxB,QAA6E,GAArE,OAAO5nB,EAAE+0B,EAAE1a,KAAK0a,GAAGA,EAAE1a,KAAKra,EAAEqa,KAAKra,EAAEqa,KAAK0a,GAAG5+B,EAAEyxB,QAAQmN,EAAE/0B,EAAEzF,EAAE+qE,UAAa/qE,IAAIwiB,IAAG,OAAO/c,GAAGA,IAAI+c,GAAEogC,GAAGF,IAAG,MAAO,CAAC,GAAG,IAAI1iD,EAAEm/E,QAAQ,OAAO15E,GAAG,IAAIA,EAAE05E,QAAiC,QAAxB15E,EAAE7J,EAAEmpF,qBAA8B,IAAI,IAAI/rE,EAAEpd,EAAEupF,kBAAkBp+E,EAAEtB,EAAEuT,EAAE/a,GAAmC,GAAhCu8B,EAAEyqD,aAAax/E,EAAE+0B,EAAE0qD,WAAWn+E,EAAKmwE,GAAGnwE,EAAEiS,GAAG,OAAO,MAAMjT,IAAai7E,GAAGhhF,EAAElK,EAAEyT,IAC9Z,IAAIk7E,GAAG,CAACuC,YAAY3H,GAAGzb,YAAYwgB,GAAGvgB,WAAWugB,GAAGrgB,UAAUqgB,GAAGpgB,oBAAoBogB,GAAGngB,gBAAgBmgB,GAAGlgB,QAAQkgB,GAAGjgB,WAAWigB,GAAGhgB,OAAOggB,GAAG/f,SAAS+f,GAAGtgB,cAAcsgB,GAAG6C,iBAAiB7C,GAAG8C,cAAc9C,GAAG+C,iBAAiB/C,GAAGgD,oBAAoBhD,GAAGiD,0BAAyB,GAAI/C,GAAG,CAAC0C,YAAY3H,GAAGzb,YAAY,SAAS5jE,EAAEpE,GAA4C,OAAzC8oF,KAAKzZ,cAAc,CAACjrE,OAAE,IAASpE,EAAE,KAAKA,GAAUoE,GAAG6jE,WAAWwb,GAAGtb,UAAUwiB,GAAGviB,oBAAoB,SAAShkE,EAAEpE,EAAEqC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE1H,OAAO,CAACyJ,IAAI,KAAYqmF,GAAG,EAAE,EAAEK,GAAGthE,KAAK,KACvfxpB,EAAEoE,GAAG/B,IAAIgmE,gBAAgB,SAASjkE,EAAEpE,GAAG,OAAOyqF,GAAG,EAAE,EAAErmF,EAAEpE,IAAIsoE,QAAQ,SAASlkE,EAAEpE,GAAG,IAAIqC,EAAEymF,KAAqD,OAAhD9oF,OAAE,IAASA,EAAE,KAAKA,EAAEoE,EAAEA,IAAI/B,EAAEgtE,cAAc,CAACjrE,EAAEpE,GAAUoE,GAAGmkE,WAAW,SAASnkE,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEm7E,KAAuK,OAAlK9oF,OAAE,IAASqC,EAAEA,EAAErC,GAAGA,EAAE2N,EAAE0hE,cAAc1hE,EAAEo2E,UAAU/jF,EAAmFoE,GAAjFA,EAAEuJ,EAAEpT,MAAM,CAACk3B,QAAQ,KAAK+3D,SAAS,KAAKL,oBAAoB/kF,EAAEmlF,kBAAkBvpF,IAAOwpF,SAASU,GAAG1gE,KAAK,KAAK5C,GAAExiB,GAAS,CAACuJ,EAAE0hE,cAAcjrE,IAAIokE,OAAO+hB,GAAG9hB,SAAS2hB,GAAGliB,cAAc8iB,GAAGK,iBAAiB,SAASjnF,GAAG,IAAIpE,EAAEoqF,GAAGhmF,GAAG/B,EAAErC,EAAE,GAAG2N,EAAE3N,EAAE,GAC5Z,OAD+Z2qF,IAAG,WAAW,IAAI3qF,EAAEuoF,GAAGjiB,WAC9eiiB,GAAGjiB,WAAW,EAAE,IAAI34D,EAAEvJ,GAAN,QAAiBmkF,GAAGjiB,WAAWtmE,KAAI,CAACoE,IAAW/B,GAAGipF,cAAc,WAAW,IAAIlnF,EAAEgmF,IAAG,GAAIpqF,EAAEoE,EAAE,GAA8B,OAANmmF,GAArBnmF,EAAE+mF,GAAG3hE,KAAK,KAAKplB,EAAE,KAAgB,CAACA,EAAEpE,IAAIurF,iBAAiB,SAASnnF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEm7E,KAAkF,OAA7En7E,EAAE0hE,cAAc,CAAChK,KAAK,CAAC0kB,YAAY/pF,EAAEiqF,YAAY,MAAMhsD,OAAO75B,EAAE4lF,UAAU3nF,GAAUynF,GAAGn8E,EAAEvJ,EAAEpE,EAAEqC,IAAImpF,oBAAoB,WAAW,GAAG7D,GAAG,CAAC,IAAIvjF,GAAE,EAAGpE,EAzDlD,SAAYoE,GAAG,MAAM,CAAC2hE,SAAS3R,EAAGp1D,SAASoF,EAAE4mE,QAAQ5mE,GAyDDsnF,EAAG,WAAiD,MAAtCtnF,IAAIA,GAAE,EAAG/B,EAAE,MAAM68E,MAAMlgF,SAAS,MAAYnF,MAAMyK,EAAE,SAASjC,EAAE+nF,GAAGpqF,GAAG,GAC1Z,OAD6Z,KAAY,EAAP4mB,GAAExI,QAAUwI,GAAEkB,OAAO,IAAIuiE,GAAG,GAAE,WAAWhoF,EAAE,MAAM68E,MAAMlgF,SAAS,YAChf,EAAO,OAAcgB,EAAmC,OAANoqF,GAA3BpqF,EAAE,MAAMk/E,MAAMlgF,SAAS,KAAiBgB,GAAGyrF,0BAAyB,GAAI9C,GAAG,CAACyC,YAAY3H,GAAGzb,YAAYijB,GAAGhjB,WAAWwb,GAAGtb,UAAUyiB,GAAGxiB,oBAAoB2iB,GAAG1iB,gBAAgBwiB,GAAGviB,QAAQ4iB,GAAG3iB,WAAW2gB,GAAG1gB,OAAOgiB,GAAG/hB,SAAS,WAAW,OAAOygB,GAAGD,KAAK/gB,cAAc8iB,GAAGK,iBAAiB,SAASjnF,GAAG,IAAIpE,EAAEkpF,GAAGD,IAAI5mF,EAAErC,EAAE,GAAG2N,EAAE3N,EAAE,GAA6F,OAA1F4qF,IAAG,WAAW,IAAI5qF,EAAEuoF,GAAGjiB,WAAWiiB,GAAGjiB,WAAW,EAAE,IAAI34D,EAAEvJ,GAAN,QAAiBmkF,GAAGjiB,WAAWtmE,KAAI,CAACoE,IAAW/B,GAAGipF,cAAc,WAAW,IAAIlnF,EAAE8kF,GAAGD,IAAI,GAAG,MAAM,CAACuB,KAAK/lE,QAC9ergB,IAAImnF,iBAAiBpB,GAAGqB,oBAAoB,WAAW,OAAOtC,GAAGD,IAAI,IAAIwC,0BAAyB,GAAI7C,GAAG,CAACwC,YAAY3H,GAAGzb,YAAYijB,GAAGhjB,WAAWwb,GAAGtb,UAAUyiB,GAAGxiB,oBAAoB2iB,GAAG1iB,gBAAgBwiB,GAAGviB,QAAQ4iB,GAAG3iB,WAAWkhB,GAAGjhB,OAAOgiB,GAAG/hB,SAAS,WAAW,OAAOghB,GAAGR,KAAK/gB,cAAc8iB,GAAGK,iBAAiB,SAASjnF,GAAG,IAAIpE,EAAEypF,GAAGR,IAAI5mF,EAAErC,EAAE,GAAG2N,EAAE3N,EAAE,GAA6F,OAA1F4qF,IAAG,WAAW,IAAI5qF,EAAEuoF,GAAGjiB,WAAWiiB,GAAGjiB,WAAW,EAAE,IAAI34D,EAAEvJ,GAAN,QAAiBmkF,GAAGjiB,WAAWtmE,KAAI,CAACoE,IAAW/B,GAAGipF,cAAc,WAAW,IAAIlnF,EAAEqlF,GAAGR,IAAI,GAAG,MAAM,CAACuB,KAAK/lE,QACrfrgB,IAAImnF,iBAAiBpB,GAAGqB,oBAAoB,WAAW,OAAO/B,GAAGR,IAAI,IAAIwC,0BAAyB,GAAIE,GAAG55B,EAAGwU,kBAAkBid,IAAG,EAAG,SAASoI,GAAGxnF,EAAEpE,EAAEqC,EAAEsL,GAAG3N,EAAEovC,MAAM,OAAOhrC,EAAE8iF,GAAGlnF,EAAE,KAAKqC,EAAEsL,GAAGs5E,GAAGjnF,EAAEoE,EAAEgrC,MAAM/sC,EAAEsL,GAAG,SAASk+E,GAAGznF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAGmI,EAAEA,EAAEslE,OAAO,IAAI/oC,EAAE5+B,EAAE2lE,IAA8B,OAA1Byd,GAAGpjF,EAAE9F,GAAGyT,EAAEutC,GAAG92C,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE1kC,GAAM,OAAOkK,GAAIo/E,IAA0ExjF,EAAE8nB,OAAO,EAAE8jE,GAAGxnF,EAAEpE,EAAE2N,EAAEzT,GAAU8F,EAAEovC,QAAhGpvC,EAAE8jF,YAAY1/E,EAAE0/E,YAAY9jF,EAAE8nB,QAAQ,IAAI1jB,EAAEm/E,QAAQrpF,EAAEoI,GAAG8B,EAAEpE,EAAE9F,IACxW,SAAS4xF,GAAG1nF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAG,GAAG,OAAOx6B,EAAE,CAAC,IAAIyF,EAAExH,EAAEzD,KAAK,MAAG,oBAAoBiL,GAAIkiF,GAAGliF,SAAI,IAASA,EAAEi8D,cAAc,OAAOzjE,EAAE8B,cAAS,IAAS9B,EAAEyjE,eAAsD1hE,EAAEyiF,GAAGxkF,EAAEzD,KAAK,KAAK+O,EAAE3N,EAAEA,EAAEoe,KAAKwgB,IAAK+mC,IAAI3lE,EAAE2lE,IAAIvhE,EAAEgrE,OAAOpvE,EAASA,EAAEovC,MAAMhrC,IAAvGpE,EAAEu7B,IAAI,GAAGv7B,EAAEpB,KAAKiL,EAAEmiF,GAAG5nF,EAAEpE,EAAE6J,EAAE8D,EAAEzT,EAAE0kC,IAAoF,OAAV/0B,EAAEzF,EAAEgrC,MAAS,KAAKl1C,EAAE0kC,KAAK1kC,EAAE2P,EAAE09E,eAA0BllF,EAAE,QAAdA,EAAEA,EAAE8B,SAAmB9B,EAAEm5E,IAAKthF,EAAEyT,IAAIvJ,EAAEuhE,MAAM3lE,EAAE2lE,KAAYrjE,GAAG8B,EAAEpE,EAAE4+B,IAAG5+B,EAAE8nB,OAAO,GAAE1jB,EAAEsiF,GAAG78E,EAAE8D,IAAKg4D,IAAI3lE,EAAE2lE,IAAIvhE,EAAEgrE,OAAOpvE,EAASA,EAAEovC,MAAMhrC,GAClb,SAAS4nF,GAAG5nF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAG,GAAG,OAAOx6B,GAAGo3E,GAAGp3E,EAAEmjF,cAAc55E,IAAIvJ,EAAEuhE,MAAM3lE,EAAE2lE,IAAI,IAAG6d,IAAG,EAAG,KAAK5kD,EAAE1kC,GAAqC,OAAO8F,EAAEujF,MAAMn/E,EAAEm/E,MAAMjhF,GAAG8B,EAAEpE,EAAE4+B,GAAhE,KAAa,MAARx6B,EAAE0jB,SAAe07D,IAAG,GAA0C,OAAOyI,GAAG7nF,EAAEpE,EAAEqC,EAAEsL,EAAEixB,GACnL,SAASstD,GAAG9nF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE3N,EAAE+nF,aAAa7tF,EAAEyT,EAAEqX,SAAS4Z,EAAE,OAAOx6B,EAAEA,EAAEirE,cAAc,KAAK,GAAG,WAAW1hE,EAAEyQ,MAAM,kCAAkCzQ,EAAEyQ,KAAK,GAAG,KAAY,EAAPpe,EAAEoe,MAAQpe,EAAEqvE,cAAc,CAAC8c,UAAU,GAAGC,GAAGpsF,EAAEqC,OAAQ,IAAG,KAAO,WAAFA,GAA8E,OAAO+B,EAAE,OAAOw6B,EAAEA,EAAEutD,UAAU9pF,EAAEA,EAAErC,EAAEujF,MAAMvjF,EAAEmjF,WAAW,WAAWnjF,EAAEqvE,cAAc,CAAC8c,UAAU/nF,GAAGgoF,GAAGpsF,EAAEoE,GAAG,KAAxKpE,EAAEqvE,cAAc,CAAC8c,UAAU,GAAGC,GAAGpsF,EAAE,OAAO4+B,EAAEA,EAAEutD,UAAU9pF,QAA0H,OAAOu8B,GAAGjxB,EAAEixB,EAAEutD,UAAU9pF,EAAErC,EAAEqvE,cAAc,MAAM1hE,EAAEtL,EAAE+pF,GAAGpsF,EAAE2N,GAAe,OAAZi+E,GAAGxnF,EAAEpE,EAAE9F,EAAEmI,GAAUrC,EAAEovC,MAC1e,SAASi9C,GAAGjoF,EAAEpE,GAAG,IAAIqC,EAAErC,EAAE2lE,KAAO,OAAOvhE,GAAG,OAAO/B,GAAG,OAAO+B,GAAGA,EAAEuhE,MAAMtjE,KAAErC,EAAE8nB,OAAO,KAAI,SAASmkE,GAAG7nF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,IAAI0kC,EAAEohD,GAAG39E,GAAGs9E,GAAG3rD,GAAEvP,QAA4C,OAApCma,EAAEghD,GAAG5/E,EAAE4+B,GAAGwkD,GAAGpjF,EAAE9F,GAAGmI,EAAE64C,GAAG92C,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE1kC,GAAM,OAAOkK,GAAIo/E,IAA0ExjF,EAAE8nB,OAAO,EAAE8jE,GAAGxnF,EAAEpE,EAAEqC,EAAEnI,GAAU8F,EAAEovC,QAAhGpvC,EAAE8jF,YAAY1/E,EAAE0/E,YAAY9jF,EAAE8nB,QAAQ,IAAI1jB,EAAEm/E,QAAQrpF,EAAEoI,GAAG8B,EAAEpE,EAAE9F,IAC9P,SAASoyF,GAAGloF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,GAAG8lF,GAAG39E,GAAG,CAAC,IAAIu8B,GAAE,EAAG0hD,GAAGtgF,QAAQ4+B,GAAE,EAAW,GAARwkD,GAAGpjF,EAAE9F,GAAM,OAAO8F,EAAEivE,UAAU,OAAO7qE,IAAIA,EAAE+qE,UAAU,KAAKnvE,EAAEmvE,UAAU,KAAKnvE,EAAE8nB,OAAO,GAAGy9D,GAAGvlF,EAAEqC,EAAEsL,GAAGi4E,GAAG5lF,EAAEqC,EAAEsL,EAAEzT,GAAGyT,GAAE,OAAQ,GAAG,OAAOvJ,EAAE,CAAC,IAAIyF,EAAE7J,EAAEivE,UAAU7xD,EAAEpd,EAAEunF,cAAc19E,EAAEu7D,MAAMhoD,EAAE,IAAIjS,EAAEtB,EAAE4gB,QAAQtgB,EAAE9H,EAAEmjF,YAAY,kBAAkBr7E,GAAG,OAAOA,EAAEA,EAAEs5E,GAAGt5E,GAAyBA,EAAEy1E,GAAG5/E,EAA1BmK,EAAE61E,GAAG39E,GAAGs9E,GAAG3rD,GAAEvP,SAAmB,IAAIxkB,EAAEoC,EAAEwjF,yBAAyB1mE,EAAE,oBAAoBlf,GAAG,oBAAoB4J,EAAEi8E,wBAAwB3mE,GAAG,oBAAoBtV,EAAE87E,kCACpd,oBAAoB97E,EAAE67E,4BAA4BtoE,IAAIzP,GAAGxC,IAAIhB,IAAIs7E,GAAGzlF,EAAE6J,EAAE8D,EAAExD,GAAGy5E,IAAG,EAAG,IAAI32E,EAAEjN,EAAEqvE,cAAcxlE,EAAEyf,MAAMrc,EAAE03E,GAAG3kF,EAAE2N,EAAE9D,EAAE3P,GAAGiR,EAAEnL,EAAEqvE,cAAcjyD,IAAIzP,GAAGV,IAAI9B,GAAGgP,GAAEsK,SAASm/D,IAAI,oBAAoB3jF,IAAI8kF,GAAG/kF,EAAEqC,EAAEpC,EAAE0N,GAAGxC,EAAEnL,EAAEqvE,gBAAgBjyD,EAAEwmE,IAAIyB,GAAGrlF,EAAEqC,EAAE+a,EAAEzP,EAAEV,EAAE9B,EAAEhB,KAAKgV,GAAG,oBAAoBtV,EAAEk8E,2BAA2B,oBAAoBl8E,EAAEm8E,qBAAqB,oBAAoBn8E,EAAEm8E,oBAAoBn8E,EAAEm8E,qBAAqB,oBAAoBn8E,EAAEk8E,2BAA2Bl8E,EAAEk8E,6BAA6B,oBACzel8E,EAAEo8E,oBAAoBjmF,EAAE8nB,OAAO,KAAK,oBAAoBje,EAAEo8E,oBAAoBjmF,EAAE8nB,OAAO,GAAG9nB,EAAEunF,cAAc55E,EAAE3N,EAAEqvE,cAAclkE,GAAGtB,EAAEu7D,MAAMz3D,EAAE9D,EAAEyf,MAAMne,EAAEtB,EAAE4gB,QAAQtgB,EAAEwD,EAAEyP,IAAI,oBAAoBvT,EAAEo8E,oBAAoBjmF,EAAE8nB,OAAO,GAAGna,GAAE,OAAQ,CAAC9D,EAAE7J,EAAEivE,UAAUmV,GAAGhgF,EAAEpE,GAAGod,EAAEpd,EAAEunF,cAAcp9E,EAAEnK,EAAEpB,OAAOoB,EAAE4mF,YAAYxpE,EAAEulE,GAAG3iF,EAAEpB,KAAKwe,GAAGvT,EAAEu7D,MAAMj7D,EAAEgV,EAAEnf,EAAE+nF,aAAa96E,EAAEpD,EAAE4gB,QAAwB,kBAAhBtf,EAAE9I,EAAEmjF,cAAiC,OAAOr6E,EAAEA,EAAEs4E,GAAGt4E,GAAyBA,EAAEy0E,GAAG5/E,EAA1BmL,EAAE60E,GAAG39E,GAAGs9E,GAAG3rD,GAAEvP,SAAmB,IAAIpF,EAAEhd,EAAEwjF,0BAA0B5lF,EAAE,oBAAoBof,GACnf,oBAAoBxV,EAAEi8E,0BAA0B,oBAAoBj8E,EAAE87E,kCAAkC,oBAAoB97E,EAAE67E,4BAA4BtoE,IAAI+B,GAAGlS,IAAI9B,IAAIs6E,GAAGzlF,EAAE6J,EAAE8D,EAAExC,GAAGy4E,IAAG,EAAG32E,EAAEjN,EAAEqvE,cAAcxlE,EAAEyf,MAAMrc,EAAE03E,GAAG3kF,EAAE2N,EAAE9D,EAAE3P,GAAG,IAAImK,EAAErE,EAAEqvE,cAAcjyD,IAAI+B,GAAGlS,IAAI5I,GAAG8V,GAAEsK,SAASm/D,IAAI,oBAAoBvkE,IAAI0lE,GAAG/kF,EAAEqC,EAAEgd,EAAE1R,GAAGtJ,EAAErE,EAAEqvE,gBAAgBllE,EAAEy5E,IAAIyB,GAAGrlF,EAAEqC,EAAE8H,EAAEwD,EAAEV,EAAE5I,EAAE8G,KAAKlL,GAAG,oBAAoB4J,EAAE0iF,4BAA4B,oBAAoB1iF,EAAE2iF,sBAAsB,oBAAoB3iF,EAAE2iF,qBAAqB3iF,EAAE2iF,oBAAoB7+E,EAC1gBtJ,EAAE8G,GAAG,oBAAoBtB,EAAE0iF,4BAA4B1iF,EAAE0iF,2BAA2B5+E,EAAEtJ,EAAE8G,IAAI,oBAAoBtB,EAAE4iF,qBAAqBzsF,EAAE8nB,OAAO,GAAG,oBAAoBje,EAAEi8E,0BAA0B9lF,EAAE8nB,OAAO,OAAO,oBAAoBje,EAAE4iF,oBAAoBrvE,IAAIhZ,EAAEmjF,eAAet6E,IAAI7I,EAAEirE,gBAAgBrvE,EAAE8nB,OAAO,GAAG,oBAAoBje,EAAEi8E,yBAAyB1oE,IAAIhZ,EAAEmjF,eAAet6E,IAAI7I,EAAEirE,gBAAgBrvE,EAAE8nB,OAAO,KAAK9nB,EAAEunF,cAAc55E,EAAE3N,EAAEqvE,cAAchrE,GAAGwF,EAAEu7D,MAAMz3D,EAAE9D,EAAEyf,MAAMjlB,EAAEwF,EAAE4gB,QAAQtf,EAAEwC,EAAExD,IAAI,oBAAoBN,EAAE4iF,oBAC7frvE,IAAIhZ,EAAEmjF,eAAet6E,IAAI7I,EAAEirE,gBAAgBrvE,EAAE8nB,OAAO,GAAG,oBAAoBje,EAAEi8E,yBAAyB1oE,IAAIhZ,EAAEmjF,eAAet6E,IAAI7I,EAAEirE,gBAAgBrvE,EAAE8nB,OAAO,KAAKna,GAAE,GAAI,OAAO++E,GAAGtoF,EAAEpE,EAAEqC,EAAEsL,EAAEixB,EAAE1kC,GACzL,SAASwyF,GAAGtoF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAGytD,GAAGjoF,EAAEpE,GAAG,IAAI6J,EAAE,KAAa,GAAR7J,EAAE8nB,OAAU,IAAIna,IAAI9D,EAAE,OAAO3P,GAAGsmF,GAAGxgF,EAAEqC,GAAE,GAAIC,GAAG8B,EAAEpE,EAAE4+B,GAAGjxB,EAAE3N,EAAEivE,UAAU0c,GAAGlnE,QAAQzkB,EAAE,IAAIod,EAAEvT,GAAG,oBAAoBxH,EAAEsqF,yBAAyB,KAAKh/E,EAAEg6D,SAAwI,OAA/H3nE,EAAE8nB,OAAO,EAAE,OAAO1jB,GAAGyF,GAAG7J,EAAEovC,MAAM63C,GAAGjnF,EAAEoE,EAAEgrC,MAAM,KAAKxQ,GAAG5+B,EAAEovC,MAAM63C,GAAGjnF,EAAE,KAAKod,EAAEwhB,IAAIgtD,GAAGxnF,EAAEpE,EAAEod,EAAEwhB,GAAG5+B,EAAEqvE,cAAc1hE,EAAE2b,MAAMpvB,GAAGsmF,GAAGxgF,EAAEqC,GAAE,GAAWrC,EAAEovC,MAAM,SAASw9C,GAAGxoF,GAAG,IAAIpE,EAAEoE,EAAE6qE,UAAUjvE,EAAE6sF,eAAe1M,GAAG/7E,EAAEpE,EAAE6sF,eAAe7sF,EAAE6sF,iBAAiB7sF,EAAEyqB,SAASzqB,EAAEyqB,SAAS01D,GAAG/7E,EAAEpE,EAAEyqB,SAAQ,GAAI7b,GAAGxK,EAAEpE,EAAEmwE,eAC7d,IAS0V2c,GAAMC,GAAGC,GAT/VC,GAAG,CAAC3d,WAAW,KAAK4d,UAAU,GAClC,SAASC,GAAG/oF,EAAEpE,EAAEqC,GAAG,IAAsCwH,EAAlC8D,EAAE3N,EAAE+nF,aAAa7tF,EAAE+9D,GAAExzC,QAAQma,GAAE,EAA6M,OAAvM/0B,EAAE,KAAa,GAAR7J,EAAE8nB,UAAaje,GAAE,OAAOzF,GAAG,OAAOA,EAAEirE,gBAAiB,KAAO,EAAFn1E,IAAM2P,GAAG+0B,GAAE,EAAG5+B,EAAE8nB,QAAQ,IAAI,OAAO1jB,GAAG,OAAOA,EAAEirE,oBAAe,IAAS1hE,EAAEy/E,WAAU,IAAKz/E,EAAE0/E,6BAA6BnzF,GAAG,GAAGy+B,GAAEs/B,GAAI,EAAF/9D,GAAQ,OAAOkK,QAAG,IAASuJ,EAAEy/E,UAAUnxE,GAAGjc,GAAGoE,EAAEuJ,EAAEqX,SAAS9qB,EAAEyT,EAAEy/E,SAAYxuD,GAASx6B,EAAEkpF,GAAGttF,EAAEoE,EAAElK,EAAEmI,GAAGrC,EAAEovC,MAAMigC,cAAc,CAAC8c,UAAU9pF,GAAGrC,EAAEqvE,cAAc4d,GAAG7oF,GAAK,kBAAkBuJ,EAAE4/E,2BAAiCnpF,EAAEkpF,GAAGttF,EAAEoE,EAAElK,EAAEmI,GAAGrC,EAAEovC,MAAMigC,cAAc,CAAC8c,UAAU9pF,GAC/frC,EAAEqvE,cAAc4d,GAAGjtF,EAAEujF,MAAM,SAASn/E,KAAE/B,EAAEmrF,GAAG,CAACpvE,KAAK,UAAU4G,SAAS5gB,GAAGpE,EAAEoe,KAAK/b,EAAE,OAAQ+sE,OAAOpvE,EAASA,EAAEovC,MAAM/sC,KAAY+B,EAAEirE,cAAkBzwC,GAASjxB,EAAE8/E,GAAGrpF,EAAEpE,EAAE2N,EAAEqX,SAASrX,EAAEy/E,SAAS/qF,GAAGu8B,EAAE5+B,EAAEovC,MAAMl1C,EAAEkK,EAAEgrC,MAAMigC,cAAczwC,EAAEywC,cAAc,OAAOn1E,EAAE,CAACiyF,UAAU9pF,GAAG,CAAC8pF,UAAUjyF,EAAEiyF,UAAU9pF,GAAGu8B,EAAEukD,WAAW/+E,EAAE++E,YAAY9gF,EAAErC,EAAEqvE,cAAc4d,GAAGt/E,IAAEtL,EAAEizB,GAAGlxB,EAAEpE,EAAE2N,EAAEqX,SAAS3iB,GAAGrC,EAAEqvE,cAAc,KAAYhtE,IAClQ,SAASirF,GAAGlpF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEkK,EAAEga,KAAKwgB,EAAEx6B,EAAEgrC,MAAuK,OAAjKpvC,EAAE,CAACoe,KAAK,SAAS4G,SAAShlB,GAAG,KAAO,EAAF9F,IAAM,OAAO0kC,GAAGA,EAAEukD,WAAW,EAAEvkD,EAAEmpD,aAAa/nF,GAAG4+B,EAAE4uD,GAAGxtF,EAAE9F,EAAE,EAAE,MAAMmI,EAAE2kF,GAAG3kF,EAAEnI,EAAEyT,EAAE,MAAMixB,EAAEwwC,OAAOhrE,EAAE/B,EAAE+sE,OAAOhrE,EAAEw6B,EAAE2wC,QAAQltE,EAAE+B,EAAEgrC,MAAMxQ,EAASv8B,EACrV,SAASizB,GAAGlxB,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEkK,EAAEgrC,MAAiL,OAA3KhrC,EAAElK,EAAEq1E,QAAQltE,EAAEqkF,GAAGxsF,EAAE,CAACkkB,KAAK,UAAU4G,SAAS3iB,IAAI,KAAY,EAAPrC,EAAEoe,QAAU/b,EAAEkhF,MAAM51E,GAAGtL,EAAE+sE,OAAOpvE,EAAEqC,EAAEktE,QAAQ,KAAK,OAAOnrE,IAAIA,EAAEoiF,WAAW,KAAKpiF,EAAE0jB,MAAM,EAAE9nB,EAAEymF,YAAYzmF,EAAEumF,WAAWniF,GAAUpE,EAAEovC,MAAM/sC,EAC7N,SAASorF,GAAGrpF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,IAAI0kC,EAAE5+B,EAAEoe,KAAKvU,EAAEzF,EAAEgrC,MAAMhrC,EAAEyF,EAAE0lE,QAAQ,IAAInyD,EAAE,CAACgB,KAAK,SAAS4G,SAAS3iB,GAAoS,OAAjS,KAAO,EAAFu8B,IAAM5+B,EAAEovC,QAAQvlC,IAAGxH,EAAErC,EAAEovC,OAAQ+zC,WAAW,EAAE9gF,EAAE0lF,aAAa3qE,EAAiB,QAAfvT,EAAExH,EAAEkkF,aAAqBvmF,EAAEymF,YAAYpkF,EAAEokF,YAAYzmF,EAAEumF,WAAW18E,EAAEA,EAAE28E,WAAW,MAAMxmF,EAAEymF,YAAYzmF,EAAEumF,WAAW,MAAMlkF,EAAEqkF,GAAG78E,EAAEuT,GAAG,OAAOhZ,EAAEuJ,EAAE+4E,GAAGtiF,EAAEuJ,IAAIA,EAAEq5E,GAAGr5E,EAAEixB,EAAE1kC,EAAE,OAAQ4tB,OAAO,EAAGna,EAAEyhE,OAAOpvE,EAAEqC,EAAE+sE,OAAOpvE,EAAEqC,EAAEktE,QAAQ5hE,EAAE3N,EAAEovC,MAAM/sC,EAASsL,EAAE,SAAS+/E,GAAGtpF,EAAEpE,GAAGoE,EAAEm/E,OAAOvjF,EAAE,IAAIqC,EAAE+B,EAAE+qE,UAAU,OAAO9sE,IAAIA,EAAEkhF,OAAOvjF,GAAGkjF,GAAG9+E,EAAEgrE,OAAOpvE,GACtd,SAAS2tF,GAAGvpF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAG,IAAI/0B,EAAEzF,EAAEirE,cAAc,OAAOxlE,EAAEzF,EAAEirE,cAAc,CAACue,YAAY5tF,EAAE6tF,UAAU,KAAKC,mBAAmB,EAAEtvD,KAAK7wB,EAAEgxC,KAAKt8C,EAAE0rF,SAAS7zF,EAAEqsF,WAAW3nD,IAAI/0B,EAAE+jF,YAAY5tF,EAAE6J,EAAEgkF,UAAU,KAAKhkF,EAAEikF,mBAAmB,EAAEjkF,EAAE20B,KAAK7wB,EAAE9D,EAAE80C,KAAKt8C,EAAEwH,EAAEkkF,SAAS7zF,EAAE2P,EAAE08E,WAAW3nD,GACvQ,SAASovD,GAAG5pF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE3N,EAAE+nF,aAAa7tF,EAAEyT,EAAE65E,YAAY5oD,EAAEjxB,EAAEgxC,KAAsC,GAAjCitC,GAAGxnF,EAAEpE,EAAE2N,EAAEqX,SAAS3iB,GAAkB,KAAO,GAAtBsL,EAAEsqD,GAAExzC,UAAqB9W,EAAI,EAAFA,EAAI,EAAE3N,EAAE8nB,OAAO,OAAO,CAAC,GAAG,OAAO1jB,GAAG,KAAa,GAARA,EAAE0jB,OAAU1jB,EAAE,IAAIA,EAAEpE,EAAEovC,MAAM,OAAOhrC,GAAG,CAAC,GAAG,KAAKA,EAAEm3B,IAAI,OAAOn3B,EAAEirE,eAAeqe,GAAGtpF,EAAE/B,QAAQ,GAAG,KAAK+B,EAAEm3B,IAAImyD,GAAGtpF,EAAE/B,QAAQ,GAAG,OAAO+B,EAAEgrC,MAAM,CAAChrC,EAAEgrC,MAAMggC,OAAOhrE,EAAEA,EAAEA,EAAEgrC,MAAM,SAAS,GAAGhrC,IAAIpE,EAAE,MAAMoE,EAAE,KAAK,OAAOA,EAAEmrE,SAAS,CAAC,GAAG,OAAOnrE,EAAEgrE,QAAQhrE,EAAEgrE,SAASpvE,EAAE,MAAMoE,EAAEA,EAAEA,EAAEgrE,OAAOhrE,EAAEmrE,QAAQH,OAAOhrE,EAAEgrE,OAAOhrE,EAAEA,EAAEmrE,QAAQ5hE,GAAG,EAAS,GAAPgrB,GAAEs/B,GAAEtqD,GAAM,KAAY,EAAP3N,EAAEoe,MAAQpe,EAAEqvE,cACze,UAAU,OAAOn1E,GAAG,IAAK,WAAqB,IAAVmI,EAAErC,EAAEovC,MAAUl1C,EAAE,KAAK,OAAOmI,GAAiB,QAAd+B,EAAE/B,EAAE8sE,YAAoB,OAAOmY,GAAGljF,KAAKlK,EAAEmI,GAAGA,EAAEA,EAAEktE,QAAY,QAAJltE,EAAEnI,IAAYA,EAAE8F,EAAEovC,MAAMpvC,EAAEovC,MAAM,OAAOl1C,EAAEmI,EAAEktE,QAAQltE,EAAEktE,QAAQ,MAAMoe,GAAG3tF,GAAE,EAAG9F,EAAEmI,EAAEu8B,EAAE5+B,EAAEumF,YAAY,MAAM,IAAK,YAA6B,IAAjBlkF,EAAE,KAAKnI,EAAE8F,EAAEovC,MAAUpvC,EAAEovC,MAAM,KAAK,OAAOl1C,GAAG,CAAe,GAAG,QAAjBkK,EAAElK,EAAEi1E,YAAuB,OAAOmY,GAAGljF,GAAG,CAACpE,EAAEovC,MAAMl1C,EAAE,MAAMkK,EAAElK,EAAEq1E,QAAQr1E,EAAEq1E,QAAQltE,EAAEA,EAAEnI,EAAEA,EAAEkK,EAAEupF,GAAG3tF,GAAE,EAAGqC,EAAE,KAAKu8B,EAAE5+B,EAAEumF,YAAY,MAAM,IAAK,WAAWoH,GAAG3tF,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEumF,YAAY,MAAM,QAAQvmF,EAAEqvE,cAAc,KAAK,OAAOrvE,EAAEovC,MAC/f,SAAS9sC,GAAG8B,EAAEpE,EAAEqC,GAAyD,GAAtD,OAAO+B,IAAIpE,EAAEqjF,aAAaj/E,EAAEi/E,cAAcuB,IAAI5kF,EAAEujF,MAAS,KAAKlhF,EAAErC,EAAEmjF,YAAY,CAAC,GAAG,OAAO/+E,GAAGpE,EAAEovC,QAAQhrC,EAAEgrC,MAAM,MAAMv1C,MAAMyK,EAAE,MAAM,GAAG,OAAOtE,EAAEovC,MAAM,CAA4C,IAAjC/sC,EAAEqkF,GAAZtiF,EAAEpE,EAAEovC,MAAahrC,EAAE2jF,cAAc/nF,EAAEovC,MAAM/sC,EAAMA,EAAE+sE,OAAOpvE,EAAE,OAAOoE,EAAEmrE,SAASnrE,EAAEA,EAAEmrE,SAAQltE,EAAEA,EAAEktE,QAAQmX,GAAGtiF,EAAEA,EAAE2jF,eAAgB3Y,OAAOpvE,EAAEqC,EAAEktE,QAAQ,KAAK,OAAOvvE,EAAEovC,MAAM,OAAO,KAK5P,SAAS6+C,GAAG7pF,EAAEpE,GAAG,IAAI2nF,GAAG,OAAOvjF,EAAE2pF,UAAU,IAAK,SAAS/tF,EAAEoE,EAAEu6C,KAAK,IAAI,IAAIt8C,EAAE,KAAK,OAAOrC,GAAG,OAAOA,EAAEmvE,YAAY9sE,EAAErC,GAAGA,EAAEA,EAAEuvE,QAAQ,OAAOltE,EAAE+B,EAAEu6C,KAAK,KAAKt8C,EAAEktE,QAAQ,KAAK,MAAM,IAAK,YAAYltE,EAAE+B,EAAEu6C,KAAK,IAAI,IAAIhxC,EAAE,KAAK,OAAOtL,GAAG,OAAOA,EAAE8sE,YAAYxhE,EAAEtL,GAAGA,EAAEA,EAAEktE,QAAQ,OAAO5hE,EAAE3N,GAAG,OAAOoE,EAAEu6C,KAAKv6C,EAAEu6C,KAAK,KAAKv6C,EAAEu6C,KAAK4wB,QAAQ,KAAK5hE,EAAE4hE,QAAQ,MAC7Z,SAAS2e,GAAG9pF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE3N,EAAE+nF,aAAa,OAAO/nF,EAAEu7B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAQyC,KAAK,GAAG,OAAOykD,GAAGhgF,EAAEpB,OAAOshF,KAAK,KAR1C,KAAK,EAAsL,OAApLzjC,KAAKzB,GAAE7gC,IAAG6gC,GAAEhnB,IAAGo0D,MAAKz6E,EAAE3N,EAAEivE,WAAY4d,iBAAiBl/E,EAAE8c,QAAQ9c,EAAEk/E,eAAel/E,EAAEk/E,eAAe,MAAS,OAAOzoF,GAAG,OAAOA,EAAEgrC,QAAM64C,GAAGjoF,GAAGA,EAAE8nB,OAAO,EAAEna,EAAEuiE,UAAUlwE,EAAE8nB,OAAO,MAAkB,KAAK,KAAK,EAAE60B,GAAG38C,GAAG,IAAI9F,EAAEqU,GAAGF,GAAGoW,SAAkB,GAATpiB,EAAErC,EAAEpB,KAAQ,OAAOwF,GAAG,MAAMpE,EAAEivE,UAAU8d,GAAG3oF,EAAEpE,EAAEqC,EAAEsL,GAAKvJ,EAAEuhE,MAAM3lE,EAAE2lE,MAAM3lE,EAAE8nB,OAAO,SAAS,CAAC,IAAIna,EAAE,CAAC,GAAG,OAC7f3N,EAAEivE,UAAU,MAAMp1E,MAAMyK,EAAE,MAAM,OAAO,KAAsB,GAAjBF,EAAEmK,GAAGT,GAAG2W,SAAYwjE,GAAGjoF,GAAG,CAAC2N,EAAE3N,EAAEivE,UAAU5sE,EAAErC,EAAEpB,KAAK,IAAIggC,EAAE5+B,EAAEunF,cAA8B,OAAhB55E,EAAEyxE,IAAIp/E,EAAE2N,EAAE0xE,IAAIzgD,EAASv8B,GAAG,IAAK,SAAS8yB,GAAE,SAASxnB,GAAGwnB,GAAE,QAAQxnB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQwnB,GAAE,OAAOxnB,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIvJ,EAAE,EAAEA,EAAE+4E,GAAGtkF,OAAOuL,IAAI+wB,GAAEgoD,GAAG/4E,GAAGuJ,GAAG,MAAM,IAAK,SAASwnB,GAAE,QAAQxnB,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOwnB,GAAE,QAAQxnB,GAAGwnB,GAAE,OAAOxnB,GAAG,MAAM,IAAK,UAAUwnB,GAAE,SAASxnB,GAAG,MAAM,IAAK,QAAQ+/C,GAAG//C,EAAEixB,GAAGzJ,GAAE,UAAUxnB,GAAG,MAAM,IAAK,SAASA,EAAEy8D,cAC5f,CAAC+jB,cAAcvvD,EAAEwvD,UAAUj5D,GAAE,UAAUxnB,GAAG,MAAM,IAAK,WAAWgrD,GAAGhrD,EAAEixB,GAAGzJ,GAAE,UAAUxnB,GAAkB,IAAI,IAAI9D,KAAvBivD,GAAGz2D,EAAEu8B,GAAGx6B,EAAE,KAAkBw6B,EAAEA,EAAErB,eAAe1zB,KAAK3P,EAAE0kC,EAAE/0B,GAAG,aAAaA,EAAE,kBAAkB3P,EAAEyT,EAAEk9D,cAAc3wE,IAAIkK,EAAE,CAAC,WAAWlK,IAAI,kBAAkBA,GAAGyT,EAAEk9D,cAAc,GAAG3wE,IAAIkK,EAAE,CAAC,WAAW,GAAGlK,IAAIi4D,EAAG50B,eAAe1zB,IAAI,MAAM3P,GAAG,aAAa2P,GAAGsrB,GAAE,SAASxnB,IAAI,OAAOtL,GAAG,IAAK,QAAQswD,EAAGhlD,GAAG8f,GAAG9f,EAAEixB,GAAE,GAAI,MAAM,IAAK,WAAW+zB,EAAGhlD,GAAGosB,GAAGpsB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBixB,EAAEyvD,UAAU1gF,EAAE2gF,QACtfjQ,IAAI1wE,EAAEvJ,EAAEpE,EAAE8jF,YAAYn2E,EAAE,OAAOA,IAAI3N,EAAE8nB,OAAO,OAAO,CAAiZ,OAAhZje,EAAE,IAAI3P,EAAEqxE,SAASrxE,EAAEA,EAAEswE,cAAcpmE,IAAIkpD,KAAUlpD,EAAEy0D,GAAGx2D,IAAI+B,IAAIkpD,GAAQ,WAAWjrD,IAAG+B,EAAEyF,EAAE09D,cAAc,QAASwD,UAAU,qBAAuB3mE,EAAEA,EAAE8mE,YAAY9mE,EAAE6mE,aAAa,kBAAkBt9D,EAAEkhE,GAAGzqE,EAAEyF,EAAE09D,cAAcllE,EAAE,CAACwsE,GAAGlhE,EAAEkhE,MAAMzqE,EAAEyF,EAAE09D,cAAcllE,GAAG,WAAWA,IAAIwH,EAAEzF,EAAEuJ,EAAEygF,SAASvkF,EAAEukF,UAAS,EAAGzgF,EAAExU,OAAO0Q,EAAE1Q,KAAKwU,EAAExU,QAAQiL,EAAEyF,EAAE0kF,gBAAgBnqF,EAAE/B,GAAG+B,EAAEg7E,IAAIp/E,EAAEoE,EAAEi7E,IAAI1xE,EAAEm/E,GAAG1oF,EAAEpE,GAASA,EAAEivE,UAAU7qE,EAAEyF,EAAE8pD,GAAGtxD,EAAEsL,GAAUtL,GAAG,IAAK,SAAS8yB,GAAE,SAAS/wB,GAAG+wB,GAAE,QAAQ/wB,GACpflK,EAAEyT,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQwnB,GAAE,OAAO/wB,GAAGlK,EAAEyT,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIzT,EAAE,EAAEA,EAAEijF,GAAGtkF,OAAOqB,IAAIi7B,GAAEgoD,GAAGjjF,GAAGkK,GAAGlK,EAAEyT,EAAE,MAAM,IAAK,SAASwnB,GAAE,QAAQ/wB,GAAGlK,EAAEyT,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOwnB,GAAE,QAAQ/wB,GAAG+wB,GAAE,OAAO/wB,GAAGlK,EAAEyT,EAAE,MAAM,IAAK,UAAUwnB,GAAE,SAAS/wB,GAAGlK,EAAEyT,EAAE,MAAM,IAAK,QAAQ+/C,GAAGtpD,EAAEuJ,GAAGzT,EAAE28D,EAAGzyD,EAAEuJ,GAAGwnB,GAAE,UAAU/wB,GAAG,MAAM,IAAK,SAASlK,EAAEo0D,GAAGlqD,EAAEuJ,GAAG,MAAM,IAAK,SAASvJ,EAAEgmE,cAAc,CAAC+jB,cAAcxgF,EAAEygF,UAAUl0F,EAAEgG,EAAE,GAAGyN,EAAE,CAAC7V,WAAM,IAASq9B,GAAE,UAAU/wB,GAAG,MAAM,IAAK,WAAWu0D,GAAGv0D,EAAEuJ,GAAGzT,EACpfu+D,GAAGr0D,EAAEuJ,GAAGwnB,GAAE,UAAU/wB,GAAG,MAAM,QAAQlK,EAAEyT,EAAEmrD,GAAGz2D,EAAEnI,GAAG,IAAIkjB,EAAEljB,EAAE,IAAI0kC,KAAKxhB,EAAE,GAAGA,EAAEmgB,eAAeqB,GAAG,CAAC,IAAIzzB,EAAEiS,EAAEwhB,GAAG,UAAUA,EAAE0xB,GAAGlsD,EAAE+G,GAAG,4BAA4ByzB,EAAuB,OAApBzzB,EAAEA,EAAEA,EAAEwzE,YAAO,IAAgBhxB,GAAGvpD,EAAE+G,GAAI,aAAayzB,EAAE,kBAAkBzzB,GAAG,aAAa9I,GAAG,KAAK8I,IAAI+sD,GAAG9zD,EAAE+G,GAAG,kBAAkBA,GAAG+sD,GAAG9zD,EAAE,GAAG+G,GAAG,mCAAmCyzB,GAAG,6BAA6BA,GAAG,cAAcA,IAAIuzB,EAAG50B,eAAeqB,GAAG,MAAMzzB,GAAG,aAAayzB,GAAGzJ,GAAE,SAAS/wB,GAAG,MAAM+G,GAAG2mD,EAAG1tD,EAAEw6B,EAAEzzB,EAAEtB,IAAI,OAAOxH,GAAG,IAAK,QAAQswD,EAAGvuD,GAAGqpB,GAAGrpB,EAAEuJ,GAAE,GACnf,MAAM,IAAK,WAAWglD,EAAGvuD,GAAG21B,GAAG31B,GAAG,MAAM,IAAK,SAAS,MAAMuJ,EAAE7V,OAAOsM,EAAEglE,aAAa,QAAQ,GAAGrP,EAAGpsD,EAAE7V,QAAQ,MAAM,IAAK,SAASsM,EAAEgqF,WAAWzgF,EAAEygF,SAAmB,OAAVxvD,EAAEjxB,EAAE7V,OAAcugE,GAAGj0D,IAAIuJ,EAAEygF,SAASxvD,GAAE,GAAI,MAAMjxB,EAAEw8D,cAAc9R,GAAGj0D,IAAIuJ,EAAEygF,SAASzgF,EAAEw8D,cAAa,GAAI,MAAM,QAAQ,oBAAoBjwE,EAAEm0F,UAAUjqF,EAAEkqF,QAAQjQ,IAAIG,GAAGn8E,EAAEsL,KAAK3N,EAAE8nB,OAAO,GAAG,OAAO9nB,EAAE2lE,MAAM3lE,EAAE8nB,OAAO,KAAK,OAAO,KAAK,KAAK,EAAE,GAAG1jB,GAAG,MAAMpE,EAAEivE,UAAU+d,GAAG5oF,EAAEpE,EAAEoE,EAAEmjF,cAAc55E,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAO3N,EAAEivE,UAAU,MAAMp1E,MAAMyK,EAAE,MAC/ejC,EAAEkM,GAAGF,GAAGoW,SAASlW,GAAGT,GAAG2W,SAASwjE,GAAGjoF,IAAI2N,EAAE3N,EAAEivE,UAAU5sE,EAAErC,EAAEunF,cAAc55E,EAAEyxE,IAAIp/E,EAAE2N,EAAE69D,YAAYnpE,IAAIrC,EAAE8nB,OAAO,MAAKna,GAAG,IAAItL,EAAEkpE,SAASlpE,EAAEA,EAAEmoE,eAAegkB,eAAe7gF,IAAKyxE,IAAIp/E,EAAEA,EAAEivE,UAAUthE,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvBqtC,GAAEid,IAAGtqD,EAAE3N,EAAEqvE,cAAiB,KAAa,GAARrvE,EAAE8nB,QAAiB9nB,EAAEujF,MAAMlhF,EAAErC,IAAE2N,EAAE,OAAOA,EAAEtL,GAAE,EAAG,OAAO+B,OAAE,IAASpE,EAAEunF,cAAc6F,UAAUnF,GAAGjoF,GAAGqC,EAAE,OAAO+B,EAAEirE,cAAiB1hE,IAAItL,GAAG,KAAY,EAAPrC,EAAEoe,QAAW,OAAOha,IAAG,IAAKpE,EAAEunF,cAAc8F,4BAA4B,KAAe,EAAVp1B,GAAExzC,SAAW,IAAIm3C,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAOhb,IAAG,KAAQ,UAAHgkC,KAAe,KAAQ,UAAH6J,KAAeC,GAAG9tC,GAAExG,OAAMzsC,GAAGtL,KAAErC,EAAE8nB,OAAO,GAAS,MAAK,KAAK,EAAE,OAAO20B,KAAW,OAAOr4C,GAAGq5E,GAAGz9E,EAAEivE,UAAUkB,eAAe,KAAK,KAAK,GAAG,OAAO8S,GAAGjjF,GAAG,KAA0C,KAAK,GAA0B,GAAvBg7C,GAAEid,IAAwB,QAArBtqD,EAAE3N,EAAEqvE,eAA0B,OAAO,KAAsC,GAAjCzwC,EAAE,KAAa,GAAR5+B,EAAE8nB,OAA2B,QAAjBje,EAAE8D,EAAEkgF,WAAsB,GAAGjvD,EAAEqvD,GAAGtgF,GAAE,OAAQ,CAAC,GAAG,IAAIiuD,IAAG,OAAOx3D,GAAG,KAAa,GAARA,EAAE0jB,OAAU,IAAI1jB,EAAEpE,EAAEovC,MAAM,OAAOhrC,GAAG,CAAS,GAAG,QAAXyF,EAAEy9E,GAAGljF,IAAe,CACjW,IADkWpE,EAAE8nB,OAAO,GAAGmmE,GAAGtgF,GAAE,GAAoB,QAAhBixB,EAAE/0B,EAAEi6E,eAAuB9jF,EAAE8jF,YAAYllD,EAAE5+B,EAAE8nB,OAAO,GACnf,OAAOna,EAAE44E,aAAavmF,EAAEymF,YAAY,MAAMzmF,EAAEumF,WAAW54E,EAAE44E,WAAW54E,EAAEtL,EAAMA,EAAErC,EAAEovC,MAAM,OAAO/sC,GAAO+B,EAAEuJ,GAANixB,EAAEv8B,GAAQylB,OAAO,EAAE8W,EAAE4nD,WAAW,KAAK5nD,EAAE6nD,YAAY,KAAK7nD,EAAE2nD,WAAW,KAAmB,QAAd18E,EAAE+0B,EAAEuwC,YAAoBvwC,EAAEukD,WAAW,EAAEvkD,EAAE2kD,MAAMn/E,EAAEw6B,EAAEwQ,MAAM,KAAKxQ,EAAE2oD,cAAc,KAAK3oD,EAAEywC,cAAc,KAAKzwC,EAAEklD,YAAY,KAAKllD,EAAEykD,aAAa,KAAKzkD,EAAEqwC,UAAU,OAAOrwC,EAAEukD,WAAWt5E,EAAEs5E,WAAWvkD,EAAE2kD,MAAM15E,EAAE05E,MAAM3kD,EAAEwQ,MAAMvlC,EAAEulC,MAAMxQ,EAAE2oD,cAAc19E,EAAE09E,cAAc3oD,EAAEywC,cAAcxlE,EAAEwlE,cAAczwC,EAAEklD,YAAYj6E,EAAEi6E,YAAYllD,EAAEhgC,KAAKiL,EAAEjL,KAAKwF,EAAEyF,EAAEw5E,aACpfzkD,EAAEykD,aAAa,OAAOj/E,EAAE,KAAK,CAACm/E,MAAMn/E,EAAEm/E,MAAMD,aAAal/E,EAAEk/E,eAAejhF,EAAEA,EAAEktE,QAA2B,OAAnB52C,GAAEs/B,GAAY,EAAVA,GAAExzC,QAAU,GAAUzkB,EAAEovC,MAAMhrC,EAAEA,EAAEmrE,QAAQ,OAAO5hE,EAAEgxC,MAAM0T,KAAIs8B,KAAK3uF,EAAE8nB,OAAO,GAAG8W,GAAE,EAAGqvD,GAAGtgF,GAAE,GAAI3N,EAAEujF,MAAM,cAAc,CAAC,IAAI3kD,EAAE,GAAW,QAARx6B,EAAEkjF,GAAGz9E,KAAa,GAAG7J,EAAE8nB,OAAO,GAAG8W,GAAE,EAAmB,QAAhBv8B,EAAE+B,EAAE0/E,eAAuB9jF,EAAE8jF,YAAYzhF,EAAErC,EAAE8nB,OAAO,GAAGmmE,GAAGtgF,GAAE,GAAI,OAAOA,EAAEgxC,MAAM,WAAWhxC,EAAEogF,WAAWlkF,EAAEslE,YAAYwY,GAAG,OAAmC,QAA5B3nF,EAAEA,EAAEumF,WAAW54E,EAAE44E,cAAsBvmF,EAAEwmF,WAAW,MAAM,UAAU,EAAEn0B,KAAI1kD,EAAEmgF,mBAAmBa,IAAI,aAAatsF,IAAIrC,EAAE8nB,OACjf,GAAG8W,GAAE,EAAGqvD,GAAGtgF,GAAE,GAAI3N,EAAEujF,MAAM,UAAU51E,EAAEigF,aAAa/jF,EAAE0lE,QAAQvvE,EAAEovC,MAAMpvC,EAAEovC,MAAMvlC,IAAa,QAATxH,EAAEsL,EAAE6wB,MAAcn8B,EAAEktE,QAAQ1lE,EAAE7J,EAAEovC,MAAMvlC,EAAE8D,EAAE6wB,KAAK30B,GAAG,OAAO,OAAO8D,EAAEgxC,MAAMt8C,EAAEsL,EAAEgxC,KAAKhxC,EAAEkgF,UAAUxrF,EAAEsL,EAAEgxC,KAAKt8C,EAAEktE,QAAQ5hE,EAAE44E,WAAWvmF,EAAEumF,WAAW54E,EAAEmgF,mBAAmBz7B,KAAIhwD,EAAEktE,QAAQ,KAAKvvE,EAAEi4D,GAAExzC,QAAQkU,GAAEs/B,GAAEr5B,EAAI,EAAF5+B,EAAI,EAAI,EAAFA,GAAKqC,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOusF,KAAK,OAAOxqF,GAAG,OAAOA,EAAEirE,iBAAiB,OAAOrvE,EAAEqvE,gBAAgB,kCAAkC1hE,EAAEyQ,OAAOpe,EAAE8nB,OAAO,GAAG,KAAK,MAAMjuB,MAAMyK,EAAE,IAAItE,EAAEu7B,MAChd,SAASszD,GAAGzqF,GAAG,OAAOA,EAAEm3B,KAAK,KAAK,EAAEykD,GAAG57E,EAAExF,OAAOshF,KAAK,IAAIlgF,EAAEoE,EAAE0jB,MAAM,OAAS,KAAF9nB,GAAQoE,EAAE0jB,OAAS,KAAH9nB,EAAQ,GAAGoE,GAAG,KAAK,KAAK,EAAgC,GAA9Bq4C,KAAKzB,GAAE7gC,IAAG6gC,GAAEhnB,IAAGo0D,KAAkB,KAAO,IAApBpoF,EAAEoE,EAAE0jB,QAAoB,MAAMjuB,MAAMyK,EAAE,MAAyB,OAAnBF,EAAE0jB,OAAS,KAAH9nB,EAAQ,GAAUoE,EAAE,KAAK,EAAE,OAAOu4C,GAAGv4C,GAAG,KAAK,KAAK,GAAG,OAAO42C,GAAEid,IAAe,MAAZj4D,EAAEoE,EAAE0jB,QAAc1jB,EAAE0jB,OAAS,KAAH9nB,EAAQ,GAAGoE,GAAG,KAAK,KAAK,GAAG,OAAO42C,GAAEid,IAAG,KAAK,KAAK,EAAE,OAAOxb,KAAK,KAAK,KAAK,GAAG,OAAOwmC,GAAG7+E,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOwqF,KAAK,KAAK,QAAQ,OAAO,MACra,SAASE,GAAG1qF,EAAEpE,GAAG,IAAI,IAAIqC,EAAE,GAAGsL,EAAE3N,EAAE,GAAGqC,GAAG8qD,EAAGx/C,GAAGA,EAAEA,EAAEyhE,aAAazhE,GAAG,IAAIzT,EAAEmI,EAAE,MAAMu8B,GAAG1kC,EAAE,6BAA6B0kC,EAAEpU,QAAQ,KAAKoU,EAAEkU,MAAM,MAAM,CAACh7C,MAAMsM,EAAE65B,OAAOj+B,EAAE8yC,MAAM54C,GAAG,SAAS60F,GAAG3qF,EAAEpE,GAAG,IAAIgpB,QAAQsB,MAAMtqB,EAAElI,OAAO,MAAMuK,GAAGpI,YAAW,WAAW,MAAMoI,MAlB3PyqF,GAAG,SAAS1oF,EAAEpE,GAAG,IAAI,IAAIqC,EAAErC,EAAEovC,MAAM,OAAO/sC,GAAG,CAAC,GAAG,IAAIA,EAAEk5B,KAAK,IAAIl5B,EAAEk5B,IAAIn3B,EAAE+mE,YAAY9oE,EAAE4sE,gBAAgB,GAAG,IAAI5sE,EAAEk5B,KAAK,OAAOl5B,EAAE+sC,MAAM,CAAC/sC,EAAE+sC,MAAMggC,OAAO/sE,EAAEA,EAAEA,EAAE+sC,MAAM,SAAS,GAAG/sC,IAAIrC,EAAE,MAAM,KAAK,OAAOqC,EAAEktE,SAAS,CAAC,GAAG,OAAOltE,EAAE+sE,QAAQ/sE,EAAE+sE,SAASpvE,EAAE,OAAOqC,EAAEA,EAAE+sE,OAAO/sE,EAAEktE,QAAQH,OAAO/sE,EAAE+sE,OAAO/sE,EAAEA,EAAEktE,UAChSwd,GAAG,SAAS3oF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAEkK,EAAEmjF,cAAc,GAAGrtF,IAAIyT,EAAE,CAACvJ,EAAEpE,EAAEivE,UAAU1gE,GAAGT,GAAG2W,SAAS,IAAyU5a,EAArU+0B,EAAE,KAAK,OAAOv8B,GAAG,IAAK,QAAQnI,EAAE28D,EAAGzyD,EAAElK,GAAGyT,EAAEkpD,EAAGzyD,EAAEuJ,GAAGixB,EAAE,GAAG,MAAM,IAAK,SAAS1kC,EAAEo0D,GAAGlqD,EAAElK,GAAGyT,EAAE2gD,GAAGlqD,EAAEuJ,GAAGixB,EAAE,GAAG,MAAM,IAAK,SAAS1kC,EAAEgG,EAAE,GAAGhG,EAAE,CAACpC,WAAM,IAAS6V,EAAEzN,EAAE,GAAGyN,EAAE,CAAC7V,WAAM,IAAS8mC,EAAE,GAAG,MAAM,IAAK,WAAW1kC,EAAEu+D,GAAGr0D,EAAElK,GAAGyT,EAAE8qD,GAAGr0D,EAAEuJ,GAAGixB,EAAE,GAAG,MAAM,QAAQ,oBAAoB1kC,EAAEm0F,SAAS,oBAAoB1gF,EAAE0gF,UAAUjqF,EAAEkqF,QAAQjQ,IAAyB,IAAIl0E,KAAzB2uD,GAAGz2D,EAAEsL,GAAStL,EAAE,KAAcnI,EAAE,IAAIyT,EAAE4vB,eAAepzB,IAAIjQ,EAAEqjC,eAAepzB,IAAI,MAAMjQ,EAAEiQ,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAIiT,EAAEljB,EAAEiQ,GAAG,IAAIN,KAAKuT,EAAEA,EAAEmgB,eAAe1zB,KAAKxH,IAAIA,EAAE,IAAIA,EAAEwH,GAAG,QAAQ,4BAA4BM,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIgoD,EAAG50B,eAAepzB,GAAGy0B,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIljC,KAAKyO,EAAE,OAAO,IAAIA,KAAKwD,EAAE,CAAC,IAAIxC,EAAEwC,EAAExD,GAAyB,GAAtBiT,EAAE,MAAMljB,EAAEA,EAAEiQ,QAAG,EAAUwD,EAAE4vB,eAAepzB,IAAIgB,IAAIiS,IAAI,MAAMjS,GAAG,MAAMiS,GAAG,GAAG,UAAUjT,EAAE,GAAGiT,EAAE,CAAC,IAAIvT,KAAKuT,GAAGA,EAAEmgB,eAAe1zB,IAAIsB,GAAGA,EAAEoyB,eAAe1zB,KAAKxH,IAAIA,EAAE,IAAIA,EAAEwH,GAAG,IAAI,IAAIA,KAAKsB,EAAEA,EAAEoyB,eAAe1zB,IAAIuT,EAAEvT,KAAKsB,EAAEtB,KAAKxH,IAClfA,EAAE,IAAIA,EAAEwH,GAAGsB,EAAEtB,SAASxH,IAAIu8B,IAAIA,EAAE,IAAIA,EAAEljC,KAAKyO,EAAE9H,IAAIA,EAAE8I,MAAM,4BAA4BhB,GAAGgB,EAAEA,EAAEA,EAAEwzE,YAAO,EAAOvhE,EAAEA,EAAEA,EAAEuhE,YAAO,EAAO,MAAMxzE,GAAGiS,IAAIjS,IAAIyzB,EAAEA,GAAG,IAAIljC,KAAKyO,EAAEgB,IAAI,aAAahB,EAAE,kBAAkBgB,GAAG,kBAAkBA,IAAIyzB,EAAEA,GAAG,IAAIljC,KAAKyO,EAAE,GAAGgB,GAAG,mCAAmChB,GAAG,6BAA6BA,IAAIgoD,EAAG50B,eAAepzB,IAAI,MAAMgB,GAAG,aAAahB,GAAGgrB,GAAE,SAAS/wB,GAAGw6B,GAAGxhB,IAAIjS,IAAIyzB,EAAE,KAAK,kBAAkBzzB,GAAG,OAAOA,GAAGA,EAAE46D,WAAW3R,EAAGjpD,EAAEnM,YAAY4/B,EAAEA,GAAG,IAAIljC,KAAKyO,EAAEgB,IAAI9I,IAAIu8B,EAAEA,GAAG,IAAIljC,KAAK,QAC/e2G,GAAG,IAAI8H,EAAEy0B,GAAK5+B,EAAE8jF,YAAY35E,KAAEnK,EAAE8nB,OAAO,KAAIklE,GAAG,SAAS5oF,EAAEpE,EAAEqC,EAAEsL,GAAGtL,IAAIsL,IAAI3N,EAAE8nB,OAAO,IAcgL,IAAIknE,GAAG,oBAAoB97B,QAAQA,QAAQsc,IAAI,SAASyf,GAAG7qF,EAAEpE,EAAEqC,IAAGA,EAAEgiF,IAAI,EAAEhiF,IAAKk5B,IAAI,EAAEl5B,EAAEmiF,QAAQ,CAAC0K,QAAQ,MAAM,IAAIvhF,EAAE3N,EAAElI,MAAsD,OAAhDuK,EAAEi/B,SAAS,WAAW6tD,KAAKA,IAAG,EAAGC,GAAGzhF,GAAGohF,GAAG3qF,EAAEpE,IAAWqC,EACpb,SAASgtF,GAAGjrF,EAAEpE,EAAEqC,IAAGA,EAAEgiF,IAAI,EAAEhiF,IAAKk5B,IAAI,EAAE,IAAI5tB,EAAEvJ,EAAExF,KAAK+tF,yBAAyB,GAAG,oBAAoBh/E,EAAE,CAAC,IAAIzT,EAAE8F,EAAElI,MAAMuK,EAAEmiF,QAAQ,WAAmB,OAARuK,GAAG3qF,EAAEpE,GAAU2N,EAAEzT,IAAI,IAAI0kC,EAAEx6B,EAAE6qE,UAA8O,OAApO,OAAOrwC,GAAG,oBAAoBA,EAAE0wD,oBAAoBjtF,EAAEi/B,SAAS,WAAW,oBAAoB3zB,IAAI,OAAO4hF,GAAGA,GAAG,IAAI7mB,IAAI,CAACtuE,OAAOm1F,GAAG/6E,IAAIpa,MAAM20F,GAAG3qF,EAAEpE,IAAI,IAAIqC,EAAErC,EAAE8yC,MAAM14C,KAAKk1F,kBAAkBtvF,EAAElI,MAAM,CAAC03F,eAAe,OAAOntF,EAAEA,EAAE,OAAcA,EAAE,IAAIotF,GAAG,oBAAoBC,QAAQA,QAAQhnB,IACxc,SAASinB,GAAGvrF,GAAG,IAAIpE,EAAEoE,EAAEuhE,IAAI,GAAG,OAAO3lE,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAMqC,GAAGutF,GAAGxrF,EAAE/B,QAAQrC,EAAEykB,QAAQ,KAAK,SAASorE,GAAGzrF,EAAEpE,GAAG,OAAOA,EAAEu7B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA8Q,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAjS,KAAK,EAAE,GAAW,IAARv7B,EAAE8nB,OAAW,OAAO1jB,EAAE,CAAC,IAAI/B,EAAE+B,EAAEmjF,cAAc55E,EAAEvJ,EAAEirE,cAA4BrvE,GAAdoE,EAAEpE,EAAEivE,WAAc6W,wBAAwB9lF,EAAE4mF,cAAc5mF,EAAEpB,KAAKyD,EAAEsgF,GAAG3iF,EAAEpB,KAAKyD,GAAGsL,GAAGvJ,EAAE0rF,oCAAoC9vF,EAAE,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAE8nB,OAAWg3D,GAAG9+E,EAAEivE,UAAUkB,gBAA0D,MAAMt2E,MAAMyK,EAAE,MAC5e,SAASyrF,GAAG3rF,EAAEpE,EAAEqC,GAAG,OAAOA,EAAEk5B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhCv7B,EAAE,QAAlBA,EAAEqC,EAAEyhF,aAAuB9jF,EAAEumF,WAAW,MAAiB,CAACniF,EAAEpE,EAAEA,EAAEkkB,KAAK,EAAE,CAAC,GAAG,KAAW,EAAN9f,EAAEm3B,KAAO,CAAC,IAAI5tB,EAAEvJ,EAAE9M,OAAO8M,EAAE4iC,QAAQr5B,IAAIvJ,EAAEA,EAAE8f,WAAW9f,IAAIpE,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEqC,EAAEyhF,aAAuB9jF,EAAEumF,WAAW,MAAiB,CAACniF,EAAEpE,EAAEA,EAAEkkB,KAAK,EAAE,CAAC,IAAIhqB,EAAEkK,EAAEuJ,EAAEzT,EAAEgqB,KAAa,KAAO,GAAfhqB,EAAEA,EAAEqhC,OAAe,KAAO,EAAFrhC,KAAO81F,GAAG3tF,EAAE+B,GAAG6rF,GAAG5tF,EAAE+B,IAAIA,EAAEuJ,QAAQvJ,IAAIpE,GAAG,OAAO,KAAK,EACtR,OADwRoE,EAAE/B,EAAE4sE,UAAkB,EAAR5sE,EAAEylB,QAAU,OAAO9nB,EAAEoE,EAAE6hF,qBAAqBt4E,EAAEtL,EAAEukF,cAAcvkF,EAAEzD,KAAKoB,EAAEunF,cAAc5E,GAAGtgF,EAAEzD,KAAKoB,EAAEunF,eAAenjF,EAAEqoF,mBAAmB9+E,EACxgB3N,EAAEqvE,cAAcjrE,EAAE0rF,4CAAuD,QAAhB9vF,EAAEqC,EAAEyhF,cAAsBe,GAAGxiF,EAAErC,EAAEoE,IAAU,KAAK,EAAkB,GAAG,QAAnBpE,EAAEqC,EAAEyhF,aAAwB,CAAQ,GAAP1/E,EAAE,KAAQ,OAAO/B,EAAE+sC,MAAM,OAAO/sC,EAAE+sC,MAAM7T,KAAK,KAAK,EAA4B,KAAK,EAAEn3B,EAAE/B,EAAE+sC,MAAM6/B,UAAU4V,GAAGxiF,EAAErC,EAAEoE,GAAG,OAAO,KAAK,EAA2E,OAAzEA,EAAE/B,EAAE4sE,eAAU,OAAOjvE,GAAW,EAARqC,EAAEylB,OAAS02D,GAAGn8E,EAAEzD,KAAKyD,EAAEklF,gBAAgBnjF,EAAE8rF,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GACnX,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAD6U,KAAK,GACzY,YAD4Y,OAAO7tF,EAAEgtE,gBAAgBhtE,EAAEA,EAAE8sE,UAAU,OAAO9sE,IAAIA,EAAEA,EAAEgtE,cAAc,OAAOhtE,IAAIA,EAAEA,EAAEitE,WAAW,OAAOjtE,GAAG0tD,GAAG1tD,OACzb,MAAMxI,MAAMyK,EAAE,MAC5E,SAAS6rF,GAAG/rF,EAAEpE,GAAG,IAAI,IAAIqC,EAAE+B,IAAI,CAAC,GAAG,IAAI/B,EAAEk5B,IAAI,CAAC,IAAI5tB,EAAEtL,EAAE4sE,UAAU,GAAGjvE,EAAY,oBAAV2N,EAAEA,EAAEugE,OAA4BC,YAAYxgE,EAAEwgE,YAAY,UAAU,OAAO,aAAaxgE,EAAEyiF,QAAQ,WAAW,CAACziF,EAAEtL,EAAE4sE,UAAU,IAAI/0E,EAAEmI,EAAEklF,cAAcrZ,MAAMh0E,OAAE,IAASA,GAAG,OAAOA,GAAGA,EAAEqjC,eAAe,WAAWrjC,EAAEk2F,QAAQ,KAAKziF,EAAEugE,MAAMkiB,QAAQlgC,GAAG,UAAUh2D,SAAS,GAAG,IAAImI,EAAEk5B,IAAIl5B,EAAE4sE,UAAUzD,UAAUxrE,EAAE,GAAGqC,EAAEklF,mBAAmB,IAAI,KAAKllF,EAAEk5B,KAAK,KAAKl5B,EAAEk5B,KAAK,OAAOl5B,EAAEgtE,eAAehtE,IAAI+B,IAAI,OAAO/B,EAAE+sC,MAAM,CAAC/sC,EAAE+sC,MAAMggC,OAAO/sE,EAAEA,EAAEA,EAAE+sC,MAAM,SAAS,GAAG/sC,IACtf+B,EAAE,MAAM,KAAK,OAAO/B,EAAEktE,SAAS,CAAC,GAAG,OAAOltE,EAAE+sE,QAAQ/sE,EAAE+sE,SAAShrE,EAAE,OAAO/B,EAAEA,EAAE+sE,OAAO/sE,EAAEktE,QAAQH,OAAO/sE,EAAE+sE,OAAO/sE,EAAEA,EAAEktE,SACjH,SAAS8gB,GAAGjsF,EAAEpE,GAAG,GAAG0gF,IAAI,oBAAoBA,GAAG4P,qBAAqB,IAAI5P,GAAG4P,qBAAqB7P,GAAGzgF,GAAG,MAAM4+B,IAAI,OAAO5+B,EAAEu7B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnBn3B,EAAEpE,EAAE8jF,cAAyC,QAAf1/E,EAAEA,EAAEmiF,YAAqB,CAAC,IAAIlkF,EAAE+B,EAAEA,EAAE8f,KAAK,EAAE,CAAC,IAAIvW,EAAEtL,EAAEnI,EAAEyT,EAAEq5B,QAAgB,GAARr5B,EAAEA,EAAE4tB,SAAO,IAASrhC,EAAE,GAAG,KAAO,EAAFyT,GAAKqiF,GAAGhwF,EAAEqC,OAAO,CAACsL,EAAE3N,EAAE,IAAI9F,IAAI,MAAM0kC,GAAGgxD,GAAGjiF,EAAEixB,IAAIv8B,EAAEA,EAAE6hB,WAAW7hB,IAAI+B,GAAG,MAAM,KAAK,EAAsB,GAApBurF,GAAG3vF,GAAoB,oBAAjBoE,EAAEpE,EAAEivE,WAAmCshB,qBAAqB,IAAInsF,EAAEghE,MAAMplE,EAAEunF,cAAcnjF,EAAEklB,MAAMtpB,EAAEqvE,cAAcjrE,EAAEmsF,uBAAuB,MAAM3xD,GAAGgxD,GAAG5vF,EAC/gB4+B,GAAG,MAAM,KAAK,EAAE+wD,GAAG3vF,GAAG,MAAM,KAAK,EAAEwwF,GAAGpsF,EAAEpE,IAAI,SAASywF,GAAGrsF,GAAGA,EAAE+qE,UAAU,KAAK/qE,EAAEgrC,MAAM,KAAKhrC,EAAEi/E,aAAa,KAAKj/E,EAAEqiF,YAAY,KAAKriF,EAAEmiF,WAAW,KAAKniF,EAAEmjF,cAAc,KAAKnjF,EAAEirE,cAAc,KAAKjrE,EAAE2jF,aAAa,KAAK3jF,EAAEgrE,OAAO,KAAKhrE,EAAE0/E,YAAY,KAAK,SAAS4M,GAAGtsF,GAAG,OAAO,IAAIA,EAAEm3B,KAAK,IAAIn3B,EAAEm3B,KAAK,IAAIn3B,EAAEm3B,IACnS,SAASo1D,GAAGvsF,GAAGA,EAAE,CAAC,IAAI,IAAIpE,EAAEoE,EAAEgrE,OAAO,OAAOpvE,GAAG,CAAC,GAAG0wF,GAAG1wF,GAAG,MAAMoE,EAAEpE,EAAEA,EAAEovE,OAAO,MAAMv1E,MAAMyK,EAAE,MAAO,IAAIjC,EAAErC,EAAgB,OAAdA,EAAEqC,EAAE4sE,UAAiB5sE,EAAEk5B,KAAK,KAAK,EAAE,IAAI5tB,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAE3N,EAAEA,EAAEmwE,cAAcxiE,GAAE,EAAG,MAAM,QAAQ,MAAM9T,MAAMyK,EAAE,MAAe,GAARjC,EAAEylB,QAAWowC,GAAGl4D,EAAE,IAAIqC,EAAEylB,QAAQ,IAAI1jB,EAAEpE,EAAE,IAAIqC,EAAE+B,IAAI,CAAC,KAAK,OAAO/B,EAAEktE,SAAS,CAAC,GAAG,OAAOltE,EAAE+sE,QAAQshB,GAAGruF,EAAE+sE,QAAQ,CAAC/sE,EAAE,KAAK,MAAM+B,EAAE/B,EAAEA,EAAE+sE,OAAiC,IAA1B/sE,EAAEktE,QAAQH,OAAO/sE,EAAE+sE,OAAW/sE,EAAEA,EAAEktE,QAAQ,IAAIltE,EAAEk5B,KAAK,IAAIl5B,EAAEk5B,KAAK,KAAKl5B,EAAEk5B,KAAK,CAAC,GAAW,EAARl5B,EAAEylB,MAAQ,SAAS9nB,EAAE,GAAG,OAC/eqC,EAAE+sC,OAAO,IAAI/sC,EAAEk5B,IAAI,SAASv7B,EAAOqC,EAAE+sC,MAAMggC,OAAO/sE,EAAEA,EAAEA,EAAE+sC,MAAM,KAAa,EAAR/sC,EAAEylB,OAAS,CAACzlB,EAAEA,EAAE4sE,UAAU,MAAM7qE,GAAGuJ,EAAEijF,GAAGxsF,EAAE/B,EAAErC,GAAG6wF,GAAGzsF,EAAE/B,EAAErC,GACzH,SAAS4wF,GAAGxsF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEvJ,EAAEm3B,IAAIrhC,EAAE,IAAIyT,GAAG,IAAIA,EAAE,GAAGzT,EAAEkK,EAAElK,EAAEkK,EAAE6qE,UAAU7qE,EAAE6qE,UAAUhP,SAASjgE,EAAE,IAAIqC,EAAEkpE,SAASlpE,EAAE2sE,WAAW8hB,aAAa1sF,EAAEpE,GAAGqC,EAAEyuF,aAAa1sF,EAAEpE,IAAI,IAAIqC,EAAEkpE,UAAUvrE,EAAEqC,EAAE2sE,YAAa8hB,aAAa1sF,EAAE/B,IAAKrC,EAAEqC,GAAI8oE,YAAY/mE,GAA4B,QAAxB/B,EAAEA,EAAE0uF,2BAA8B,IAAS1uF,GAAG,OAAOrC,EAAEsuF,UAAUtuF,EAAEsuF,QAAQjQ,UAAU,GAAG,IAAI1wE,GAAc,QAAVvJ,EAAEA,EAAEgrC,OAAgB,IAAIwhD,GAAGxsF,EAAEpE,EAAEqC,GAAG+B,EAAEA,EAAEmrE,QAAQ,OAAOnrE,GAAGwsF,GAAGxsF,EAAEpE,EAAEqC,GAAG+B,EAAEA,EAAEmrE,QAC9Y,SAASshB,GAAGzsF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEvJ,EAAEm3B,IAAIrhC,EAAE,IAAIyT,GAAG,IAAIA,EAAE,GAAGzT,EAAEkK,EAAElK,EAAEkK,EAAE6qE,UAAU7qE,EAAE6qE,UAAUhP,SAASjgE,EAAEqC,EAAEyuF,aAAa1sF,EAAEpE,GAAGqC,EAAE8oE,YAAY/mE,QAAQ,GAAG,IAAIuJ,GAAc,QAAVvJ,EAAEA,EAAEgrC,OAAgB,IAAIyhD,GAAGzsF,EAAEpE,EAAEqC,GAAG+B,EAAEA,EAAEmrE,QAAQ,OAAOnrE,GAAGysF,GAAGzsF,EAAEpE,EAAEqC,GAAG+B,EAAEA,EAAEmrE,QACrN,SAASihB,GAAGpsF,EAAEpE,GAAG,IAAI,IAAa9F,EAAE0kC,EAAXv8B,EAAErC,EAAE2N,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAEtL,EAAE+sE,OAAOhrE,EAAE,OAAO,CAAC,GAAG,OAAOuJ,EAAE,MAAM9T,MAAMyK,EAAE,MAAoB,OAAdpK,EAAEyT,EAAEshE,UAAiBthE,EAAE4tB,KAAK,KAAK,EAAEqD,GAAE,EAAG,MAAMx6B,EAAE,KAAK,EAAiC,KAAK,EAAElK,EAAEA,EAAEi2E,cAAcvxC,GAAE,EAAG,MAAMx6B,EAAEuJ,EAAEA,EAAEyhE,OAAOzhE,GAAE,EAAG,GAAG,IAAItL,EAAEk5B,KAAK,IAAIl5B,EAAEk5B,IAAI,CAACn3B,EAAE,IAAI,IAAIyF,EAAEzF,EAAEgZ,EAAE/a,EAAE8I,EAAEiS,IAAI,GAAGizE,GAAGxmF,EAAEsB,GAAG,OAAOA,EAAEikC,OAAO,IAAIjkC,EAAEowB,IAAIpwB,EAAEikC,MAAMggC,OAAOjkE,EAAEA,EAAEA,EAAEikC,UAAU,CAAC,GAAGjkC,IAAIiS,EAAE,MAAMhZ,EAAE,KAAK,OAAO+G,EAAEokE,SAAS,CAAC,GAAG,OAAOpkE,EAAEikE,QAAQjkE,EAAEikE,SAAShyD,EAAE,MAAMhZ,EAAE+G,EAAEA,EAAEikE,OAAOjkE,EAAEokE,QAAQH,OAAOjkE,EAAEikE,OAAOjkE,EAAEA,EAAEokE,QAAQ3wC,GAAG/0B,EAAE3P,EAAEkjB,EAAE/a,EAAE4sE,UACrf,IAAIplE,EAAE0hE,SAAS1hE,EAAEmlE,WAAW9D,YAAY9tD,GAAGvT,EAAEqhE,YAAY9tD,IAAIljB,EAAEgxE,YAAY7oE,EAAE4sE,gBAAgB,GAAG,IAAI5sE,EAAEk5B,KAAK,GAAG,OAAOl5B,EAAE+sC,MAAM,CAACl1C,EAAEmI,EAAE4sE,UAAUkB,cAAcvxC,GAAE,EAAGv8B,EAAE+sC,MAAMggC,OAAO/sE,EAAEA,EAAEA,EAAE+sC,MAAM,eAAe,GAAGihD,GAAGjsF,EAAE/B,GAAG,OAAOA,EAAE+sC,MAAM,CAAC/sC,EAAE+sC,MAAMggC,OAAO/sE,EAAEA,EAAEA,EAAE+sC,MAAM,SAAS,GAAG/sC,IAAIrC,EAAE,MAAM,KAAK,OAAOqC,EAAEktE,SAAS,CAAC,GAAG,OAAOltE,EAAE+sE,QAAQ/sE,EAAE+sE,SAASpvE,EAAE,OAAkB,KAAXqC,EAAEA,EAAE+sE,QAAa7zC,MAAM5tB,GAAE,GAAItL,EAAEktE,QAAQH,OAAO/sE,EAAE+sE,OAAO/sE,EAAEA,EAAEktE,SAClZ,SAASyhB,GAAG5sF,EAAEpE,GAAG,OAAOA,EAAEu7B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIl5B,EAAErC,EAAE8jF,YAAyC,GAAG,QAAhCzhF,EAAE,OAAOA,EAAEA,EAAEkkF,WAAW,MAAiB,CAAC,IAAI54E,EAAEtL,EAAEA,EAAE6hB,KAAK,GAAG,KAAW,EAANvW,EAAE4tB,OAASn3B,EAAEuJ,EAAEq5B,QAAQr5B,EAAEq5B,aAAQ,OAAO,IAAS5iC,GAAGA,KAAKuJ,EAAEA,EAAEuW,WAAWvW,IAAItL,GAAG,OAAO,KAAK,EAErJ,KAAK,GAAoG,KAAK,GAAG,OAF6C,KAAK,EAAgB,GAAG,OAAjBA,EAAErC,EAAEivE,WAAqB,CAACthE,EAAE3N,EAAEunF,cAAc,IAAIrtF,EAAE,OAAOkK,EAAEA,EAAEmjF,cAAc55E,EAAEvJ,EAAEpE,EAAEpB,KAAK,IAAIggC,EAAE5+B,EAAE8jF,YAA+B,GAAnB9jF,EAAE8jF,YAAY,KAAQ,OAAOllD,EAAE,CAAgF,IAA/Ev8B,EAAEg9E,IAAI1xE,EAAE,UAAUvJ,GAAG,UAAUuJ,EAAE/O,MAAM,MAAM+O,EAAE/Q,MAAMi7D,GAAGx1D,EAAEsL,GAAGgmD,GAAGvvD,EAAElK,GAAG8F,EAAE2zD,GAAGvvD,EAAEuJ,GAAOzT,EAAE,EAAEA,EAAE0kC,EAAE/lC,OAAOqB,GAClf,EAAE,CAAC,IAAI2P,EAAE+0B,EAAE1kC,GAAGkjB,EAAEwhB,EAAE1kC,EAAE,GAAG,UAAU2P,EAAEymD,GAAGjuD,EAAE+a,GAAG,4BAA4BvT,EAAE8jD,GAAGtrD,EAAE+a,GAAG,aAAavT,EAAEquD,GAAG71D,EAAE+a,GAAG00C,EAAGzvD,EAAEwH,EAAEuT,EAAEpd,GAAG,OAAOoE,GAAG,IAAK,QAAQ0zD,GAAGz1D,EAAEsL,GAAG,MAAM,IAAK,WAAW8/C,GAAGprD,EAAEsL,GAAG,MAAM,IAAK,SAASvJ,EAAE/B,EAAE+nE,cAAc+jB,YAAY9rF,EAAE+nE,cAAc+jB,cAAcxgF,EAAEygF,SAAmB,OAAVxvD,EAAEjxB,EAAE7V,OAAcugE,GAAGh2D,IAAIsL,EAAEygF,SAASxvD,GAAE,GAAIx6B,MAAMuJ,EAAEygF,WAAW,MAAMzgF,EAAEw8D,aAAa9R,GAAGh2D,IAAIsL,EAAEygF,SAASzgF,EAAEw8D,cAAa,GAAI9R,GAAGh2D,IAAIsL,EAAEygF,SAASzgF,EAAEygF,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAOpuF,EAAEivE,UAAU,MAAMp1E,MAAMyK,EAAE,MAC/c,YADqdtE,EAAEivE,UAAUzD,UACjfxrE,EAAEunF,eAAqB,KAAK,EAA8D,aAA5DllF,EAAErC,EAAEivE,WAAYiB,UAAU7tE,EAAE6tE,SAAQ,EAAGngB,GAAG1tD,EAAE8tE,iBAAsC,KAAK,GAAyD,OAAtD,OAAOnwE,EAAEqvE,gBAAgB4hB,GAAG5+B,KAAI89B,GAAGnwF,EAAEovC,OAAM,SAAK8hD,GAAGlxF,GAAU,KAAK,GAAS,YAANkxF,GAAGlxF,GAAyB,KAAK,GAAG,KAAK,GAAgC,YAA7BmwF,GAAGnwF,EAAE,OAAOA,EAAEqvE,eAAsB,MAAMx1E,MAAMyK,EAAE,MAAO,SAAS4sF,GAAG9sF,GAAG,IAAIpE,EAAEoE,EAAE0/E,YAAY,GAAG,OAAO9jF,EAAE,CAACoE,EAAE0/E,YAAY,KAAK,IAAIzhF,EAAE+B,EAAE6qE,UAAU,OAAO5sE,IAAIA,EAAE+B,EAAE6qE,UAAU,IAAIwgB,IAAIzvF,EAAEgzB,SAAQ,SAAShzB,GAAG,IAAI2N,EAAEwjF,GAAG3nE,KAAK,KAAKplB,EAAEpE,GAAGqC,EAAE+wD,IAAIpzD,KAAKqC,EAAEmS,IAAIxU,GAAGA,EAAEysD,KAAK9+C,EAAEA,QACne,SAASyjF,GAAGhtF,EAAEpE,GAAG,OAAO,OAAOoE,IAAsB,QAAlBA,EAAEA,EAAEirE,gBAAwB,OAAOjrE,EAAEkrE,cAA+B,QAAlBtvE,EAAEA,EAAEqvE,gBAAwB,OAAOrvE,EAAEsvE,YAAe,IAAI+hB,GAAG3uF,KAAK6N,KAAK+gF,GAAGv/B,EAAGqU,uBAAuBmrB,GAAGx/B,EAAGwU,kBAAkB5J,GAAE,EAAE/b,GAAE,KAAK8c,GAAE,KAAKtjB,GAAE,EAAE77B,GAAG,EAAEizE,GAAG/R,GAAG,GAAG7jB,GAAE,EAAE61B,GAAG,KAAKC,GAAG,EAAE9M,GAAG,EAAE6J,GAAG,EAAEkD,GAAG,EAAEC,GAAG,KAAKX,GAAG,EAAEtC,GAAGrlF,IAAS,SAASuoF,KAAKlD,GAAGt8B,KAAI,IAAI,IA8BsF7O,GA9BlFya,GAAE,KAAKkxB,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKuC,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAASxN,KAAK,OAAO,KAAO,GAAFvoB,IAAMtK,MAAK,IAAIigC,GAAGA,GAAGA,GAAGjgC,KAC3e,SAAS8yB,GAAG/gF,GAAY,GAAG,KAAO,GAAnBA,EAAEA,EAAEga,OAAkB,OAAO,EAAE,GAAG,KAAO,EAAFha,GAAK,OAAO,KAAKg+E,KAAK,EAAE,EAAkB,GAAhB,IAAImQ,KAAKA,GAAGb,IAAO,IAAIhP,GAAGpc,WAAW,CAAC,IAAIksB,KAAKA,GAAG,OAAOZ,GAAGA,GAAGhhB,aAAa,GAAGxsE,EAAEmuF,GAAG,IAAIvyF,EAAE,SAASwyF,GAAsD,OAA7C,KAANxyF,IAAIA,KAA8B,KAAPA,GAAboE,EAAE,SAASA,IAAOA,KAAUpE,EAAE,OAAcA,EAA4D,OAA1DoE,EAAEg+E,KAAK,KAAO,EAAFzlB,KAAM,KAAKv4D,EAAEA,EAAEi6D,GAAG,GAAGk0B,IAAanuF,EAAEi6D,GAAVj6D,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,GAsKuJu5D,CAAGv5D,GAAUmuF,IAAYnuF,EACnT,SAASghF,GAAGhhF,EAAEpE,EAAEqC,GAAG,GAAG,GAAG+vF,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKx4F,MAAMyK,EAAE,MAAgB,GAAG,QAAbF,EAAEuuF,GAAGvuF,EAAEpE,IAAe,OAAO,KAAK0/D,GAAGt7D,EAAEpE,EAAEqC,GAAG+B,IAAIw8C,KAAI6tC,IAAIzuF,EAAE,IAAI47D,IAAG8yB,GAAGtqF,EAAEg2C,KAAI,IAAIzsC,EAAEy0E,KAAK,IAAIpiF,EAAE,KAAO,EAAF28D,KAAM,KAAO,GAAFA,IAAMi2B,GAAGxuF,IAAIyuF,GAAGzuF,EAAE/B,GAAG,IAAIs6D,KAAIk1B,KAAKrP,QAAQ,KAAO,EAAF7lB,KAAM,KAAKhvD,GAAG,KAAKA,IAAI,OAAOwkF,GAAGA,GAAG,IAAIzpB,IAAI,CAACtkE,IAAI+tF,GAAG39E,IAAIpQ,IAAIyuF,GAAGzuF,EAAE/B,IAAIuvF,GAAGxtF,EAAE,SAASuuF,GAAGvuF,EAAEpE,GAAGoE,EAAEm/E,OAAOvjF,EAAE,IAAIqC,EAAE+B,EAAE+qE,UAAqC,IAA3B,OAAO9sE,IAAIA,EAAEkhF,OAAOvjF,GAAGqC,EAAE+B,EAAMA,EAAEA,EAAEgrE,OAAO,OAAOhrE,GAAGA,EAAE++E,YAAYnjF,EAAgB,QAAdqC,EAAE+B,EAAE+qE,aAAqB9sE,EAAE8gF,YAAYnjF,GAAGqC,EAAE+B,EAAEA,EAAEA,EAAEgrE,OAAO,OAAO,IAAI/sE,EAAEk5B,IAAIl5B,EAAE4sE,UAAU,KACze,SAAS4jB,GAAGzuF,EAAEpE,GAAG,IAAI,IAAIqC,EAAE+B,EAAE0uF,aAAanlF,EAAEvJ,EAAE0sE,eAAe52E,EAAEkK,EAAE2sE,YAAYnyC,EAAEx6B,EAAE2uF,gBAAgBlpF,EAAEzF,EAAEwsE,aAAa,EAAE/mE,GAAG,CAAC,IAAIuT,EAAE,GAAG4gD,GAAGn0D,GAAGsB,EAAE,GAAGiS,EAAEjT,EAAEy0B,EAAExhB,GAAG,IAAI,IAAIjT,GAAG,GAAG,KAAKgB,EAAEwC,IAAI,KAAKxC,EAAEjR,GAAG,CAACiQ,EAAEnK,EAAEy9D,GAAGtyD,GAAG,IAAIlL,EAAE40D,GAAEj2B,EAAExhB,GAAG,IAAInd,EAAEkK,EAAE,IAAI,GAAGlK,EAAEkK,EAAE,KAAK,QAAQA,GAAGnK,IAAIoE,EAAEysE,cAAc1lE,GAAGtB,IAAIsB,EAAwB,GAAtBwC,EAAEowD,GAAG35D,EAAEA,IAAIw8C,GAAExG,GAAE,GAAGp6C,EAAE60D,GAAK,IAAIlnD,EAAE,OAAOtL,IAAIA,IAAIy/E,IAAIjB,GAAGx+E,GAAG+B,EAAE0uF,aAAa,KAAK1uF,EAAE4uF,iBAAiB,OAAO,CAAC,GAAG,OAAO3wF,EAAE,CAAC,GAAG+B,EAAE4uF,mBAAmBhzF,EAAE,OAAOqC,IAAIy/E,IAAIjB,GAAGx+E,GAAG,KAAKrC,GAAGqC,EAAEuwF,GAAGppE,KAAK,KAAKplB,GAAG,OAAO49E,IAAIA,GAAG,CAAC3/E,GAAG4/E,GAAGrB,GAAGU,GAAGmB,KAAKT,GAAGtmF,KAAK2G,GACrfA,EAAEy/E,IAAI,KAAK9hF,EAAEqC,EAAEkgF,GAAG,GAAGqQ,GAAGppE,KAAK,KAAKplB,KAAK/B,EAzK+F,SAAY+B,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMvK,MAAMyK,EAAE,IAAIF,KAyKxTw5D,CAAG59D,GAAGqC,EAAEkgF,GAAGlgF,EAAE4wF,GAAGzpE,KAAK,KAAKplB,KAAKA,EAAE4uF,iBAAiBhzF,EAAEoE,EAAE0uF,aAAazwF,GAC5G,SAAS4wF,GAAG7uF,GAAiB,GAAdkuF,IAAI,EAAEE,GAAGD,GAAG,EAAK,KAAO,GAAF51B,IAAM,MAAM9iE,MAAMyK,EAAE,MAAM,IAAItE,EAAEoE,EAAE0uF,aAAa,GAAGI,MAAM9uF,EAAE0uF,eAAe9yF,EAAE,OAAO,KAAK,IAAIqC,EAAE07D,GAAG35D,EAAEA,IAAIw8C,GAAExG,GAAE,GAAG,GAAG,IAAI/3C,EAAE,OAAO,KAAK,IAAIsL,EAAEtL,EAAMnI,EAAEyiE,GAAEA,IAAG,GAAG,IAAI/9B,EAAEu0D,KAAkC,IAA1BvyC,KAAIx8C,GAAGg2C,KAAIzsC,IAAEkkF,KAAKuB,GAAGhvF,EAAEuJ,MAAM,IAAI0lF,KAAK,MAAM,MAAMj2E,GAAGk2E,GAAGlvF,EAAEgZ,GAAgE,GAApD4lE,KAAKsO,GAAG7sE,QAAQma,EAAE+9B,GAAEziE,EAAE,OAAOwjE,GAAE/vD,EAAE,GAAGizC,GAAE,KAAKxG,GAAE,EAAEzsC,EAAEiuD,IAAM,KAAK81B,GAAGjD,IAAI2E,GAAGhvF,EAAE,QAAQ,GAAG,IAAIuJ,EAAE,CAAyF,GAAxF,IAAIA,IAAIgvD,IAAG,GAAGv4D,EAAE8rE,UAAU9rE,EAAE8rE,SAAQ,EAAG4O,GAAG16E,EAAE+rE,gBAAwB,KAAR9tE,EAAEy7D,GAAG15D,MAAWuJ,EAAE4lF,GAAGnvF,EAAE/B,KAAQ,IAAIsL,EAAE,MAAM3N,EAAEyxF,GAAG2B,GAAGhvF,EAAE,GAAGsqF,GAAGtqF,EAAE/B,GAAGwwF,GAAGzuF,EAAEiuD,MAAKryD,EAC3c,OAD6coE,EAAEovF,aACrfpvF,EAAEqgB,QAAQ0qD,UAAU/qE,EAAEqvF,cAAcpxF,EAASsL,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM9T,MAAMyK,EAAE,MAAM,KAAK,EACI,KAAK,EAAEovF,GAAGtvF,GAAG,MADH,KAAK,EAAU,GAARsqF,GAAGtqF,EAAE/B,IAAS,SAAFA,KAAcA,GAAiB,IAAbsL,EAAEsjF,GAAG,IAAI5+B,MAAU,CAAC,GAAG,IAAI0L,GAAG35D,EAAE,GAAG,MAAyB,KAAnBlK,EAAEkK,EAAE0sE,gBAAqBzuE,KAAKA,EAAE,CAAC6iF,KAAK9gF,EAAE2sE,aAAa3sE,EAAE0sE,eAAe52E,EAAE,MAAMkK,EAAEuvF,cAAc/U,GAAG8U,GAAGlqE,KAAK,KAAKplB,GAAGuJ,GAAG,MAAM+lF,GAAGtvF,GAAG,MAAM,KAAK,EAAU,GAARsqF,GAAGtqF,EAAE/B,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAfsL,EAAEvJ,EAAE8sE,WAAeh3E,GAAG,EAAE,EAAEmI,GAAG,CAAC,IAAIwH,EAAE,GAAGm0D,GAAG37D,GAAGu8B,EAAE,GAAG/0B,GAAEA,EAAE8D,EAAE9D,IAAK3P,IAAIA,EAAE2P,GAAGxH,IAAIu8B,EACjZ,GADmZv8B,EAAEnI,EAClZ,IAD4ZmI,GAAG,KAAXA,EAAEgwD,KAAIhwD,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAKgvF,GAAGhvF,EAAE,OAAOA,GAAU,CAAC+B,EAAEuvF,cAAc/U,GAAG8U,GAAGlqE,KAAK,KAAKplB,GAAG/B,GAAG,MAAMqxF,GAAGtvF,GAAG,MAAyB,QAAQ,MAAMvK,MAAMyK,EAAE,OAAkB,OAAVuuF,GAAGzuF,EAAEiuD,MAAYjuD,EAAE0uF,eAAe9yF,EAAEizF,GAAGzpE,KAAK,KAAKplB,GAAG,KAAK,SAASsqF,GAAGtqF,EAAEpE,GAAuD,IAApDA,IAAI2xF,GAAG3xF,IAAIyuF,GAAGrqF,EAAE0sE,gBAAgB9wE,EAAEoE,EAAE2sE,cAAc/wE,EAAMoE,EAAEA,EAAE2uF,gBAAgB,EAAE/yF,GAAG,CAAC,IAAIqC,EAAE,GAAG27D,GAAGh+D,GAAG2N,EAAE,GAAGtL,EAAE+B,EAAE/B,IAAI,EAAErC,IAAI2N,GAC1U,SAASilF,GAAGxuF,GAAG,GAAG,KAAO,GAAFu4D,IAAM,MAAM9iE,MAAMyK,EAAE,MAAW,GAAL4uF,KAAQ9uF,IAAIw8C,IAAG,KAAKx8C,EAAEysE,aAAaz2B,IAAG,CAAC,IAAIp6C,EAAEo6C,GAAM/3C,EAAEkxF,GAAGnvF,EAAEpE,GAAG,KAAK0xF,GAAGjD,MAAgBpsF,EAAEkxF,GAAGnvF,EAAfpE,EAAE+9D,GAAG35D,EAAEpE,UAA6BqC,EAAEkxF,GAAGnvF,EAAfpE,EAAE+9D,GAAG35D,EAAE,IAAgH,GAAnG,IAAIA,EAAEm3B,KAAK,IAAIl5B,IAAIs6D,IAAG,GAAGv4D,EAAE8rE,UAAU9rE,EAAE8rE,SAAQ,EAAG4O,GAAG16E,EAAE+rE,gBAAwB,KAARnwE,EAAE89D,GAAG15D,MAAW/B,EAAEkxF,GAAGnvF,EAAEpE,KAAQ,IAAIqC,EAAE,MAAMA,EAAEovF,GAAG2B,GAAGhvF,EAAE,GAAGsqF,GAAGtqF,EAAEpE,GAAG6yF,GAAGzuF,EAAEiuD,MAAKhwD,EAAuE,OAArE+B,EAAEovF,aAAapvF,EAAEqgB,QAAQ0qD,UAAU/qE,EAAEqvF,cAAczzF,EAAE0zF,GAAGtvF,GAAGyuF,GAAGzuF,EAAEiuD,MAAY,KACnR,SAASuhC,GAAGxvF,EAAEpE,GAAG,IAAIqC,EAAEs6D,GAAEA,IAAG,EAAE,IAAI,OAAOv4D,EAAEpE,GAAb,QAA4B,KAAJ28D,GAAEt6D,KAAUwvF,KAAKrP,OAAO,SAASqR,GAAGzvF,EAAEpE,GAAG,IAAIqC,EAAEs6D,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAOv4D,EAAEpE,GAAb,QAA4B,KAAJ28D,GAAEt6D,KAAUwvF,KAAKrP,OAAO,SAAS4J,GAAGhoF,EAAEpE,GAAG24B,GAAE64D,GAAGjzE,IAAIA,IAAIve,EAAE0xF,IAAI1xF,EAAE,SAAS4uF,KAAKrwE,GAAGizE,GAAG/sE,QAAQu2B,GAAEw2C,IAC5V,SAAS4B,GAAGhvF,EAAEpE,GAAGoE,EAAEovF,aAAa,KAAKpvF,EAAEqvF,cAAc,EAAE,IAAIpxF,EAAE+B,EAAEuvF,cAAiD,IAAlC,IAAItxF,IAAI+B,EAAEuvF,eAAe,EAAE9U,GAAGx8E,IAAO,OAAOq7D,GAAE,IAAIr7D,EAAEq7D,GAAE0R,OAAO,OAAO/sE,GAAG,CAAC,IAAIsL,EAAEtL,EAAE,OAAOsL,EAAE4tB,KAAK,KAAK,EAA6B,QAA3B5tB,EAAEA,EAAE/O,KAAKqhF,yBAA4B,IAAStyE,GAAGuyE,KAAK,MAAM,KAAK,EAAEzjC,KAAKzB,GAAE7gC,IAAG6gC,GAAEhnB,IAAGo0D,KAAK,MAAM,KAAK,EAAEzrC,GAAGhvC,GAAG,MAAM,KAAK,EAAE8uC,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGzB,GAAEid,IAAG,MAAM,KAAK,GAAGgrB,GAAGt1E,GAAG,MAAM,KAAK,GAAG,KAAK,GAAGihF,KAAKvsF,EAAEA,EAAE+sE,OAAOxuB,GAAEx8C,EAAEs5D,GAAEgpB,GAAGtiF,EAAEqgB,QAAQ,MAAM21B,GAAE77B,GAAGmzE,GAAG1xF,EAAE47D,GAAE,EAAE61B,GAAG,KAAKE,GAAGlD,GAAG7J,GAAG,EACvc,SAAS0O,GAAGlvF,EAAEpE,GAAG,OAAE,CAAC,IAAIqC,EAAEq7D,GAAE,IAAuB,GAAnBslB,KAAKsF,GAAG7jE,QAAQokE,GAAM/hC,GAAG,CAAC,IAAI,IAAIn5C,EAAEiZ,GAAEyoD,cAAc,OAAO1hE,GAAG,CAAC,IAAIzT,EAAEyT,EAAEpT,MAAM,OAAOL,IAAIA,EAAEu3B,QAAQ,MAAM9jB,EAAEA,EAAEuW,KAAK4iC,IAAG,EAAyC,GAAtChK,GAAG,EAAE6D,GAAE+Z,GAAE9zC,GAAE,KAAKogC,IAAG,EAAGuqC,GAAG9sE,QAAQ,KAAQ,OAAOpiB,GAAG,OAAOA,EAAE+sE,OAAO,CAACxT,GAAE,EAAE61B,GAAGzxF,EAAE09D,GAAE,KAAK,MAAMt5D,EAAE,CAAC,IAAIw6B,EAAEx6B,EAAEyF,EAAExH,EAAE+sE,OAAOhyD,EAAE/a,EAAE8I,EAAEnL,EAAoD,GAAlDA,EAAEo6C,GAAEh9B,EAAE0K,OAAO,KAAK1K,EAAEqpE,YAAYrpE,EAAEmpE,WAAW,KAAQ,OAAOp7E,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAEshD,KAAK,CAAC,IAAItiD,EAAEgB,EAAE,GAAG,KAAY,EAAPiS,EAAEgB,MAAQ,CAAC,IAAIne,EAAEmd,EAAE+xD,UAAUlvE,GAAGmd,EAAE0mE,YAAY7jF,EAAE6jF,YAAY1mE,EAAEiyD,cAAcpvE,EAAEovE,cAAcjyD,EAAEmmE,MAAMtjF,EAAEsjF,QACpfnmE,EAAE0mE,YAAY,KAAK1mE,EAAEiyD,cAAc,MAAM,IAAIlwD,EAAE,KAAe,EAAV84C,GAAExzC,SAAWxX,EAAEpD,EAAE,EAAE,CAAC,IAAIwV,EAAE,GAAGA,EAAE,KAAKpS,EAAEsuB,IAAI,CAAC,IAAIl3B,EAAE4I,EAAEoiE,cAAc,GAAG,OAAOhrE,EAAEgb,EAAE,OAAOhb,EAAEirE,eAAqB,CAAC,IAAIxkE,EAAEmC,EAAEs6E,cAAcloE,OAAE,IAASvU,EAAEsiF,YAAY,IAAKtiF,EAAEuiF,6BAA8BluE,IAAS,GAAGE,EAAE,CAAC,IAAIhU,EAAE4B,EAAE62E,YAAY,GAAG,OAAOz4E,EAAE,CAAC,IAAIuZ,EAAE,IAAI8jD,IAAI9jD,EAAEpQ,IAAIrK,GAAG8C,EAAE62E,YAAYl/D,OAAOvZ,EAAEmJ,IAAIrK,GAAG,GAAG,KAAY,EAAP8C,EAAEmR,MAAQ,CAA2C,GAA1CnR,EAAE6a,OAAO,GAAG1K,EAAE0K,OAAO,MAAM1K,EAAE0K,QAAQ,KAAQ,IAAI1K,EAAEme,IAAI,GAAG,OAAOne,EAAE+xD,UAAU/xD,EAAEme,IAAI,OAAO,CAAC,IAAIhpB,EAAE8xE,IAAI,EAAE,GAAG9xE,EAAEgpB,IAAI,EAAEkpD,GAAGrnE,EAAE7K,GAAG6K,EAAEmmE,OAAO,EAAE,MAAMn/E,EAAE+G,OAC5f,EAAOiS,EAAEpd,EAAE,IAAIoS,EAAEwsB,EAAEk1D,UAA+G,GAArG,OAAO1hF,GAAGA,EAAEwsB,EAAEk1D,UAAU,IAAI9E,GAAG7jF,EAAE,IAAIu9D,IAAIt2D,EAAEjJ,IAAIgB,EAAEgB,SAAgB,KAAXA,EAAEiH,EAAE6S,IAAI9a,MAAgBgB,EAAE,IAAIu9D,IAAIt2D,EAAEjJ,IAAIgB,EAAEgB,KAASA,EAAEioD,IAAIh2C,GAAG,CAACjS,EAAEqJ,IAAI4I,GAAG,IAAIwP,EAAEmnE,GAAGvqE,KAAK,KAAKoV,EAAEz0B,EAAEiT,GAAGjT,EAAEsiD,KAAK7/B,EAAEA,GAAG3f,EAAE6a,OAAO,KAAK7a,EAAEs2E,MAAMvjF,EAAE,MAAMoE,EAAE6I,EAAEA,EAAEmiE,aAAa,OAAOniE,GAAG9B,EAAEtR,OAAO48D,EAAGr5C,EAAExe,OAAO,qBAAqB,yLAAyL,IAAIg9D,KAAIA,GAAE,GAAGzwD,EAAE2jF,GAAG3jF,EAAEiS,GAAGnQ,EACpfpD,EAAE,EAAE,CAAC,OAAOoD,EAAEsuB,KAAK,KAAK,EAAEqD,EAAEzzB,EAAE8B,EAAE6a,OAAO,KAAK9nB,IAAIA,EAAEiN,EAAEs2E,OAAOvjF,EAAkB0kF,GAAGz3E,EAAbgiF,GAAGhiF,EAAE2xB,EAAE5+B,IAAW,MAAMoE,EAAE,KAAK,EAAEw6B,EAAEzzB,EAAE,IAAIgvC,EAAEltC,EAAErO,KAAKu6D,EAAElsD,EAAEgiE,UAAU,GAAG,KAAa,GAARhiE,EAAE6a,SAAY,oBAAoBqyB,EAAEwyC,0BAA0B,OAAOxzB,GAAG,oBAAoBA,EAAEm2B,oBAAoB,OAAOC,KAAKA,GAAGn8B,IAAI+F,KAAK,CAAClsD,EAAE6a,OAAO,KAAK9nB,IAAIA,EAAEiN,EAAEs2E,OAAOvjF,EAAkB0kF,GAAGz3E,EAAboiF,GAAGpiF,EAAE2xB,EAAE5+B,IAAW,MAAMoE,GAAG6I,EAAEA,EAAEmiE,aAAa,OAAOniE,GAAG+mF,GAAG3xF,GAAG,MAAMqxD,GAAI1zD,EAAE0zD,EAAGgK,KAAIr7D,GAAG,OAAOA,IAAIq7D,GAAEr7D,EAAEA,EAAE+sE,QAAQ,SAAS,OAC/a,SAAS+jB,KAAK,IAAI/uF,EAAEktF,GAAG7sE,QAAsB,OAAd6sE,GAAG7sE,QAAQokE,GAAU,OAAOzkF,EAAEykF,GAAGzkF,EAAE,SAASmvF,GAAGnvF,EAAEpE,GAAG,IAAIqC,EAAEs6D,GAAEA,IAAG,GAAG,IAAIhvD,EAAEwlF,KAA2B,IAAtBvyC,KAAIx8C,GAAGg2C,KAAIp6C,GAAGozF,GAAGhvF,EAAEpE,KAAM,IAAIi0F,KAAK,MAAM,MAAM/5F,GAAGo5F,GAAGlvF,EAAElK,GAAkC,GAAtB8oF,KAAKrmB,GAAEt6D,EAAEivF,GAAG7sE,QAAQ9W,EAAK,OAAO+vD,GAAE,MAAM7jE,MAAMyK,EAAE,MAAiB,OAAXs8C,GAAE,KAAKxG,GAAE,EAASwhB,GAAE,SAASq4B,KAAK,KAAK,OAAOv2B,IAAGw2B,GAAGx2B,IAAG,SAAS21B,KAAK,KAAK,OAAO31B,KAAIqjB,MAAMmT,GAAGx2B,IAAG,SAASw2B,GAAG9vF,GAAG,IAAIpE,EAAEwjD,GAAGp/C,EAAE+qE,UAAU/qE,EAAEma,IAAIna,EAAEmjF,cAAcnjF,EAAE2jF,aAAa,OAAO/nF,EAAEg0F,GAAG5vF,GAAGs5D,GAAE19D,EAAEuxF,GAAG9sE,QAAQ,KAC5a,SAASuvE,GAAG5vF,GAAG,IAAIpE,EAAEoE,EAAE,EAAE,CAAC,IAAI/B,EAAErC,EAAEmvE,UAAqB,GAAX/qE,EAAEpE,EAAEovE,OAAU,KAAa,KAARpvE,EAAE8nB,OAAY,CAAc,GAAG,QAAhBzlB,EAAE6rF,GAAG7rF,EAAErC,EAAEue,KAAqB,YAAJm/C,GAAEr7D,GAAa,GAAG,MAAPA,EAAErC,GAAYu7B,KAAK,KAAKl5B,EAAEk5B,KAAK,OAAOl5B,EAAEgtE,eAAe,KAAQ,WAAH9wD,KAAgB,KAAY,EAAPlc,EAAE+b,MAAQ,CAAC,IAAI,IAAIzQ,EAAE,EAAEzT,EAAEmI,EAAE+sC,MAAM,OAAOl1C,GAAGyT,GAAGzT,EAAEqpF,MAAMrpF,EAAEipF,WAAWjpF,EAAEA,EAAEq1E,QAAQltE,EAAE8gF,WAAWx1E,EAAE,OAAOvJ,GAAG,KAAa,KAARA,EAAE0jB,SAAc,OAAO1jB,EAAEqiF,cAAcriF,EAAEqiF,YAAYzmF,EAAEymF,aAAa,OAAOzmF,EAAEumF,aAAa,OAAOniF,EAAEmiF,aAAaniF,EAAEmiF,WAAWC,WAAWxmF,EAAEymF,aAAariF,EAAEmiF,WAAWvmF,EAAEumF,YAAY,EAAEvmF,EAAE8nB,QAAQ,OAC/e1jB,EAAEmiF,WAAWniF,EAAEmiF,WAAWC,WAAWxmF,EAAEoE,EAAEqiF,YAAYzmF,EAAEoE,EAAEmiF,WAAWvmF,QAAQ,CAAS,GAAG,QAAXqC,EAAEwsF,GAAG7uF,IAAkC,OAAlBqC,EAAEylB,OAAO,UAAK41C,GAAEr7D,GAAS,OAAO+B,IAAIA,EAAEqiF,YAAYriF,EAAEmiF,WAAW,KAAKniF,EAAE0jB,OAAO,MAAkB,GAAG,QAAf9nB,EAAEA,EAAEuvE,SAAyB,YAAJ7R,GAAE19D,GAAS09D,GAAE19D,EAAEoE,QAAQ,OAAOpE,GAAG,IAAI47D,KAAIA,GAAE,GAAG,SAAS83B,GAAGtvF,GAAG,IAAIpE,EAAEoiF,KAA8B,OAAzBE,GAAG,GAAG6R,GAAG3qE,KAAK,KAAKplB,EAAEpE,IAAW,KACtT,SAASm0F,GAAG/vF,EAAEpE,GAAG,GAAGkzF,WAAW,OAAOnB,IAAI,GAAG,KAAO,GAAFp1B,IAAM,MAAM9iE,MAAMyK,EAAE,MAAM,IAAIjC,EAAE+B,EAAEovF,aAAa,GAAG,OAAOnxF,EAAE,OAAO,KAA2C,GAAtC+B,EAAEovF,aAAa,KAAKpvF,EAAEqvF,cAAc,EAAKpxF,IAAI+B,EAAEqgB,QAAQ,MAAM5qB,MAAMyK,EAAE,MAAMF,EAAE0uF,aAAa,KAAK,IAAInlF,EAAEtL,EAAEkhF,MAAMlhF,EAAE8gF,WAAWjpF,EAAEyT,EAAEixB,EAAEx6B,EAAEwsE,cAAc12E,EAAEkK,EAAEwsE,aAAa12E,EAAEkK,EAAE0sE,eAAe,EAAE1sE,EAAE2sE,YAAY,EAAE3sE,EAAEysE,cAAc32E,EAAEkK,EAAEylF,kBAAkB3vF,EAAEkK,EAAE4sE,gBAAgB92E,EAAEA,EAAEkK,EAAE6sE,cAAc,IAAI,IAAIpnE,EAAEzF,EAAE8sE,WAAW9zD,EAAEhZ,EAAE2uF,gBAAgB,EAAEn0D,GAAG,CAAC,IAAIzzB,EAAE,GAAG6yD,GAAGp/B,GAAGz0B,EAAE,GAAGgB,EAAEjR,EAAEiR,GAAG,EAAEtB,EAAEsB,IAAI,EAAEiS,EAAEjS,IAAI,EAAEyzB,IAAIz0B,EACnV,GADqV,OACjfgoF,IAAI,KAAO,GAAFxkF,IAAOwkF,GAAG/+B,IAAIhvD,IAAI+tF,GAAGl8B,OAAO7xD,GAAGA,IAAIw8C,KAAI8c,GAAE9c,GAAE,KAAKxG,GAAE,GAAG,EAAE/3C,EAAEylB,MAAM,OAAOzlB,EAAEkkF,YAAYlkF,EAAEkkF,WAAWC,WAAWnkF,EAAEsL,EAAEtL,EAAEokF,aAAa94E,EAAEtL,EAAEsL,EAAEtL,EAAEokF,YAAe,OAAO94E,EAAE,CAAwC,GAAvCzT,EAAEyiE,GAAEA,IAAG,GAAG40B,GAAG9sE,QAAQ,KAAK65D,GAAG7kB,GAAawiB,GAAVpyE,EAAEiyE,MAAc,CAAC,GAAG,mBAAmBjyE,EAAEuT,EAAE,CAAC7d,MAAMsK,EAAE4yE,eAAej9E,IAAIqK,EAAE6yE,mBAAmBt4E,EAAE,GAAGgZ,GAAGA,EAAEvT,EAAE2gE,gBAAgBptD,EAAEw/D,aAAa7yE,QAAQI,EAAEiT,EAAEy/D,cAAcz/D,EAAEy/D,iBAAiB,IAAI1yE,EAAEiqF,WAAW,CAACh3E,EAAEjT,EAAEwyE,WAAW/9C,EAAEz0B,EAAE2yE,aAAa3xE,EAAEhB,EAAE4yE,UAAU5yE,EAAEA,EAAE6yE,YAAY,IAAI5/D,EAAEmuD,SAASpgE,EAAEogE,SAAS,MAAM7X,GAAIt2C,EAAE,KACnf,MAAMhZ,EAAE,IAAInE,EAAE,EAAEkf,GAAG,EAAElS,GAAG,EAAEoS,EAAE,EAAEhb,EAAE,EAAEyG,EAAEjB,EAAEwB,EAAE,KAAKrL,EAAE,OAAO,CAAC,IAAI,IAAI4kB,EAAK9Z,IAAIsS,GAAG,IAAIwhB,GAAG,IAAI9zB,EAAEygE,WAAWpsD,EAAElf,EAAE2+B,GAAG9zB,IAAIK,GAAG,IAAIhB,GAAG,IAAIW,EAAEygE,WAAWt+D,EAAEhN,EAAEkK,GAAG,IAAIW,EAAEygE,WAAWtrE,GAAG6K,EAAE0gE,UAAU3yE,QAAW,QAAQ+rB,EAAE9Z,EAAEmgE,aAAkB5/D,EAAEP,EAAEA,EAAE8Z,EAAE,OAAO,CAAC,GAAG9Z,IAAIjB,EAAE,MAAM7J,EAA8C,GAA5CqL,IAAI+R,KAAKiC,IAAIuf,IAAIzf,EAAElf,GAAGoL,IAAIF,KAAK9G,IAAI8F,IAAI8C,EAAEhN,GAAM,QAAQ2kB,EAAE9Z,EAAE6wE,aAAa,MAAUtwE,GAAJP,EAAEO,GAAM2jE,WAAWlkE,EAAE8Z,EAAExH,GAAG,IAAI+B,IAAI,IAAIlS,EAAE,KAAK,CAAC1N,MAAM4f,EAAE3f,IAAIyN,QAAQmQ,EAAE,KAAKA,EAAEA,GAAG,CAAC7d,MAAM,EAAEC,IAAI,QAAQ4d,EAAE,KAAKmhE,GAAG,CAAC8V,YAAYxqF,EAAEyqF,eAAel3E,GAAGq8C,IAAG,EAAGg5B,GAAG,KAAKC,IAAG,EAAGz0B,GAAEtwD,EAAE,GAAG,IAAI4mF,KAAK,MAAM7gC,GAAI,GAAG,OACvgBuK,GAAE,MAAMpkE,MAAMyK,EAAE,MAAMsrF,GAAG3xB,GAAEvK,GAAIuK,GAAEA,GAAEuoB,kBAAiB,OAAOvoB,IAAGw0B,GAAG,KAAKx0B,GAAEtwD,EAAE,GAAG,IAAI,IAAI9D,EAAEzF,EAAE,OAAO65D,IAAG,CAAC,IAAI1rD,EAAE0rD,GAAEn2C,MAA+B,GAAvB,GAAFvV,GAAM2lD,GAAG+F,GAAEgR,UAAU,IAAS,IAAF18D,EAAM,CAAC,IAAIH,EAAE6rD,GAAEkR,UAAU,GAAG,OAAO/8D,EAAE,CAAC,IAAIwa,EAAExa,EAAEuzD,IAAI,OAAO/4C,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAEnI,QAAQ,OAAO,OAAS,KAAFlS,GAAQ,KAAK,EAAEo+E,GAAG1yB,IAAGA,GAAEn2C,QAAQ,EAAE,MAAM,KAAK,EAAE6oE,GAAG1yB,IAAGA,GAAEn2C,QAAQ,EAAEkpE,GAAG/yB,GAAEkR,UAAUlR,IAAG,MAAM,KAAK,KAAKA,GAAEn2C,QAAQ,KAAK,MAAM,KAAK,KAAKm2C,GAAEn2C,QAAQ,KAAKkpE,GAAG/yB,GAAEkR,UAAUlR,IAAG,MAAM,KAAK,EAAE+yB,GAAG/yB,GAAEkR,UAAUlR,IAAG,MAAM,KAAK,EAAMuyB,GAAG3mF,EAAPuT,EAAE6gD,IAAU,IAAI9K,EAAE/1C,EAAE+xD,UAAUshB,GAAGrzE,GAAG,OACnf+1C,GAAGs9B,GAAGt9B,GAAG8K,GAAEA,GAAEuoB,YAAY,MAAM9yB,GAAI,GAAG,OAAOuK,GAAE,MAAMpkE,MAAMyK,EAAE,MAAMsrF,GAAG3xB,GAAEvK,GAAIuK,GAAEA,GAAEuoB,kBAAiB,OAAOvoB,IAAkD,GAA/CrxC,EAAE2xD,GAAGnsE,EAAE0pE,KAAKvpE,EAAEqa,EAAEynE,YAAYxqF,EAAE+iB,EAAE0nE,eAAkBliF,IAAIG,GAAGA,GAAGA,EAAEi4D,eAAeoR,GAAGrpE,EAAEi4D,cAAc4c,gBAAgB70E,GAAG,CAAC,OAAO1I,GAAGoyE,GAAG1pE,KAAKH,EAAEvI,EAAEtK,WAAc,KAARqtB,EAAE/iB,EAAErK,OAAiBotB,EAAExa,GAAG,mBAAmBG,GAAGA,EAAEkqE,eAAerqE,EAAEG,EAAEmqE,aAAah6E,KAAKC,IAAIiqB,EAAEra,EAAEza,MAAMe,UAAU+zB,GAAGxa,EAAEG,EAAEi4D,eAAevV,WAAW7iD,EAAEwqE,aAAa7yE,QAAS8yE,eAAejwD,EAAEA,EAAEiwD,eAAez/D,EAAE7K,EAAEs4D,YAAYhyE,OAAOs6D,EAAEzwD,KAAKC,IAAIkH,EAAEtK,MAAM6d,GAAGvT,OAAE,IACpfA,EAAErK,IAAI2zD,EAAEzwD,KAAKC,IAAIkH,EAAErK,IAAI4d,IAAIwP,EAAE4nE,QAAQrhC,EAAEtpD,IAAIuT,EAAEvT,EAAEA,EAAEspD,EAAEA,EAAE/1C,GAAGA,EAAEs+D,GAAGnpE,EAAE4gD,GAAGv0B,EAAE88C,GAAGnpE,EAAE1I,GAAGuT,GAAGwhB,IAAI,IAAIhS,EAAEwnE,YAAYxnE,EAAE+vD,aAAav/D,EAAE+zB,MAAMvkB,EAAEkwD,eAAe1/D,EAAEjc,QAAQyrB,EAAEmwD,YAAYn+C,EAAEuS,MAAMvkB,EAAEowD,cAAcp+C,EAAEz9B,WAAUiR,EAAEA,EAAEqiF,eAAgBC,SAASt3E,EAAE+zB,KAAK/zB,EAAEjc,QAAQyrB,EAAE+nE,kBAAkBxhC,EAAEtpD,GAAG+iB,EAAEgoE,SAASxiF,GAAGwa,EAAE4nE,OAAO51D,EAAEuS,KAAKvS,EAAEz9B,UAAUiR,EAAEyiF,OAAOj2D,EAAEuS,KAAKvS,EAAEz9B,QAAQyrB,EAAEgoE,SAASxiF,OAAQA,EAAE,GAAG,IAAIwa,EAAEra,EAAEqa,EAAEA,EAAEoiD,YAAY,IAAIpiD,EAAE2+C,UAAUn5D,EAAE1W,KAAK,CAACwzF,QAAQtiE,EAAE5c,KAAK4c,EAAEkoE,WAAWC,IAAInoE,EAAEooE,YAAmD,IAAvC,oBAAoBziF,EAAE29E,OAAO39E,EAAE29E,QAAY39E,EACrf,EAAEA,EAAEH,EAAEvZ,OAAO0Z,KAAIqa,EAAExa,EAAEG,IAAK28E,QAAQ4F,WAAWloE,EAAE5c,KAAK4c,EAAEsiE,QAAQ8F,UAAUpoE,EAAEmoE,IAAIt7B,KAAK6kB,GAAGC,GAAGD,GAAG,KAAKl6E,EAAEqgB,QAAQpiB,EAAE47D,GAAEtwD,EAAE,GAAG,IAAI,IAAI4E,EAAEnO,EAAE,OAAO65D,IAAG,CAAC,IAAI9jB,EAAE8jB,GAAEn2C,MAAgC,GAAxB,GAAFqyB,GAAM41C,GAAGx9E,EAAE0rD,GAAEkR,UAAUlR,IAAQ,IAAF9jB,EAAM,CAAC/nC,OAAE,EAAO,IAAI+mD,EAAE8E,GAAE0H,IAAI,GAAG,OAAOxM,EAAE,CAAC,IAAI9C,EAAE4H,GAAEgR,UAAiBhR,GAAE1iC,IAA8BnpB,EAAEikD,EAAE,oBAAoB8C,EAAEA,EAAE/mD,GAAG+mD,EAAE10C,QAAQrS,GAAG6rD,GAAEA,GAAEuoB,YAAY,MAAM9yB,GAAI,GAAG,OAAOuK,GAAE,MAAMpkE,MAAMyK,EAAE,MAAMsrF,GAAG3xB,GAAEvK,GAAIuK,GAAEA,GAAEuoB,kBAAiB,OAAOvoB,IAAGA,GAAE,KAAK8jB,KAAKplB,GAAEziE,OAAOkK,EAAEqgB,QAAQpiB,EAAE,GAAGyvF,GAAGA,IAAG,EAAGC,GAAG3tF,EAAE4tF,GAAGhyF,OAAO,IAAIi+D,GAAEtwD,EAAE,OAAOswD,IAAGj+D,EACpfi+D,GAAEuoB,WAAWvoB,GAAEuoB,WAAW,KAAa,EAARvoB,GAAEn2C,SAAUqyB,EAAE8jB,IAAIsR,QAAQ,KAAKp1B,EAAE80B,UAAU,MAAMhR,GAAEj+D,EAAqF,GAAlE,KAAjB2N,EAAEvJ,EAAEwsE,gBAAqB2e,GAAG,MAAM,IAAI5hF,EAAEvJ,IAAIiuF,GAAGD,MAAMA,GAAG,EAAEC,GAAGjuF,GAAGguF,GAAG,EAAE/vF,EAAEA,EAAE4sE,UAAayR,IAAI,oBAAoBA,GAAGuU,kBAAkB,IAAIvU,GAAGuU,kBAAkBxU,GAAGp+E,OAAE,EAAO,MAAsB,GAAhBA,EAAEoiB,QAAQqD,QAAW,MAAM4rC,IAAe,GAAVm/B,GAAGzuF,EAAEiuD,MAAQ88B,GAAG,MAAMA,IAAG,EAAG/qF,EAAEgrF,GAAGA,GAAG,KAAKhrF,EAAE,OAAG,KAAO,EAAFu4D,KAAiB6lB,KAAL,KACjW,SAAS+R,KAAK,KAAK,OAAOt2B,IAAG,CAAC,IAAI75D,EAAE65D,GAAEkR,UAAUujB,IAAI,OAAOD,KAAK,KAAa,EAARx0B,GAAEn2C,OAAS80C,GAAGqB,GAAEw0B,MAAMC,IAAG,GAAI,KAAKz0B,GAAE1iC,KAAK61D,GAAGhtF,EAAE65D,KAAIrB,GAAGqB,GAAEw0B,MAAMC,IAAG,IAAK,IAAI1yF,EAAEi+D,GAAEn2C,MAAM,KAAO,IAAF9nB,IAAQ6vF,GAAGzrF,EAAE65D,IAAG,KAAO,IAAFj+D,IAAQ8xF,KAAKA,IAAG,EAAGvP,GAAG,IAAG,WAAgB,OAAL2Q,KAAY,SAAQj1B,GAAEA,GAAEuoB,YAAY,SAAS0M,KAAK,GAAG,KAAKlB,GAAG,CAAC,IAAI5tF,EAAE,GAAG4tF,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAU1P,GAAGl+E,EAAE8wF,IAAI,OAAM,EAAG,SAASjF,GAAG7rF,EAAEpE,GAAGiyF,GAAGv2F,KAAKsE,EAAEoE,GAAG0tF,KAAKA,IAAG,EAAGvP,GAAG,IAAG,WAAgB,OAAL2Q,KAAY,SAAQ,SAASlD,GAAG5rF,EAAEpE,GAAGkyF,GAAGx2F,KAAKsE,EAAEoE,GAAG0tF,KAAKA,IAAG,EAAGvP,GAAG,IAAG,WAAgB,OAAL2Q,KAAY,SACzd,SAASgC,KAAK,GAAG,OAAOnD,GAAG,OAAM,EAAG,IAAI3tF,EAAE2tF,GAAW,GAARA,GAAG,KAAQ,KAAO,GAAFp1B,IAAM,MAAM9iE,MAAMyK,EAAE,MAAM,IAAItE,EAAE28D,GAAEA,IAAG,GAAG,IAAIt6D,EAAE6vF,GAAGA,GAAG,GAAG,IAAI,IAAIvkF,EAAE,EAAEA,EAAEtL,EAAExJ,OAAO8U,GAAG,EAAE,CAAC,IAAIzT,EAAEmI,EAAEsL,GAAGixB,EAAEv8B,EAAEsL,EAAE,GAAG9D,EAAE3P,EAAE8sC,QAAyB,GAAjB9sC,EAAE8sC,aAAQ,EAAU,oBAAoBn9B,EAAE,IAAIA,IAAI,MAAMsB,GAAG,GAAG,OAAOyzB,EAAE,MAAM/kC,MAAMyK,EAAE,MAAMsrF,GAAGhxD,EAAEzzB,IAAe,IAAX9I,EAAE4vF,GAAGA,GAAG,GAAOtkF,EAAE,EAAEA,EAAEtL,EAAExJ,OAAO8U,GAAG,EAAE,CAACzT,EAAEmI,EAAEsL,GAAGixB,EAAEv8B,EAAEsL,EAAE,GAAG,IAAI,IAAIyP,EAAEljB,EAAE5C,OAAO4C,EAAE8sC,QAAQ5pB,IAAI,MAAMjS,GAAG,GAAG,OAAOyzB,EAAE,MAAM/kC,MAAMyK,EAAE,MAAMsrF,GAAGhxD,EAAEzzB,IAAI,IAAIiS,EAAEhZ,EAAEqgB,QAAQgiE,YAAY,OAAOrpE,GAAGhZ,EAAEgZ,EAAEopE,WAAWppE,EAAEopE,WAAW,KAAa,EAARppE,EAAE0K,QAAU1K,EAAEmyD,QACjf,KAAKnyD,EAAE6xD,UAAU,MAAM7xD,EAAEhZ,EAAW,OAATu4D,GAAE38D,EAAEwiF,MAAW,EAAG,SAAS2S,GAAG/wF,EAAEpE,EAAEqC,GAAyBoiF,GAAGrgF,EAAfpE,EAAEivF,GAAG7qF,EAAfpE,EAAE8uF,GAAGzsF,EAAErC,GAAY,IAAWA,EAAEklF,KAAe,QAAV9gF,EAAEuuF,GAAGvuF,EAAE,MAAcs7D,GAAGt7D,EAAE,EAAEpE,GAAG6yF,GAAGzuF,EAAEpE,IACzI,SAAS4vF,GAAGxrF,EAAEpE,GAAG,GAAG,IAAIoE,EAAEm3B,IAAI45D,GAAG/wF,EAAEA,EAAEpE,QAAQ,IAAI,IAAIqC,EAAE+B,EAAEgrE,OAAO,OAAO/sE,GAAG,CAAC,GAAG,IAAIA,EAAEk5B,IAAI,CAAC45D,GAAG9yF,EAAE+B,EAAEpE,GAAG,MAAW,GAAG,IAAIqC,EAAEk5B,IAAI,CAAC,IAAI5tB,EAAEtL,EAAE4sE,UAAU,GAAG,oBAAoB5sE,EAAEzD,KAAK+tF,0BAA0B,oBAAoBh/E,EAAE2hF,oBAAoB,OAAOC,KAAKA,GAAGn8B,IAAIzlD,IAAI,CAAW,IAAIzT,EAAEm1F,GAAGhtF,EAAnB+B,EAAE0qF,GAAG9uF,EAAEoE,GAAgB,GAA4B,GAAzBqgF,GAAGpiF,EAAEnI,GAAGA,EAAEgrF,KAAkB,QAAb7iF,EAAEswF,GAAGtwF,EAAE,IAAeq9D,GAAGr9D,EAAE,EAAEnI,GAAG24F,GAAGxwF,EAAEnI,QAAQ,GAAG,oBAAoByT,EAAE2hF,oBAAoB,OAAOC,KAAKA,GAAGn8B,IAAIzlD,IAAI,IAAIA,EAAE2hF,kBAAkBtvF,EAAEoE,GAAG,MAAMw6B,IAAI,OAAOv8B,EAAEA,EAAE+sE,QACpd,SAAS2kB,GAAG3vF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEvJ,EAAE0vF,UAAU,OAAOnmF,GAAGA,EAAEsoD,OAAOj2D,GAAGA,EAAEklF,KAAK9gF,EAAE2sE,aAAa3sE,EAAE0sE,eAAezuE,EAAEu+C,KAAIx8C,IAAIg2C,GAAE/3C,KAAKA,IAAI,IAAIu5D,IAAG,IAAIA,KAAM,SAAFxhB,MAAcA,IAAG,IAAIiY,KAAI4+B,GAAGmC,GAAGhvF,EAAE,GAAGutF,IAAItvF,GAAGwwF,GAAGzuF,EAAEpE,GAAG,SAASmxF,GAAG/sF,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAE6qE,UAAU,OAAO5sE,GAAGA,EAAE4zD,OAAOj2D,GAAO,KAAJA,EAAE,KAAmB,KAAO,GAAhBA,EAAEoE,EAAEga,OAAepe,EAAE,EAAE,KAAO,EAAFA,GAAKA,EAAE,KAAKoiF,KAAK,EAAE,GAAG,IAAImQ,KAAKA,GAAGb,IAAuB,KAAnB1xF,EAAEs+D,GAAG,UAAUi0B,OAAYvyF,EAAE,WAAWqC,EAAE6iF,KAAe,QAAV9gF,EAAEuuF,GAAGvuF,EAAEpE,MAAc0/D,GAAGt7D,EAAEpE,EAAEqC,GAAGwwF,GAAGzuF,EAAE/B,IAUjZ,SAAS4zB,GAAG7xB,EAAEpE,EAAEqC,EAAEsL,GAAGvT,KAAKmhC,IAAIn3B,EAAEhK,KAAK3B,IAAI4J,EAAEjI,KAAKm1E,QAAQn1E,KAAKg1C,MAAMh1C,KAAKg1E,OAAOh1E,KAAK60E,UAAU70E,KAAKwE,KAAKxE,KAAKwsF,YAAY,KAAKxsF,KAAKwV,MAAM,EAAExV,KAAKurE,IAAI,KAAKvrE,KAAK2tF,aAAa/nF,EAAE5F,KAAKipF,aAAajpF,KAAKi1E,cAAcj1E,KAAK0pF,YAAY1pF,KAAKmtF,cAAc,KAAKntF,KAAKgkB,KAAKzQ,EAAEvT,KAAK0tB,MAAM,EAAE1tB,KAAKmsF,WAAWnsF,KAAKqsF,YAAYrsF,KAAKosF,WAAW,KAAKpsF,KAAK+oF,WAAW/oF,KAAKmpF,MAAM,EAAEnpF,KAAK+0E,UAAU,KAAK,SAAS0Y,GAAGzjF,EAAEpE,EAAEqC,EAAEsL,GAAG,OAAO,IAAIsoB,GAAG7xB,EAAEpE,EAAEqC,EAAEsL,GAAG,SAASo+E,GAAG3nF,GAAiB,UAAdA,EAAEA,EAAExM,aAAuBwM,EAAEmhE,kBAErd,SAASmhB,GAAGtiF,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAE+qE,UACuB,OADb,OAAO9sE,IAAGA,EAAEwlF,GAAGzjF,EAAEm3B,IAAIv7B,EAAEoE,EAAE3L,IAAI2L,EAAEga,OAAQwoE,YAAYxiF,EAAEwiF,YAAYvkF,EAAEzD,KAAKwF,EAAExF,KAAKyD,EAAE4sE,UAAU7qE,EAAE6qE,UAAU5sE,EAAE8sE,UAAU/qE,EAAEA,EAAE+qE,UAAU9sE,IAAIA,EAAE0lF,aAAa/nF,EAAEqC,EAAEzD,KAAKwF,EAAExF,KAAKyD,EAAEylB,MAAM,EAAEzlB,EAAEmkF,WAAW,KAAKnkF,EAAEokF,YAAY,KAAKpkF,EAAEkkF,WAAW,MAAMlkF,EAAE8gF,WAAW/+E,EAAE++E,WAAW9gF,EAAEkhF,MAAMn/E,EAAEm/E,MAAMlhF,EAAE+sC,MAAMhrC,EAAEgrC,MAAM/sC,EAAEklF,cAAcnjF,EAAEmjF,cAAcllF,EAAEgtE,cAAcjrE,EAAEirE,cAAchtE,EAAEyhF,YAAY1/E,EAAE0/E,YAAY9jF,EAAEoE,EAAEi/E,aAAahhF,EAAEghF,aAAa,OAAOrjF,EAAE,KAAK,CAACujF,MAAMvjF,EAAEujF,MAAMD,aAAatjF,EAAEsjF,cAC3ejhF,EAAEktE,QAAQnrE,EAAEmrE,QAAQltE,EAAEuN,MAAMxL,EAAEwL,MAAMvN,EAAEsjE,IAAIvhE,EAAEuhE,IAAWtjE,EACvD,SAASwkF,GAAGziF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,EAAE0kC,GAAG,IAAI/0B,EAAE,EAAM,GAAJ8D,EAAEvJ,EAAK,oBAAoBA,EAAE2nF,GAAG3nF,KAAKyF,EAAE,QAAQ,GAAG,kBAAkBzF,EAAEyF,EAAE,OAAOzF,EAAE,OAAOA,GAAG,KAAK0uD,EAAG,OAAOk0B,GAAG3kF,EAAE2iB,SAAS9qB,EAAE0kC,EAAE5+B,GAAG,KAAK21D,EAAG9rD,EAAE,EAAE3P,GAAG,GAAG,MAAM,KAAK65D,EAAGlqD,EAAE,EAAE3P,GAAG,EAAE,MAAM,KAAKm6D,EAAG,OAAOjwD,EAAEyjF,GAAG,GAAGxlF,EAAErC,EAAI,EAAF9F,IAAO0sF,YAAYvyB,EAAGjwD,EAAExF,KAAKy1D,EAAGjwD,EAAEm/E,MAAM3kD,EAAEx6B,EAAE,KAAKqwD,EAAG,OAAOrwD,EAAEyjF,GAAG,GAAGxlF,EAAErC,EAAE9F,IAAK0E,KAAK61D,EAAGrwD,EAAEwiF,YAAYnyB,EAAGrwD,EAAEm/E,MAAM3kD,EAAEx6B,EAAE,KAAK4vD,EAAG,OAAO5vD,EAAEyjF,GAAG,GAAGxlF,EAAErC,EAAE9F,IAAK0sF,YAAY5yB,EAAG5vD,EAAEm/E,MAAM3kD,EAAEx6B,EAAE,KAAKivD,EAAG,OAAOm6B,GAAGnrF,EAAEnI,EAAE0kC,EAAE5+B,GAAG,KAAKizD,EAAG,OAAO7uD,EAAEyjF,GAAG,GAAGxlF,EAAErC,EAAE9F,IAAK0sF,YAAY3zB,EAAG7uD,EAAEm/E,MAAM3kD,EAAEx6B,EAAE,QAAQ,GAAG,kBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAE2hE,UAAU,KAAKzR,EAAGzqD,EAAE,GAAG,MAAMzF,EAAE,KAAKmwD,EAAG1qD,EAAE,EAAE,MAAMzF,EAAE,KAAKwvD,EAAG/pD,EAAE,GAAG,MAAMzF,EAAE,KAAK6vD,EAAGpqD,EAAE,GAAG,MAAMzF,EAAE,KAAK8vD,EAAGrqD,EAAE,GAAG8D,EAAE,KAAK,MAAMvJ,EAAE,KAAK+vD,EAAGtqD,EAAE,GAAG,MAAMzF,EAAE,MAAMvK,MAAMyK,EAAE,IAAI,MAAMF,EAAEA,SAASA,EAAE,KAAuD,OAAjDpE,EAAE6nF,GAAGh+E,EAAExH,EAAErC,EAAE9F,IAAK0sF,YAAYxiF,EAAEpE,EAAEpB,KAAK+O,EAAE3N,EAAEujF,MAAM3kD,EAAS5+B,EAAE,SAASgnF,GAAG5iF,EAAEpE,EAAEqC,EAAEsL,GAA2B,OAAxBvJ,EAAEyjF,GAAG,EAAEzjF,EAAEuJ,EAAE3N,IAAKujF,MAAMlhF,EAAS+B,EAAE,SAASopF,GAAGppF,EAAEpE,EAAEqC,EAAEsL,GAA6C,OAA1CvJ,EAAEyjF,GAAG,GAAGzjF,EAAEuJ,EAAE3N,IAAK4mF,YAAYvzB,EAAGjvD,EAAEm/E,MAAMlhF,EAAS+B,EAAE,SAASuiF,GAAGviF,EAAEpE,EAAEqC,GAA8B,OAA3B+B,EAAEyjF,GAAG,EAAEzjF,EAAE,KAAKpE,IAAKujF,MAAMlhF,EAAS+B,EAClc,SAAS2iF,GAAG3iF,EAAEpE,EAAEqC,GAA8J,OAA3JrC,EAAE6nF,GAAG,EAAE,OAAOzjF,EAAE4gB,SAAS5gB,EAAE4gB,SAAS,GAAG5gB,EAAE3L,IAAIuH,IAAKujF,MAAMlhF,EAAErC,EAAEivE,UAAU,CAACkB,cAAc/rE,EAAE+rE,cAAcilB,gBAAgB,KAAKtO,eAAe1iF,EAAE0iF,gBAAuB9mF,EACrL,SAASq1F,GAAGjxF,EAAEpE,EAAEqC,GAAGjI,KAAKmhC,IAAIv7B,EAAE5F,KAAK+1E,cAAc/rE,EAAEhK,KAAKo5F,aAAap5F,KAAK05F,UAAU15F,KAAKqqB,QAAQrqB,KAAKg7F,gBAAgB,KAAKh7F,KAAKu5F,eAAe,EAAEv5F,KAAKyyF,eAAezyF,KAAKqwB,QAAQ,KAAKrwB,KAAK81E,QAAQ7tE,EAAEjI,KAAK04F,aAAa,KAAK14F,KAAK44F,iBAAiB,EAAE54F,KAAK82E,WAAW9S,GAAG,GAAGhkE,KAAK24F,gBAAgB30B,IAAI,GAAGhkE,KAAK42E,eAAe52E,KAAKq5F,cAAcr5F,KAAKyvF,iBAAiBzvF,KAAKy2E,aAAaz2E,KAAK22E,YAAY32E,KAAK02E,eAAe12E,KAAKw2E,aAAa,EAAEx2E,KAAK62E,cAAc7S,GAAG,GAAGhkE,KAAKk7F,gCAAgC,KAC7e,SAASC,GAAGnxF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE,EAAEnS,UAAU3C,aAAQ,IAAS2C,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACuqE,SAASnT,EAAGn6D,IAAI,MAAMkV,EAAE,KAAK,GAAGA,EAAEqX,SAAS5gB,EAAE+rE,cAAcnwE,EAAE8mF,eAAezkF,GACxK,SAASmzF,GAAGpxF,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIzT,EAAE8F,EAAEykB,QAAQma,EAAEsmD,KAAKr7E,EAAEs7E,GAAGjrF,GAAGkK,EAAE,GAAG/B,EAAE,CAAqBrC,EAAE,CAAC,GAAGq8D,GAA1Bh6D,EAAEA,EAAE4iF,mBAA8B5iF,GAAG,IAAIA,EAAEk5B,IAAI,MAAM1hC,MAAMyK,EAAE,MAAM,IAAI8Y,EAAE/a,EAAE,EAAE,CAAC,OAAO+a,EAAEme,KAAK,KAAK,EAAEne,EAAEA,EAAE6xD,UAAUxkD,QAAQ,MAAMzqB,EAAE,KAAK,EAAE,GAAGggF,GAAG5iE,EAAExe,MAAM,CAACwe,EAAEA,EAAE6xD,UAAUsR,0CAA0C,MAAMvgF,GAAGod,EAAEA,EAAEgyD,aAAa,OAAOhyD,GAAG,MAAMvjB,MAAMyK,EAAE,MAAO,GAAG,IAAIjC,EAAEk5B,IAAI,CAAC,IAAIpwB,EAAE9I,EAAEzD,KAAK,GAAGohF,GAAG70E,GAAG,CAAC9I,EAAE+9E,GAAG/9E,EAAE8I,EAAEiS,GAAG,MAAMhZ,GAAG/B,EAAE+a,OAAO/a,EAAEq9E,GACrW,OADwW,OAAO1/E,EAAEyqB,QAAQzqB,EAAEyqB,QAAQpoB,EAAErC,EAAE6sF,eAAexqF,GAAErC,EAAEqkF,GAAGzlD,EAAE/0B,IAAK26E,QAAQ,CAAC0K,QAAQ9qF,GAAuB,QAApBuJ,OAAE,IAASA,EAAE,KAAKA,KAC1e3N,EAAEshC,SAAS3zB,GAAG82E,GAAGvqF,EAAE8F,GAAGolF,GAAGlrF,EAAE2P,EAAE+0B,GAAU/0B,EAAE,SAAS4rF,GAAGrxF,GAAe,OAAZA,EAAEA,EAAEqgB,SAAc2qB,OAAyBhrC,EAAEgrC,MAAM7T,IAAoDn3B,EAAEgrC,MAAM6/B,WAAhF,KAA2F,SAASymB,GAAGtxF,EAAEpE,GAAqB,GAAG,QAArBoE,EAAEA,EAAEirE,gBAA2B,OAAOjrE,EAAEkrE,WAAW,CAAC,IAAIjtE,EAAE+B,EAAE8oF,UAAU9oF,EAAE8oF,UAAU,IAAI7qF,GAAGA,EAAErC,EAAEqC,EAAErC,GAAG,SAASogE,GAAGh8D,EAAEpE,GAAG01F,GAAGtxF,EAAEpE,IAAIoE,EAAEA,EAAE+qE,YAAYumB,GAAGtxF,EAAEpE,GACxV,SAAS21F,GAAGvxF,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE,MAAMtL,GAAG,MAAMA,EAAEuzF,kBAAkBvzF,EAAEuzF,iBAAiBC,gBAAgB,KAAiK,GAA5JxzF,EAAE,IAAIgzF,GAAGjxF,EAAEpE,EAAE,MAAMqC,IAAG,IAAKA,EAAE6tE,SAASlwE,EAAE6nF,GAAG,EAAE,KAAK,KAAK,IAAI7nF,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAGqC,EAAEoiB,QAAQzkB,EAAEA,EAAEivE,UAAU5sE,EAAEwhF,GAAG7jF,GAAGoE,EAAE05E,IAAIz7E,EAAEoiB,QAAQg5D,GAAG,IAAIr5E,EAAEmnE,SAASnnE,EAAE4qE,WAAW5qE,GAAMuJ,EAAE,IAAIvJ,EAAE,EAAEA,EAAEuJ,EAAE9U,OAAOuL,IAAI,CAAQ,IAAIlK,GAAX8F,EAAE2N,EAAEvJ,IAAWulF,YAAYzvF,EAAEA,EAAE8F,EAAE4pF,SAAS,MAAMvnF,EAAEizF,gCAAgCjzF,EAAEizF,gCAAgC,CAACt1F,EAAE9F,GAAGmI,EAAEizF,gCAAgC55F,KAAKsE,EAAE9F,GAAGE,KAAK07F,cAAczzF,EAC/R,SAAS0zF,GAAG3xF,GAAG,SAASA,GAAG,IAAIA,EAAEmnE,UAAU,IAAInnE,EAAEmnE,UAAU,KAAKnnE,EAAEmnE,WAAW,IAAInnE,EAAEmnE,UAAU,iCAAiCnnE,EAAEonE,YAEvT,SAASwqB,GAAG5xF,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,IAAI0kC,EAAEv8B,EAAE0uF,oBAAoB,GAAGnyD,EAAE,CAAC,IAAI/0B,EAAE+0B,EAAEk3D,cAAc,GAAG,oBAAoB57F,EAAE,CAAC,IAAIkjB,EAAEljB,EAAEA,EAAE,WAAW,IAAIkK,EAAEqxF,GAAG5rF,GAAGuT,EAAEjjB,KAAKiK,IAAIoxF,GAAGx1F,EAAE6J,EAAEzF,EAAElK,OAAO,CAAmD,GAAlD0kC,EAAEv8B,EAAE0uF,oBAD1K,SAAY3sF,EAAEpE,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAEoE,EAAE,IAAIA,EAAEmnE,SAASnnE,EAAEgjF,gBAAgBhjF,EAAE6mE,WAAW,OAAa,IAAIjrE,EAAEurE,WAAWvrE,EAAEi2F,aAAa,qBAAwBj2F,EAAE,IAAI,IAAIqC,EAAEA,EAAE+B,EAAEknE,WAAWlnE,EAAE8mE,YAAY7oE,GAAG,OAAO,IAAIszF,GAAGvxF,EAAE,EAAEpE,EAAE,CAACkwE,SAAQ,QAAI,GAC3BgmB,CAAG7zF,EAAEsL,GAAG9D,EAAE+0B,EAAEk3D,cAAiB,oBAAoB57F,EAAE,CAAC,IAAIiR,EAAEjR,EAAEA,EAAE,WAAW,IAAIkK,EAAEqxF,GAAG5rF,GAAGsB,EAAEhR,KAAKiK,IAAIyvF,IAAG,WAAW2B,GAAGx1F,EAAE6J,EAAEzF,EAAElK,MAAK,OAAOu7F,GAAG5rF,GAGlG,SAASssF,GAAG/xF,EAAEpE,GAAG,IAAIqC,EAAE,EAAE7G,UAAU3C,aAAQ,IAAS2C,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIu6F,GAAG/1F,GAAG,MAAMnG,MAAMyK,EAAE,MAAM,OAAOixF,GAAGnxF,EAAEpE,EAAE,KAAKqC,GA1BtWmhD,GAAG,SAASp/C,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAE3N,EAAEujF,MAAM,GAAG,OAAOn/E,EAAE,GAAGA,EAAEmjF,gBAAgBvnF,EAAE+nF,cAAc5tE,GAAEsK,QAAQ++D,IAAG,MAAQ,IAAG,KAAKnhF,EAAEsL,GAAoC,CAAO,OAAN61E,IAAG,EAAUxjF,EAAEu7B,KAAK,KAAK,EAAEqxD,GAAG5sF,GAAGkoF,KAAK,MAAM,KAAK,EAAExrC,GAAG18C,GAAG,MAAM,KAAK,EAAEggF,GAAGhgF,EAAEpB,OAAO0hF,GAAGtgF,GAAG,MAAM,KAAK,EAAE4O,GAAG5O,EAAEA,EAAEivE,UAAUkB,eAAe,MAAM,KAAK,GAAGxiE,EAAE3N,EAAEunF,cAAczvF,MAAM,IAAIoC,EAAE8F,EAAEpB,KAAK0oE,SAAS3uC,GAAEiqD,GAAG1oF,EAAE+sE,eAAe/sE,EAAE+sE,cAAct5D,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO3N,EAAEqvE,cAAe,OAAG,KAAKhtE,EAAErC,EAAEovC,MAAM+zC,YAAmBgK,GAAG/oF,EAAEpE,EAAEqC,IAAGs2B,GAAEs/B,GAAY,EAAVA,GAAExzC,SAA8B,QAAnBzkB,EAAEsC,GAAG8B,EAAEpE,EAAEqC,IAC/erC,EAAEuvE,QAAQ,MAAK52C,GAAEs/B,GAAY,EAAVA,GAAExzC,SAAW,MAAM,KAAK,GAA0B,GAAvB9W,EAAE,KAAKtL,EAAErC,EAAEmjF,YAAe,KAAa,GAAR/+E,EAAE0jB,OAAU,CAAC,GAAGna,EAAE,OAAOqgF,GAAG5pF,EAAEpE,EAAEqC,GAAGrC,EAAE8nB,OAAO,GAA+F,GAA1E,QAAlB5tB,EAAE8F,EAAEqvE,iBAAyBn1E,EAAE2zF,UAAU,KAAK3zF,EAAEykD,KAAK,KAAKzkD,EAAEqsF,WAAW,MAAM5tD,GAAEs/B,GAAEA,GAAExzC,SAAY9W,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO3N,EAAEujF,MAAM,EAAE2I,GAAG9nF,EAAEpE,EAAEqC,GAAG,OAAOC,GAAG8B,EAAEpE,EAAEqC,GAD3LmhF,GAAG,KAAa,MAARp/E,EAAE0jB,YACyL07D,IAAG,EAAa,OAAVxjF,EAAEujF,MAAM,EAASvjF,EAAEu7B,KAAK,KAAK,EAA+I,GAA7I5tB,EAAE3N,EAAEpB,KAAK,OAAOwF,IAAIA,EAAE+qE,UAAU,KAAKnvE,EAAEmvE,UAAU,KAAKnvE,EAAE8nB,OAAO,GAAG1jB,EAAEpE,EAAE+nF,aAAa7tF,EAAE0lF,GAAG5/E,EAAEg0B,GAAEvP,SAAS2+D,GAAGpjF,EAAEqC,GAAGnI,EAAEghD,GAAG,KAAKl7C,EAAE2N,EAAEvJ,EAAElK,EAAEmI,GAAGrC,EAAE8nB,OAAO,EAAK,kBACre5tB,GAAG,OAAOA,GAAG,oBAAoBA,EAAEytE,aAAQ,IAASztE,EAAE6rE,SAAS,CAAiD,GAAhD/lE,EAAEu7B,IAAI,EAAEv7B,EAAEqvE,cAAc,KAAKrvE,EAAE8jF,YAAY,KAAQ9D,GAAGryE,GAAG,CAAC,IAAIixB,GAAE,EAAG0hD,GAAGtgF,QAAQ4+B,GAAE,EAAG5+B,EAAEqvE,cAAc,OAAOn1E,EAAEovB,YAAO,IAASpvB,EAAEovB,MAAMpvB,EAAEovB,MAAM,KAAKu6D,GAAG7jF,GAAG,IAAI6J,EAAE8D,EAAEk4E,yBAAyB,oBAAoBh8E,GAAGk7E,GAAG/kF,EAAE2N,EAAE9D,EAAEzF,GAAGlK,EAAEorE,QAAQ0f,GAAGhlF,EAAEivE,UAAU/0E,EAAEA,EAAE+qF,gBAAgBjlF,EAAE4lF,GAAG5lF,EAAE2N,EAAEvJ,EAAE/B,GAAGrC,EAAE0sF,GAAG,KAAK1sF,EAAE2N,GAAE,EAAGixB,EAAEv8B,QAAQrC,EAAEu7B,IAAI,EAAEqwD,GAAG,KAAK5rF,EAAE9F,EAAEmI,GAAGrC,EAAEA,EAAEovC,MAAM,OAAOpvC,EAAE,KAAK,GAAG9F,EAAE8F,EAAE4mF,YAAYxiF,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAE+qE,UAAU,KAAKnvE,EAAEmvE,UAAU,KAAKnvE,EAAE8nB,OAAO,GACnf1jB,EAAEpE,EAAE+nF,aAAuB7tF,GAAV0kC,EAAE1kC,EAAEuV,OAAUvV,EAAE4tE,UAAU9nE,EAAEpB,KAAK1E,EAAE0kC,EAAE5+B,EAAEu7B,IAOxD,SAAYn3B,GAAG,GAAG,oBAAoBA,EAAE,OAAO2nF,GAAG3nF,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAE2hE,YAAgBnS,EAAG,OAAO,GAAG,GAAGxvD,IAAI6vD,EAAG,OAAO,GAAG,OAAO,EAPlFmiC,CAAGl8F,GAAGkK,EAAEu+E,GAAGzoF,EAAEkK,GAAUw6B,GAAG,KAAK,EAAE5+B,EAAEisF,GAAG,KAAKjsF,EAAE9F,EAAEkK,EAAE/B,GAAG,MAAM+B,EAAE,KAAK,EAAEpE,EAAEssF,GAAG,KAAKtsF,EAAE9F,EAAEkK,EAAE/B,GAAG,MAAM+B,EAAE,KAAK,GAAGpE,EAAE6rF,GAAG,KAAK7rF,EAAE9F,EAAEkK,EAAE/B,GAAG,MAAM+B,EAAE,KAAK,GAAGpE,EAAE8rF,GAAG,KAAK9rF,EAAE9F,EAAEyoF,GAAGzoF,EAAE0E,KAAKwF,GAAGuJ,EAAEtL,GAAG,MAAM+B,EAAE,MAAMvK,MAAMyK,EAAE,IAAIpK,EAAE,KAAM,OAAO8F,EAAE,KAAK,EAAE,OAAO2N,EAAE3N,EAAEpB,KAAK1E,EAAE8F,EAAE+nF,aAA2CkE,GAAG7nF,EAAEpE,EAAE2N,EAArCzT,EAAE8F,EAAE4mF,cAAcj5E,EAAEzT,EAAEyoF,GAAGh1E,EAAEzT,GAAcmI,GAAG,KAAK,EAAE,OAAOsL,EAAE3N,EAAEpB,KAAK1E,EAAE8F,EAAE+nF,aAA2CuE,GAAGloF,EAAEpE,EAAE2N,EAArCzT,EAAE8F,EAAE4mF,cAAcj5E,EAAEzT,EAAEyoF,GAAGh1E,EAAEzT,GAAcmI,GAAG,KAAK,EAAwB,GAAtBuqF,GAAG5sF,GAAG2N,EAAE3N,EAAE8jF,YAAe,OAAO1/E,GAAG,OAAOuJ,EAAE,MAAM9T,MAAMyK,EAAE,MAC3Y,GAA9GqJ,EAAE3N,EAAE+nF,aAA+B7tF,EAAE,QAApBA,EAAE8F,EAAEqvE,eAAyBn1E,EAAEg1F,QAAQ,KAAK9K,GAAGhgF,EAAEpE,GAAG2kF,GAAG3kF,EAAE2N,EAAE,KAAKtL,IAAGsL,EAAE3N,EAAEqvE,cAAc6f,WAAeh1F,EAAEguF,KAAKloF,EAAEsC,GAAG8B,EAAEpE,EAAEqC,OAAO,CAAuF,IAArEu8B,GAAjB1kC,EAAE8F,EAAEivE,WAAiBiB,WAAQwX,GAAG3I,GAAG/+E,EAAEivE,UAAUkB,cAAclF,YAAYwc,GAAGznF,EAAE4+B,EAAE+oD,IAAG,GAAM/oD,EAAE,CAAqC,GAAG,OAAvCx6B,EAAElK,EAAEo7F,iCAA2C,IAAIp7F,EAAE,EAAEA,EAAEkK,EAAEvL,OAAOqB,GAAG,GAAE0kC,EAAEx6B,EAAElK,IAAKmuF,8BAA8BjkF,EAAElK,EAAE,GAAGiuF,GAAGzsF,KAAKkjC,GAAoB,IAAjBv8B,EAAE6kF,GAAGlnF,EAAE,KAAK2N,EAAEtL,GAAOrC,EAAEovC,MAAM/sC,EAAEA,GAAGA,EAAEylB,OAAe,EAATzlB,EAAEylB,MAAS,KAAKzlB,EAAEA,EAAEktE,aAAaqc,GAAGxnF,EAAEpE,EAAE2N,EAAEtL,GAAG6lF,KAAKloF,EAAEA,EAAEovC,MAAM,OAAOpvC,EAAE,KAAK,EAAE,OAAO08C,GAAG18C,GAAG,OAAOoE,GACnf6X,GAAGjc,GAAG2N,EAAE3N,EAAEpB,KAAK1E,EAAE8F,EAAE+nF,aAAanpD,EAAE,OAAOx6B,EAAEA,EAAEmjF,cAAc,KAAK19E,EAAE3P,EAAE8qB,SAAS05D,GAAG/wE,EAAEzT,GAAG2P,EAAE,KAAK,OAAO+0B,GAAG8/C,GAAG/wE,EAAEixB,KAAK5+B,EAAE8nB,OAAO,IAAIukE,GAAGjoF,EAAEpE,GAAG4rF,GAAGxnF,EAAEpE,EAAE6J,EAAExH,GAAGrC,EAAEovC,MAAM,KAAK,EAAE,OAAO,OAAOhrC,GAAG6X,GAAGjc,GAAG,KAAK,KAAK,GAAG,OAAOmtF,GAAG/oF,EAAEpE,EAAEqC,GAAG,KAAK,EAAE,OAAOuM,GAAG5O,EAAEA,EAAEivE,UAAUkB,eAAexiE,EAAE3N,EAAE+nF,aAAa,OAAO3jF,EAAEpE,EAAEovC,MAAM63C,GAAGjnF,EAAE,KAAK2N,EAAEtL,GAAGupF,GAAGxnF,EAAEpE,EAAE2N,EAAEtL,GAAGrC,EAAEovC,MAAM,KAAK,GAAG,OAAOzhC,EAAE3N,EAAEpB,KAAK1E,EAAE8F,EAAE+nF,aAA2C8D,GAAGznF,EAAEpE,EAAE2N,EAArCzT,EAAE8F,EAAE4mF,cAAcj5E,EAAEzT,EAAEyoF,GAAGh1E,EAAEzT,GAAcmI,GAAG,KAAK,EAAE,OAAOupF,GAAGxnF,EAAEpE,EAAEA,EAAE+nF,aAAa1lF,GAAGrC,EAAEovC,MAAM,KAAK,EACtc,KAAK,GAAG,OAAOw8C,GAAGxnF,EAAEpE,EAAEA,EAAE+nF,aAAa/iE,SAAS3iB,GAAGrC,EAAEovC,MAAM,KAAK,GAAGhrC,EAAE,CAACuJ,EAAE3N,EAAEpB,KAAK0oE,SAASptE,EAAE8F,EAAE+nF,aAAal+E,EAAE7J,EAAEunF,cAAc3oD,EAAE1kC,EAAEpC,MAAM,IAAIslB,EAAEpd,EAAEpB,KAAK0oE,SAAiD,GAAxC3uC,GAAEiqD,GAAGxlE,EAAE6pD,eAAe7pD,EAAE6pD,cAAcroC,EAAK,OAAO/0B,EAAE,GAAGuT,EAAEvT,EAAE/R,MAA0G,KAApG8mC,EAAE08C,GAAGl+D,EAAEwhB,GAAG,EAAwF,GAArF,oBAAoBjxB,EAAEq5D,sBAAsBr5D,EAAEq5D,sBAAsB5pD,EAAEwhB,GAAG,cAAqB,GAAG/0B,EAAEmb,WAAW9qB,EAAE8qB,WAAW7K,GAAEsK,QAAQ,CAACzkB,EAAEsC,GAAG8B,EAAEpE,EAAEqC,GAAG,MAAM+B,QAAQ,IAAc,QAAVgZ,EAAEpd,EAAEovC,SAAiBhyB,EAAEgyD,OAAOpvE,GAAG,OAAOod,GAAG,CAAC,IAAIjS,EAAEiS,EAAEimE,aAAa,GAAG,OAAOl4E,EAAE,CAACtB,EAAEuT,EAAEgyB,MAAM,IAAI,IAAIjlC,EACtfgB,EAAEm4E,aAAa,OAAOn5E,GAAG,CAAC,GAAGA,EAAEsgB,UAAU9c,GAAG,KAAKxD,EAAEu5E,aAAa9kD,GAAG,CAAC,IAAIxhB,EAAEme,OAAMpxB,EAAEk6E,IAAI,EAAEhiF,GAAGA,IAAKk5B,IAAI,EAAEkpD,GAAGrnE,EAAEjT,IAAIiT,EAAEmmE,OAAOlhF,EAAgB,QAAd8H,EAAEiT,EAAE+xD,aAAqBhlE,EAAEo5E,OAAOlhF,GAAG6gF,GAAG9lE,EAAEgyD,OAAO/sE,GAAG8I,EAAEo4E,OAAOlhF,EAAE,MAAM8H,EAAEA,EAAE+Z,WAAWra,EAAE,KAAKuT,EAAEme,KAAIne,EAAExe,OAAOoB,EAAEpB,KAAK,KAAawe,EAAEgyB,MAAM,GAAG,OAAOvlC,EAAEA,EAAEulE,OAAOhyD,OAAO,IAAIvT,EAAEuT,EAAE,OAAOvT,GAAG,CAAC,GAAGA,IAAI7J,EAAE,CAAC6J,EAAE,KAAK,MAAkB,GAAG,QAAfuT,EAAEvT,EAAE0lE,SAAoB,CAACnyD,EAAEgyD,OAAOvlE,EAAEulE,OAAOvlE,EAAEuT,EAAE,MAAMvT,EAAEA,EAAEulE,OAAOhyD,EAAEvT,EAAE+hF,GAAGxnF,EAAEpE,EAAE9F,EAAE8qB,SAAS3iB,GAAGrC,EAAEA,EAAEovC,MAAM,OAAOpvC,EAAE,KAAK,EAAE,OAAO9F,EAAE8F,EAAEpB,KAAsB+O,GAAjBixB,EAAE5+B,EAAE+nF,cAAiB/iE,SAASo+D,GAAGpjF,EAAEqC,GACndsL,EAAEA,EADodzT,EAAEupF,GAAGvpF,EACpf0kC,EAAEy3D,wBAA8Br2F,EAAE8nB,OAAO,EAAE8jE,GAAGxnF,EAAEpE,EAAE2N,EAAEtL,GAAGrC,EAAEovC,MAAM,KAAK,GAAG,OAAgBxQ,EAAE+jD,GAAXzoF,EAAE8F,EAAEpB,KAAYoB,EAAE+nF,cAA6B+D,GAAG1nF,EAAEpE,EAAE9F,EAAtB0kC,EAAE+jD,GAAGzoF,EAAE0E,KAAKggC,GAAcjxB,EAAEtL,GAAG,KAAK,GAAG,OAAO2pF,GAAG5nF,EAAEpE,EAAEA,EAAEpB,KAAKoB,EAAE+nF,aAAap6E,EAAEtL,GAAG,KAAK,GAAG,OAAOsL,EAAE3N,EAAEpB,KAAK1E,EAAE8F,EAAE+nF,aAAa7tF,EAAE8F,EAAE4mF,cAAcj5E,EAAEzT,EAAEyoF,GAAGh1E,EAAEzT,GAAG,OAAOkK,IAAIA,EAAE+qE,UAAU,KAAKnvE,EAAEmvE,UAAU,KAAKnvE,EAAE8nB,OAAO,GAAG9nB,EAAEu7B,IAAI,EAAEykD,GAAGryE,IAAIvJ,GAAE,EAAGk8E,GAAGtgF,IAAIoE,GAAE,EAAGg/E,GAAGpjF,EAAEqC,GAAGkjF,GAAGvlF,EAAE2N,EAAEzT,GAAG0rF,GAAG5lF,EAAE2N,EAAEzT,EAAEmI,GAAGqqF,GAAG,KAAK1sF,EAAE2N,GAAE,EAAGvJ,EAAE/B,GAAG,KAAK,GAAG,OAAO2rF,GAAG5pF,EAAEpE,EAAEqC,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAO6pF,GAAG9nF,EAAEpE,EAAEqC,GAAG,MAAMxI,MAAMyK,EAAE,IAAItE,EAAEu7B,OAa/eo6D,GAAG/9F,UAAU+vE,OAAO,SAASvjE,GAAGoxF,GAAGpxF,EAAEhK,KAAK07F,cAAc,KAAK,OAAOH,GAAG/9F,UAAU0+F,QAAQ,WAAW,IAAIlyF,EAAEhK,KAAK07F,cAAc91F,EAAEoE,EAAE+rE,cAAcqlB,GAAG,KAAKpxF,EAAE,MAAK,WAAWpE,EAAE89E,IAAI,SAEwJjxC,GAAG,SAASzoC,GAAM,KAAKA,EAAEm3B,MAAgB6pD,GAAGhhF,EAAE,EAAV8gF,MAAe9kB,GAAGh8D,EAAE,KAAKquD,GAAG,SAASruD,GAAM,KAAKA,EAAEm3B,MAAgB6pD,GAAGhhF,EAAE,SAAV8gF,MAAsB9kB,GAAGh8D,EAAE,YACnc24D,GAAG,SAAS34D,GAAG,GAAG,KAAKA,EAAEm3B,IAAI,CAAC,IAAIv7B,EAAEklF,KAAK7iF,EAAE8iF,GAAG/gF,GAAGghF,GAAGhhF,EAAE/B,EAAErC,GAAGogE,GAAGh8D,EAAE/B,KAAKgsD,GAAG,SAASjqD,EAAEpE,GAAG,OAAOA,KAC7F0wD,GAAG,SAAStsD,EAAEpE,EAAEqC,GAAG,OAAOrC,GAAG,IAAK,QAAyB,GAAjB83D,GAAG1zD,EAAE/B,GAAGrC,EAAEqC,EAAEzF,KAAQ,UAAUyF,EAAEzD,MAAM,MAAMoB,EAAE,CAAC,IAAIqC,EAAE+B,EAAE/B,EAAE2sE,YAAY3sE,EAAEA,EAAE2sE,WAAsF,IAA3E3sE,EAAEA,EAAEk0F,iBAAiB,cAAc1kD,KAAKC,UAAU,GAAG9xC,GAAG,mBAAuBA,EAAE,EAAEA,EAAEqC,EAAExJ,OAAOmH,IAAI,CAAC,IAAI2N,EAAEtL,EAAErC,GAAG,GAAG2N,IAAIvJ,GAAGuJ,EAAE6oF,OAAOpyF,EAAEoyF,KAAK,CAAC,IAAIt8F,EAAEu2D,GAAG9iD,GAAG,IAAIzT,EAAE,MAAML,MAAMyK,EAAE,KAAKiqD,EAAG5gD,GAAGmqD,GAAGnqD,EAAEzT,KAAK,MAAM,IAAK,WAAWuzD,GAAGrpD,EAAE/B,GAAG,MAAM,IAAK,SAAmB,OAAVrC,EAAEqC,EAAEvK,QAAeugE,GAAGj0D,IAAI/B,EAAE+rF,SAASpuF,GAAE,KAAM2wD,GAAGijC,GAC9Z/iC,GAAG,SAASzsD,EAAEpE,EAAEqC,EAAEsL,EAAEzT,GAAG,IAAI0kC,EAAE+9B,GAAEA,IAAG,EAAE,IAAI,OAAO2lB,GAAG,GAAGl+E,EAAEolB,KAAK,KAAKxpB,EAAEqC,EAAEsL,EAAEzT,IAAnC,QAAmD,KAAJyiE,GAAE/9B,KAAUizD,KAAKrP,QAAQ/nB,GAAG,WAAW,KAAO,GAAFkC,MAhD/H,WAAc,GAAG,OAAOw1B,GAAG,CAAC,IAAI/tF,EAAE+tF,GAAGA,GAAG,KAAK/tF,EAAE4uB,SAAQ,SAAS5uB,GAAGA,EAAEysE,cAAc,GAAGzsE,EAAEwsE,aAAaiiB,GAAGzuF,EAAEiuD,SAAOmwB,KAgDsBiU,GAAKvD,OAAOv4B,GAAG,SAASv2D,EAAEpE,GAAG,IAAIqC,EAAEs6D,GAAEA,IAAG,EAAE,IAAI,OAAOv4D,EAAEpE,GAAb,QAA4B,KAAJ28D,GAAEt6D,KAAUwvF,KAAKrP,QAA+I,IAAIkU,GAAG,CAACC,OAAO,CAACnmC,GAAG+pB,GAAG9pB,GAAGc,GAAGqI,GAAGs5B,GAAG,CAACzuE,SAAQ,KAAMmyE,GAAG,CAACC,wBAAwBpnC,GAAGqnC,WAAW,EAAE96F,QAAQ,SAAS+6F,oBAAoB,aACveC,GAAG,CAACF,WAAWF,GAAGE,WAAW96F,QAAQ46F,GAAG56F,QAAQ+6F,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB3lC,EAAGqU,uBAAuBuxB,wBAAwB,SAASvzF,GAAW,OAAO,QAAfA,EAAEs4D,GAAGt4D,IAAmB,KAAKA,EAAE6qE,WAAW4nB,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,MAS7We,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,qBAAqB5rC,+BAA+B,CAAC,IAAI6rC,GAAG7rC,+BAA+B,IAAI6rC,GAAGC,YAAYD,GAAGE,cAAc,IAAI1X,GAAGwX,GAAGG,OAAOpB,IAAItW,GAAGuX,GAAG,MAAM7zF,MAAK5M,EAAQqvE,mDAAmD6vB,GAAGl/F,EAAQ6gG,aAAalC,GACnX3+F,EAAQ8gG,YAAY,SAASl0F,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEmnE,SAAS,OAAOnnE,EAAE,IAAIpE,EAAEoE,EAAE6gF,gBAAgB,QAAG,IAASjlF,EAAE,CAAC,GAAG,oBAAoBoE,EAAEujE,OAAO,MAAM9tE,MAAMyK,EAAE,MAAM,MAAMzK,MAAMyK,EAAE,IAAIjN,OAAOyzB,KAAK1mB,KAA0C,OAA5BA,EAAE,QAAVA,EAAEs4D,GAAG18D,IAAc,KAAKoE,EAAE6qE,WAAoBz3E,EAAQ+gG,UAAU,SAASn0F,EAAEpE,GAAG,IAAIqC,EAAEs6D,GAAE,GAAG,KAAO,GAAFt6D,GAAM,OAAO+B,EAAEpE,GAAG28D,IAAG,EAAE,IAAI,GAAGv4D,EAAE,OAAOk+E,GAAG,GAAGl+E,EAAEolB,KAAK,KAAKxpB,IAAlC,QAA8C28D,GAAEt6D,EAAEmgF,OAAOhrF,EAAQ04E,QAAQ,SAAS9rE,EAAEpE,EAAEqC,GAAG,IAAI0zF,GAAG/1F,GAAG,MAAMnG,MAAMyK,EAAE,MAAM,OAAO0xF,GAAG,KAAK5xF,EAAEpE,GAAE,EAAGqC,IACnd7K,EAAQmwE,OAAO,SAASvjE,EAAEpE,EAAEqC,GAAG,IAAI0zF,GAAG/1F,GAAG,MAAMnG,MAAMyK,EAAE,MAAM,OAAO0xF,GAAG,KAAK5xF,EAAEpE,GAAE,EAAGqC,IAAI7K,EAAQghG,uBAAuB,SAASp0F,GAAG,IAAI2xF,GAAG3xF,GAAG,MAAMvK,MAAMyK,EAAE,KAAK,QAAOF,EAAE2sF,sBAAqB8C,IAAG,WAAWmC,GAAG,KAAK,KAAK5xF,GAAE,GAAG,WAAWA,EAAE2sF,oBAAoB,KAAK3sF,EAAE05E,IAAI,YAAS,IAAQtmF,EAAQihG,wBAAwB7E,GAAGp8F,EAAQkhG,sBAAsB,SAASt0F,EAAEpE,GAAG,OAAOm2F,GAAG/xF,EAAEpE,EAAE,EAAExE,UAAU3C,aAAQ,IAAS2C,UAAU,GAAGA,UAAU,GAAG,OAC9ahE,EAAQmhG,oCAAoC,SAASv0F,EAAEpE,EAAEqC,EAAEsL,GAAG,IAAIooF,GAAG1zF,GAAG,MAAMxI,MAAMyK,EAAE,MAAM,GAAG,MAAMF,QAAG,IAASA,EAAE6gF,gBAAgB,MAAMprF,MAAMyK,EAAE,KAAK,OAAO0xF,GAAG5xF,EAAEpE,EAAEqC,GAAE,EAAGsL,IAAInW,EAAQwE,QAAQ,U,6BCrS3LzE,EAAOC,QAAUY,EAAQ,M,6BCKd,IAAIwmC,EAAE/0B,EAAEuT,EAAEjS,EAAE,GAAG,kBAAkBgzD,aAAa,oBAAoBA,YAAYxrB,IAAI,CAAC,IAAIxoC,EAAEg0D,YAAY3mE,EAAQm5E,aAAa,WAAW,OAAOxmE,EAAEwoC,WAAW,CAAC,IAAI1lC,EAAE88C,KAAK33C,EAAEnF,EAAE0lC,MAAMn7C,EAAQm5E,aAAa,WAAW,OAAO1jE,EAAE0lC,MAAMvgC,GAC3O,GAAG,qBAAqBrI,QAAQ,oBAAoB6uF,eAAe,CAAC,IAAIrmF,EAAE,KAAKqS,EAAE,KAAK9Z,EAAE,SAAFA,IAAa,GAAG,OAAOyH,EAAE,IAAI,IAAInO,EAAE5M,EAAQm5E,eAAep+D,GAAE,EAAGnO,GAAGmO,EAAE,KAAK,MAAMvS,GAAG,MAAM/F,WAAW6Q,EAAE,GAAG9K,IAAK4+B,EAAE,SAASx6B,GAAG,OAAOmO,EAAEtY,WAAW2kC,EAAE,EAAEx6B,IAAImO,EAAEnO,EAAEnK,WAAW6Q,EAAE,KAAKjB,EAAE,SAASzF,EAAEpE,GAAG4kB,EAAE3qB,WAAWmK,EAAEpE,IAAIod,EAAE,WAAW/iB,aAAauqB,IAAIptB,EAAQwpF,qBAAqB,WAAW,OAAM,GAAI71E,EAAE3T,EAAQqhG,wBAAwB,iBAAiB,CAAC,IAAIx0F,EAAE0F,OAAO9P,WAAWqK,EAAEyF,OAAO1P,aAAa,GAAG,qBAAqB2uB,QAAQ,CAAC,IAAI3d,EAC7ftB,OAAO+uF,qBAAqB,oBAAoB/uF,OAAOgvF,uBAAuB/vE,QAAQsB,MAAM,sJAAsJ,oBAAoBjf,GAAG2d,QAAQsB,MAAM,qJAAqJ,IAAInL,GAAE,EAAGC,EAAE,KAAKC,GAAG,EAAEC,EAAE,EAAEo1C,EAAE,EAAEl9D,EAAQwpF,qBAAqB,WAAW,OAAOxpF,EAAQm5E,gBAChgBjc,GAAGvpD,EAAE,aAAa3T,EAAQqhG,wBAAwB,SAASz0F,GAAG,EAAEA,GAAG,IAAIA,EAAE4kB,QAAQsB,MAAM,mHAAmHhL,EAAE,EAAElb,EAAE1B,KAAKsF,MAAM,IAAI5D,GAAG,GAAG,IAAIywD,EAAE,IAAI+jC,eAAezjE,EAAE0/B,EAAEmkC,MAAMnkC,EAAEokC,MAAMC,UAAU,WAAW,GAAG,OAAO95E,EAAE,CAAC,IAAIhb,EAAE5M,EAAQm5E,eAAejc,EAAEtwD,EAAEkb,EAAE,IAAIF,GAAE,EAAGhb,GAAG+wB,EAAEgkE,YAAY,OAAOh6E,GAAE,EAAGC,EAAE,MAAM,MAAMpf,GAAG,MAAMm1B,EAAEgkE,YAAY,MAAMn5F,QAASmf,GAAE,GAAIyf,EAAE,SAASx6B,GAAGgb,EAAEhb,EAAE+a,IAAIA,GAAE,EAAGgW,EAAEgkE,YAAY,QAAQtvF,EAAE,SAASzF,EAAEpE,GAAGqf,EACtfhb,GAAE,WAAWD,EAAE5M,EAAQm5E,kBAAiB3wE,IAAIod,EAAE,WAAW9Y,EAAE+a,GAAGA,GAAG,GAAG,SAAS27B,EAAE52C,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAEvL,OAAOuL,EAAE1I,KAAKsE,GAAGoE,EAAE,OAAO,CAAC,IAAIuJ,EAAEtL,EAAE,IAAI,EAAEnI,EAAEkK,EAAEuJ,GAAG,UAAG,IAASzT,GAAG,EAAEy+B,EAAEz+B,EAAE8F,IAA0B,MAAMoE,EAA7BA,EAAEuJ,GAAG3N,EAAEoE,EAAE/B,GAAGnI,EAAEmI,EAAEsL,GAAgB,SAASwlD,EAAE/uD,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAChP,SAAS+1C,EAAE/1C,GAAG,IAAIpE,EAAEoE,EAAE,GAAG,QAAG,IAASpE,EAAE,CAAC,IAAIqC,EAAE+B,EAAEwmB,MAAM,GAAGvoB,IAAIrC,EAAE,CAACoE,EAAE,GAAG/B,EAAE+B,EAAE,IAAI,IAAIuJ,EAAE,EAAEzT,EAAEkK,EAAEvL,OAAO8U,EAAEzT,GAAG,CAAC,IAAIgG,EAAE,GAAGyN,EAAE,GAAG,EAAE1N,EAAEmE,EAAElE,GAAG0sB,EAAE1sB,EAAE,EAAEkK,EAAEhG,EAAEwoB,GAAG,QAAG,IAAS3sB,GAAG,EAAE04B,EAAE14B,EAAEoC,QAAG,IAAS+H,GAAG,EAAEuuB,EAAEvuB,EAAEnK,IAAImE,EAAEuJ,GAAGvD,EAAEhG,EAAEwoB,GAAGvqB,EAAEsL,EAAEif,IAAIxoB,EAAEuJ,GAAG1N,EAAEmE,EAAElE,GAAGmC,EAAEsL,EAAEzN,OAAQ,WAAG,IAASkK,GAAG,EAAEuuB,EAAEvuB,EAAE/H,IAA0B,MAAM+B,EAA7BA,EAAEuJ,GAAGvD,EAAEhG,EAAEwoB,GAAGvqB,EAAEsL,EAAEif,IAAgB,OAAO5sB,EAAE,OAAO,KAAK,SAAS24B,EAAEv0B,EAAEpE,GAAG,IAAIqC,EAAE+B,EAAEg1F,UAAUp5F,EAAEo5F,UAAU,OAAO,IAAI/2F,EAAEA,EAAE+B,EAAEqlD,GAAGzpD,EAAEypD,GAAG,IAAI4M,EAAE,GAAGriC,EAAE,GAAG7Z,EAAE,EAAEk4C,EAAE,KAAK4F,EAAE,EAAEkB,GAAE,EAAGvyC,GAAE,EAAG8zC,GAAE,EACja,SAAS/Z,EAAEv8C,GAAG,IAAI,IAAIpE,EAAEmzD,EAAEn/B,GAAG,OAAOh0B,GAAG,CAAC,GAAG,OAAOA,EAAEshC,SAAS6Y,EAAEnmB,OAAQ,MAAGh0B,EAAEq5F,WAAWj1F,GAAgD,MAA9C+1C,EAAEnmB,GAAGh0B,EAAEo5F,UAAUp5F,EAAEs5F,eAAet+C,EAAEqb,EAAEr2D,GAAcA,EAAEmzD,EAAEn/B,IAAI,SAAS4sB,EAAEx8C,GAAa,GAAVs2D,GAAE,EAAG/Z,EAAEv8C,IAAOwiB,EAAE,GAAG,OAAOusC,EAAEkD,GAAGzvC,GAAE,EAAGgY,EAAEg9B,OAAO,CAAC,IAAI57D,EAAEmzD,EAAEn/B,GAAG,OAAOh0B,GAAG6J,EAAE+2C,EAAE5gD,EAAEq5F,UAAUj1F,IACtP,SAASw3D,EAAEx3D,EAAEpE,GAAG4mB,GAAE,EAAG8zC,IAAIA,GAAE,EAAGt9C,KAAK+7C,GAAE,EAAG,IAAI92D,EAAE41D,EAAE,IAAS,IAALtX,EAAE3gD,GAAOqyD,EAAEc,EAAEkD,GAAG,OAAOhE,MAAMA,EAAEinC,eAAet5F,IAAIoE,IAAI5M,EAAQwpF,yBAAyB,CAAC,IAAIrzE,EAAE0kD,EAAE/wB,SAAS,GAAG,oBAAoB3zB,EAAE,CAAC0kD,EAAE/wB,SAAS,KAAK22B,EAAE5F,EAAEknC,cAAc,IAAIr/F,EAAEyT,EAAE0kD,EAAEinC,gBAAgBt5F,GAAGA,EAAExI,EAAQm5E,eAAe,oBAAoBz2E,EAAEm4D,EAAE/wB,SAASpnC,EAAEm4D,IAAIc,EAAEkD,IAAIlc,EAAEkc,GAAG1V,EAAE3gD,QAAQm6C,EAAEkc,GAAGhE,EAAEc,EAAEkD,GAAG,GAAG,OAAOhE,EAAE,IAAInyD,GAAE,MAAO,CAAC,IAAID,EAAEkzD,EAAEn/B,GAAG,OAAO/zB,GAAG4J,EAAE+2C,EAAE3gD,EAAEo5F,UAAUr5F,GAAGE,GAAE,EAAG,OAAOA,EAArX,QAA+XmyD,EAAE,KAAK4F,EAAE51D,EAAE82D,GAAE,GAAI,IAAI/e,EAAEjvC,EAAE3T,EAAQqqF,sBAAsB,EACterqF,EAAQ+pF,2BAA2B,EAAE/pF,EAAQmqF,qBAAqB,EAAEnqF,EAAQ64E,wBAAwB,EAAE74E,EAAQgiG,mBAAmB,KAAKhiG,EAAQ45E,8BAA8B,EAAE55E,EAAQspF,wBAAwB,SAAS18E,GAAGA,EAAEk9B,SAAS,MAAM9pC,EAAQiiG,2BAA2B,WAAW7yE,GAAGuyC,IAAIvyC,GAAE,EAAGgY,EAAEg9B,KAAKpkE,EAAQ6pF,iCAAiC,WAAW,OAAOppB,GAAGzgE,EAAQkiG,8BAA8B,WAAW,OAAOvmC,EAAEkD,IACpa7+D,EAAQmiG,cAAc,SAASv1F,GAAG,OAAO6zD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIj4D,EAAE,EAAE,MAAM,QAAQA,EAAEi4D,EAAE,IAAI51D,EAAE41D,EAAEA,EAAEj4D,EAAE,IAAI,OAAOoE,IAAX,QAAuB6zD,EAAE51D,IAAI7K,EAAQoiG,wBAAwB,aAAapiG,EAAQ0pF,sBAAsB9mC,EAAE5iD,EAAQw4E,yBAAyB,SAAS5rE,EAAEpE,GAAG,OAAOoE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI/B,EAAE41D,EAAEA,EAAE7zD,EAAE,IAAI,OAAOpE,IAAX,QAAuBi4D,EAAE51D,IACpW7K,EAAQ44E,0BAA0B,SAAShsE,EAAEpE,EAAEqC,GAAG,IAAIsL,EAAEnW,EAAQm5E,eAA8F,OAA/E,kBAAkBtuE,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEw3F,QAA6B,EAAEx3F,EAAEsL,EAAEtL,EAAEsL,EAAGtL,EAAEsL,EAASvJ,GAAG,KAAK,EAAE,IAAIlK,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMkK,EAAE,CAACqlD,GAAGtvC,IAAImnB,SAASthC,EAAEu5F,cAAcn1F,EAAEi1F,UAAUh3F,EAAEi3F,eAAvDp/F,EAAEmI,EAAEnI,EAAoEk/F,WAAW,GAAG/2F,EAAEsL,GAAGvJ,EAAEg1F,UAAU/2F,EAAE24C,EAAEhnB,EAAE5vB,GAAG,OAAO+uD,EAAEkD,IAAIjyD,IAAI+uD,EAAEn/B,KAAK0mC,EAAEt9C,IAAIs9C,GAAE,EAAG7wD,EAAE+2C,EAAEv+C,EAAEsL,MAAMvJ,EAAEg1F,UAAUl/F,EAAE8gD,EAAEqb,EAAEjyD,GAAGwiB,GAAGuyC,IAAIvyC,GAAE,EAAGgY,EAAEg9B,KAAYx3D,GAC1d5M,EAAQsiG,sBAAsB,SAAS11F,GAAG,IAAIpE,EAAEi4D,EAAE,OAAO,WAAW,IAAI51D,EAAE41D,EAAEA,EAAEj4D,EAAE,IAAI,OAAOoE,EAAEzI,MAAMvB,KAAKoB,WAAxB,QAA2Cy8D,EAAE51D,M,gBCZ7H,IAAI03F,EAAW,SAAUviG,GACvB,aAEA,IAEI+B,EAFAygG,EAAK3iG,OAAOO,UACZqiG,EAASD,EAAGz8D,eAEZ28D,EAA4B,oBAAXn2F,OAAwBA,OAAS,GAClDo2F,EAAiBD,EAAQ7mE,UAAY,aACrC+mE,EAAsBF,EAAQ7hD,eAAiB,kBAC/CgiD,EAAoBH,EAAQI,aAAe,gBAE/C,SAAS1xC,EAAOrqD,EAAK9F,EAAKX,GAOxB,OANAT,OAAO4M,eAAe1F,EAAK9F,EAAK,CAC9BX,MAAOA,EACPC,YAAY,EACZE,cAAc,EACdD,UAAU,IAELuG,EAAI9F,GAEb,IAEEmwD,EAAO,GAAI,IACX,MAAOriC,GACPqiC,EAAS,SAASrqD,EAAK9F,EAAKX,GAC1B,OAAOyG,EAAI9F,GAAOX,GAItB,SAASsgD,EAAKmiD,EAASC,EAASnpF,EAAMopF,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQ5iG,qBAAqB+iG,EAAYH,EAAUG,EAC/EC,EAAYvjG,OAAOC,OAAOojG,EAAe9iG,WACzC6yB,EAAU,IAAIowE,EAAQJ,GAAe,IAMzC,OAFAG,EAAUE,QAuMZ,SAA0BP,EAASlpF,EAAMoZ,GACvC,IAAInB,EAAQyxE,EAEZ,OAAO,SAAgBluE,EAAQl0B,GAC7B,GAAI2wB,IAAU0xE,EACZ,MAAM,IAAInhG,MAAM,gCAGlB,GAAIyvB,IAAU2xE,EAAmB,CAC/B,GAAe,UAAXpuE,EACF,MAAMl0B,EAKR,OAAOuiG,IAMT,IAHAzwE,EAAQoC,OAASA,EACjBpC,EAAQ9xB,IAAMA,IAED,CACX,IAAIwiG,EAAW1wE,EAAQ0wE,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAU1wE,GACnD,GAAI2wE,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnB3wE,EAAQoC,OAGVpC,EAAQ8wE,KAAO9wE,EAAQ+wE,MAAQ/wE,EAAQ9xB,SAElC,GAAuB,UAAnB8xB,EAAQoC,OAAoB,CACrC,GAAIvD,IAAUyxE,EAEZ,MADAzxE,EAAQ2xE,EACFxwE,EAAQ9xB,IAGhB8xB,EAAQgxE,kBAAkBhxE,EAAQ9xB,SAEN,WAAnB8xB,EAAQoC,QACjBpC,EAAQixE,OAAO,SAAUjxE,EAAQ9xB,KAGnC2wB,EAAQ0xE,EAER,IAAIW,EAASC,EAASrB,EAASlpF,EAAMoZ,GACrC,GAAoB,WAAhBkxE,EAAO/8F,KAAmB,CAO5B,GAJA0qB,EAAQmB,EAAQhE,KACZw0E,EACAY,EAEAF,EAAOhjG,MAAQ2iG,EACjB,SAGF,MAAO,CACLxjG,MAAO6jG,EAAOhjG,IACd8tB,KAAMgE,EAAQhE,MAGS,UAAhBk1E,EAAO/8F,OAChB0qB,EAAQ2xE,EAGRxwE,EAAQoC,OAAS,QACjBpC,EAAQ9xB,IAAMgjG,EAAOhjG,OA/QPmjG,CAAiBvB,EAASlpF,EAAMoZ,GAE7CmwE,EAcT,SAASgB,EAAShoE,EAAIr1B,EAAK5F,GACzB,IACE,MAAO,CAAEiG,KAAM,SAAUjG,IAAKi7B,EAAGz5B,KAAKoE,EAAK5F,IAC3C,MAAO4tB,GACP,MAAO,CAAE3nB,KAAM,QAASjG,IAAK4tB,IAhBjC/uB,EAAQ4gD,KAAOA,EAoBf,IAAI2iD,EAAyB,iBACzBc,EAAyB,iBACzBb,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAASX,KACT,SAASoB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBrzC,EAAOqzC,EAAmB9B,GAAgB,WACxC,OAAO//F,QAGT,IAAI8hG,EAAW7kG,OAAO6yB,eAClBiyE,EAA0BD,GAAYA,EAASA,EAASxyC,EAAO,MAC/DyyC,GACAA,IAA4BnC,GAC5BC,EAAO9/F,KAAKgiG,EAAyBhC,KAGvC8B,EAAoBE,GAGtB,IAAIC,EAAKJ,EAA2BpkG,UAClC+iG,EAAU/iG,UAAYP,OAAOC,OAAO2kG,GAYtC,SAASI,EAAsBzkG,GAC7B,CAAC,OAAQ,QAAS,UAAUo7B,SAAQ,SAASnG,GAC3C+7B,EAAOhxD,EAAWi1B,GAAQ,SAASl0B,GACjC,OAAOyB,KAAK0gG,QAAQjuE,EAAQl0B,SAkClC,SAAS2jG,EAAc1B,EAAW2B,GAChC,SAASC,EAAO3vE,EAAQl0B,EAAK6uB,EAASC,GACpC,IAAIk0E,EAASC,EAAShB,EAAU/tE,GAAS+tE,EAAWjiG,GACpD,GAAoB,UAAhBgjG,EAAO/8F,KAEJ,CACL,IAAI+wC,EAASgsD,EAAOhjG,IAChBb,EAAQ63C,EAAO73C,MACnB,OAAIA,GACiB,kBAAVA,GACPmiG,EAAO9/F,KAAKrC,EAAO,WACdykG,EAAY/0E,QAAQ1vB,EAAM2kG,SAAShwC,MAAK,SAAS30D,GACtD0kG,EAAO,OAAQ1kG,EAAO0vB,EAASC,MAC9B,SAASlB,GACVi2E,EAAO,QAASj2E,EAAKiB,EAASC,MAI3B80E,EAAY/0E,QAAQ1vB,GAAO20D,MAAK,SAASiwC,GAI9C/sD,EAAO73C,MAAQ4kG,EACfl1E,EAAQmoB,MACP,SAASrlB,GAGV,OAAOkyE,EAAO,QAASlyE,EAAO9C,EAASC,MAvBzCA,EAAOk0E,EAAOhjG,KA4BlB,IAAIgkG,EAgCJviG,KAAK0gG,QA9BL,SAAiBjuE,EAAQl0B,GACvB,SAASikG,IACP,OAAO,IAAIL,GAAY,SAAS/0E,EAASC,GACvC+0E,EAAO3vE,EAAQl0B,EAAK6uB,EAASC,MAIjC,OAAOk1E,EAaLA,EAAkBA,EAAgBlwC,KAChCmwC,EAGAA,GACEA,KAkHV,SAASvB,EAAoBF,EAAU1wE,GACrC,IAAIoC,EAASsuE,EAAS9nE,SAAS5I,EAAQoC,QACvC,GAAIA,IAAWtzB,EAAW,CAKxB,GAFAkxB,EAAQ0wE,SAAW,KAEI,UAAnB1wE,EAAQoC,OAAoB,CAE9B,GAAIsuE,EAAS9nE,SAAT,SAGF5I,EAAQoC,OAAS,SACjBpC,EAAQ9xB,IAAMY,EACd8hG,EAAoBF,EAAU1wE,GAEP,UAAnBA,EAAQoC,QAGV,OAAOyuE,EAIX7wE,EAAQoC,OAAS,QACjBpC,EAAQ9xB,IAAM,IAAIO,UAChB,kDAGJ,OAAOoiG,EAGT,IAAIK,EAASC,EAAS/uE,EAAQsuE,EAAS9nE,SAAU5I,EAAQ9xB,KAEzD,GAAoB,UAAhBgjG,EAAO/8F,KAIT,OAHA6rB,EAAQoC,OAAS,QACjBpC,EAAQ9xB,IAAMgjG,EAAOhjG,IACrB8xB,EAAQ0wE,SAAW,KACZG,EAGT,IAAI9uC,EAAOmvC,EAAOhjG,IAElB,OAAM6zD,EAOFA,EAAK/lC,MAGPgE,EAAQ0wE,EAAS0B,YAAcrwC,EAAK10D,MAGpC2yB,EAAQvG,KAAOi3E,EAAS2B,QAQD,WAAnBryE,EAAQoC,SACVpC,EAAQoC,OAAS,OACjBpC,EAAQ9xB,IAAMY,GAUlBkxB,EAAQ0wE,SAAW,KACZG,GANE9uC,GA3BP/hC,EAAQoC,OAAS,QACjBpC,EAAQ9xB,IAAM,IAAIO,UAAU,oCAC5BuxB,EAAQ0wE,SAAW,KACZG,GAoDX,SAASyB,EAAaC,GACpB,IAAIh5D,EAAQ,CAAEi5D,OAAQD,EAAK,IAEvB,KAAKA,IACPh5D,EAAMk5D,SAAWF,EAAK,IAGpB,KAAKA,IACPh5D,EAAMm5D,WAAaH,EAAK,GACxBh5D,EAAMo5D,SAAWJ,EAAK,IAGxB5iG,KAAKijG,WAAW3hG,KAAKsoC,GAGvB,SAASs5D,EAAct5D,GACrB,IAAI23D,EAAS33D,EAAMu5D,YAAc,GACjC5B,EAAO/8F,KAAO,gBACP+8F,EAAOhjG,IACdqrC,EAAMu5D,WAAa5B,EAGrB,SAASd,EAAQJ,GAIfrgG,KAAKijG,WAAa,CAAC,CAAEJ,OAAQ,SAC7BxC,EAAYznE,QAAQ+pE,EAAc3iG,MAClCA,KAAKm2D,OAAM,GA8Bb,SAAS7G,EAAOnR,GACd,GAAIA,EAAU,CACZ,IAAIilD,EAAiBjlD,EAAS4hD,GAC9B,GAAIqD,EACF,OAAOA,EAAerjG,KAAKo+C,GAG7B,GAA6B,oBAAlBA,EAASr0B,KAClB,OAAOq0B,EAGT,IAAKn4C,MAAMm4C,EAAS1/C,QAAS,CAC3B,IAAI4C,GAAK,EAAGyoB,EAAO,SAASA,IAC1B,OAASzoB,EAAI88C,EAAS1/C,QACpB,GAAIohG,EAAO9/F,KAAKo+C,EAAU98C,GAGxB,OAFAyoB,EAAKpsB,MAAQygD,EAAS98C,GACtByoB,EAAKuC,MAAO,EACLvC,EAOX,OAHAA,EAAKpsB,MAAQyB,EACb2qB,EAAKuC,MAAO,EAELvC,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMg3E,GAIjB,SAASA,IACP,MAAO,CAAEpjG,MAAOyB,EAAWktB,MAAM,GA+MnC,OA7mBAs1E,EAAkBnkG,UAAYokG,EAC9BpzC,EAAOwzC,EAAI,cAAeJ,GAC1BpzC,EAAOozC,EAA4B,cAAeD,GAClDA,EAAkBtyB,YAAc7gB,EAC9BozC,EACA3B,EACA,qBAaF7iG,EAAQimG,oBAAsB,SAASC,GACrC,IAAIjmG,EAAyB,oBAAXimG,GAAyBA,EAAO7lG,YAClD,QAAOJ,IACHA,IAASskG,GAG2B,uBAAnCtkG,EAAKgyE,aAAehyE,EAAKmF,QAIhCpF,EAAQmmG,KAAO,SAASD,GAQtB,OAPIrmG,OAAOumG,eACTvmG,OAAOumG,eAAeF,EAAQ1B,IAE9B0B,EAAO//F,UAAYq+F,EACnBpzC,EAAO80C,EAAQrD,EAAmB,sBAEpCqD,EAAO9lG,UAAYP,OAAOC,OAAO8kG,GAC1BsB,GAOTlmG,EAAQqmG,MAAQ,SAASllG,GACvB,MAAO,CAAE8jG,QAAS9jG,IAsEpB0jG,EAAsBC,EAAc1kG,WACpCgxD,EAAO0zC,EAAc1kG,UAAWwiG,GAAqB,WACnD,OAAOhgG,QAET5C,EAAQ8kG,cAAgBA,EAKxB9kG,EAAQsmG,MAAQ,SAASvD,EAASC,EAASnpF,EAAMopF,EAAa8B,QACxC,IAAhBA,IAAwBA,EAAch1E,SAE1C,IAAIw2E,EAAO,IAAIzB,EACblkD,EAAKmiD,EAASC,EAASnpF,EAAMopF,GAC7B8B,GAGF,OAAO/kG,EAAQimG,oBAAoBjD,GAC/BuD,EACAA,EAAK75E,OAAOuoC,MAAK,SAAS9c,GACxB,OAAOA,EAAOlpB,KAAOkpB,EAAO73C,MAAQimG,EAAK75E,WAuKjDm4E,EAAsBD,GAEtBxzC,EAAOwzC,EAAI/B,EAAmB,aAO9BzxC,EAAOwzC,EAAIjC,GAAgB,WACzB,OAAO//F,QAGTwuD,EAAOwzC,EAAI,YAAY,WACrB,MAAO,wBAkCT5kG,EAAQszB,KAAO,SAAS6c,GACtB,IAAI7c,EAAO,GACX,IAAK,IAAIryB,KAAOkvC,EACd7c,EAAKpvB,KAAKjD,GAMZ,OAJAqyB,EAAKmoB,UAIE,SAAS/uB,IACd,KAAO4G,EAAKjyB,QAAQ,CAClB,IAAIJ,EAAMqyB,EAAKF,MACf,GAAInyB,KAAOkvC,EAGT,OAFAzjB,EAAKpsB,MAAQW,EACbyrB,EAAKuC,MAAO,EACLvC,EAQX,OADAA,EAAKuC,MAAO,EACLvC,IAsCX1sB,EAAQkyD,OAASA,EAMjBmxC,EAAQjjG,UAAY,CAClBC,YAAagjG,EAEbtqC,MAAO,SAASytC,GAcd,GAbA5jG,KAAK6pB,KAAO,EACZ7pB,KAAK8pB,KAAO,EAGZ9pB,KAAKmhG,KAAOnhG,KAAKohG,MAAQjiG,EACzBa,KAAKqsB,MAAO,EACZrsB,KAAK+gG,SAAW,KAEhB/gG,KAAKyyB,OAAS,OACdzyB,KAAKzB,IAAMY,EAEXa,KAAKijG,WAAWrqE,QAAQsqE,IAEnBU,EACH,IAAK,IAAIphG,KAAQxC,KAEQ,MAAnBwC,EAAKoiC,OAAO,IACZi7D,EAAO9/F,KAAKC,KAAMwC,KACjBwD,OAAOxD,EAAKyB,MAAM,MACrBjE,KAAKwC,GAAQrD,IAMrBosD,KAAM,WACJvrD,KAAKqsB,MAAO,EAEZ,IACIw3E,EADY7jG,KAAKijG,WAAW,GACLE,WAC3B,GAAwB,UAApBU,EAAWr/F,KACb,MAAMq/F,EAAWtlG,IAGnB,OAAOyB,KAAK8jG,MAGdzC,kBAAmB,SAAS0C,GAC1B,GAAI/jG,KAAKqsB,KACP,MAAM03E,EAGR,IAAI1zE,EAAUrwB,KACd,SAASgkG,EAAOC,EAAKC,GAYnB,OAXA3C,EAAO/8F,KAAO,QACd+8F,EAAOhjG,IAAMwlG,EACb1zE,EAAQvG,KAAOm6E,EAEXC,IAGF7zE,EAAQoC,OAAS,OACjBpC,EAAQ9xB,IAAMY,KAGN+kG,EAGZ,IAAK,IAAI7iG,EAAIrB,KAAKijG,WAAWxkG,OAAS,EAAG4C,GAAK,IAAKA,EAAG,CACpD,IAAIuoC,EAAQ5pC,KAAKijG,WAAW5hG,GACxBkgG,EAAS33D,EAAMu5D,WAEnB,GAAqB,SAAjBv5D,EAAMi5D,OAIR,OAAOmB,EAAO,OAGhB,GAAIp6D,EAAMi5D,QAAU7iG,KAAK6pB,KAAM,CAC7B,IAAIs6E,EAAWtE,EAAO9/F,KAAK6pC,EAAO,YAC9Bw6D,EAAavE,EAAO9/F,KAAK6pC,EAAO,cAEpC,GAAIu6D,GAAYC,EAAY,CAC1B,GAAIpkG,KAAK6pB,KAAO+f,EAAMk5D,SACpB,OAAOkB,EAAOp6D,EAAMk5D,UAAU,GACzB,GAAI9iG,KAAK6pB,KAAO+f,EAAMm5D,WAC3B,OAAOiB,EAAOp6D,EAAMm5D,iBAGjB,GAAIoB,GACT,GAAInkG,KAAK6pB,KAAO+f,EAAMk5D,SACpB,OAAOkB,EAAOp6D,EAAMk5D,UAAU,OAG3B,KAAIsB,EAMT,MAAM,IAAI3kG,MAAM,0CALhB,GAAIO,KAAK6pB,KAAO+f,EAAMm5D,WACpB,OAAOiB,EAAOp6D,EAAMm5D,gBAU9BzB,OAAQ,SAAS98F,EAAMjG,GACrB,IAAK,IAAI8C,EAAIrB,KAAKijG,WAAWxkG,OAAS,EAAG4C,GAAK,IAAKA,EAAG,CACpD,IAAIuoC,EAAQ5pC,KAAKijG,WAAW5hG,GAC5B,GAAIuoC,EAAMi5D,QAAU7iG,KAAK6pB,MACrBg2E,EAAO9/F,KAAK6pC,EAAO,eACnB5pC,KAAK6pB,KAAO+f,EAAMm5D,WAAY,CAChC,IAAIsB,EAAez6D,EACnB,OAIAy6D,IACU,UAAT7/F,GACS,aAATA,IACD6/F,EAAaxB,QAAUtkG,GACvBA,GAAO8lG,EAAatB,aAGtBsB,EAAe,MAGjB,IAAI9C,EAAS8C,EAAeA,EAAalB,WAAa,GAItD,OAHA5B,EAAO/8F,KAAOA,EACd+8F,EAAOhjG,IAAMA,EAET8lG,GACFrkG,KAAKyyB,OAAS,OACdzyB,KAAK8pB,KAAOu6E,EAAatB,WAClB7B,GAGFlhG,KAAKskG,SAAS/C,IAGvB+C,SAAU,SAAS/C,EAAQyB,GACzB,GAAoB,UAAhBzB,EAAO/8F,KACT,MAAM+8F,EAAOhjG,IAcf,MAXoB,UAAhBgjG,EAAO/8F,MACS,aAAhB+8F,EAAO/8F,KACTxE,KAAK8pB,KAAOy3E,EAAOhjG,IACM,WAAhBgjG,EAAO/8F,MAChBxE,KAAK8jG,KAAO9jG,KAAKzB,IAAMgjG,EAAOhjG,IAC9ByB,KAAKyyB,OAAS,SACdzyB,KAAK8pB,KAAO,OACa,WAAhBy3E,EAAO/8F,MAAqBw+F,IACrChjG,KAAK8pB,KAAOk5E,GAGP9B,GAGTr3D,OAAQ,SAASk5D,GACf,IAAK,IAAI1hG,EAAIrB,KAAKijG,WAAWxkG,OAAS,EAAG4C,GAAK,IAAKA,EAAG,CACpD,IAAIuoC,EAAQ5pC,KAAKijG,WAAW5hG,GAC5B,GAAIuoC,EAAMm5D,aAAeA,EAGvB,OAFA/iG,KAAKskG,SAAS16D,EAAMu5D,WAAYv5D,EAAMo5D,UACtCE,EAAct5D,GACPs3D,IAKb,MAAS,SAAS2B,GAChB,IAAK,IAAIxhG,EAAIrB,KAAKijG,WAAWxkG,OAAS,EAAG4C,GAAK,IAAKA,EAAG,CACpD,IAAIuoC,EAAQ5pC,KAAKijG,WAAW5hG,GAC5B,GAAIuoC,EAAMi5D,SAAWA,EAAQ,CAC3B,IAAItB,EAAS33D,EAAMu5D,WACnB,GAAoB,UAAhB5B,EAAO/8F,KAAkB,CAC3B,IAAI+/F,EAAShD,EAAOhjG,IACpB2kG,EAAct5D,GAEhB,OAAO26D,GAMX,MAAM,IAAI9kG,MAAM,0BAGlB+kG,cAAe,SAASrmD,EAAUskD,EAAYC,GAa5C,OAZA1iG,KAAK+gG,SAAW,CACd9nE,SAAUq2B,EAAOnR,GACjBskD,WAAYA,EACZC,QAASA,GAGS,SAAhB1iG,KAAKyyB,SAGPzyB,KAAKzB,IAAMY,GAGN+hG,IAQJ9jG,EA9sBM,CAqtBgBD,EAAOC,SAGtC,IACEqnG,mBAAqB9E,EACrB,MAAO+E,GAWmB,kBAAfC,WACTA,WAAWF,mBAAqB9E,EAEhCjwF,SAAS,IAAK,yBAAdA,CAAwCiwF,K,8BC7uB5CviG,EAAQsG,WAuCR,SAAqBkhG,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClD5nG,EAAQgS,YAiDR,SAAsBw1F,GACpB,IAAIn8E,EAcApnB,EAbAwjG,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBz+F,EAAM,IAAI6+F,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVzkG,EAAMskG,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAK1jG,EAAI,EAAGA,EAAIX,EAAKW,GAAK,EACxBonB,EACG28E,EAAUR,EAAIj9F,WAAWtG,KAAO,GAChC+jG,EAAUR,EAAIj9F,WAAWtG,EAAI,KAAO,GACpC+jG,EAAUR,EAAIj9F,WAAWtG,EAAI,KAAO,EACrC+jG,EAAUR,EAAIj9F,WAAWtG,EAAI,IAC/B+E,EAAI++F,KAAc18E,GAAO,GAAM,IAC/BriB,EAAI++F,KAAc18E,GAAO,EAAK,IAC9BriB,EAAI++F,KAAmB,IAAN18E,EAGK,IAApBu8E,IACFv8E,EACG28E,EAAUR,EAAIj9F,WAAWtG,KAAO,EAChC+jG,EAAUR,EAAIj9F,WAAWtG,EAAI,KAAO,EACvC+E,EAAI++F,KAAmB,IAAN18E,GAGK,IAApBu8E,IACFv8E,EACG28E,EAAUR,EAAIj9F,WAAWtG,KAAO,GAChC+jG,EAAUR,EAAIj9F,WAAWtG,EAAI,KAAO,EACpC+jG,EAAUR,EAAIj9F,WAAWtG,EAAI,KAAO,EACvC+E,EAAI++F,KAAc18E,GAAO,EAAK,IAC9BriB,EAAI++F,KAAmB,IAAN18E,GAGnB,OAAOriB,GA3FThJ,EAAQiL,cAkHR,SAAwBg9F,GAQtB,IAPA,IAAI58E,EACA/nB,EAAM2kG,EAAM5mG,OACZ6mG,EAAa5kG,EAAM,EACnBujC,EAAQ,GACRshE,EAAiB,MAGZlkG,EAAI,EAAGmkG,EAAO9kG,EAAM4kG,EAAYjkG,EAAImkG,EAAMnkG,GAAKkkG,EACtDthE,EAAM3iC,KAAKmkG,EAAYJ,EAAOhkG,EAAIA,EAAIkkG,EAAkBC,EAAOA,EAAQnkG,EAAIkkG,IAI1D,IAAfD,GACF78E,EAAM48E,EAAM3kG,EAAM,GAClBujC,EAAM3iC,KACJs+D,EAAOn3C,GAAO,GACdm3C,EAAQn3C,GAAO,EAAK,IACpB,OAEsB,IAAf68E,IACT78E,GAAO48E,EAAM3kG,EAAM,IAAM,GAAK2kG,EAAM3kG,EAAM,GAC1CujC,EAAM3iC,KACJs+D,EAAOn3C,GAAO,IACdm3C,EAAQn3C,GAAO,EAAK,IACpBm3C,EAAQn3C,GAAO,EAAK,IACpB,MAIJ,OAAOwb,EAAMr5B,KAAK,KAzIpB,IALA,IAAIg1D,EAAS,GACTwlC,EAAY,GACZH,EAA4B,qBAAf3hG,WAA6BA,WAAanC,MAEvD6N,EAAO,mEACF3N,EAAI,EAAGX,EAAMsO,EAAKvQ,OAAQ4C,EAAIX,IAAOW,EAC5Cu+D,EAAOv+D,GAAK2N,EAAK3N,GACjB+jG,EAAUp2F,EAAKrH,WAAWtG,IAAMA,EAQlC,SAASyjG,EAASF,GAChB,IAAIlkG,EAAMkkG,EAAInmG,OAEd,GAAIiC,EAAM,EAAI,EACZ,MAAM,IAAIjB,MAAM,kDAKlB,IAAIslG,EAAWH,EAAI1+F,QAAQ,KAO3B,OANkB,IAAd6+F,IAAiBA,EAAWrkG,GAMzB,CAACqkG,EAJcA,IAAarkG,EAC/B,EACA,EAAKqkG,EAAW,GAsEtB,SAASU,EAAaJ,EAAOlgG,EAAOC,GAGlC,IAFA,IAAIqjB,EARoBhY,EASpBkZ,EAAS,GACJtoB,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAK,EAChConB,GACI48E,EAAMhkG,IAAM,GAAM,WAClBgkG,EAAMhkG,EAAI,IAAM,EAAK,QACP,IAAfgkG,EAAMhkG,EAAI,IACbsoB,EAAOroB,KAdFs+D,GADiBnvD,EAeMgY,IAdT,GAAK,IACxBm3C,EAAOnvD,GAAO,GAAK,IACnBmvD,EAAOnvD,GAAO,EAAI,IAClBmvD,EAAa,GAANnvD,IAaT,OAAOkZ,EAAO/e,KAAK,IAjGrBw6F,EAAU,IAAIz9F,WAAW,IAAM,GAC/By9F,EAAU,IAAIz9F,WAAW,IAAM,I,cClB/BvK,EAAQqJ,KAAO,SAAU1I,EAAQgJ,EAAQ2+F,EAAMC,EAAMC,GACnD,IAAI9lG,EAAGgG,EACH+/F,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT3kG,EAAIqkG,EAAQE,EAAS,EAAK,EAC1BryF,EAAImyF,GAAQ,EAAI,EAChBjlF,EAAI1iB,EAAOgJ,EAAS1F,GAOxB,IALAA,GAAKkS,EAELzT,EAAI2gB,GAAM,IAAOulF,GAAU,EAC3BvlF,KAAQulF,EACRA,GAASH,EACFG,EAAQ,EAAGlmG,EAAS,IAAJA,EAAW/B,EAAOgJ,EAAS1F,GAAIA,GAAKkS,EAAGyyF,GAAS,GAKvE,IAHAlgG,EAAIhG,GAAM,IAAOkmG,GAAU,EAC3BlmG,KAAQkmG,EACRA,GAASL,EACFK,EAAQ,EAAGlgG,EAAS,IAAJA,EAAW/H,EAAOgJ,EAAS1F,GAAIA,GAAKkS,EAAGyyF,GAAS,GAEvE,GAAU,IAANlmG,EACFA,EAAI,EAAIimG,MACH,IAAIjmG,IAAMgmG,EACf,OAAOhgG,EAAImgG,IAAsB/2F,KAAduR,GAAK,EAAI,GAE5B3a,GAAQwC,KAAKwE,IAAI,EAAG64F,GACpB7lG,GAAQimG,EAEV,OAAQtlF,GAAK,EAAI,GAAK3a,EAAIwC,KAAKwE,IAAI,EAAGhN,EAAI6lG,IAG5CvoG,EAAQ4G,MAAQ,SAAUjG,EAAQL,EAAOqJ,EAAQ2+F,EAAMC,EAAMC,GAC3D,IAAI9lG,EAAGgG,EAAGmC,EACN49F,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAcr9F,KAAKwE,IAAI,GAAI,IAAMxE,KAAKwE,IAAI,GAAI,IAAM,EAC1DzL,EAAIqkG,EAAO,EAAKE,EAAS,EACzBryF,EAAImyF,EAAO,GAAK,EAChBjlF,EAAI/iB,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ4K,KAAKkQ,IAAI9a,GAEbsI,MAAMtI,IAAUA,IAAUwR,KAC5BpJ,EAAIE,MAAMtI,GAAS,EAAI,EACvBoC,EAAIgmG,IAEJhmG,EAAIwI,KAAKsF,MAAMtF,KAAKmzD,IAAI/9D,GAAS4K,KAAKyuE,KAClCr5E,GAASuK,EAAIK,KAAKwE,IAAI,GAAIhN,IAAM,IAClCA,IACAmI,GAAK,IAGLvK,GADEoC,EAAIimG,GAAS,EACNG,EAAKj+F,EAELi+F,EAAK59F,KAAKwE,IAAI,EAAG,EAAIi5F,IAEpB99F,GAAK,IACfnI,IACAmI,GAAK,GAGHnI,EAAIimG,GAASD,GACfhgG,EAAI,EACJhG,EAAIgmG,GACKhmG,EAAIimG,GAAS,GACtBjgG,GAAMpI,EAAQuK,EAAK,GAAKK,KAAKwE,IAAI,EAAG64F,GACpC7lG,GAAQimG,IAERjgG,EAAIpI,EAAQ4K,KAAKwE,IAAI,EAAGi5F,EAAQ,GAAKz9F,KAAKwE,IAAI,EAAG64F,GACjD7lG,EAAI,IAID6lG,GAAQ,EAAG5nG,EAAOgJ,EAAS1F,GAAS,IAAJyE,EAAUzE,GAAKkS,EAAGzN,GAAK,IAAK6/F,GAAQ,GAI3E,IAFA7lG,EAAKA,GAAK6lG,EAAQ7/F,EAClB+/F,GAAQF,EACDE,EAAO,EAAG9nG,EAAOgJ,EAAS1F,GAAS,IAAJvB,EAAUuB,GAAKkS,EAAGzT,GAAK,IAAK+lG,GAAQ,GAE1E9nG,EAAOgJ,EAAS1F,EAAIkS,IAAU,IAAJkN,I,6BCjF5BrjB,EAAQuzC,YAAcvzC,EAAQ+oG,IAAM/oG,EAAQgpG,kBAAoBhpG,EAAQipG,KAAOroG,EAAQ,IACvFZ,EAAQu0D,WAAav0D,EAAQ63B,KAAOj3B,EAAQ,IAC5CZ,EAAQkpG,WAAalpG,EAAQ4nD,KAAOhnD,EAAQ,IAE5C,IAAIuoG,EAAQvoG,EAAQ,KAChBwoG,EAAWvpG,OAAOyzB,KAAK61E,GACvBE,EAAS,CAAC,OAAQ,SAAU,SAAU,SAAU,SAAU,MAAO,UAAUlmG,OAAOimG,GACtFppG,EAAQspG,UAAY,WAClB,OAAOD,GAGT,IAAI5zF,EAAI7U,EAAQ,IAChBZ,EAAQmoD,OAAS1yC,EAAE0yC,OACnBnoD,EAAQolC,WAAa3vB,EAAE2vB,WAEvB,IAAIymB,EAAMjrD,EAAQ,KAElBZ,EAAQkxC,OAAS2a,EAAI3a,OACrBlxC,EAAQgyC,aAAe6Z,EAAI7Z,aAC3BhyC,EAAQkyC,SAAW2Z,EAAI3Z,SACvBlyC,EAAQiyC,eAAiB4Z,EAAI5Z,eAC7BjyC,EAAQoyC,SAAWyZ,EAAIzZ,SACvBpyC,EAAQmyC,eAAiB0Z,EAAI1Z,eAC7BnyC,EAAQqyC,WAAawZ,EAAIxZ,WACzBryC,EAAQqlC,iBAAmBwmB,EAAIxmB,iBAC/BrlC,EAAQuyC,WAAasZ,EAAItZ,WACzBvyC,EAAQsyC,YAAcuZ,EAAIvZ,YAE1B,IAAIv7B,EAAKnW,EAAQ,KAEjBZ,EAAQupG,mBAAqBxyF,EAAGwyF,mBAChCvpG,EAAQwpG,yBAA2BzyF,EAAGyyF,yBACtCxpG,EAAQypG,iBAAmB1yF,EAAG0yF,iBAC9BzpG,EAAQ0pG,oBAAsB3yF,EAAG2yF,oBACjC1pG,EAAQ2pG,cAAgB5yF,EAAG4yF,cAE3B,IAAI52C,EAAOnyD,EAAQ,KAEnBZ,EAAQ4pG,WAAa72C,EAAK62C,WAC1B5pG,EAAQ6pG,KAAO92C,EAAK82C,KACpB7pG,EAAQ8pG,aAAe/2C,EAAK+2C,aAC5B9pG,EAAQ+pG,OAASh3C,EAAKg3C,OAEtB/pG,EAAQgqG,WAAappG,EAAQ,KAE7B,IAAIqpG,EAAgBrpG,EAAQ,KAE5BZ,EAAQiqG,cAAgBA,EAAcA,cACtCjqG,EAAQkqG,eAAiBD,EAAcC,eACvClqG,EAAQmqG,cAAgBF,EAAcE,cACtCnqG,EAAQoqG,eAAiBH,EAAcG,eAevC,IAAI7iB,EAAK3mF,EAAQ,KAEjBZ,EAAQqqG,WAAa9iB,EAAG8iB,WACxBrqG,EAAQsqG,eAAiB/iB,EAAG+iB,eAE5BtqG,EAAQuqG,kBAAoB,WAC1B,MAAM,IAAIloG,MAAM,CACd,kDACA,0BACA,0DACAmL,KAAK,QAGTxN,EAAQs2C,UAAY,CAClB,0BAA6B,EAC7B,qBAAwB,EACxB,6BAAgC,EAChC,0BAA6B,EAC7B,YAAe,EACf,aAAgB,EAChB,kBAAqB,EACrB,mBAAsB,EACtB,eAAkB,EAClB,uBAA0B,EAC1B,iBAAoB,EACpB,sBAAyB,EACzB,4BAA+B,EAC/B,8BAAiC,EACjC,wBAA2B,I,gBC7F7B,IAAI31C,EAASC,EAAQ,GACjBC,EAASF,EAAOE,OAGpB,SAASC,EAAWC,EAAKC,GACvB,IAAK,IAAIC,KAAOF,EACdC,EAAIC,GAAOF,EAAIE,GAWnB,SAASC,EAAYC,EAAKC,EAAkBC,GAC1C,OAAOR,EAAOM,EAAKC,EAAkBC,GATnCR,EAAOS,MAAQT,EAAOU,OAASV,EAAOW,aAAeX,EAAOY,gBAC9D1B,EAAOC,QAAUW,GAGjBG,EAAUH,EAAQX,GAClBA,EAAQa,OAASK,GAOnBA,EAAWd,UAAYP,OAAOC,OAAOe,EAAOT,WAG5CU,EAAUD,EAAQK,GAElBA,EAAWI,KAAO,SAAUH,EAAKC,EAAkBC,GACjD,GAAmB,kBAARF,EACT,MAAM,IAAIO,UAAU,iCAEtB,OAAOb,EAAOM,EAAKC,EAAkBC,IAGvCH,EAAWK,MAAQ,SAAUI,EAAMC,EAAMC,GACvC,GAAoB,kBAATF,EACT,MAAM,IAAID,UAAU,6BAEtB,IAAII,EAAMjB,EAAOc,GAUjB,YATaI,IAATH,EACsB,kBAAbC,EACTC,EAAIF,KAAKA,EAAMC,GAEfC,EAAIF,KAAKA,GAGXE,EAAIF,KAAK,GAEJE,GAGTZ,EAAWM,YAAc,SAAUG,GACjC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOb,EAAOc,IAGhBT,EAAWO,gBAAkB,SAAUE,GACrC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOf,EAAOqB,WAAWL,K,iBC/D3B3B,EAAUD,EAAOC,QAAUY,EAAQ,KAC3BwrC,OAASpsC,EACjBA,EAAQk1B,SAAWl1B,EACnBA,EAAQm1B,SAAWv0B,EAAQ,IAC3BZ,EAAQg1B,OAASp0B,EAAQ,IACzBZ,EAAQ0tB,UAAY9sB,EAAQ,IAC5BZ,EAAQqsC,YAAczrC,EAAQ,KAC9BZ,EAAQmqC,SAAWvpC,EAAQ,IAC3BZ,EAAQwqG,SAAW5pG,EAAQ,M,8BCN3B,SAAS4uB,EAAQ2gB,EAAQs6D,GAAkB,IAAIn3E,EAAOzzB,OAAOyzB,KAAK6c,GAAS,GAAItwC,OAAO4vB,sBAAuB,CAAE,IAAIiX,EAAU7mC,OAAO4vB,sBAAsB0gB,GAAas6D,IAAgB/jE,EAAUA,EAAQQ,QAAO,SAAUwjE,GAAO,OAAO7qG,OAAOwyE,yBAAyBliC,EAAQu6D,GAAKnqG,eAAgB+yB,EAAKpvB,KAAKC,MAAMmvB,EAAMoT,GAAY,OAAOpT,EAI9U,SAASq3E,EAAgB5jG,EAAK9F,EAAKX,GAAiK,OAApJW,KAAO8F,EAAOlH,OAAO4M,eAAe1F,EAAK9F,EAAK,CAAEX,MAAOA,EAAOC,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBuG,EAAI9F,GAAOX,EAAgByG,EAI3M,SAAS6jG,EAAkBn9F,EAAQmgE,GAAS,IAAK,IAAI3pE,EAAI,EAAGA,EAAI2pE,EAAMvsE,OAAQ4C,IAAK,CAAE,IAAI4mG,EAAaj9B,EAAM3pE,GAAI4mG,EAAWtqG,WAAasqG,EAAWtqG,aAAc,EAAOsqG,EAAWpqG,cAAe,EAAU,UAAWoqG,IAAYA,EAAWrqG,UAAW,GAAMX,OAAO4M,eAAegB,EAAQo9F,EAAW5pG,IAAK4pG,IAI7S,IACIhqG,EADWD,EAAQ,GACDC,OAGlBwM,EADYzM,EAAQ,KACAyM,QAEpBy9F,EAASz9F,GAAWA,EAAQy9F,QAAU,UAM1C/qG,EAAOC,QAEP,WACE,SAASs8C,KArBX,SAAyBmsB,EAAUsiC,GAAe,KAAMtiC,aAAoBsiC,GAAgB,MAAM,IAAIrpG,UAAU,qCAsB5GspG,CAAgBpoG,KAAM05C,GAEtB15C,KAAK87C,KAAO,KACZ97C,KAAKukD,KAAO,KACZvkD,KAAKvB,OAAS,EAtBlB,IAAsB0pG,EAAaE,EAAYC,EAoM7C,OApMoBH,EAyBPzuD,EAzBoB2uD,EAyBR,CAAC,CACxBhqG,IAAK,OACLX,MAAO,SAAc80B,GACnB,IAAIoX,EAAQ,CACVnlC,KAAM+tB,EACN1I,KAAM,MAEJ9pB,KAAKvB,OAAS,EAAGuB,KAAKukD,KAAKz6B,KAAO8f,EAAW5pC,KAAK87C,KAAOlS,EAC7D5pC,KAAKukD,KAAO3a,IACV5pC,KAAKvB,SAER,CACDJ,IAAK,UACLX,MAAO,SAAiB80B,GACtB,IAAIoX,EAAQ,CACVnlC,KAAM+tB,EACN1I,KAAM9pB,KAAK87C,MAEO,IAAhB97C,KAAKvB,SAAcuB,KAAKukD,KAAO3a,GACnC5pC,KAAK87C,KAAOlS,IACV5pC,KAAKvB,SAER,CACDJ,IAAK,QACLX,MAAO,WACL,GAAoB,IAAhBsC,KAAKvB,OAAT,CACA,IAAI6M,EAAMtL,KAAK87C,KAAKr3C,KAGpB,OAFoB,IAAhBzE,KAAKvB,OAAcuB,KAAK87C,KAAO97C,KAAKukD,KAAO,KAAUvkD,KAAK87C,KAAO97C,KAAK87C,KAAKhyB,OAC7E9pB,KAAKvB,OACA6M,KAER,CACDjN,IAAK,QACLX,MAAO,WACLsC,KAAK87C,KAAO97C,KAAKukD,KAAO,KACxBvkD,KAAKvB,OAAS,IAEf,CACDJ,IAAK,OACLX,MAAO,SAAc+iB,GACnB,GAAoB,IAAhBzgB,KAAKvB,OAAc,MAAO,GAI9B,IAHA,IAAIoU,EAAI7S,KAAK87C,KACTxwC,EAAM,GAAKuH,EAAEpO,KAEVoO,EAAIA,EAAEiX,MACXxe,GAAOmV,EAAI5N,EAAEpO,KAGf,OAAO6G,IAER,CACDjN,IAAK,SACLX,MAAO,SAAgBmI,GACrB,GAAoB,IAAhB7F,KAAKvB,OAAc,OAAOR,EAAOU,MAAM,GAK3C,IAJA,IArEcR,EAAK0M,EAAQ9D,EAqEvBuE,EAAMrN,EAAOW,YAAYiH,IAAM,GAC/BgN,EAAI7S,KAAK87C,KACTz6C,EAAI,EAEDwR,GAzEO1U,EA0ED0U,EAAEpO,KA1EIoG,EA0EES,EA1EMvE,EA0ED1F,EAzE9BpD,EAAOT,UAAU8G,KAAKvE,KAAK5B,EAAK0M,EAAQ9D,GA0ElC1F,GAAKwR,EAAEpO,KAAKhG,OACZoU,EAAIA,EAAEiX,KAGR,OAAOxe,IAGR,CACDjN,IAAK,UACLX,MAAO,SAAiBmI,EAAGy+C,GACzB,IAAIh5C,EAcJ,OAZIzF,EAAI7F,KAAK87C,KAAKr3C,KAAKhG,QAErB6M,EAAMtL,KAAK87C,KAAKr3C,KAAKR,MAAM,EAAG4B,GAC9B7F,KAAK87C,KAAKr3C,KAAOzE,KAAK87C,KAAKr3C,KAAKR,MAAM4B,IAGtCyF,EAFSzF,IAAM7F,KAAK87C,KAAKr3C,KAAKhG,OAExBuB,KAAK8jB,QAGLwgC,EAAatkD,KAAKuoG,WAAW1iG,GAAK7F,KAAKwoG,WAAW3iG,GAGnDyF,IAER,CACDjN,IAAK,QACLX,MAAO,WACL,OAAOsC,KAAK87C,KAAKr3C,OAGlB,CACDpG,IAAK,aACLX,MAAO,SAAoBmI,GACzB,IAAIgN,EAAI7S,KAAK87C,KACT7zC,EAAI,EACJqD,EAAMuH,EAAEpO,KAGZ,IAFAoB,GAAKyF,EAAI7M,OAEFoU,EAAIA,EAAEiX,MAAM,CACjB,IAAIriB,EAAMoL,EAAEpO,KACRosB,EAAKhrB,EAAI4B,EAAIhJ,OAASgJ,EAAIhJ,OAASoH,EAIvC,GAHIgrB,IAAOppB,EAAIhJ,OAAQ6M,GAAO7D,EAAS6D,GAAO7D,EAAIxD,MAAM,EAAG4B,GAGjD,KAFVA,GAAKgrB,GAEQ,CACPA,IAAOppB,EAAIhJ,UACXwJ,EACE4K,EAAEiX,KAAM9pB,KAAK87C,KAAOjpC,EAAEiX,KAAU9pB,KAAK87C,KAAO97C,KAAKukD,KAAO,OAE5DvkD,KAAK87C,KAAOjpC,EACZA,EAAEpO,KAAOgD,EAAIxD,MAAM4sB,IAGrB,QAGA5oB,EAIJ,OADAjI,KAAKvB,QAAUwJ,EACRqD,IAGR,CACDjN,IAAK,aACLX,MAAO,SAAoBmI,GACzB,IAAIyF,EAAMrN,EAAOW,YAAYiH,GACzBgN,EAAI7S,KAAK87C,KACT7zC,EAAI,EAIR,IAHA4K,EAAEpO,KAAKH,KAAKgH,GACZzF,GAAKgN,EAAEpO,KAAKhG,OAELoU,EAAIA,EAAEiX,MAAM,CACjB,IAAI5qB,EAAM2T,EAAEpO,KACRosB,EAAKhrB,EAAI3G,EAAIT,OAASS,EAAIT,OAASoH,EAIvC,GAHA3G,EAAIoF,KAAKgH,EAAKA,EAAI7M,OAASoH,EAAG,EAAGgrB,GAGvB,KAFVhrB,GAAKgrB,GAEQ,CACPA,IAAO3xB,EAAIT,UACXwJ,EACE4K,EAAEiX,KAAM9pB,KAAK87C,KAAOjpC,EAAEiX,KAAU9pB,KAAK87C,KAAO97C,KAAKukD,KAAO,OAE5DvkD,KAAK87C,KAAOjpC,EACZA,EAAEpO,KAAOvF,EAAI+E,MAAM4sB,IAGrB,QAGA5oB,EAIJ,OADAjI,KAAKvB,QAAUwJ,EACRqD,IAGR,CACDjN,IAAK6pG,EACLxqG,MAAO,SAAeokB,EAAG4Q,GACvB,OAAOjoB,EAAQzK,KAnMrB,SAAuB6K,GAAU,IAAK,IAAIxJ,EAAI,EAAGA,EAAID,UAAU3C,OAAQ4C,IAAK,CAAE,IAAIwiC,EAAyB,MAAhBziC,UAAUC,GAAaD,UAAUC,GAAK,GAAQA,EAAI,EAAKurB,EAAQ3vB,OAAO4mC,IAAS,GAAMjL,SAAQ,SAAUv6B,GAAO0pG,EAAgBl9F,EAAQxM,EAAKwlC,EAAOxlC,OAAsBpB,OAAOwrG,0BAA6BxrG,OAAO0nE,iBAAiB95D,EAAQ5N,OAAOwrG,0BAA0B5kE,IAAmBjX,EAAQ3vB,OAAO4mC,IAASjL,SAAQ,SAAUv6B,GAAOpB,OAAO4M,eAAegB,EAAQxM,EAAKpB,OAAOwyE,yBAAyB5rC,EAAQxlC,OAAe,OAAOwM,EAmMlf69F,CAAc,GAAIh2E,EAAS,CAE9Ci2E,MAAO,EAEPC,eAAe,QA/L2CP,GAAYL,EAAkBG,EAAY3qG,UAAW6qG,GAAiBC,GAAaN,EAAkBG,EAAaG,GAoM3K5uD,EApLT,I,iBC1BA,IAAI37C,EAASC,EAAQ,GACjBC,EAASF,EAAOE,OAGpB,SAASC,EAAWC,EAAKC,GACvB,IAAK,IAAIC,KAAOF,EACdC,EAAIC,GAAOF,EAAIE,GAWnB,SAASC,EAAYC,EAAKC,EAAkBC,GAC1C,OAAOR,EAAOM,EAAKC,EAAkBC,GATnCR,EAAOS,MAAQT,EAAOU,OAASV,EAAOW,aAAeX,EAAOY,gBAC9D1B,EAAOC,QAAUW,GAGjBG,EAAUH,EAAQX,GAClBA,EAAQa,OAASK,GAOnBA,EAAWd,UAAYP,OAAOC,OAAOe,EAAOT,WAG5CU,EAAUD,EAAQK,GAElBA,EAAWI,KAAO,SAAUH,EAAKC,EAAkBC,GACjD,GAAmB,kBAARF,EACT,MAAM,IAAIO,UAAU,iCAEtB,OAAOb,EAAOM,EAAKC,EAAkBC,IAGvCH,EAAWK,MAAQ,SAAUI,EAAMC,EAAMC,GACvC,GAAoB,kBAATF,EACT,MAAM,IAAID,UAAU,6BAEtB,IAAII,EAAMjB,EAAOc,GAUjB,YATaI,IAATH,EACsB,kBAAbC,EACTC,EAAIF,KAAKA,EAAMC,GAEfC,EAAIF,KAAKA,GAGXE,EAAIF,KAAK,GAEJE,GAGTZ,EAAWM,YAAc,SAAUG,GACjC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOb,EAAOc,IAGhBT,EAAWO,gBAAkB,SAAUE,GACrC,GAAoB,kBAATA,EACT,MAAM,IAAID,UAAU,6BAEtB,OAAOf,EAAOqB,WAAWL,K,8BC/D3B,YAEA,IAAI8pG,EAEJ,SAASd,EAAgB5jG,EAAK9F,EAAKX,GAAiK,OAApJW,KAAO8F,EAAOlH,OAAO4M,eAAe1F,EAAK9F,EAAK,CAAEX,MAAOA,EAAOC,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBuG,EAAI9F,GAAOX,EAAgByG,EAE3M,IAAIojC,EAAWvpC,EAAQ,IAEnB8qG,EAAen/F,OAAO,eACtBo/F,EAAcp/F,OAAO,cACrBq/F,EAASr/F,OAAO,SAChBs/F,EAASt/F,OAAO,SAChBu/F,EAAev/F,OAAO,eACtBw/F,EAAiBx/F,OAAO,iBACxBy/F,EAAUz/F,OAAO,UAErB,SAAS0/F,EAAiB3rG,EAAO2uB,GAC/B,MAAO,CACL3uB,MAAOA,EACP2uB,KAAMA,GAIV,SAASi9E,EAAe3F,GACtB,IAAIv2E,EAAUu2E,EAAKmF,GAEnB,GAAgB,OAAZ17E,EAAkB,CACpB,IAAI3oB,EAAOk/F,EAAKyF,GAAS3iG,OAIZ,OAAThC,IACFk/F,EAAKuF,GAAgB,KACrBvF,EAAKmF,GAAgB,KACrBnF,EAAKoF,GAAe,KACpB37E,EAAQi8E,EAAiB5kG,GAAM,MAKrC,SAAS8kG,EAAW5F,GAGlBpkG,EAAQ0B,SAASqoG,EAAgB3F,GAgBnC,IAAI6F,EAAyBvsG,OAAO6yB,gBAAe,eAC/C25E,EAAuCxsG,OAAOumG,gBA4D/CuE,EA5D+Dc,EAAwB,CACpF7hE,aACF,OAAOhnC,KAAKopG,IAGdt/E,KAAM,WACJ,IAAI6f,EAAQ3pC,KAIRkwB,EAAQlwB,KAAKgpG,GAEjB,GAAc,OAAV94E,EACF,OAAO/C,QAAQE,OAAO6C,GAGxB,GAAIlwB,KAAKipG,GACP,OAAO97E,QAAQC,QAAQi8E,OAAiBlqG,GAAW,IAGrD,GAAIa,KAAKopG,GAASj2E,UAKhB,OAAO,IAAIhG,SAAQ,SAAUC,EAASC,GACpC9tB,EAAQ0B,UAAS,WACX0oC,EAAMq/D,GACR37E,EAAOsc,EAAMq/D,IAEb57E,EAAQi8E,OAAiBlqG,GAAW,UAU5C,IACIuqG,EADAC,EAAc3pG,KAAKkpG,GAGvB,GAAIS,EACFD,EAAU,IAAIv8E,QA1DpB,SAAqBw8E,EAAahG,GAChC,OAAO,SAAUv2E,EAASC,GACxBs8E,EAAYt3C,MAAK,WACXsxC,EAAKsF,GACP77E,EAAQi8E,OAAiBlqG,GAAW,IAItCwkG,EAAKwF,GAAgB/7E,EAASC,KAC7BA,IAiDqBu8E,CAAYD,EAAa3pG,WAC1C,CAGL,IAAIyE,EAAOzE,KAAKopG,GAAS3iG,OAEzB,GAAa,OAAThC,EACF,OAAO0oB,QAAQC,QAAQi8E,EAAiB5kG,GAAM,IAGhDilG,EAAU,IAAIv8E,QAAQntB,KAAKmpG,IAI7B,OADAnpG,KAAKkpG,GAAgBQ,EACdA,IAE+B//F,OAAOs0C,eAAe,WAC9D,OAAOj+C,QACL+nG,EAAgBc,EAAuB,UAAU,WACnD,IAAIjkD,EAAS5kD,KAKb,OAAO,IAAImtB,SAAQ,SAAUC,EAASC,GACpCu3B,EAAOwkD,GAASx8D,QAAQ,MAAM,SAAUzgB,GAClCA,EACFkB,EAAOlB,GAITiB,EAAQi8E,OAAiBlqG,GAAW,aAGtC0pG,GAAwBW,GAoE5BrsG,EAAOC,QAlEiC,SAA2C4pC,GACjF,IAAI6iE,EAEA5wE,EAAWh8B,OAAOC,OAAOusG,GAA4D1B,EAArB8B,EAAiB,GAAoCT,EAAS,CAChI1rG,MAAOspC,EACPppC,UAAU,IACRmqG,EAAgB8B,EAAgBf,EAAc,CAChDprG,MAAO,KACPE,UAAU,IACRmqG,EAAgB8B,EAAgBd,EAAa,CAC/CrrG,MAAO,KACPE,UAAU,IACRmqG,EAAgB8B,EAAgBb,EAAQ,CAC1CtrG,MAAO,KACPE,UAAU,IACRmqG,EAAgB8B,EAAgBZ,EAAQ,CAC1CvrG,MAAOspC,EAAO9T,eAAeuU,WAC7B7pC,UAAU,IACRmqG,EAAgB8B,EAAgBV,EAAgB,CAClDzrG,MAAO,SAAe0vB,EAASC,GAC7B,IAAI5oB,EAAOw0B,EAASmwE,GAAS3iG,OAEzBhC,GACFw0B,EAASiwE,GAAgB,KACzBjwE,EAAS6vE,GAAgB,KACzB7vE,EAAS8vE,GAAe,KACxB37E,EAAQi8E,EAAiB5kG,GAAM,MAE/Bw0B,EAAS6vE,GAAgB17E,EACzB6L,EAAS8vE,GAAe17E,IAG5BzvB,UAAU,IACRisG,IA8BJ,OA7BA5wE,EAASiwE,GAAgB,KACzB3hE,EAASP,GAAQ,SAAU7a,GACzB,GAAIA,GAAoB,+BAAbA,EAAInd,KAAuC,CACpD,IAAIqe,EAAS4L,EAAS8vE,GAWtB,OARe,OAAX17E,IACF4L,EAASiwE,GAAgB,KACzBjwE,EAAS6vE,GAAgB,KACzB7vE,EAAS8vE,GAAe,KACxB17E,EAAOlB,SAGT8M,EAAS+vE,GAAU78E,GAIrB,IAAIiB,EAAU6L,EAAS6vE,GAEP,OAAZ17E,IACF6L,EAASiwE,GAAgB,KACzBjwE,EAAS6vE,GAAgB,KACzB7vE,EAAS8vE,GAAe,KACxB37E,EAAQi8E,OAAiBlqG,GAAW,KAGtC85B,EAASgwE,IAAU,KAErBjiE,EAAOllC,GAAG,WAAYynG,EAAWn6E,KAAK,KAAM6J,IACrCA,K,+BC3MT97B,EAAOC,QAAU,WACf,MAAM,IAAIqC,MAAM,mD,6BCwBlBtC,EAAOC,QAAUqsC,EAEjB,IAAI3e,EAAY9sB,EAAQ,IAIxB,SAASyrC,EAAY/W,GACnB,KAAM1yB,gBAAgBypC,GAAc,OAAO,IAAIA,EAAY/W,GAC3D5H,EAAU/qB,KAAKC,KAAM0yB,GAJvB10B,EAAQ,EAARA,CAAoByrC,EAAa3e,GAOjC2e,EAAYjsC,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUo0B,GAC5DA,EAAG,KAAMyZ,K,6BCjCX,IAAI/F,EAWJ,IAAI6S,EAAiB57C,EAAQ,IAAmB41B,MAC5Ck2E,EAAmBlwD,EAAekwD,iBAClC/qD,EAAuBnF,EAAemF,qBAE1C,SAAS/9C,EAAKmrB,GAEZ,GAAIA,EAAK,MAAMA,EAOjB,SAAS49E,EAAU/iE,EAAQuT,EAAShP,EAASrE,GAC3CA,EAvBF,SAAcA,GACZ,IAAIC,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACTD,EAAS3lC,WAAM,EAAQH,aAkBdY,CAAKklC,GAChB,IAAI8iE,GAAS,EACbhjE,EAAOllC,GAAG,SAAS,WACjBkoG,GAAS,UAEC7qG,IAAR4nC,IAAmBA,EAAM/oC,EAAQ,KACrC+oC,EAAIC,EAAQ,CACVrU,SAAU4nB,EACV38C,SAAU2tC,IACT,SAAUpf,GACX,GAAIA,EAAK,OAAO+a,EAAS/a,GACzB69E,GAAS,EACT9iE,OAEF,IAAI/T,GAAY,EAChB,OAAO,SAAUhH,GACf,IAAI69E,IACA72E,EAGJ,OAFAA,GAAY,EAvBhB,SAAmB6T,GACjB,OAAOA,EAAOc,WAAqC,oBAAjBd,EAAOe,MAwBnCC,CAAUhB,GAAgBA,EAAOe,QACP,oBAAnBf,EAAO4F,QAA+B5F,EAAO4F,eACxD1F,EAAS/a,GAAO,IAAI4yB,EAAqB,UAI7C,SAASh/C,EAAKy5B,GACZA,IAGF,SAASgU,EAAK9uC,EAAMqlC,GAClB,OAAOrlC,EAAK8uC,KAAKzJ,GAGnB,SAASkmE,EAAYC,GACnB,OAAKA,EAAQzrG,OAC8B,oBAAhCyrG,EAAQA,EAAQzrG,OAAS,GAA0BuC,EACvDkpG,EAAQ15E,MAFaxvB,EAgC9B7D,EAAOC,QA3BP,WACE,IAAK,IAAIm4B,EAAOn0B,UAAU3C,OAAQyrG,EAAU,IAAI/oG,MAAMo0B,GAAOgG,EAAO,EAAGA,EAAOhG,EAAMgG,IAClF2uE,EAAQ3uE,GAAQn6B,UAAUm6B,GAG5B,IAOIrL,EAPAgX,EAAW+iE,EAAYC,GAG3B,GAFI/oG,MAAM6B,QAAQknG,EAAQ,MAAKA,EAAUA,EAAQ,IAE7CA,EAAQzrG,OAAS,EACnB,MAAM,IAAIqrG,EAAiB,WAI7B,IAAIK,EAAWD,EAAQx1E,KAAI,SAAUsS,EAAQ3lC,GAC3C,IAAIk5C,EAAUl5C,EAAI6oG,EAAQzrG,OAAS,EAEnC,OAAOsrG,EAAU/iE,EAAQuT,EADXl5C,EAAI,GACyB,SAAU8qB,GAC9C+D,IAAOA,EAAQ/D,GAChBA,GAAKg+E,EAASvxE,QAAQ74B,GACtBw6C,IACJ4vD,EAASvxE,QAAQ74B,GACjBmnC,EAAShX,UAGb,OAAOg6E,EAAQE,OAAO58D,K,gBCrFxB,IAAIj7B,EAAWvU,EAAQ,GACnBi3B,EAAOj3B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAEhC8hD,EAAI,CACN,WAAY,YAAY,YAAgB,WAGtCC,EAAI,IAAI7+C,MAAM,IAElB,SAASkpG,IACPrqG,KAAKitB,OACLjtB,KAAKkgD,GAAKF,EAEV/qB,EAAKl1B,KAAKC,KAAM,GAAI,IAmBtB,SAASsqG,EAAQ75F,GACf,OAAQA,GAAO,GAAOA,IAAQ,EAGhC,SAAS85F,EAAI9pF,EAAG7a,EAAGqC,EAAGsL,GACpB,OAAU,IAANkN,EAAiB7a,EAAIqC,GAAQrC,EAAK2N,EAC5B,IAANkN,EAAiB7a,EAAIqC,EAAMrC,EAAI2N,EAAMtL,EAAIsL,EACtC3N,EAAIqC,EAAIsL,EAvBjBhB,EAAS83F,EAAKp1E,GAEdo1E,EAAI7sG,UAAUyvB,KAAO,WAOnB,OANAjtB,KAAKimC,GAAK,WACVjmC,KAAKkmC,GAAK,WACVlmC,KAAKmmC,GAAK,WACVnmC,KAAKq5B,GAAK,UACVr5B,KAAKm5B,GAAK,WAEHn5B,MAiBTqqG,EAAI7sG,UAAUouB,QAAU,SAAUgO,GAShC,IARA,IAfcnpB,EAeVuvC,EAAIhgD,KAAKkgD,GAETl2C,EAAc,EAAVhK,KAAKimC,GACTrgC,EAAc,EAAV5F,KAAKkmC,GACTj+B,EAAc,EAAVjI,KAAKmmC,GACT5yB,EAAc,EAAVvT,KAAKq5B,GACTv5B,EAAc,EAAVE,KAAKm5B,GAEJ93B,EAAI,EAAGA,EAAI,KAAMA,EAAG2+C,EAAE3+C,GAAKu4B,EAAExsB,YAAgB,EAAJ/L,GAClD,KAAOA,EAAI,KAAMA,EAAG2+C,EAAE3+C,GAAK2+C,EAAE3+C,EAAI,GAAK2+C,EAAE3+C,EAAI,GAAK2+C,EAAE3+C,EAAI,IAAM2+C,EAAE3+C,EAAI,IAEnE,IAAK,IAAIwF,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,IAAI4Z,KAAO5Z,EAAI,IACXsR,EAAoD,IA5B5C1H,EA4BGzG,IA3BF,EAAMyG,IAAQ,IA2BP85F,EAAG9pF,EAAG7a,EAAGqC,EAAGsL,GAAKzT,EAAIkgD,EAAEn5C,GAAKk5C,EAAEt/B,GAElD3gB,EAAIyT,EACJA,EAAItL,EACJA,EAAIqiG,EAAO1kG,GACXA,EAAIoE,EACJA,EAAImO,EAGNnY,KAAKimC,GAAMj8B,EAAIhK,KAAKimC,GAAM,EAC1BjmC,KAAKkmC,GAAMtgC,EAAI5F,KAAKkmC,GAAM,EAC1BlmC,KAAKmmC,GAAMl+B,EAAIjI,KAAKmmC,GAAM,EAC1BnmC,KAAKq5B,GAAM9lB,EAAIvT,KAAKq5B,GAAM,EAC1Br5B,KAAKm5B,GAAMr5B,EAAIE,KAAKm5B,GAAM,GAG5BkxE,EAAI7sG,UAAUy4B,MAAQ,WACpB,IAAI2qB,EAAI3iD,EAAOW,YAAY,IAQ3B,OANAgiD,EAAEnyC,aAAuB,EAAVzO,KAAKimC,GAAQ,GAC5B2a,EAAEnyC,aAAuB,EAAVzO,KAAKkmC,GAAQ,GAC5B0a,EAAEnyC,aAAuB,EAAVzO,KAAKmmC,GAAQ,GAC5Bya,EAAEnyC,aAAuB,EAAVzO,KAAKq5B,GAAQ,IAC5BunB,EAAEnyC,aAAuB,EAAVzO,KAAKm5B,GAAQ,IAErBynB,GAGTzjD,EAAOC,QAAUitG,G,gBCpFjB,IAAI93F,EAAWvU,EAAQ,GACnBi3B,EAAOj3B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAEhC8hD,EAAI,CACN,WAAY,YAAY,YAAgB,WAGtCC,EAAI,IAAI7+C,MAAM,IAElB,SAASqpG,IACPxqG,KAAKitB,OACLjtB,KAAKkgD,GAAKF,EAEV/qB,EAAKl1B,KAAKC,KAAM,GAAI,IAmBtB,SAASyqG,EAAOh6F,GACd,OAAQA,GAAO,EAAMA,IAAQ,GAG/B,SAAS65F,EAAQ75F,GACf,OAAQA,GAAO,GAAOA,IAAQ,EAGhC,SAAS85F,EAAI9pF,EAAG7a,EAAGqC,EAAGsL,GACpB,OAAU,IAANkN,EAAiB7a,EAAIqC,GAAQrC,EAAK2N,EAC5B,IAANkN,EAAiB7a,EAAIqC,EAAMrC,EAAI2N,EAAMtL,EAAIsL,EACtC3N,EAAIqC,EAAIsL,EA3BjBhB,EAASi4F,EAAMv1E,GAEfu1E,EAAKhtG,UAAUyvB,KAAO,WAOpB,OANAjtB,KAAKimC,GAAK,WACVjmC,KAAKkmC,GAAK,WACVlmC,KAAKmmC,GAAK,WACVnmC,KAAKq5B,GAAK,UACVr5B,KAAKm5B,GAAK,WAEHn5B,MAqBTwqG,EAAKhtG,UAAUouB,QAAU,SAAUgO,GASjC,IARA,IAnBcnpB,EAmBVuvC,EAAIhgD,KAAKkgD,GAETl2C,EAAc,EAAVhK,KAAKimC,GACTrgC,EAAc,EAAV5F,KAAKkmC,GACTj+B,EAAc,EAAVjI,KAAKmmC,GACT5yB,EAAc,EAAVvT,KAAKq5B,GACTv5B,EAAc,EAAVE,KAAKm5B,GAEJ93B,EAAI,EAAGA,EAAI,KAAMA,EAAG2+C,EAAE3+C,GAAKu4B,EAAExsB,YAAgB,EAAJ/L,GAClD,KAAOA,EAAI,KAAMA,EAAG2+C,EAAE3+C,IA5BRoP,EA4BmBuvC,EAAE3+C,EAAI,GAAK2+C,EAAE3+C,EAAI,GAAK2+C,EAAE3+C,EAAI,IAAM2+C,EAAE3+C,EAAI,MA3B1D,EAAMoP,IAAQ,GA6B7B,IAAK,IAAI5J,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,IAAI4Z,KAAO5Z,EAAI,IACXsR,EAAKsyF,EAAMzgG,GAAKugG,EAAG9pF,EAAG7a,EAAGqC,EAAGsL,GAAKzT,EAAIkgD,EAAEn5C,GAAKk5C,EAAEt/B,GAAM,EAExD3gB,EAAIyT,EACJA,EAAItL,EACJA,EAAIqiG,EAAO1kG,GACXA,EAAIoE,EACJA,EAAImO,EAGNnY,KAAKimC,GAAMj8B,EAAIhK,KAAKimC,GAAM,EAC1BjmC,KAAKkmC,GAAMtgC,EAAI5F,KAAKkmC,GAAM,EAC1BlmC,KAAKmmC,GAAMl+B,EAAIjI,KAAKmmC,GAAM,EAC1BnmC,KAAKq5B,GAAM9lB,EAAIvT,KAAKq5B,GAAM,EAC1Br5B,KAAKm5B,GAAMr5B,EAAIE,KAAKm5B,GAAM,GAG5BqxE,EAAKhtG,UAAUy4B,MAAQ,WACrB,IAAI2qB,EAAI3iD,EAAOW,YAAY,IAQ3B,OANAgiD,EAAEnyC,aAAuB,EAAVzO,KAAKimC,GAAQ,GAC5B2a,EAAEnyC,aAAuB,EAAVzO,KAAKkmC,GAAQ,GAC5B0a,EAAEnyC,aAAuB,EAAVzO,KAAKmmC,GAAQ,GAC5Bya,EAAEnyC,aAAuB,EAAVzO,KAAKq5B,GAAQ,IAC5BunB,EAAEnyC,aAAuB,EAAVzO,KAAKm5B,GAAQ,IAErBynB,GAGTzjD,EAAOC,QAAUotG,G,gBC1FjB,IAAIj4F,EAAWvU,EAAQ,GACnBiiD,EAASjiD,EAAQ,IACjBi3B,EAAOj3B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAEhC+hD,EAAI,IAAI7+C,MAAM,IAElB,SAASupG,IACP1qG,KAAKitB,OAELjtB,KAAKkgD,GAAKF,EAEV/qB,EAAKl1B,KAAKC,KAAM,GAAI,IAGtBuS,EAASm4F,EAAQzqD,GAEjByqD,EAAOltG,UAAUyvB,KAAO,WAUtB,OATAjtB,KAAKimC,GAAK,WACVjmC,KAAKkmC,GAAK,UACVlmC,KAAKmmC,GAAK,UACVnmC,KAAKq5B,GAAK,WACVr5B,KAAKm5B,GAAK,WACVn5B,KAAKugD,GAAK,WACVvgD,KAAKwgD,GAAK,WACVxgD,KAAKygD,GAAK,WAEHzgD,MAGT0qG,EAAOltG,UAAUy4B,MAAQ,WACvB,IAAI2qB,EAAI3iD,EAAOW,YAAY,IAU3B,OARAgiD,EAAEnyC,aAAazO,KAAKimC,GAAI,GACxB2a,EAAEnyC,aAAazO,KAAKkmC,GAAI,GACxB0a,EAAEnyC,aAAazO,KAAKmmC,GAAI,GACxBya,EAAEnyC,aAAazO,KAAKq5B,GAAI,IACxBunB,EAAEnyC,aAAazO,KAAKm5B,GAAI,IACxBynB,EAAEnyC,aAAazO,KAAKugD,GAAI,IACxBK,EAAEnyC,aAAazO,KAAKwgD,GAAI,IAEjBI,GAGTzjD,EAAOC,QAAUstG,G,gBCpDjB,IAAIn4F,EAAWvU,EAAQ,GACnBwuD,EAASxuD,EAAQ,IACjBi3B,EAAOj3B,EAAQ,IACfC,EAASD,EAAQ,GAAeC,OAEhC+hD,EAAI,IAAI7+C,MAAM,KAElB,SAASwpG,IACP3qG,KAAKitB,OACLjtB,KAAKkgD,GAAKF,EAEV/qB,EAAKl1B,KAAKC,KAAM,IAAK,KAGvBuS,EAASo4F,EAAQn+C,GAEjBm+C,EAAOntG,UAAUyvB,KAAO,WAmBtB,OAlBAjtB,KAAKqhD,IAAM,WACXrhD,KAAKshD,IAAM,WACXthD,KAAKuhD,IAAM,WACXvhD,KAAKwhD,IAAM,UACXxhD,KAAKyhD,IAAM,WACXzhD,KAAK0hD,IAAM,WACX1hD,KAAK2hD,IAAM,WACX3hD,KAAK4hD,IAAM,WAEX5hD,KAAK6hD,IAAM,WACX7hD,KAAK8hD,IAAM,UACX9hD,KAAK+hD,IAAM,UACX/hD,KAAKgiD,IAAM,WACXhiD,KAAKiiD,IAAM,WACXjiD,KAAKkiD,IAAM,WACXliD,KAAKmiD,IAAM,WACXniD,KAAKoiD,IAAM,WAEJpiD,MAGT2qG,EAAOntG,UAAUy4B,MAAQ,WACvB,IAAI2qB,EAAI3iD,EAAOW,YAAY,IAE3B,SAASslD,EAAclhC,EAAGjT,EAAGhJ,GAC3B65C,EAAEnyC,aAAauU,EAAGjc,GAClB65C,EAAEnyC,aAAasB,EAAGhJ,EAAS,GAU7B,OAPAm9C,EAAalkD,KAAKqhD,IAAKrhD,KAAK6hD,IAAK,GACjCqC,EAAalkD,KAAKshD,IAAKthD,KAAK8hD,IAAK,GACjCoC,EAAalkD,KAAKuhD,IAAKvhD,KAAK+hD,IAAK,IACjCmC,EAAalkD,KAAKwhD,IAAKxhD,KAAKgiD,IAAK,IACjCkC,EAAalkD,KAAKyhD,IAAKzhD,KAAKiiD,IAAK,IACjCiC,EAAalkD,KAAK0hD,IAAK1hD,KAAKkiD,IAAK,IAE1BtB,GAGTzjD,EAAOC,QAAUutG,G,gBCnCjBxtG,EAAOC,QAAUosC,EAEjB,IAAIohE,EAAK5sG,EAAQ,IAAUgvB,aAkB3B,SAASwc,IACPohE,EAAG7qG,KAAKC,MAlBKhC,EAAQ,EAEvBuU,CAASi3B,EAAQohE,GACjBphE,EAAOlX,SAAWt0B,EAAQ,IAC1BwrC,EAAOjX,SAAWv0B,EAAQ,KAC1BwrC,EAAOpX,OAASp0B,EAAQ,KACxBwrC,EAAO1e,UAAY9sB,EAAQ,KAC3BwrC,EAAOC,YAAczrC,EAAQ,KAG7BwrC,EAAOA,OAASA,EAWhBA,EAAOhsC,UAAUgwC,KAAO,SAAS92B,EAAMgc,GACrC,IAAImR,EAAS7jC,KAEb,SAASy9C,EAAO3Q,GACVp2B,EAAK9Y,WACH,IAAU8Y,EAAK1S,MAAM8oC,IAAUjJ,EAAO+Z,OACxC/Z,EAAO+Z,QAOb,SAASJ,IACH3Z,EAAOlR,UAAYkR,EAAOyY,QAC5BzY,EAAOyY,SAJXzY,EAAO/hC,GAAG,OAAQ27C,GAQlB/mC,EAAK5U,GAAG,QAAS07C,GAIZ9mC,EAAKm0F,UAAcn4E,IAA2B,IAAhBA,EAAQttB,MACzCy+B,EAAO/hC,GAAG,MAAO+wB,GACjBgR,EAAO/hC,GAAG,QAAS6lC,IAGrB,IAAImjE,GAAW,EACf,SAASj4E,IACHi4E,IACJA,GAAW,EAEXp0F,EAAKtR,OAIP,SAASuiC,IACHmjE,IACJA,GAAW,EAEiB,oBAAjBp0F,EAAKk2B,SAAwBl2B,EAAKk2B,WAI/C,SAASlF,EAAQvX,GAEf,GADA46E,IACwC,IAApCH,EAAGl7E,cAAc1vB,KAAM,SACzB,MAAMmwB,EAQV,SAAS46E,IACPlnE,EAAO3hC,eAAe,OAAQu7C,GAC9B/mC,EAAKxU,eAAe,QAASs7C,GAE7B3Z,EAAO3hC,eAAe,MAAO2wB,GAC7BgR,EAAO3hC,eAAe,QAASylC,GAE/B9D,EAAO3hC,eAAe,QAASwlC,GAC/BhxB,EAAKxU,eAAe,QAASwlC,GAE7B7D,EAAO3hC,eAAe,MAAO6oG,GAC7BlnE,EAAO3hC,eAAe,QAAS6oG,GAE/Br0F,EAAKxU,eAAe,QAAS6oG,GAW/B,OA5BAlnE,EAAO/hC,GAAG,QAAS4lC,GACnBhxB,EAAK5U,GAAG,QAAS4lC,GAmBjB7D,EAAO/hC,GAAG,MAAOipG,GACjBlnE,EAAO/hC,GAAG,QAASipG,GAEnBr0F,EAAK5U,GAAG,QAASipG,GAEjBr0F,EAAKtU,KAAK,OAAQyhC,GAGXntB,I,8BCzHT,IAAIzY,EAASD,EAAQ,GAAeC,OAChCo0B,EAAOr0B,EAAQ,KAMnBb,EAAOC,QAAU,WACf,SAASs8C,KAVX,SAAyBmsB,EAAUsiC,GAAe,KAAMtiC,aAAoBsiC,GAAgB,MAAM,IAAIrpG,UAAU,qCAW5GspG,CAAgBpoG,KAAM05C,GAEtB15C,KAAK87C,KAAO,KACZ97C,KAAKukD,KAAO,KACZvkD,KAAKvB,OAAS,EAqDhB,OAlDAi7C,EAAWl8C,UAAU8D,KAAO,SAAckxB,GACxC,IAAIoX,EAAQ,CAAEnlC,KAAM+tB,EAAG1I,KAAM,MACzB9pB,KAAKvB,OAAS,EAAGuB,KAAKukD,KAAKz6B,KAAO8f,EAAW5pC,KAAK87C,KAAOlS,EAC7D5pC,KAAKukD,KAAO3a,IACV5pC,KAAKvB,QAGTi7C,EAAWl8C,UAAUixB,QAAU,SAAiB+D,GAC9C,IAAIoX,EAAQ,CAAEnlC,KAAM+tB,EAAG1I,KAAM9pB,KAAK87C,MACd,IAAhB97C,KAAKvB,SAAcuB,KAAKukD,KAAO3a,GACnC5pC,KAAK87C,KAAOlS,IACV5pC,KAAKvB,QAGTi7C,EAAWl8C,UAAUsmB,MAAQ,WAC3B,GAAoB,IAAhB9jB,KAAKvB,OAAT,CACA,IAAI6M,EAAMtL,KAAK87C,KAAKr3C,KAGpB,OAFoB,IAAhBzE,KAAKvB,OAAcuB,KAAK87C,KAAO97C,KAAKukD,KAAO,KAAUvkD,KAAK87C,KAAO97C,KAAK87C,KAAKhyB,OAC7E9pB,KAAKvB,OACA6M,IAGTouC,EAAWl8C,UAAUu+C,MAAQ,WAC3B/7C,KAAK87C,KAAO97C,KAAKukD,KAAO,KACxBvkD,KAAKvB,OAAS,GAGhBi7C,EAAWl8C,UAAUoN,KAAO,SAAc6V,GACxC,GAAoB,IAAhBzgB,KAAKvB,OAAc,MAAO,GAG9B,IAFA,IAAIoU,EAAI7S,KAAK87C,KACTxwC,EAAM,GAAKuH,EAAEpO,KACVoO,EAAIA,EAAEiX,MACXxe,GAAOmV,EAAI5N,EAAEpO,KACd,OAAO6G,GAGVouC,EAAWl8C,UAAU+C,OAAS,SAAgBsF,GAC5C,GAAoB,IAAhB7F,KAAKvB,OAAc,OAAOR,EAAOU,MAAM,GAC3C,GAAoB,IAAhBqB,KAAKvB,OAAc,OAAOuB,KAAK87C,KAAKr3C,KAIxC,IAHA,IApDgBtG,EAAK0M,EAAQ9D,EAoDzBuE,EAAMrN,EAAOW,YAAYiH,IAAM,GAC/BgN,EAAI7S,KAAK87C,KACTz6C,EAAI,EACDwR,GAvDS1U,EAwDH0U,EAAEpO,KAxDMoG,EAwDAS,EAxDQvE,EAwDH1F,EAvD5BlD,EAAImG,KAAKuG,EAAQ9D,GAwDb1F,GAAKwR,EAAEpO,KAAKhG,OACZoU,EAAIA,EAAEiX,KAER,OAAOxe,GAGFouC,EA3DQ,GA8DbrnB,GAAQA,EAAK5nB,SAAW4nB,EAAK5nB,QAAQy9F,SACvC/qG,EAAOC,QAAQI,UAAU60B,EAAK5nB,QAAQy9F,QAAU,WAC9C,IAAI/jG,EAAMkuB,EAAK5nB,QAAQ,CAAEhM,OAAQuB,KAAKvB,SACtC,OAAOuB,KAAKvC,YAAY+E,KAAO,IAAM2B,K,kBC5EzC,gBAAI6mG,EAA2B,qBAAX3hG,GAA0BA,GACjB,qBAAT4N,MAAwBA,MAChCtH,OACRpO,EAAQmO,SAASlS,UAAU+D,MAiB/B,SAAS0pG,EAAQ57C,EAAI67C,GACnBlrG,KAAKmrG,IAAM97C,EACXrvD,KAAKorG,SAAWF,EAflB9tG,EAAQyC,WAAa,WACnB,OAAO,IAAIorG,EAAQ1pG,EAAMxB,KAAKF,WAAYmrG,EAAO5pG,WAAYnB,eAE/D7C,EAAQiuG,YAAc,WACpB,OAAO,IAAIJ,EAAQ1pG,EAAMxB,KAAKsrG,YAAaL,EAAO5pG,WAAYwkE,gBAEhExoE,EAAQ6C,aACR7C,EAAQwoE,cAAgB,SAASnlE,GAC3BA,GACFA,EAAQg4D,SAQZwyC,EAAQztG,UAAU8tG,MAAQL,EAAQztG,UAAU+tE,IAAM,aAClD0/B,EAAQztG,UAAUi7D,MAAQ,WACxBz4D,KAAKorG,SAASrrG,KAAKirG,EAAOhrG,KAAKmrG,MAIjC/tG,EAAQmuG,OAAS,SAASrzE,EAAMszE,GAC9BvrG,aAAai4B,EAAKuzE,gBAClBvzE,EAAKwzE,aAAeF,GAGtBpuG,EAAQuuG,SAAW,SAASzzE,GAC1Bj4B,aAAai4B,EAAKuzE,gBAClBvzE,EAAKwzE,cAAgB,GAGvBtuG,EAAQwuG,aAAexuG,EAAQyuG,OAAS,SAAS3zE,GAC/Cj4B,aAAai4B,EAAKuzE,gBAElB,IAAID,EAAQtzE,EAAKwzE,aACbF,GAAS,IACXtzE,EAAKuzE,eAAiB5rG,YAAW,WAC3Bq4B,EAAK4zE,YACP5zE,EAAK4zE,eACNN,KAKPxtG,EAAQ,KAIRZ,EAAQ+sC,aAAgC,qBAATlzB,MAAwBA,KAAKkzB,cAClB,qBAAX9gC,GAA0BA,EAAO8gC,cACxCnqC,MAAQA,KAAKmqC,aACrC/sC,EAAQ2uG,eAAkC,qBAAT90F,MAAwBA,KAAK80F,gBAClB,qBAAX1iG,GAA0BA,EAAO0iG,gBACxC/rG,MAAQA,KAAK+rG,iB,kCC9DtC,wBAAU1iG,EAAQlK,GACf,aAEA,IAAIkK,EAAO8gC,aAAX,CAIA,IAII6hE,EAJAC,EAAa,EACbC,EAAgB,GAChBC,GAAwB,EACxBC,EAAM/iG,EAAOwxD,SAoJbwxC,EAAWpvG,OAAO6yB,gBAAkB7yB,OAAO6yB,eAAezmB,GAC9DgjG,EAAWA,GAAYA,EAASxsG,WAAawsG,EAAWhjG,EAGf,qBAArC,GAAGzE,SAAS7E,KAAKsJ,EAAO9J,SApFxBysG,EAAoB,SAAShI,GACzBzkG,EAAQ0B,UAAS,WAAcqrG,EAAatI,OAIpD,WAGI,GAAI36F,EAAO01F,cAAgB11F,EAAO+wD,cAAe,CAC7C,IAAImyC,GAA4B,EAC5BC,EAAenjG,EAAOy1F,UAM1B,OALAz1F,EAAOy1F,UAAY,WACfyN,GAA4B,GAEhCljG,EAAO01F,YAAY,GAAI,KACvB11F,EAAOy1F,UAAY0N,EACZD,GAwEJE,GApEX,WAKI,IAAIC,EAAgB,gBAAkBpkG,KAAKmrD,SAAW,IAClDk5C,EAAkB,SAAS9uD,GACvBA,EAAMha,SAAWx6B,GACK,kBAAfw0C,EAAMp5C,MACyB,IAAtCo5C,EAAMp5C,KAAKyB,QAAQwmG,IACnBJ,GAAczuD,EAAMp5C,KAAKR,MAAMyoG,EAAcjuG,UAIjD4K,EAAOsmB,iBACPtmB,EAAOsmB,iBAAiB,UAAWg9E,GAAiB,GAEpDtjG,EAAOy3E,YAAY,YAAa6rB,GAGpCX,EAAoB,SAAShI,GACzB36F,EAAO01F,YAAY2N,EAAgB1I,EAAQ,MAiD/C4I,GAEOvjG,EAAOm1F,eA/ClB,WACI,IAAIqO,EAAU,IAAIrO,eAClBqO,EAAQhO,MAAMC,UAAY,SAASjhD,GAE/ByuD,EADazuD,EAAMp5C,OAIvBunG,EAAoB,SAAShI,GACzB6I,EAAQjO,MAAMG,YAAYiF,IAyC9B8I,GAEOV,GAAO,uBAAwBA,EAAIj/B,cAAc,UAvC5D,WACI,IAAI4/B,EAAOX,EAAIpf,gBACfgf,EAAoB,SAAShI,GAGzB,IAAIgJ,EAASZ,EAAIj/B,cAAc,UAC/B6/B,EAAOC,mBAAqB,WACxBX,EAAatI,GACbgJ,EAAOC,mBAAqB,KAC5BF,EAAKj8B,YAAYk8B,GACjBA,EAAS,MAEbD,EAAKh8B,YAAYi8B,IA6BrBE,GAxBAlB,EAAoB,SAAShI,GACzBnkG,WAAWysG,EAAc,EAAGtI,IA8BpCqI,EAASliE,aA1KT,SAAsBjD,GAEI,oBAAbA,IACTA,EAAW,IAAIx3B,SAAS,GAAKw3B,IAI/B,IADA,IAAIhmC,EAAO,IAAIC,MAAMC,UAAU3C,OAAS,GAC/B4C,EAAI,EAAGA,EAAIH,EAAKzC,OAAQ4C,IAC7BH,EAAKG,GAAKD,UAAUC,EAAI,GAG5B,IAAI8rG,EAAO,CAAEjmE,SAAUA,EAAUhmC,KAAMA,GAGvC,OAFAgrG,EAAcD,GAAckB,EAC5BnB,EAAkBC,GACXA,KA6JTI,EAASN,eAAiBA,EA1J1B,SAASA,EAAe/H,UACbkI,EAAclI,GAyBzB,SAASsI,EAAatI,GAGlB,GAAImI,EAGAtsG,WAAWysG,EAAc,EAAGtI,OACzB,CACH,IAAImJ,EAAOjB,EAAclI,GACzB,GAAImJ,EAAM,CACNhB,GAAwB,EACxB,KAjCZ,SAAagB,GACT,IAAIjmE,EAAWimE,EAAKjmE,SAChBhmC,EAAOisG,EAAKjsG,KAChB,OAAQA,EAAKzC,QACb,KAAK,EACDyoC,IACA,MACJ,KAAK,EACDA,EAAShmC,EAAK,IACd,MACJ,KAAK,EACDgmC,EAAShmC,EAAK,GAAIA,EAAK,IACvB,MACJ,KAAK,EACDgmC,EAAShmC,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACJ,QACIgmC,EAAS3lC,WAnDpB,EAmDqCL,IAiBlBP,CAAIwsG,GADR,QAGIpB,EAAe/H,GACfmI,GAAwB,MAvE3C,CAyLiB,qBAATl1F,KAAyC,qBAAX5N,EAAyBrJ,KAAOqJ,EAAS4N,Q,mDC9JhF9Z,EAAOC,QAAUqsC,EAEjB,IAAI3e,EAAY9sB,EAAQ,IAGpBq0B,EAAOp1B,OAAOC,OAAOc,EAAQ,KAMjC,SAASyrC,EAAY/W,GACnB,KAAM1yB,gBAAgBypC,GAAc,OAAO,IAAIA,EAAY/W,GAE3D5H,EAAU/qB,KAAKC,KAAM0yB,GARvBL,EAAK9f,SAAWvU,EAAQ,GAGxBq0B,EAAK9f,SAASk3B,EAAa3e,GAQ3B2e,EAAYjsC,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUo0B,GAC5DA,EAAG,KAAMyZ,K,gBC7CX3vC,EAAOC,QAAUY,EAAQ,K,gBCAzBb,EAAOC,QAAUY,EAAQ,K,gBCAzBb,EAAOC,QAAUY,EAAQ,IAAc8sB,W,gBCAvC3tB,EAAOC,QAAUY,EAAQ,IAAcyrC,a,6BCCvC,IAAIl3B,EAAWvU,EAAQ,GACnBC,EAASD,EAAQ,GAAeC,OAEhC61B,EAAO91B,EAAQ,IAEf+mD,EAAQ9mD,EAAOU,MAAM,KACrBsmD,EAAY,GAEhB,SAASD,EAAM3uB,EAAKh4B,GAClBy1B,EAAK/zB,KAAKC,KAAM,UACG,kBAAR3B,IACTA,EAAMJ,EAAOS,KAAKL,IAGpB2B,KAAKklD,KAAO7uB,EACZr2B,KAAKu7B,KAAOl9B,EAERA,EAAII,OAASwmD,EACf5mD,EAAMg4B,EAAIh4B,GACDA,EAAII,OAASwmD,IACtB5mD,EAAMJ,EAAOsC,OAAO,CAAClC,EAAK0mD,GAAQE,IAMpC,IAHA,IAAIE,EAAOnlD,KAAKolD,MAAQnnD,EAAOW,YAAYqmD,GACvCI,EAAOrlD,KAAKslD,MAAQrnD,EAAOW,YAAYqmD,GAElC5jD,EAAI,EAAGA,EAAI4jD,EAAW5jD,IAC7B8jD,EAAK9jD,GAAc,GAAThD,EAAIgD,GACdgkD,EAAKhkD,GAAc,GAAThD,EAAIgD,GAGhBrB,KAAKi2B,MAAQ,CAACkvB,GAGhB5yC,EAASyyC,EAAMlxB,GAEfkxB,EAAKxnD,UAAUouB,QAAU,SAAUnnB,GACjCzE,KAAKi2B,MAAM30B,KAAKmD,IAGlBugD,EAAKxnD,UAAU4tB,OAAS,WACtB,IAAIpI,EAAIhjB,KAAKklD,KAAKjnD,EAAOsC,OAAOP,KAAKi2B,QACrC,OAAOj2B,KAAKklD,KAAKjnD,EAAOsC,OAAO,CAACP,KAAKslD,MAAOtiC,MAE9C7lB,EAAOC,QAAU4nD,G,gBC7CjB7nD,EAAOC,QAAUY,EAAQ,K,iBCAzB,gBAOIovG,EAkCAnsG,EAzCAhD,EAASD,EAAQ,GAAeC,OAEhCynD,EAAkB1nD,EAAQ,IAC1BstC,EAAkBttC,EAAQ,IAC1BytC,EAAOztC,EAAQ,IACf4Z,EAAW5Z,EAAQ,IAGnBqvG,EAAShkG,EAAOmqB,QAAUnqB,EAAOmqB,OAAO65E,OACxCC,EAAY,CACdl3E,IAAK,QACL,QAAS,QACT+S,KAAM,QACNE,OAAQ,UACR,UAAW,UACXC,OAAQ,UACR,UAAW,UACX,UAAW,UACXC,OAAQ,WAENgkE,EAAS,GAsBb,SAASC,IACP,OAAIvsG,IAIFA,EADEoI,EAAO9J,SAAW8J,EAAO9J,QAAQ0B,SACxBoI,EAAO9J,QAAQ0B,SACjBoI,EAAOokG,eACLpkG,EAAOokG,eACTpkG,EAAO8gC,aACL9gC,EAAO8gC,aAEP9gC,EAAOxJ,YAItB,SAAS6tG,EAAelxE,EAAUC,EAAMgpB,EAAYhnD,EAAQ2jC,GAC1D,OAAOirE,EAAOM,UACZ,MAAOnxE,EAAU,CAAEh6B,KAAM,WAAY,EAAO,CAAC,eAC7C6vD,MAAK,SAAUh0D,GACf,OAAOgvG,EAAOO,WAAW,CACvBprG,KAAM,SACNi6B,KAAMA,EACNgpB,WAAYA,EACZzvB,KAAM,CACJxzB,KAAM4/B,IAEP/jC,EAAKI,GAAU,MACjB4zD,MAAK,SAAU7pD,GAChB,OAAOvK,EAAOS,KAAK8J,MAevBrL,EAAOC,QAAU,SAAUo/B,EAAUC,EAAMgpB,EAAYljB,EAAQ3M,EAAQsR,GAC/C,oBAAXtR,IACTsR,EAAWtR,EACXA,OAASz2B,GAIX,IAAIijC,EAAOkrE,GADX13E,EAASA,GAAU,QACS3wB,eAE5B,GAAKm9B,GAAkC,oBAAnB/4B,EAAO8jB,QAA3B,CAgBA,GAHAu4B,EAAgBD,EAAYljB,GAC5B/F,EAAW5kB,EAAS4kB,EAAU8O,EAAiB,YAC/C7O,EAAO7kB,EAAS6kB,EAAM6O,EAAiB,QACf,oBAAbpE,EAAyB,MAAM,IAAIznC,MAAM,mCApCtD,SAAyBiqG,EAASxiE,GAChCwiE,EAAQr3C,MAAK,SAAU9mD,GACrBiiG,KAAc,WACZtmE,EAAS,KAAM37B,SAEhB,SAAUzL,GACX0tG,KAAc,WACZtmE,EAASpnC,SA+Bb+tG,CA3FF,SAAsBzrE,GACpB,GAAI/4B,EAAO9J,UAAY8J,EAAO9J,QAAQkC,QACpC,OAAO0rB,QAAQC,SAAQ,GAEzB,IAAKigF,IAAWA,EAAOM,YAAcN,EAAOO,WAC1C,OAAOzgF,QAAQC,SAAQ,GAEzB,QAAqBjuB,IAAjBouG,EAAOnrE,GACT,OAAOmrE,EAAOnrE,GAGhB,IAAI0rE,EAAOJ,EADXN,EAAWA,GAAYnvG,EAAOU,MAAM,GACDyuG,EAAU,GAAI,IAAKhrE,GACnDiwB,MAAK,WACJ,OAAO,KACN6T,OAAM,WACP,OAAO,KAGX,OADAqnC,EAAOnrE,GAAQ0rE,EACRA,EAyEQC,CAAY3rE,GAAMiwB,MAAK,SAAU27C,GAC9C,OAAIA,EAAaN,EAAclxE,EAAUC,EAAMgpB,EAAYljB,EAAQH,GAE5DqJ,EAAKjP,EAAUC,EAAMgpB,EAAYljB,EAAQ3M,MAC9CsR,QArBFsmE,KAAc,WACZ,IAAIjiG,EACJ,IACEA,EAAMkgC,EAAKjP,EAAUC,EAAMgpB,EAAYljB,EAAQ3M,GAC/C,MAAO91B,GACP,OAAOonC,EAASpnC,GAElBonC,EAAS,KAAM37B,S,iCCtGrB,IAAIm8C,EAAM1pD,EAAQ,KACdirD,EAAMjrD,EAAQ,IACdiwG,EAAWjwG,EAAQ,IACnBkwG,EAAWlwG,EAAQ,KACnBmwG,EAAOnwG,EAAQ,IAsCnB,SAASqxC,EAAgB++D,EAAO/vG,EAAKw+B,GAEnC,GADAuxE,EAAQA,EAAMnpG,cACVgpG,EAASG,GAAQ,OAAOnlD,EAAI5Z,eAAe++D,EAAO/vG,EAAKw+B,GAC3D,GAAIqxE,EAASE,GAAQ,OAAO,IAAI1mD,EAAI,CAAErpD,IAAKA,EAAKw+B,GAAIA,EAAI7Y,KAAMoqF,IAE9D,MAAM,IAAItvG,UAAU,sBAGtB,SAAS2jC,EAAkB2rE,EAAO/vG,EAAKw+B,GAErC,GADAuxE,EAAQA,EAAMnpG,cACVgpG,EAASG,GAAQ,OAAOnlD,EAAIxmB,iBAAiB2rE,EAAO/vG,EAAKw+B,GAC7D,GAAIqxE,EAASE,GAAQ,OAAO,IAAI1mD,EAAI,CAAErpD,IAAKA,EAAKw+B,GAAIA,EAAI7Y,KAAMoqF,EAAOpsE,SAAS,IAE9E,MAAM,IAAIljC,UAAU,sBAOtB1B,EAAQgyC,aAAehyC,EAAQkxC,OAxD/B,SAAuB8/D,EAAO5xE,GAG5B,IAAII,EAAQD,EACZ,GAHAyxE,EAAQA,EAAMnpG,cAGVgpG,EAASG,GACXxxE,EAASqxE,EAASG,GAAO/vG,IACzBs+B,EAAQsxE,EAASG,GAAOvxE,OACnB,KAAIqxE,EAASE,GAIlB,MAAM,IAAItvG,UAAU,sBAHpB89B,EAA+B,EAAtBsxE,EAASE,GAAO/vG,IACzBs+B,EAAQuxE,EAASE,GAAOvxE,GAK1B,IAAInM,EAAOy9E,EAAK3xE,GAAU,EAAOI,EAAQD,GACzC,OAAO0S,EAAe++D,EAAO19E,EAAKryB,IAAKqyB,EAAKmM,KA0C9Cz/B,EAAQiyC,eAAiBjyC,EAAQkyC,SAAWD,EAC5CjyC,EAAQmyC,eAAiBnyC,EAAQoyC,SAxCjC,SAAyB4+D,EAAO5xE,GAG9B,IAAII,EAAQD,EACZ,GAHAyxE,EAAQA,EAAMnpG,cAGVgpG,EAASG,GACXxxE,EAASqxE,EAASG,GAAO/vG,IACzBs+B,EAAQsxE,EAASG,GAAOvxE,OACnB,KAAIqxE,EAASE,GAIlB,MAAM,IAAItvG,UAAU,sBAHpB89B,EAA+B,EAAtBsxE,EAASE,GAAO/vG,IACzBs+B,EAAQuxE,EAASE,GAAOvxE,GAK1B,IAAInM,EAAOy9E,EAAK3xE,GAAU,EAAOI,EAAQD,GACzC,OAAO8F,EAAiB2rE,EAAO19E,EAAKryB,IAAKqyB,EAAKmM,KA0BhDz/B,EAAQqlC,iBAAmBrlC,EAAQqyC,WAAahN,EAChDrlC,EAAQsyC,YAActyC,EAAQuyC,WAR9B,WACE,OAAO1yC,OAAOyzB,KAAKw9E,GAAU3tG,OAAO0oD,EAAItZ,gB,gBC3D1C,IAAI3kB,EAAahtB,EAAQ,IACrBqwG,EAAMrwG,EAAQ,KACduU,EAAWvU,EAAQ,GACnBC,EAASD,EAAQ,GAAeC,OAEhCkxC,EAAQ,CACV,eAAgBk/D,EAAIv+D,IAAIq2B,YAAYkoC,EAAIC,KACxC,WAAYD,EAAIC,IAChB,cAAeD,EAAIv+D,IAAIq2B,YAAYkoC,EAAIC,KACvC,UAAWD,EAAIC,IACf,UAAWD,EAAIv+D,IAAIq2B,YAAYkoC,EAAI3mD,KACnC,UAAW2mD,EAAI3mD,KAMjB,SAASA,EAAKzgB,GACZjc,EAAWjrB,KAAKC,MAChB,IAEIwE,EAFA+pG,EAAWtnE,EAAKjjB,KAAK/e,cACrB+e,EAAOmrB,EAAMo/D,GAGf/pG,EADEyiC,EAAKjF,QACA,UAEA,UAET,IAAI3jC,EAAM4oC,EAAK5oC,IACVJ,EAAOmG,SAAS/F,KACnBA,EAAMJ,EAAOS,KAAKL,IAEH,YAAbkwG,GAAuC,gBAAbA,IAC5BlwG,EAAMJ,EAAOsC,OAAO,CAAClC,EAAKA,EAAI4F,MAAM,EAAG,MAEzC,IAAI44B,EAAKoK,EAAKpK,GACT5+B,EAAOmG,SAASy4B,KACnBA,EAAK5+B,EAAOS,KAAKm+B,IAEnB78B,KAAKwuG,KAAOxqF,EAAK9mB,OAAO,CACtBmB,IAAKA,EACLw+B,GAAIA,EACJr4B,KAAMA,IA5BV2qC,EAAMk/D,IAAMl/D,EAAM,WAClBA,EAAMs/D,KAAOt/D,EAAM,gBACnBhyC,EAAOC,QAAUsqD,EACjBn1C,EAASm1C,EAAK18B,GA4Bd08B,EAAIlqD,UAAUouB,QAAU,SAAUnnB,GAChC,OAAOxG,EAAOS,KAAKsB,KAAKwuG,KAAKhjF,OAAO/mB,KAEtCijD,EAAIlqD,UAAU4tB,OAAS,WACrB,OAAOntB,EAAOS,KAAKsB,KAAKwuG,KAAKrjF,W,6BC9C/B/tB,EAAQ6S,MAAQjS,EAAQ,IACxBZ,EAAQkxC,OAAStwC,EAAQ,IACzBZ,EAAQsqD,IAAM1pD,EAAQ,IACtBZ,EAAQ0yC,IAAM9xC,EAAQ,KACtBZ,EAAQkxG,IAAMtwG,EAAQ,M,6BCJtB,IAAI4R,EAAS5R,EAAQ,GACjBuU,EAAWvU,EAAQ,GAEnB0wG,EAAQ,GAEZ,SAASC,EAAS9xE,GAChBjtB,EAAOE,MAAM+sB,EAAGp+B,OAAQ,EAAG,qBAE3BuB,KAAK68B,GAAK,IAAI17B,MAAM,GACpB,IAAK,IAAIE,EAAI,EAAGA,EAAIrB,KAAK68B,GAAGp+B,OAAQ4C,IAClCrB,KAAK68B,GAAGx7B,GAAKw7B,EAAGx7B,GAuBpBjE,EAAQ+oE,YApBR,SAAqBryC,GACnB,SAASgc,EAAIpd,GACXoB,EAAK/zB,KAAKC,KAAM0yB,GAChB1yB,KAAK4uG,WAEPr8F,EAASu9B,EAAKhc,GAGd,IADA,IAAIpD,EAAOzzB,OAAOyzB,KAAKg+E,GACdrtG,EAAI,EAAGA,EAAIqvB,EAAKjyB,OAAQ4C,IAAK,CACpC,IAAIhD,EAAMqyB,EAAKrvB,GACfyuC,EAAItyC,UAAUa,GAAOqwG,EAAMrwG,GAO7B,OAJAyxC,EAAI5yC,OAAS,SAAgBw1B,GAC3B,OAAO,IAAIod,EAAIpd,IAGVod,GAKT4+D,EAAME,SAAW,WACf,IAAI1/E,EAAQ,IAAIy/E,EAAS3uG,KAAK0yB,QAAQmK,IACtC78B,KAAK6uG,UAAY3/E,GAGnBw/E,EAAM9iF,QAAU,SAAiBo8B,EAAKC,EAAO18C,EAAK28C,GAChD,IAAIh5B,EAAQlvB,KAAK6uG,UACbC,EAAa9uG,KAAKvC,YAAYF,OAAOC,UAErCq/B,EAAK3N,EAAM2N,GACf,GAAkB,YAAd78B,KAAKwE,KAAoB,CAC3B,IAAK,IAAInD,EAAI,EAAGA,EAAIrB,KAAKk1B,UAAW7zB,IAClCw7B,EAAGx7B,IAAM2mD,EAAIC,EAAQ5mD,GAEvBytG,EAAWljF,QAAQ7rB,KAAKC,KAAM68B,EAAI,EAAGtxB,EAAK28C,GAE1C,IAAS7mD,EAAI,EAAGA,EAAIrB,KAAKk1B,UAAW7zB,IAClCw7B,EAAGx7B,GAAKkK,EAAI28C,EAAS7mD,OAClB,CACLytG,EAAWljF,QAAQ7rB,KAAKC,KAAMgoD,EAAKC,EAAO18C,EAAK28C,GAE/C,IAAS7mD,EAAI,EAAGA,EAAIrB,KAAKk1B,UAAW7zB,IAClCkK,EAAI28C,EAAS7mD,IAAMw7B,EAAGx7B,GAExB,IAASA,EAAI,EAAGA,EAAIrB,KAAKk1B,UAAW7zB,IAClCw7B,EAAGx7B,GAAK2mD,EAAIC,EAAQ5mD,M,6BC5D1B,IAAIuO,EAAS5R,EAAQ,GACjBuU,EAAWvU,EAAQ,GAEnBswC,EAAStwC,EAAQ,IACjB0pD,EAAM1pD,EAAQ,IAElB,SAAS+wG,EAASvqG,EAAMnG,GACtBuR,EAAOE,MAAMzR,EAAII,OAAQ,GAAI,sBAE7B,IAAI+S,EAAKnT,EAAI4F,MAAM,EAAG,GAClBwN,EAAKpT,EAAI4F,MAAM,EAAG,IAClB+qG,EAAK3wG,EAAI4F,MAAM,GAAI,IAGrBjE,KAAK4gC,QADM,YAATp8B,EACa,CACbkjD,EAAIxqD,OAAO,CAAEsH,KAAM,UAAWnG,IAAKmT,IACnCk2C,EAAIxqD,OAAO,CAAEsH,KAAM,UAAWnG,IAAKoT,IACnCi2C,EAAIxqD,OAAO,CAAEsH,KAAM,UAAWnG,IAAK2wG,KAGtB,CACbtnD,EAAIxqD,OAAO,CAAEsH,KAAM,UAAWnG,IAAK2wG,IACnCtnD,EAAIxqD,OAAO,CAAEsH,KAAM,UAAWnG,IAAKoT,IACnCi2C,EAAIxqD,OAAO,CAAEsH,KAAM,UAAWnG,IAAKmT,KAKzC,SAAS88F,EAAI57E,GACX4b,EAAOvuC,KAAKC,KAAM0yB,GAElB,IAAIxD,EAAQ,IAAI6/E,EAAS/uG,KAAKwE,KAAMxE,KAAK0yB,QAAQr0B,KACjD2B,KAAKivG,UAAY//E,EAEnB3c,EAAS+7F,EAAKhgE,GAEdnxC,EAAOC,QAAUkxG,EAEjBA,EAAIpxG,OAAS,SAAgBw1B,GAC3B,OAAO,IAAI47E,EAAI57E,IAGjB47E,EAAI9wG,UAAUouB,QAAU,SAAiBo8B,EAAKC,EAAO18C,EAAK28C,GACxD,IAAIh5B,EAAQlvB,KAAKivG,UAEjB//E,EAAM0R,QAAQ,GAAGhV,QAAQo8B,EAAKC,EAAO18C,EAAK28C,GAC1Ch5B,EAAM0R,QAAQ,GAAGhV,QAAQrgB,EAAK28C,EAAQ38C,EAAK28C,GAC3Ch5B,EAAM0R,QAAQ,GAAGhV,QAAQrgB,EAAK28C,EAAQ38C,EAAK28C,IAG7ComD,EAAI9wG,UAAUo6B,KAAO8vB,EAAIlqD,UAAUo6B,KACnC02E,EAAI9wG,UAAUyxC,OAASyY,EAAIlqD,UAAUyxC,Q,gBCrDrC,IAAIigE,EAAQlxG,EAAQ,IAChBmxG,EAAanxG,EAAQ,IACrBC,EAASD,EAAQ,GAAeC,OAChCkrD,EAAenrD,EAAQ,IACvB8sB,EAAY9sB,EAAQ,IACpBirD,EAAMjrD,EAAQ,IACdmwG,EAAOnwG,EAAQ,IAGnB,SAASswC,EAAQtqB,EAAM3lB,EAAKw+B,GAC1B/R,EAAU/qB,KAAKC,MAEfA,KAAKgpD,OAAS,IAAIomD,EAClBpvG,KAAK4oD,QAAU,IAAIK,EAAI3tB,IAAIj9B,GAC3B2B,KAAK6oD,MAAQ5qD,EAAOS,KAAKm+B,GACzB78B,KAAK6pD,MAAQ7lC,EACbhkB,KAAKqvG,cAAe,EATPrxG,EAAQ,EAYvBuU,CAAS+7B,EAAQxjB,GAEjBwjB,EAAO9wC,UAAUouB,QAAU,SAAUnnB,GAEnC,IAAIqoC,EACArY,EAFJz0B,KAAKgpD,OAAO5uC,IAAI3V,GAKhB,IAFA,IAAI8G,EAAM,GAEFuhC,EAAQ9sC,KAAKgpD,OAAOn+B,OAC1B4J,EAAQz0B,KAAK6pD,MAAMf,QAAQ9oD,KAAM8sC,GACjCvhC,EAAIjK,KAAKmzB,GAGX,OAAOx2B,EAAOsC,OAAOgL,IAGvB,IAAI+jG,EAAUrxG,EAAOU,MAAM,GAAI,IAqB/B,SAASywG,IACPpvG,KAAKuvG,MAAQtxG,EAAOW,YAAY,GA4BlC,SAASywC,EAAgB++D,EAAO5xE,EAAUK,GACxC,IAAI8J,EAASuoE,EAAMd,EAAMnpG,eACzB,IAAK0hC,EAAQ,MAAM,IAAI7nC,UAAU,sBAGjC,GADwB,kBAAb09B,IAAuBA,EAAWv+B,EAAOS,KAAK89B,IACrDA,EAAS/9B,SAAWkoC,EAAOtoC,IAAM,EAAG,MAAM,IAAIS,UAAU,sBAAwB09B,EAAS/9B,QAG7F,GADkB,kBAAPo+B,IAAiBA,EAAK5+B,EAAOS,KAAKm+B,IACzB,QAAhB8J,EAAO3iB,MAAkB6Y,EAAGp+B,SAAWkoC,EAAO9J,GAAI,MAAM,IAAI/9B,UAAU,qBAAuB+9B,EAAGp+B,QAEpG,MAAoB,WAAhBkoC,EAAOniC,KACF,IAAI2kD,EAAaxiB,EAAOxpC,OAAQq/B,EAAUK,GACxB,SAAhB8J,EAAOniC,KACT,IAAI2qG,EAAWxoE,EAAOxpC,OAAQq/B,EAAUK,GAG1C,IAAIyR,EAAO3H,EAAOxpC,OAAQq/B,EAAUK,GAhE7CyR,EAAO9wC,UAAU4tB,OAAS,WACxB,IAAI0hB,EAAQ9sC,KAAKgpD,OAAOnJ,QACxB,GAAI7/C,KAAKqvG,aAGP,OAFAviE,EAAQ9sC,KAAK6pD,MAAMf,QAAQ9oD,KAAM8sC,GACjC9sC,KAAK4oD,QAAQrsB,QACNuQ,EAGT,IAAKA,EAAMtiC,OAAO8kG,GAEhB,MADAtvG,KAAK4oD,QAAQrsB,QACP,IAAI98B,MAAM,sCAIpB6uC,EAAO9wC,UAAUsuB,eAAiB,SAAU0jF,GAE1C,OADAxvG,KAAKqvG,eAAiBG,EACfxvG,MAOTovG,EAAS5xG,UAAU4c,IAAM,SAAU3V,GACjCzE,KAAKuvG,MAAQtxG,EAAOsC,OAAO,CAACP,KAAKuvG,MAAO9qG,KAG1C2qG,EAAS5xG,UAAUqtB,IAAM,WACvB,GAAI7qB,KAAKuvG,MAAM9wG,OAAS,GAAI,CAC1B,IAAI8M,EAAMvL,KAAKuvG,MAAMtrG,MAAM,EAAG,IAE9B,OADAjE,KAAKuvG,MAAQvvG,KAAKuvG,MAAMtrG,MAAM,IACvBsH,EAET,OAAO,MAGT6jG,EAAS5xG,UAAUqiD,MAAQ,WAKzB,IAJA,IAAIn/C,EAAM,GAAKV,KAAKuvG,MAAM9wG,OACtBgxG,EAAUxxG,EAAOW,YAAY8B,GAE7BW,GAAK,IACAA,EAAIX,GACX+uG,EAAQ9hG,WAAWjN,EAAKW,GAG1B,OAAOpD,EAAOsC,OAAO,CAACP,KAAKuvG,MAAOE,KA8BpCryG,EAAQiyC,eAAiBA,EACzBjyC,EAAQgyC,aATR,SAAuBg/D,EAAO5xE,GAC5B,IAAImK,EAASuoE,EAAMd,EAAMnpG,eACzB,IAAK0hC,EAAQ,MAAM,IAAI7nC,UAAU,sBAEjC,IAAI4xB,EAAOy9E,EAAK3xE,GAAU,EAAOmK,EAAOtoC,IAAKsoC,EAAO9J,IACpD,OAAOwS,EAAe++D,EAAO19E,EAAKryB,IAAKqyB,EAAKmM,M,cC7G9Cz/B,EAAQ0rD,QAAU,SAAU7xC,EAAMue,GAChC,OAAOve,EAAK2xC,QAAQxsB,aAAa5G,IAGnCp4B,EAAQ4kC,QAAU,SAAU/qB,EAAMue,GAChC,OAAOve,EAAK2xC,QAAQvsB,aAAa7G,K,gBCLnC,IAAI7b,EAAM3b,EAAQ,IAElBZ,EAAQ0rD,QAAU,SAAU7xC,EAAMue,GAChC,IAAI/wB,EAAOkV,EAAI6b,EAAOve,EAAK4xC,OAG3B,OADA5xC,EAAK4xC,MAAQ5xC,EAAK2xC,QAAQxsB,aAAa33B,GAChCwS,EAAK4xC,OAGdzrD,EAAQ4kC,QAAU,SAAU/qB,EAAMue,GAChC,IAAI6yB,EAAMpxC,EAAK4xC,MAEf5xC,EAAK4xC,MAAQrzB,EACb,IAAIjqB,EAAM0L,EAAK2xC,QAAQvsB,aAAa7G,GAEpC,OAAO7b,EAAIpO,EAAK88C,K,gBCflB,IAAIpqD,EAASD,EAAQ,GAAeC,OAChC0b,EAAM3b,EAAQ,IAElB,SAAS0xG,EAAcz4F,EAAMxS,EAAMu9B,GACjC,IAAIthC,EAAM+D,EAAKhG,OACX8M,EAAMoO,EAAIlV,EAAMwS,EAAK+xC,QAGzB,OAFA/xC,EAAK+xC,OAAS/xC,EAAK+xC,OAAO/kD,MAAMvD,GAChCuW,EAAK4xC,MAAQ5qD,EAAOsC,OAAO,CAAC0W,EAAK4xC,MAAO7mB,EAAUv9B,EAAO8G,IAClDA,EAGTnO,EAAQ0rD,QAAU,SAAU7xC,EAAMxS,EAAMu9B,GAItC,IAHA,IACIthC,EADA6K,EAAMtN,EAAOW,YAAY,GAGtB6F,EAAKhG,QAAQ,CAMlB,GAL2B,IAAvBwY,EAAK+xC,OAAOvqD,SACdwY,EAAK+xC,OAAS/xC,EAAK2xC,QAAQxsB,aAAanlB,EAAK4xC,OAC7C5xC,EAAK4xC,MAAQ5qD,EAAOW,YAAY,MAG9BqY,EAAK+xC,OAAOvqD,QAAUgG,EAAKhG,QAIxB,CACL8M,EAAMtN,EAAOsC,OAAO,CAACgL,EAAKmkG,EAAaz4F,EAAMxS,EAAMu9B,KACnD,MALAthC,EAAMuW,EAAK+xC,OAAOvqD,OAClB8M,EAAMtN,EAAOsC,OAAO,CAACgL,EAAKmkG,EAAaz4F,EAAMxS,EAAKR,MAAM,EAAGvD,GAAMshC,KACjEv9B,EAAOA,EAAKR,MAAMvD,GAOtB,OAAO6K,I,gBC/BT,IAAItN,EAASD,EAAQ,GAAeC,OAEpC,SAAS0xG,EAAa14F,EAAM24F,EAAW5tE,GACrC,IACIz2B,EADM0L,EAAK2xC,QAAQxsB,aAAanlB,EAAK4xC,OAC3B,GAAK+mD,EAOnB,OALA34F,EAAK4xC,MAAQ5qD,EAAOsC,OAAO,CACzB0W,EAAK4xC,MAAM5kD,MAAM,GACjBhG,EAAOS,KAAK,CAACsjC,EAAU4tE,EAAYrkG,MAG9BA,EAGTnO,EAAQ0rD,QAAU,SAAU7xC,EAAM61B,EAAO9K,GAKvC,IAJA,IAAIthC,EAAMosC,EAAMruC,OACZ8M,EAAMtN,EAAOW,YAAY8B,GACzBW,GAAK,IAEAA,EAAIX,GACX6K,EAAIlK,GAAKsuG,EAAY14F,EAAM61B,EAAMzrC,GAAI2gC,GAGvC,OAAOz2B,I,gBCvBT,IAAItN,EAASD,EAAQ,GAAeC,OAEpC,SAAS0xG,EAAa14F,EAAM24F,EAAW5tE,GAMrC,IALA,IAIIhoB,EAAKtc,EAHL2D,GAAK,EAELkK,EAAM,IAEDlK,EAHC,GAKR2Y,EAAO41F,EAAa,GAAM,EAAIvuG,EAAO,IAAO,EAE5CkK,IAAiB,KADjB7N,EAFMuZ,EAAK2xC,QAAQxsB,aAAanlB,EAAK4xC,OAEzB,GAAK7uC,KACU3Y,EAAI,EAC/B4V,EAAK4xC,MAAQgnD,EAAQ54F,EAAK4xC,MAAO7mB,EAAUhoB,EAAMtc,GAEnD,OAAO6N,EAGT,SAASskG,EAAS9xG,EAAQL,GACxB,IAAIgD,EAAM3C,EAAOU,OACb4C,GAAK,EACLkK,EAAMtN,EAAOW,YAAYb,EAAOU,QAGpC,IAFAV,EAASE,EAAOsC,OAAO,CAACxC,EAAQE,EAAOS,KAAK,CAAChB,QAEpC2D,EAAIX,GACX6K,EAAIlK,GAAKtD,EAAOsD,IAAM,EAAItD,EAAOsD,EAAI,IAAO,EAG9C,OAAOkK,EAGTnO,EAAQ0rD,QAAU,SAAU7xC,EAAM61B,EAAO9K,GAKvC,IAJA,IAAIthC,EAAMosC,EAAMruC,OACZ8M,EAAMtN,EAAOW,YAAY8B,GACzBW,GAAK,IAEAA,EAAIX,GACX6K,EAAIlK,GAAKsuG,EAAY14F,EAAM61B,EAAMzrC,GAAI2gC,GAGvC,OAAOz2B,I,iBCxCT,gBAAIoO,EAAM3b,EAAQ,IAElB,SAAS2qD,EAAU1xC,GAEjB,OADAA,EAAK4xC,MAAQ5xC,EAAK2xC,QAAQxsB,aAAanlB,EAAK4xC,OACrC5xC,EAAK4xC,MAGdzrD,EAAQ0rD,QAAU,SAAU7xC,EAAM61B,GAChC,KAAO71B,EAAK+xC,OAAOvqD,OAASquC,EAAMruC,QAChCwY,EAAK+xC,OAAS/qD,EAAOsC,OAAO,CAAC0W,EAAK+xC,OAAQL,EAAS1xC,KAGrD,IAAIoxC,EAAMpxC,EAAK+xC,OAAO/kD,MAAM,EAAG6oC,EAAMruC,QAErC,OADAwY,EAAK+xC,OAAS/xC,EAAK+xC,OAAO/kD,MAAM6oC,EAAMruC,QAC/Bkb,EAAImzB,EAAOub,M,wCCdpB,IAAIpqD,EAASD,EAAQ,GAAeC,OAChC6xG,EAAS7xG,EAAOU,MAAM,GAAI,GAW9B,SAASoxG,EAAWxkG,GAClB,IAAIrM,EAAMjB,EAAOW,YAAY,IAK7B,OAJAM,EAAI8O,cAAczC,EAAI,KAAO,EAAG,GAChCrM,EAAI8O,cAAczC,EAAI,KAAO,EAAG,GAChCrM,EAAI8O,cAAczC,EAAI,KAAO,EAAG,GAChCrM,EAAI8O,cAAczC,EAAI,KAAO,EAAG,IACzBrM,EAGT,SAASgqD,EAAO7qD,GACd2B,KAAKgjB,EAAI3kB,EACT2B,KAAKkvB,MAAQjxB,EAAOU,MAAM,GAAI,GAC9BqB,KAAKuvG,MAAQtxG,EAAOW,YAAY,GAKlCsqD,EAAM1rD,UAAU+rD,MAAQ,SAAU/zB,GAEhC,IADA,IAAIn0B,GAAK,IACAA,EAAIm0B,EAAM/2B,QACjBuB,KAAKkvB,MAAM7tB,IAAMm0B,EAAMn0B,GAEzBrB,KAAKgwG,aAGP9mD,EAAM1rD,UAAUwyG,UAAY,WAK1B,IAJA,IAnCgB9wG,EAqCZ2H,EAAOopG,EAFP1a,EAlCG,EADSr2F,EAmCCc,KAAKgjB,GAjChBpW,aAAa,GACjB1N,EAAI0N,aAAa,GACjB1N,EAAI0N,aAAa,GACjB1N,EAAI0N,aAAa,KA+BfgpF,EAAK,CAAC,EAAG,EAAG,EAAG,GAEfv0F,GAAK,IACAA,EAAI,KAAK,CAchB,IAbwD,KAAlDrB,KAAKkvB,SAAS7tB,EAAI,IAAO,GAAM,EAAKA,EAAI,KAG5Cu0F,EAAG,IAAML,EAAG,GACZK,EAAG,IAAML,EAAG,GACZK,EAAG,IAAML,EAAG,GACZK,EAAG,IAAML,EAAG,IAId0a,EAAwB,KAAP,EAAR1a,EAAG,IAGP1uF,EAAI,EAAGA,EAAI,EAAGA,IACjB0uF,EAAG1uF,GAAM0uF,EAAG1uF,KAAO,GAAmB,EAAZ0uF,EAAG1uF,EAAI,KAAW,GAE9C0uF,EAAG,GAAKA,EAAG,KAAO,EAGd0a,IACF1a,EAAG,GAAKA,EAAG,GAAM,KAAQ,IAG7Bv1F,KAAKkvB,MAAQ6gF,EAAUna,IAGzB1sC,EAAM1rD,UAAUguB,OAAS,SAAUtsB,GAEjC,IAAI4tC,EACJ,IAFA9sC,KAAKuvG,MAAQtxG,EAAOsC,OAAO,CAACP,KAAKuvG,MAAOrwG,IAEjCc,KAAKuvG,MAAM9wG,QAAU,IAC1BquC,EAAQ9sC,KAAKuvG,MAAMtrG,MAAM,EAAG,IAC5BjE,KAAKuvG,MAAQvvG,KAAKuvG,MAAMtrG,MAAM,IAC9BjE,KAAKupD,MAAMzc,IAIfoc,EAAM1rD,UAAU2tB,MAAQ,SAAU+kF,EAAKp8F,GAMrC,OALI9T,KAAKuvG,MAAM9wG,QACbuB,KAAKupD,MAAMtrD,EAAOsC,OAAO,CAACP,KAAKuvG,MAAOO,GAAS,KAGjD9vG,KAAKupD,MAAMwmD,EAAU,CAAC,EAAGG,EAAK,EAAGp8F,KAC1B9T,KAAKkvB,OAGd/xB,EAAOC,QAAU8rD,G,gBCxFjB,IAAIimD,EAAanxG,EAAQ,IACrBC,EAASD,EAAQ,GAAeC,OAChCixG,EAAQlxG,EAAQ,IAChBmrD,EAAenrD,EAAQ,IACvB8sB,EAAY9sB,EAAQ,IACpBirD,EAAMjrD,EAAQ,IACdmwG,EAAOnwG,EAAQ,IAGnB,SAASwxC,EAAUxrB,EAAM3lB,EAAKw+B,GAC5B/R,EAAU/qB,KAAKC,MAEfA,KAAKgpD,OAAS,IAAIomD,EAClBpvG,KAAKmwG,WAAQ,EACbnwG,KAAK4oD,QAAU,IAAIK,EAAI3tB,IAAIj9B,GAC3B2B,KAAK6oD,MAAQ5qD,EAAOS,KAAKm+B,GACzB78B,KAAK6pD,MAAQ7lC,EACbhkB,KAAKqvG,cAAe,EA+BtB,SAASD,IACPpvG,KAAKuvG,MAAQtxG,EAAOW,YAAY,GA8ClC,SAAS6jC,EAAkB2rE,EAAO5xE,EAAUK,GAC1C,IAAI8J,EAASuoE,EAAMd,EAAMnpG,eACzB,IAAK0hC,EAAQ,MAAM,IAAI7nC,UAAU,sBAGjC,GADkB,kBAAP+9B,IAAiBA,EAAK5+B,EAAOS,KAAKm+B,IACzB,QAAhB8J,EAAO3iB,MAAkB6Y,EAAGp+B,SAAWkoC,EAAO9J,GAAI,MAAM,IAAI/9B,UAAU,qBAAuB+9B,EAAGp+B,QAGpG,GADwB,kBAAb+9B,IAAuBA,EAAWv+B,EAAOS,KAAK89B,IACrDA,EAAS/9B,SAAWkoC,EAAOtoC,IAAM,EAAG,MAAM,IAAIS,UAAU,sBAAwB09B,EAAS/9B,QAE7F,MAAoB,WAAhBkoC,EAAOniC,KACF,IAAI2kD,EAAaxiB,EAAOxpC,OAAQq/B,EAAUK,GAAI,GAC5B,SAAhB8J,EAAOniC,KACT,IAAI2qG,EAAWxoE,EAAOxpC,OAAQq/B,EAAUK,GAAI,GAG9C,IAAI2S,EAAS7I,EAAOxpC,OAAQq/B,EAAUK,GAxGhC7+B,EAAQ,EAavBuU,CAASi9B,EAAU1kB,GAEnB0kB,EAAShyC,UAAUouB,QAAU,SAAUnnB,GAErC,IAAIqoC,EACArY,EAFJz0B,KAAKgpD,OAAO5uC,IAAI3V,GAIhB,IADA,IAAI8G,EAAM,GACFuhC,EAAQ9sC,KAAKgpD,OAAOn+B,IAAI7qB,KAAKqvG,eACnC56E,EAAQz0B,KAAK6pD,MAAM7nB,QAAQhiC,KAAM8sC,GACjCvhC,EAAIjK,KAAKmzB,GAEX,OAAOx2B,EAAOsC,OAAOgL,IAGvBikC,EAAShyC,UAAU4tB,OAAS,WAC1B,IAAI0hB,EAAQ9sC,KAAKgpD,OAAOnJ,QACxB,GAAI7/C,KAAKqvG,aACP,OA0CJ,SAAgBjrE,GACd,IAAIgsE,EAAShsE,EAAK,IAClB,GAAIgsE,EAAS,GAAKA,EAAS,GACzB,MAAM,IAAI3wG,MAAM,0BAElB,IAAI4B,GAAK,EACT,OAASA,EAAI+uG,GACX,GAAIhsE,EAAM/iC,GAAK,GAAK+uG,MAAcA,EAChC,MAAM,IAAI3wG,MAAM,0BAGpB,GAAe,KAAX2wG,EAAe,OAEnB,OAAOhsE,EAAKngC,MAAM,EAAG,GAAKmsG,GAvDjBC,CAAMrwG,KAAK6pD,MAAM7nB,QAAQhiC,KAAM8sC,IACjC,GAAIA,EACT,MAAM,IAAIrtC,MAAM,sCAIpB+vC,EAAShyC,UAAUsuB,eAAiB,SAAU0jF,GAE5C,OADAxvG,KAAKqvG,eAAiBG,EACfxvG,MAOTovG,EAAS5xG,UAAU4c,IAAM,SAAU3V,GACjCzE,KAAKuvG,MAAQtxG,EAAOsC,OAAO,CAACP,KAAKuvG,MAAO9qG,KAG1C2qG,EAAS5xG,UAAUqtB,IAAM,SAAUylF,GACjC,IAAI/kG,EACJ,GAAI+kG,GACF,GAAItwG,KAAKuvG,MAAM9wG,OAAS,GAGtB,OAFA8M,EAAMvL,KAAKuvG,MAAMtrG,MAAM,EAAG,IAC1BjE,KAAKuvG,MAAQvvG,KAAKuvG,MAAMtrG,MAAM,IACvBsH,OAGT,GAAIvL,KAAKuvG,MAAM9wG,QAAU,GAGvB,OAFA8M,EAAMvL,KAAKuvG,MAAMtrG,MAAM,EAAG,IAC1BjE,KAAKuvG,MAAQvvG,KAAKuvG,MAAMtrG,MAAM,IACvBsH,EAIX,OAAO,MAGT6jG,EAAS5xG,UAAUqiD,MAAQ,WACzB,GAAI7/C,KAAKuvG,MAAM9wG,OAAQ,OAAOuB,KAAKuvG,OA8CrCnyG,EAAQmyC,eARR,SAAyB6+D,EAAO5xE,GAC9B,IAAImK,EAASuoE,EAAMd,EAAMnpG,eACzB,IAAK0hC,EAAQ,MAAM,IAAI7nC,UAAU,sBAEjC,IAAI4xB,EAAOy9E,EAAK3xE,GAAU,EAAOmK,EAAOtoC,IAAKsoC,EAAO9J,IACpD,OAAO4F,EAAiB2rE,EAAO19E,EAAKryB,IAAKqyB,EAAKmM,KAIhDz/B,EAAQqlC,iBAAmBA,G,cC3H3BrlC,EAAQ,WAAa,CACnBiB,IAAK,EACLw+B,GAAI,GAENz/B,EAAQ,WAAaA,EAAQixG,IAAM,CACjChwG,IAAK,EACLw+B,GAAI,GAENz/B,EAAQ,gBAAkBA,EAAQqxG,KAAO,CACvCpwG,IAAK,GACLw+B,GAAI,GAENz/B,EAAQ,YAAc,CACpBiB,IAAK,GACLw+B,GAAI,GAENz/B,EAAQ,eAAiB,CACvBiB,IAAK,GACLw+B,GAAI,GAENz/B,EAAQ,WAAa,CACnBiB,IAAK,GACLw+B,GAAI,I,iBCtBN,gBAAI0zE,EAAgBvyG,EAAQ,IACxBmqB,EAASnqB,EAAQ,KAEjBwyG,EAAKxyG,EAAQ,KASjB,IAAIyyG,EAAY,CACd,QAAU,EAAM,KAAO,EAAM,QAAU,GA2BzCrzG,EAAQupG,mBAAqBvpG,EAAQwpG,yBAA2BxpG,EAAQypG,iBAnCxE,SAA2B31F,GACzB,IAAI6X,EAAQ,IAAI9qB,EAAOkqB,EAAOjX,GAAK6X,MAAO,OACtCgiC,EAAM,IAAI9sD,EAAOkqB,EAAOjX,GAAK65C,IAAK,OAEtC,OAAO,IAAIylD,EAAGznF,EAAOgiC,IAgCvB3tD,EAAQ0pG,oBAAsB1pG,EAAQ2pG,cAzBtC,SAASD,EAAqB/9E,EAAOnW,EAAK4tF,EAAWkQ,GACnD,OAAIzyG,EAAOmG,SAASwO,SAA2BzT,IAAnBsxG,EAAU79F,GAC7Bk0F,EAAoB/9E,EAAO,SAAUnW,EAAK4tF,IAGnD5tF,EAAMA,GAAO,SACb89F,EAAOA,GAAQ,SACflQ,EAAYA,GAAa,IAAIviG,EAAO,CAAC,IAEhCA,EAAOmG,SAASo8F,KACnBA,EAAY,IAAIviG,EAAOuiG,EAAWkQ,IAGf,kBAAV3nF,EACF,IAAIynF,EAAGD,EAAcxnF,EAAOy3E,GAAYA,GAAW,IAGvDviG,EAAOmG,SAAS2kB,KACnBA,EAAQ,IAAI9qB,EAAO8qB,EAAOnW,IAGrB,IAAI49F,EAAGznF,EAAOy3E,GAAW,Q,0CCrClC,sBAAWrjG,EAAQC,GACjB,aAGA,SAASwS,EAAQrL,EAAKsL,GACpB,IAAKtL,EAAK,MAAM,IAAI9E,MAAMoQ,GAAO,oBAKnC,SAAS0C,EAAUlV,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIQ,EAAW,aACfA,EAASN,UAAYF,EAAUE,UAC/BH,EAAKG,UAAY,IAAIM,EACrBT,EAAKG,UAAUC,YAAcJ,EAK/B,SAAS6S,EAAI6E,EAAQC,EAAMjC,GACzB,GAAI7C,EAAG+E,KAAKF,GACV,OAAOA,EAGT/U,KAAKkV,SAAW,EAChBlV,KAAKmV,MAAQ,KACbnV,KAAKvB,OAAS,EAGduB,KAAKoV,IAAM,KAEI,OAAXL,IACW,OAATC,GAA0B,OAATA,IACnBjC,EAASiC,EACTA,EAAO,IAGThV,KAAKqV,MAAMN,GAAU,EAAGC,GAAQ,GAAIjC,GAAU,OAYlD,IAAI9U,EATkB,kBAAXd,EACTA,EAAOC,QAAU8S,EAEjB9S,EAAQ8S,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGoF,SAAW,GAGd,IAEIrX,EADoB,qBAAX0R,QAAmD,qBAAlBA,OAAO1R,OACxC0R,OAAO1R,OAEPD,EAAQ,KAAUC,OAE7B,MAAO6B,IAgIT,SAASyV,EAAe1R,EAAQ2R,GAC9B,IAAIvN,EAAIpE,EAAO8D,WAAW6N,GAE1B,OAAIvN,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASwN,EAAc5R,EAAQ6R,EAAYF,GACzC,IAAIxF,EAAIuF,EAAc1R,EAAQ2R,GAI9B,OAHIA,EAAQ,GAAKE,IACf1F,GAAKuF,EAAc1R,EAAQ2R,EAAQ,IAAM,GAEpCxF,EA8CT,SAAS2F,EAAWlO,EAAKtC,EAAOC,EAAKmH,GAGnC,IAFA,IAAIyD,EAAI,EACJtP,EAAM4H,KAAKC,IAAId,EAAIhJ,OAAQ2G,GACtB/D,EAAI8D,EAAO9D,EAAIX,EAAKW,IAAK,CAChC,IAAI4G,EAAIR,EAAIE,WAAWtG,GAAK,GAE5B2O,GAAKzD,EAIHyD,GADE/H,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAO+H,EAnNTE,EAAG+E,KAAO,SAAexE,GACvB,OAAIA,aAAeP,GAIJ,OAARO,GAA+B,kBAARA,GAC5BA,EAAIhT,YAAY6X,WAAapF,EAAGoF,UAAYnU,MAAM6B,QAAQyN,EAAI0E,QAGlEjF,EAAGxF,IAAM,SAAckL,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG3H,IAAM,SAAcqN,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGT3F,EAAG1S,UAAU6X,MAAQ,SAAeN,EAAQC,EAAMjC,GAChD,GAAsB,kBAAXgC,EACT,OAAO/U,KAAK+V,YAAYhB,EAAQC,EAAMjC,GAGxC,GAAsB,kBAAXgC,EACT,OAAO/U,KAAKgW,WAAWjB,EAAQC,EAAMjC,GAG1B,QAATiC,IACFA,EAAO,IAETpF,EAAOoF,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI7P,EAAQ,EACM,OAFlB4P,EAASA,EAAOnQ,WAAW0K,QAAQ,OAAQ,KAEhC,KACTnK,IACAnF,KAAKkV,SAAW,GAGd/P,EAAQ4P,EAAOtW,SACJ,KAATuW,EACFhV,KAAKiW,UAAUlB,EAAQ5P,EAAO4N,IAE9B/S,KAAKkW,WAAWnB,EAAQC,EAAM7P,GACf,OAAX4N,GACF/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,MAM9C7C,EAAG1S,UAAUuY,YAAc,SAAsBhB,EAAQC,EAAMjC,GACzDgC,EAAS,IACX/U,KAAKkV,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACX/U,KAAKmV,MAAQ,CAAW,SAATJ,GACf/U,KAAKvB,OAAS,GACLsW,EAAS,kBAClB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,UAEzB/U,KAAKvB,OAAS,IAEdmR,EAAOmF,EAAS,kBAChB/U,KAAKmV,MAAQ,CACF,SAATJ,EACCA,EAAS,SAAa,SACvB,GAEF/U,KAAKvB,OAAS,GAGD,OAAXsU,GAGJ/S,KAAKgW,WAAWhW,KAAKqQ,UAAW2E,EAAMjC,IAGxC7C,EAAG1S,UAAUwY,WAAa,SAAqBjB,EAAQC,EAAMjC,GAG3D,GADAnD,EAAgC,kBAAlBmF,EAAOtW,QACjBsW,EAAOtW,QAAU,EAGnB,OAFAuB,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EACPuB,KAGTA,KAAKvB,OAAS6J,KAAK6N,KAAKpB,EAAOtW,OAAS,GACxCuB,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAGlB,IAAIwF,EAAG6J,EACHzO,EAAM,EACV,GAAe,OAAX8Q,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAGoI,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,UAGC,GAAe,OAAXkM,EACT,IAAK1R,EAAI,EAAGwF,EAAI,EAAGxF,EAAI0T,EAAOtW,OAAQ4C,GAAK,EACzCqP,EAAIqE,EAAO1T,GAAM0T,EAAO1T,EAAI,IAAM,EAAM0T,EAAO1T,EAAI,IAAM,GACzDrB,KAAKmV,MAAMtO,IAAO6J,GAAKzO,EAAO,SAC9BjC,KAAKmV,MAAMtO,EAAI,GAAM6J,IAAO,GAAKzO,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP4E,KAIN,OAAO7G,KAAKoW,SAyBdlG,EAAG1S,UAAUyY,UAAY,SAAoBlB,EAAQ5P,EAAO4N,GAE1D/S,KAAKvB,OAAS6J,KAAK6N,MAAMpB,EAAOtW,OAAS0G,GAAS,GAClDnF,KAAKmV,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BrB,KAAKmV,MAAM9T,GAAK,EAIlB,IAGIqP,EAHAzO,EAAM,EACN4E,EAAI,EAGR,GAAe,OAAXkM,EACF,IAAK1R,EAAI0T,EAAOtW,OAAS,EAAG4C,GAAK8D,EAAO9D,GAAK,EAC3CqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,OAKX,IAAKZ,GADa0T,EAAOtW,OAAS0G,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO9D,EAAI0T,EAAOtW,OAAQ4C,GAAK,EAC1EqP,EAAI+E,EAAaV,EAAQ5P,EAAO9D,IAAMY,EACtCjC,KAAKmV,MAAMtO,IAAU,SAAJ6J,EACbzO,GAAO,IACTA,GAAO,GACP4E,GAAK,EACL7G,KAAKmV,MAAMtO,IAAM6J,IAAM,IAEvBzO,GAAO,EAKbjC,KAAKoW,SA2BPlG,EAAG1S,UAAU0Y,WAAa,SAAqBnB,EAAQC,EAAM7P,GAE3DnF,KAAKmV,MAAQ,CAAE,GACfnV,KAAKvB,OAAS,EAGd,IAAK,IAAI4X,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWtB,EAClEqB,IAEFA,IACAC,EAAWA,EAAUtB,EAAQ,EAO7B,IALA,IAAIuB,EAAQxB,EAAOtW,OAAS0G,EACxB+L,EAAMqF,EAAQF,EACdjR,EAAMkD,KAAKC,IAAIgO,EAAOA,EAAQrF,GAAO/L,EAErCuN,EAAO,EACFrR,EAAI8D,EAAO9D,EAAI+D,EAAK/D,GAAKgV,EAChC3D,EAAOiD,EAAUZ,EAAQ1T,EAAGA,EAAIgV,EAASrB,GAEzChV,KAAKwW,MAAMF,GACPtW,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB,GAAY,IAARxB,EAAW,CACb,IAAIpE,EAAM,EAGV,IAFA4F,EAAOiD,EAAUZ,EAAQ1T,EAAG0T,EAAOtW,OAAQuW,GAEtC3T,EAAI,EAAGA,EAAI6P,EAAK7P,IACnByL,GAAOkI,EAGThV,KAAKwW,MAAM1J,GACP9M,KAAKmV,MAAM,GAAKzC,EAAO,SACzB1S,KAAKmV,MAAM,IAAMzC,EAEjB1S,KAAKyW,OAAO/D,GAIhB1S,KAAKoW,SAGPlG,EAAG1S,UAAU8G,KAAO,SAAeoS,GACjCA,EAAKvB,MAAQ,IAAIhU,MAAMnB,KAAKvB,QAC5B,IAAK,IAAI4C,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC/BqV,EAAKvB,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAE7BqV,EAAKjY,OAASuB,KAAKvB,OACnBiY,EAAKxB,SAAWlV,KAAKkV,SACrBwB,EAAKtB,IAAMpV,KAAKoV,KAGlBlF,EAAG1S,UAAUwT,MAAQ,WACnB,IAAIhB,EAAI,IAAIE,EAAG,MAEf,OADAlQ,KAAKsE,KAAK0L,GACHA,GAGTE,EAAG1S,UAAUmZ,QAAU,SAAkB5X,GACvC,KAAOiB,KAAKvB,OAASM,GACnBiB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAE9B,OAAOuB,MAITkQ,EAAG1S,UAAU4Y,MAAQ,WACnB,KAAOpW,KAAKvB,OAAS,GAAqC,IAAhCuB,KAAKmV,MAAMnV,KAAKvB,OAAS,IACjDuB,KAAKvB,SAEP,OAAOuB,KAAK4W,aAGd1G,EAAG1S,UAAUoZ,UAAY,WAKvB,OAHoB,IAAhB5W,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,KAClCnV,KAAKkV,SAAW,GAEXlV,MAGTkQ,EAAG1S,UAAUiN,QAAU,WACrB,OAAQzK,KAAKoV,IAAM,UAAY,SAAWpV,KAAK4E,SAAS,IAAM,KAiChE,IAAIiS,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYC,EAAMxG,EAAKlF,GAC9BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC,IAAIxU,EAAOuW,EAAKxY,OAASgS,EAAIhS,OAAU,EACvC8M,EAAI9M,OAASiC,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIsJ,EAAoB,EAAhBiN,EAAK9B,MAAM,GACfvP,EAAmB,EAAf6K,EAAI0E,MAAM,GACdnF,EAAIhG,EAAIpE,EAERuC,EAAS,SAAJ6H,EACLqE,EAASrE,EAAI,SAAa,EAC9BzE,EAAI4J,MAAM,GAAKhN,EAEf,IAAK,IAAI4I,EAAI,EAAGA,EAAIrQ,EAAKqQ,IAAK,CAM5B,IAHA,IAAImG,EAAS7C,IAAU,GACnB8C,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAK0P,EAAIlK,EAAK,EAIlBqQ,IADAlH,GAFAhG,EAAoB,EAAhBiN,EAAK9B,MAAM9T,KACfuE,EAAmB,EAAf6K,EAAI0E,MAAMtO,IACFsQ,GACG,SAAa,EAC5BA,EAAY,SAAJnH,EAEVzE,EAAI4J,MAAMpE,GAAa,EAARoG,EACf9C,EAAiB,EAAT6C,EAQV,OANc,IAAV7C,EACF9I,EAAI4J,MAAMpE,GAAa,EAARsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAzlBblG,EAAG1S,UAAUoH,SAAW,SAAmBoQ,EAAMqC,GAI/C,IAAI9L,EACJ,GAHA8L,EAAoB,EAAVA,GAAe,EAGZ,MAJbrC,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCzJ,EAAM,GAGN,IAFA,IAAItJ,EAAM,EACNoS,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,EAAI1Q,KAAKmV,MAAM9T,GACfqR,GAA+B,UAArBhC,GAAKzO,EAAOoS,IAAmBzP,SAAS,IAGpD2G,EADY,KADd8I,EAAS3D,IAAO,GAAKzO,EAAQ,WACVZ,IAAMrB,KAAKvB,OAAS,EAC/BoY,EAAM,EAAInE,EAAKjU,QAAUiU,EAAOnH,EAEhCmH,EAAOnH,GAEftJ,GAAO,IACI,KACTA,GAAO,GACPZ,KAMJ,IAHc,IAAVgT,IACF9I,EAAM8I,EAAMzP,SAAS,IAAM2G,GAEtBA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGT,GAAIyJ,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIsC,EAAYR,EAAW9B,GAEvBuC,EAAYR,EAAW/B,GAC3BzJ,EAAM,GACN,IAAItD,EAAIjI,KAAKgR,QAEb,IADA/I,EAAEiN,SAAW,GACLjN,EAAEuP,UAAU,CAClB,IAAIxH,EAAI/H,EAAEwP,KAAKF,GAAW3S,SAASoQ,GAMjCzJ,GALFtD,EAAIA,EAAEyP,MAAMH,IAELC,SAGCxH,EAAIzE,EAFJsL,EAAMS,EAAYtH,EAAEvR,QAAUuR,EAAIzE,EAQ5C,IAHIvL,KAAKwX,WACPjM,EAAM,IAAMA,GAEPA,EAAI9M,OAAS4Y,IAAY,GAC9B9L,EAAM,IAAMA,EAKd,OAHsB,IAAlBvL,KAAKkV,WACP3J,EAAM,IAAMA,GAEPA,EAGTqE,GAAO,EAAO,oCAGhBM,EAAG1S,UAAUma,SAAW,WACtB,IAAIrM,EAAMtL,KAAKmV,MAAM,GASrB,OARoB,IAAhBnV,KAAKvB,OACP6M,GAAuB,SAAhBtL,KAAKmV,MAAM,GACO,IAAhBnV,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,GAEzC7J,GAAO,iBAAoC,SAAhBtL,KAAKmV,MAAM,GAC7BnV,KAAKvB,OAAS,GACvBmR,GAAO,EAAO,8CAEU,IAAlB5P,KAAKkV,UAAmB5J,EAAMA,GAGxC4E,EAAG1S,UAAU4N,OAAS,WACpB,OAAOpL,KAAK4E,SAAS,KAGvBsL,EAAG1S,UAAUoa,SAAW,SAAmB7E,EAAQtU,GAEjD,OADAmR,EAAyB,qBAAX3R,GACP+B,KAAK6X,YAAY5Z,EAAQ8U,EAAQtU,IAG1CyR,EAAG1S,UAAU6S,QAAU,SAAkB0C,EAAQtU,GAC/C,OAAOuB,KAAK6X,YAAY1W,MAAO4R,EAAQtU,IAGzCyR,EAAG1S,UAAUqa,YAAc,SAAsBC,EAAW/E,EAAQtU,GAClE,IAAIiF,EAAa1D,KAAK0D,aAClBqU,EAAYtZ,GAAU6J,KAAKoC,IAAI,EAAGhH,GACtCkM,EAAOlM,GAAcqU,EAAW,yCAChCnI,EAAOmI,EAAY,EAAG,+BAEtB/X,KAAKoW,QACL,IAGIxQ,EAAGvE,EAHHyK,EAA0B,OAAXiH,EACfvK,EAAM,IAAIsP,EAAUC,GAGpBC,EAAIhY,KAAKgR,QACb,GAAKlF,EAYE,CACL,IAAKzK,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAInH,GAAKuE,EAGX,KAAOvE,EAAI0W,EAAW1W,IACpBmH,EAAInH,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAI0W,EAAYrU,EAAYrC,IACtCmH,EAAInH,GAAK,EAGX,IAAKA,EAAI,GAAI2W,EAAER,SAAUnW,IACvBuE,EAAIoS,EAAE7G,MAAM,KACZ6G,EAAE1G,OAAO,GAET9I,EAAIuP,EAAY1W,EAAI,GAAKuE,EAe7B,OAAO4C,GAGLF,KAAK2P,MACP/H,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,OAAO,GAAKpI,KAAK2P,MAAMvH,IAGzBR,EAAG1S,UAAU0a,WAAa,SAAqBxH,GAC7C,IAAIyH,EAAIzH,EACJV,EAAI,EAiBR,OAhBImI,GAAK,OACPnI,GAAK,GACLmI,KAAO,IAELA,GAAK,KACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAELA,GAAK,IACPnI,GAAK,EACLmI,KAAO,GAEFnI,EAAImI,GAIfjI,EAAG1S,UAAU4a,UAAY,SAAoB1H,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIyH,EAAIzH,EACJV,EAAI,EAoBR,OAnBqB,KAAZ,KAAJmI,KACHnI,GAAK,GACLmI,KAAO,IAEU,KAAV,IAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,GAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,KACHnI,GAAK,EACLmI,KAAO,GAES,KAAT,EAAJA,IACHnI,IAEKA,GAITE,EAAG1S,UAAUqT,UAAY,WACvB,IAAIH,EAAI1Q,KAAKmV,MAAMnV,KAAKvB,OAAS,GAC7ByJ,EAAKlI,KAAKkY,WAAWxH,GACzB,OAA2B,IAAnB1Q,KAAKvB,OAAS,GAAUyJ,GAiBlCgI,EAAG1S,UAAU6a,SAAW,WACtB,GAAIrY,KAAKwX,SAAU,OAAO,EAG1B,IADA,IAAIxH,EAAI,EACC3O,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIuE,EAAI5F,KAAKoY,UAAUpY,KAAKmV,MAAM9T,IAElC,GADA2O,GAAKpK,EACK,KAANA,EAAU,MAEhB,OAAOoK,GAGTE,EAAG1S,UAAUkG,WAAa,WACxB,OAAO4E,KAAK6N,KAAKnW,KAAK6Q,YAAc,IAGtCX,EAAG1S,UAAU8a,OAAS,SAAiBC,GACrC,OAAsB,IAAlBvY,KAAKkV,SACAlV,KAAKwY,MAAMC,MAAMF,GAAOG,MAAM,GAEhC1Y,KAAKgR,SAGdd,EAAG1S,UAAUmb,SAAW,SAAmBJ,GACzC,OAAIvY,KAAK4Y,MAAML,EAAQ,GACdvY,KAAK6Y,KAAKN,GAAOG,MAAM,GAAGI,OAE5B9Y,KAAKgR,SAGdd,EAAG1S,UAAUub,MAAQ,WACnB,OAAyB,IAAlB/Y,KAAKkV,UAIdhF,EAAG1S,UAAUwb,IAAM,WACjB,OAAOhZ,KAAKgR,QAAQ8H,QAGtB5I,EAAG1S,UAAUsb,KAAO,WAKlB,OAJK9Y,KAAKwX,WACRxX,KAAKkV,UAAY,GAGZlV,MAITkQ,EAAG1S,UAAUyb,KAAO,SAAexI,GACjC,KAAOzQ,KAAKvB,OAASgS,EAAIhS,QACvBuB,KAAKmV,MAAMnV,KAAKvB,UAAY,EAG9B,IAAK,IAAI4C,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAC9BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAG5C,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAU0b,IAAM,SAAczI,GAE/B,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKiZ,KAAKxI,IAInBP,EAAG1S,UAAU2b,GAAK,SAAa1I,GAC7B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkI,IAAIzI,GAC/CA,EAAIO,QAAQkI,IAAIlZ,OAGzBkQ,EAAG1S,UAAU4b,IAAM,SAAc3I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQiI,KAAKxI,GAChDA,EAAIO,QAAQiI,KAAKjZ,OAI1BkQ,EAAG1S,UAAU6b,MAAQ,SAAgB5I,GAEnC,IAAI7K,EAEFA,EADE5F,KAAKvB,OAASgS,EAAIhS,OAChBgS,EAEAzQ,KAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAAKoP,EAAI0E,MAAM9T,GAK5C,OAFArB,KAAKvB,OAASmH,EAAEnH,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAU8b,KAAO,SAAe7I,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKqZ,MAAM5I,IAIpBP,EAAG1S,UAAU+b,IAAM,SAAc9I,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQsI,KAAK7I,GAChDA,EAAIO,QAAQsI,KAAKtZ,OAG1BkQ,EAAG1S,UAAUgc,KAAO,SAAe/I,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQqI,MAAM5I,GACjDA,EAAIO,QAAQqI,MAAMrZ,OAI3BkQ,EAAG1S,UAAUic,MAAQ,SAAgBhJ,GAEnC,IAAIzG,EACApE,EACA5F,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAGN,IAAK,IAAIqB,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5BrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAAKuE,EAAEuP,MAAM9T,GAGvC,GAAIrB,OAASgK,EACX,KAAO3I,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAM5B,OAFArB,KAAKvB,OAASuL,EAAEvL,OAETuB,KAAKoW,SAGdlG,EAAG1S,UAAUkc,KAAO,SAAejJ,GAEjC,OADAb,EAA0C,KAAlC5P,KAAKkV,SAAWzE,EAAIyE,WACrBlV,KAAKyZ,MAAMhJ,IAIpBP,EAAG1S,UAAUmc,IAAM,SAAclJ,GAC/B,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQ0I,KAAKjJ,GAChDA,EAAIO,QAAQ0I,KAAK1Z,OAG1BkQ,EAAG1S,UAAUoc,KAAO,SAAenJ,GACjC,OAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQyI,MAAMhJ,GACjDA,EAAIO,QAAQyI,MAAMzZ,OAI3BkQ,EAAG1S,UAAUib,MAAQ,SAAgBF,GACnC3I,EAAwB,kBAAV2I,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBvR,KAAK6N,KAAKoC,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvBvY,KAAK2W,QAAQkD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIxY,EAAI,EAAGA,EAAIwY,EAAaxY,IAC/BrB,KAAKmV,MAAM9T,GAAsB,UAAhBrB,KAAKmV,MAAM9T,GAS9B,OALIyY,EAAW,IACb9Z,KAAKmV,MAAM9T,IAAMrB,KAAKmV,MAAM9T,GAAM,UAAc,GAAKyY,GAIhD9Z,KAAKoW,SAGdlG,EAAG1S,UAAUqb,KAAO,SAAeN,GACjC,OAAOvY,KAAKgR,QAAQyH,MAAMF,IAI5BrI,EAAG1S,UAAUuc,KAAO,SAAeC,EAAKzV,GACtCqL,EAAsB,kBAARoK,GAAoBA,GAAO,GAEzC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAha,KAAK2W,QAAQ1U,EAAM,GAGjBjC,KAAKmV,MAAMlT,GADTsC,EACgBvE,KAAKmV,MAAMlT,GAAQ,GAAKgY,EAExBja,KAAKmV,MAAMlT,KAAS,GAAKgY,GAGtCja,KAAKoW,SAIdlG,EAAG1S,UAAU0c,KAAO,SAAezJ,GACjC,IAAIT,EAkBAhG,EAAGpE,EAfP,GAAsB,IAAlB5F,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAI7B,OAHAlV,KAAKkV,SAAW,EAChBlF,EAAIhQ,KAAKma,KAAK1J,GACdzQ,KAAKkV,UAAY,EACVlV,KAAK4W,YAGP,GAAsB,IAAlB5W,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAIpC,OAHAzE,EAAIyE,SAAW,EACflF,EAAIhQ,KAAKma,KAAK1J,GACdA,EAAIyE,SAAW,EACRlF,EAAE4G,YAKP5W,KAAKvB,OAASgS,EAAIhS,QACpBuL,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAC5B2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,EAC1CrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAEhB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAClC2O,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,EACvBrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAChBqE,EAAQrE,IAAM,GAIhB,GADAhQ,KAAKvB,OAASuL,EAAEvL,OACF,IAAV4V,EACFrU,KAAKmV,MAAMnV,KAAKvB,QAAU4V,EAC1BrU,KAAKvB,cAEA,GAAIuL,IAAMhK,KACf,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAI5B,OAAOrB,MAITkQ,EAAG1S,UAAU4c,IAAM,SAAc3J,GAC/B,IAAIjI,EACJ,OAAqB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UAC7BzE,EAAIyE,SAAW,EACf1M,EAAMxI,KAAKmO,IAAIsC,GACfA,EAAIyE,UAAY,EACT1M,GACmB,IAAjBiI,EAAIyE,UAAoC,IAAlBlV,KAAKkV,UACpClV,KAAKkV,SAAW,EAChB1M,EAAMiI,EAAItC,IAAInO,MACdA,KAAKkV,SAAW,EACT1M,GAGLxI,KAAKvB,OAASgS,EAAIhS,OAAeuB,KAAKgR,QAAQkJ,KAAKzJ,GAEhDA,EAAIO,QAAQkJ,KAAKla,OAI1BkQ,EAAG1S,UAAU2c,KAAO,SAAe1J,GAEjC,GAAqB,IAAjBA,EAAIyE,SAAgB,CACtBzE,EAAIyE,SAAW,EACf,IAAIlF,EAAIhQ,KAAKka,KAAKzJ,GAElB,OADAA,EAAIyE,SAAW,EACRlF,EAAE4G,YAGJ,GAAsB,IAAlB5W,KAAKkV,SAId,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAKka,KAAKzJ,GACVzQ,KAAKkV,SAAW,EACTlV,KAAK4W,YAId,IAWI5M,EAAGpE,EAXHkQ,EAAM9V,KAAK8V,IAAIrF,GAGnB,GAAY,IAARqF,EAIF,OAHA9V,KAAKkV,SAAW,EAChBlV,KAAKvB,OAAS,EACduB,KAAKmV,MAAM,GAAK,EACTnV,KAKL8V,EAAM,GACR9L,EAAIhK,KACJ4F,EAAI6K,IAEJzG,EAAIyG,EACJ7K,EAAI5F,MAIN,IADA,IAAIqU,EAAQ,EACHhT,EAAI,EAAGA,EAAIuE,EAAEnH,OAAQ4C,IAE5BgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,KAAwB,EAAbuE,EAAEuP,MAAM9T,IAAUgT,IAC7B,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAElB,KAAiB,IAAVqE,GAAehT,EAAI2I,EAAEvL,OAAQ4C,IAElCgT,GADArE,GAAkB,EAAbhG,EAAEmL,MAAM9T,IAAUgT,IACV,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJ2O,EAIlB,GAAc,IAAVqE,GAAehT,EAAI2I,EAAEvL,QAAUuL,IAAMhK,KACvC,KAAOqB,EAAI2I,EAAEvL,OAAQ4C,IACnBrB,KAAKmV,MAAM9T,GAAK2I,EAAEmL,MAAM9T,GAU5B,OANArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,GAEhC2I,IAAMhK,OACRA,KAAKkV,SAAW,GAGXlV,KAAKoW,SAIdlG,EAAG1S,UAAU2Q,IAAM,SAAcsC,GAC/B,OAAOzQ,KAAKgR,QAAQmJ,KAAK1J,IA+C3B,IAAI4J,EAAc,SAAsBpD,EAAMxG,EAAKlF,GACjD,IAIIpD,EACAmS,EACApS,EANA8B,EAAIiN,EAAK9B,MACTvP,EAAI6K,EAAI0E,MACRoF,EAAIhP,EAAI4J,MACRlN,EAAI,EAIJuS,EAAY,EAAPxQ,EAAE,GACPyQ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Q,EAAE,GACP4Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Q,EAAE,GACP+Q,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjR,EAAE,GACPkR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpR,EAAE,GACPqR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvR,EAAE,GACPwR,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1R,EAAE,GACP2R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7R,EAAE,GACP8R,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhS,EAAE,GACPiS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnS,EAAE,GACPoS,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1W,EAAE,GACP2W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7W,EAAE,GACP8W,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhX,EAAE,GACPiX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnX,EAAE,GACPoX,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtX,EAAE,GACPuX,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPzX,EAAE,GACP0X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5X,EAAE,GACP6X,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/X,EAAE,GACPgY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlY,EAAE,GACPmY,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrY,EAAE,GACPsY,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB1S,EAAI2J,SAAW+B,EAAK/B,SAAWzE,EAAIyE,SACnC3J,EAAI9M,OAAS,GAMb,IAAI2f,IAAQnW,GAJZE,EAAKG,KAAK+V,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAMhS,KAAK+V,KAAK5D,EAAK+B,IACRlU,KAAK+V,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDtU,IAFAC,EAAKI,KAAK+V,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENjW,EAAKG,KAAK+V,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKzD,EAAK4B,IACRlU,KAAK+V,KAAKxD,EAAK0B,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQrW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKkC,GAAQ,GACvBrU,KAAK+V,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDzU,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENnW,EAAKG,KAAK+V,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKtD,EAAKyB,IACRlU,KAAK+V,KAAKrD,EAAKuB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKrD,EAAKwB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK+B,GAAQ,GACvBrU,KAAK+V,KAAKxD,EAAK6B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQtW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKqC,GAAQ,GACvBxU,KAAK+V,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD5U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENpW,EAAKG,KAAK+V,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKnD,EAAKsB,IACRlU,KAAK+V,KAAKlD,EAAKoB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKlD,EAAKqB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK4B,GAAQ,GACvBrU,KAAK+V,KAAKrD,EAAK0B,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK2B,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKkC,GAAQ,GACvBxU,KAAK+V,KAAKxD,EAAKgC,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQvW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKwC,GAAQ,GACvB3U,KAAK+V,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD/U,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENrW,EAAKG,KAAK+V,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKhD,EAAKmB,IACRlU,KAAK+V,KAAK/C,EAAKiB,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK/C,EAAKkB,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKyB,GAAQ,GACvBrU,KAAK+V,KAAKlD,EAAKuB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKwB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK+B,GAAQ,GACvBxU,KAAK+V,KAAKrD,EAAK6B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK8B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKqC,GAAQ,GACvB3U,KAAK+V,KAAKxD,EAAKmC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQxW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK2C,IAAQ,GACvB9U,KAAK+V,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDlV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENtW,EAAKG,KAAK+V,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK7C,EAAKgB,IACRlU,KAAK+V,KAAK5C,EAAKc,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAK5C,EAAKe,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKsB,GAAQ,GACvBrU,KAAK+V,KAAK/C,EAAKoB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKqB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK4B,GAAQ,GACvBxU,KAAK+V,KAAKlD,EAAK0B,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK2B,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKkC,GAAQ,GACvB3U,KAAK+V,KAAKrD,EAAKgC,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKiC,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKwC,IAAQ,GACvB9U,KAAK+V,KAAKxD,EAAKsC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQzW,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK8C,IAAQ,GACvBjV,KAAK+V,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDrV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENvW,EAAKG,KAAK+V,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAK1C,EAAKa,IACRlU,KAAK+V,KAAKzC,EAAKW,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKzC,EAAKY,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKmB,GAAQ,GACvBrU,KAAK+V,KAAK5C,EAAKiB,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKkB,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKyB,GAAQ,GACvBxU,KAAK+V,KAAK/C,EAAKuB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKwB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK+B,GAAQ,GACvB3U,KAAK+V,KAAKlD,EAAK6B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK8B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKqC,IAAQ,GACvB9U,KAAK+V,KAAKrD,EAAKmC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKoC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK2C,IAAQ,GACvBjV,KAAK+V,KAAKxD,EAAKyC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ1W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKiD,IAAQ,GACvBpV,KAAK+V,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDxV,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENxW,EAAKG,KAAK+V,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKvC,EAAKU,IACRlU,KAAK+V,KAAKtC,EAAKQ,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKtC,EAAKS,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKgB,GAAQ,GACvBrU,KAAK+V,KAAKzC,EAAKc,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKe,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKsB,GAAQ,GACvBxU,KAAK+V,KAAK5C,EAAKoB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKqB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK4B,GAAQ,GACvB3U,KAAK+V,KAAK/C,EAAK0B,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK2B,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKkC,IAAQ,GACvB9U,KAAK+V,KAAKlD,EAAKgC,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKiC,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKwC,IAAQ,GACvBjV,KAAK+V,KAAKrD,EAAKsC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKuC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAK8C,IAAQ,GACvBpV,KAAK+V,KAAKxD,EAAK4C,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ3W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKoD,IAAQ,GACvBvV,KAAK+V,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD3V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAENzW,EAAKG,KAAK+V,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKpC,EAAKO,IACRlU,KAAK+V,KAAKnC,EAAKK,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKnC,EAAKM,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKa,GAAQ,GACvBrU,KAAK+V,KAAKtC,EAAKW,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKY,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKmB,GAAQ,GACvBxU,KAAK+V,KAAKzC,EAAKiB,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKkB,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKyB,GAAQ,GACvB3U,KAAK+V,KAAK5C,EAAKuB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKwB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK+B,IAAQ,GACvB9U,KAAK+V,KAAK/C,EAAK6B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK8B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKqC,IAAQ,GACvBjV,KAAK+V,KAAKlD,EAAKmC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKoC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK2C,IAAQ,GACvBpV,KAAK+V,KAAKrD,EAAKyC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK0C,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKiD,IAAQ,GACvBvV,KAAK+V,KAAKxD,EAAK+C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ5W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAKuD,IAAQ,GACvB1V,KAAK+V,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD9V,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN1W,EAAKG,KAAK+V,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKI,IACRlU,KAAK+V,KAAKhC,EAAKE,GAAQ,EACpCrU,EAAKI,KAAK+V,KAAKhC,EAAKG,GACpBrU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKU,GAAQ,GACvBrU,KAAK+V,KAAKnC,EAAKQ,GAAQ,EACpCxU,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKS,GAAQ,EAClCxU,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKgB,GAAQ,GACvBxU,KAAK+V,KAAKtC,EAAKc,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKe,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKsB,GAAQ,GACvB3U,KAAK+V,KAAKzC,EAAKoB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKqB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK4B,IAAQ,GACvB9U,KAAK+V,KAAK5C,EAAK0B,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK2B,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKkC,IAAQ,GACvBjV,KAAK+V,KAAK/C,EAAKgC,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKiC,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKwC,IAAQ,GACvBpV,KAAK+V,KAAKlD,EAAKsC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKuC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAK8C,IAAQ,GACvBvV,KAAK+V,KAAKrD,EAAK4C,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAK6C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKoD,IAAQ,GACvB1V,KAAK+V,KAAKxD,EAAKkD,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ7W,GAJZE,EAAMA,EAAKG,KAAK+V,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK5D,EAAK0D,IAAQ,GACvB7V,KAAK+V,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAEN3W,EAAKG,KAAK+V,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKO,IACRrU,KAAK+V,KAAKhC,EAAKK,GAAQ,EACpCxU,EAAKI,KAAK+V,KAAKhC,EAAKM,GACpBxU,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKa,GAAQ,GACvBxU,KAAK+V,KAAKnC,EAAKW,GAAQ,EACpC3U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKY,GAAQ,EAClC3U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKmB,GAAQ,GACvB3U,KAAK+V,KAAKtC,EAAKiB,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKkB,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKyB,IAAQ,GACvB9U,KAAK+V,KAAKzC,EAAKuB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKwB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK+B,IAAQ,GACvBjV,KAAK+V,KAAK5C,EAAK6B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK8B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKqC,IAAQ,GACvBpV,KAAK+V,KAAK/C,EAAKmC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKoC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK2C,IAAQ,GACvBvV,KAAK+V,KAAKlD,EAAKyC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK0C,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKiD,IAAQ,GACvB1V,KAAK+V,KAAKrD,EAAK+C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS9W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKzD,EAAKuD,IAAQ,GACvB7V,KAAK+V,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP5W,EAAKG,KAAK+V,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKU,IACRxU,KAAK+V,KAAKhC,EAAKQ,GAAQ,EACpC3U,EAAKI,KAAK+V,KAAKhC,EAAKS,GACpB3U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKgB,GAAQ,GACvB3U,KAAK+V,KAAKnC,EAAKc,GAAQ,EACpC9U,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKe,GAAQ,EAClC9U,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKsB,IAAQ,GACvB9U,KAAK+V,KAAKtC,EAAKoB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKqB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK4B,IAAQ,GACvBjV,KAAK+V,KAAKzC,EAAK0B,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK2B,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKkC,IAAQ,GACvBpV,KAAK+V,KAAK5C,EAAKgC,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKiC,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAKwC,IAAQ,GACvBvV,KAAK+V,KAAK/C,EAAKsC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAKuC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAK8C,IAAQ,GACvB1V,KAAK+V,KAAKlD,EAAK4C,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS/W,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKtD,EAAKoD,IAAQ,GACvB7V,KAAK+V,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP7W,EAAKG,KAAK+V,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKa,IACR3U,KAAK+V,KAAKhC,EAAKW,GAAQ,EACpC9U,EAAKI,KAAK+V,KAAKhC,EAAKY,GACpB9U,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKmB,IAAQ,GACvB9U,KAAK+V,KAAKnC,EAAKiB,GAAQ,EACpCjV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKkB,IAAQ,EAClCjV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKyB,IAAQ,GACvBjV,KAAK+V,KAAKtC,EAAKuB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKwB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAK+B,IAAQ,GACvBpV,KAAK+V,KAAKzC,EAAK6B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAK8B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKqC,IAAQ,GACvBvV,KAAK+V,KAAK5C,EAAKmC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKoC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK2C,IAAQ,GACvB1V,KAAK+V,KAAK/C,EAAKyC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAShX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKnD,EAAKiD,IAAQ,GACvB7V,KAAK+V,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP9W,EAAKG,KAAK+V,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKgB,KACR9U,KAAK+V,KAAKhC,EAAKc,GAAQ,EACpCjV,EAAKI,KAAK+V,KAAKhC,EAAKe,IACpBjV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKsB,IAAQ,GACvBjV,KAAK+V,KAAKnC,EAAKoB,IAAQ,EACpCpV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKqB,IAAQ,EAClCpV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK4B,IAAQ,GACvBpV,KAAK+V,KAAKtC,EAAK0B,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK2B,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKkC,IAAQ,GACvBvV,KAAK+V,KAAKzC,EAAKgC,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKiC,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAKwC,IAAQ,GACvB1V,KAAK+V,KAAK5C,EAAKsC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASjX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKhD,EAAK8C,IAAQ,GACvB7V,KAAK+V,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEP/W,EAAKG,KAAK+V,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKmB,KACRjV,KAAK+V,KAAKhC,EAAKiB,IAAQ,EACpCpV,EAAKI,KAAK+V,KAAKhC,EAAKkB,IACpBpV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKyB,IAAQ,GACvBpV,KAAK+V,KAAKnC,EAAKuB,IAAQ,EACpCvV,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKwB,IAAQ,EAClCvV,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAK+B,IAAQ,GACvBvV,KAAK+V,KAAKtC,EAAK6B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAK8B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKqC,IAAQ,GACvB1V,KAAK+V,KAAKzC,EAAKmC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASlX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK7C,EAAK2C,IAAQ,GACvB7V,KAAK+V,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPhX,EAAKG,KAAK+V,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKsB,KACRpV,KAAK+V,KAAKhC,EAAKoB,IAAQ,EACpCvV,EAAKI,KAAK+V,KAAKhC,EAAKqB,IACpBvV,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK4B,IAAQ,GACvBvV,KAAK+V,KAAKnC,EAAK0B,IAAQ,EACpC1V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK2B,IAAQ,EAClC1V,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKkC,IAAQ,GACvB1V,KAAK+V,KAAKtC,EAAKgC,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASnX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAK1C,EAAKwC,IAAQ,GACvB7V,KAAK+V,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPjX,EAAKG,KAAK+V,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAKyB,KACRvV,KAAK+V,KAAKhC,EAAKuB,IAAQ,EACpC1V,EAAKI,KAAK+V,KAAKhC,EAAKwB,IACpB1V,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAK+B,IAAQ,GACvB1V,KAAK+V,KAAKnC,EAAK6B,IAAQ,EACpC7V,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASpX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKvC,EAAKqC,IAAQ,GACvB7V,KAAK+V,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPlX,EAAKG,KAAK+V,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK4B,KACR1V,KAAK+V,KAAKhC,EAAK0B,IAAQ,EACpC7V,EAAKI,KAAK+V,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASrX,GAJbE,EAAMA,EAAKG,KAAK+V,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAMhS,KAAK+V,KAAKpC,EAAKkC,IAAQ,GACvB7V,KAAK+V,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDjW,IAFAC,EAAMA,EAAKI,KAAK+V,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAStX,GAJbE,EAAKG,KAAK+V,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAMhS,KAAK+V,KAAKjC,EAAK+B,KACR7V,KAAK+V,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAjW,IAFAC,EAAKI,KAAK+V,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANtX,IACFsS,EAAE,IAAMtS,EACRsD,EAAI9M,UAEC8M,GAiDT,SAASiU,EAAYvI,EAAMxG,EAAKlF,GAE9B,OADW,IAAIkU,GACHC,KAAKzI,EAAMxG,EAAKlF,GAsB9B,SAASkU,EAAMxV,EAAGC,GAChBlK,KAAKiK,EAAIA,EACTjK,KAAKkK,EAAIA,EAvEN5B,KAAK+V,OACRhE,EAAcrD,GAiDhB9G,EAAG1S,UAAUmiB,MAAQ,SAAgBlP,EAAKlF,GACxC,IAAI/C,EACA9H,EAAMV,KAAKvB,OAASgS,EAAIhS,OAW5B,OATE+J,EADkB,KAAhBxI,KAAKvB,QAAgC,KAAfgS,EAAIhS,OACtB4b,EAAYra,KAAMyQ,EAAKlF,GACpB7K,EAAM,GACTsW,EAAWhX,KAAMyQ,EAAKlF,GACnB7K,EAAM,KArDnB,SAAmBuW,EAAMxG,EAAKlF,GAC5BA,EAAI2J,SAAWzE,EAAIyE,SAAW+B,EAAK/B,SACnC3J,EAAI9M,OAASwY,EAAKxY,OAASgS,EAAIhS,OAI/B,IAFA,IAAI4V,EAAQ,EACRuL,EAAU,EACL7O,EAAI,EAAGA,EAAIxF,EAAI9M,OAAS,EAAGsS,IAAK,CAGvC,IAAImG,EAAS0I,EACbA,EAAU,EAGV,IAFA,IAAIzI,EAAgB,SAAR9C,EACR+C,EAAO9O,KAAKC,IAAIwI,EAAGN,EAAIhS,OAAS,GAC3BoI,EAAIyB,KAAKoC,IAAI,EAAGqG,EAAIkG,EAAKxY,OAAS,GAAIoI,GAAKuQ,EAAMvQ,IAAK,CAC7D,IAAIxF,EAAI0P,EAAIlK,EAGRmJ,GAFoB,EAAhBiH,EAAK9B,MAAM9T,KACI,EAAfoP,EAAI0E,MAAMtO,IAGdsB,EAAS,SAAJ6H,EAGTmH,EAAa,UADbhP,EAAMA,EAAKgP,EAAS,GAIpByI,IAFA1I,GAHAA,EAAUA,GAAWlH,EAAI,SAAa,GAAM,IAGxB7H,IAAO,IAAO,KAEZ,GACtB+O,GAAU,SAEZ3L,EAAI4J,MAAMpE,GAAKoG,EACf9C,EAAQ6C,EACRA,EAAS0I,EAQX,OANc,IAAVvL,EACF9I,EAAI4J,MAAMpE,GAAKsD,EAEf9I,EAAI9M,SAGC8M,EAAI6K,QAgBHyJ,CAAS7f,KAAMyQ,EAAKlF,GAEpBiU,EAAWxf,KAAMyQ,EAAKlF,GAGvB/C,GAWTiX,EAAKjiB,UAAUsiB,QAAU,SAAkBC,GAGzC,IAFA,IAAI5H,EAAI,IAAIhX,MAAM4e,GACdhQ,EAAIG,EAAG1S,UAAU0a,WAAW6H,GAAK,EAC5B1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrB8W,EAAE9W,GAAKrB,KAAKggB,OAAO3e,EAAG0O,EAAGgQ,GAG3B,OAAO5H,GAITsH,EAAKjiB,UAAUwiB,OAAS,SAAiB/V,EAAG8F,EAAGgQ,GAC7C,GAAU,IAAN9V,GAAWA,IAAM8V,EAAI,EAAG,OAAO9V,EAGnC,IADA,IAAIgW,EAAK,EACA5e,EAAI,EAAGA,EAAI0O,EAAG1O,IACrB4e,IAAW,EAAJhW,IAAW8F,EAAI1O,EAAI,EAC1B4I,IAAM,EAGR,OAAOgW,GAKTR,EAAKjiB,UAAU0iB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBif,EAAKjf,GAAK+e,EAAID,EAAI9e,IAClBkf,EAAKlf,GAAKgf,EAAIF,EAAI9e,KAItBoe,EAAKjiB,UAAUgjB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEngB,KAAKkgB,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIU,EAAI,EAAGA,EAAIV,EAAGU,IAAM,EAM3B,IALA,IAAI1Q,EAAI0Q,GAAK,EAETC,EAAQpY,KAAKqY,IAAI,EAAIrY,KAAKsY,GAAK7Q,GAC/B8Q,EAAQvY,KAAKwY,IAAI,EAAIxY,KAAKsY,GAAK7Q,GAE1B8C,EAAI,EAAGA,EAAIkN,EAAGlN,GAAK9C,EAI1B,IAHA,IAAIgR,EAASL,EACTM,EAASH,EAEJha,EAAI,EAAGA,EAAI4Z,EAAG5Z,IAAK,CAC1B,IAAIoa,EAAKX,EAAKzN,EAAIhM,GACdqa,EAAKX,EAAK1N,EAAIhM,GAEdsa,EAAKb,EAAKzN,EAAIhM,EAAI4Z,GAClBW,EAAKb,EAAK1N,EAAIhM,EAAI4Z,GAElBY,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKzN,EAAIhM,GAAKoa,EAAKE,EACnBZ,EAAK1N,EAAIhM,GAAKqa,EAAKE,EAEnBd,EAAKzN,EAAIhM,EAAI4Z,GAAKQ,EAAKE,EACvBZ,EAAK1N,EAAIhM,EAAI4Z,GAAKS,EAAKE,EAGnBva,IAAMkJ,IACRsR,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,KAOnB5B,EAAKjiB,UAAU8jB,YAAc,SAAsBzb,EAAGC,GACpD,IAAIia,EAAqB,EAAjBzX,KAAKoC,IAAI5E,EAAGD,GAChB0b,EAAU,EAAJxB,EACN1e,EAAI,EACR,IAAK0e,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B1e,IAGF,OAAO,GAAKA,EAAI,EAAIkgB,GAGtB9B,EAAKjiB,UAAUgkB,UAAY,SAAoBpB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI1e,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAI8W,EAAIiI,EAAI/e,GAEZ+e,EAAI/e,GAAK+e,EAAIL,EAAI1e,EAAI,GACrB+e,EAAIL,EAAI1e,EAAI,GAAK8W,EAEjBA,EAAIkI,EAAIhf,GAERgf,EAAIhf,IAAMgf,EAAIN,EAAI1e,EAAI,GACtBgf,EAAIN,EAAI1e,EAAI,IAAM8W,IAItBsH,EAAKjiB,UAAUikB,aAAe,SAAuB3Q,EAAIiP,GAEvD,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAI0e,EAAI,EAAG1e,IAAK,CAC9B,IAAIqP,EAAoC,KAAhCpI,KAAKoZ,MAAM5Q,EAAG,EAAIzP,EAAI,GAAK0e,GACjCzX,KAAKoZ,MAAM5Q,EAAG,EAAIzP,GAAK0e,GACvB1L,EAEFvD,EAAGzP,GAAS,SAAJqP,EAGN2D,EADE3D,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOI,GAGT2O,EAAKjiB,UAAUmkB,WAAa,SAAqB7Q,EAAIpQ,EAAK0f,EAAKL,GAE7D,IADA,IAAI1L,EAAQ,EACHhT,EAAI,EAAGA,EAAIX,EAAKW,IACvBgT,GAAyB,EAARvD,EAAGzP,GAEpB+e,EAAI,EAAI/e,GAAa,KAARgT,EAAgBA,KAAkB,GAC/C+L,EAAI,EAAI/e,EAAI,GAAa,KAARgT,EAAgBA,KAAkB,GAIrD,IAAKhT,EAAI,EAAIX,EAAKW,EAAI0e,IAAK1e,EACzB+e,EAAI/e,GAAK,EAGXuO,EAAiB,IAAVyE,GACPzE,EAA6B,MAAb,KAARyE,KAGVoL,EAAKjiB,UAAUokB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAI1gB,MAAM4e,GACV1e,EAAI,EAAGA,EAAI0e,EAAG1e,IACrBwgB,EAAGxgB,GAAK,EAGV,OAAOwgB,GAGTpC,EAAKjiB,UAAUkiB,KAAO,SAAezV,EAAGC,EAAGqB,GACzC,IAAIwU,EAAI,EAAI/f,KAAKshB,YAAYrX,EAAExL,OAAQyL,EAAEzL,QAErC0hB,EAAMngB,KAAK8f,QAAQC,GAEnB+B,EAAI9hB,KAAK4hB,KAAK7B,GAEdK,EAAM,IAAIjf,MAAM4e,GAChBgC,EAAO,IAAI5gB,MAAM4e,GACjBiC,EAAO,IAAI7gB,MAAM4e,GAEjBkC,EAAO,IAAI9gB,MAAM4e,GACjBmC,EAAQ,IAAI/gB,MAAM4e,GAClBoC,EAAQ,IAAIhhB,MAAM4e,GAElBqC,EAAO7W,EAAI4J,MACfiN,EAAK3jB,OAASshB,EAEd/f,KAAK2hB,WAAW1X,EAAEkL,MAAOlL,EAAExL,OAAQ2hB,EAAKL,GACxC/f,KAAK2hB,WAAWzX,EAAEiL,MAAOjL,EAAEzL,OAAQwjB,EAAMlC,GAEzC/f,KAAKwgB,UAAUJ,EAAK0B,EAAGC,EAAMC,EAAMjC,EAAGI,GACtCngB,KAAKwgB,UAAUyB,EAAMH,EAAGI,EAAOC,EAAOpC,EAAGI,GAEzC,IAAK,IAAI9e,EAAI,EAAGA,EAAI0e,EAAG1e,IAAK,CAC1B,IAAIggB,EAAKU,EAAK1gB,GAAK6gB,EAAM7gB,GAAK2gB,EAAK3gB,GAAK8gB,EAAM9gB,GAC9C2gB,EAAK3gB,GAAK0gB,EAAK1gB,GAAK8gB,EAAM9gB,GAAK2gB,EAAK3gB,GAAK6gB,EAAM7gB,GAC/C0gB,EAAK1gB,GAAKggB,EAUZ,OAPArhB,KAAKwhB,UAAUO,EAAMC,EAAMjC,GAC3B/f,KAAKwgB,UAAUuB,EAAMC,EAAMI,EAAMN,EAAG/B,EAAGI,GACvCngB,KAAKwhB,UAAUY,EAAMN,EAAG/B,GACxB/f,KAAKyhB,aAAaW,EAAMrC,GAExBxU,EAAI2J,SAAWjL,EAAEiL,SAAWhL,EAAEgL,SAC9B3J,EAAI9M,OAASwL,EAAExL,OAASyL,EAAEzL,OACnB8M,EAAI6K,SAIblG,EAAG1S,UAAU+O,IAAM,SAAckE,GAC/B,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjCuB,KAAK2f,MAAMlP,EAAKlF,IAIzB2E,EAAG1S,UAAU6kB,KAAO,SAAe5R,GACjC,IAAIlF,EAAM,IAAI2E,EAAG,MAEjB,OADA3E,EAAI4J,MAAQ,IAAIhU,MAAMnB,KAAKvB,OAASgS,EAAIhS,QACjC+gB,EAAWxf,KAAMyQ,EAAKlF,IAI/B2E,EAAG1S,UAAU6gB,KAAO,SAAe5N,GACjC,OAAOzQ,KAAKgR,QAAQ2O,MAAMlP,EAAKzQ,OAGjCkQ,EAAG1S,UAAUgZ,MAAQ,SAAgB/F,GACnCb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UAIb,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACpC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAUoP,EAC1BtI,GAAU,SAAJuI,IAA0B,SAAR2D,GAC5BA,IAAU,GACVA,GAAU3D,EAAI,SAAa,EAE3B2D,GAASlM,IAAO,GAChBnI,KAAKmV,MAAM9T,GAAU,SAAL8G,EAQlB,OALc,IAAVkM,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAGAuB,MAGTkQ,EAAG1S,UAAU8kB,KAAO,SAAe7R,GACjC,OAAOzQ,KAAKgR,QAAQwF,MAAM/F,IAI5BP,EAAG1S,UAAU+kB,IAAM,WACjB,OAAOviB,KAAKuM,IAAIvM,OAIlBkQ,EAAG1S,UAAUglB,KAAO,WAClB,OAAOxiB,KAAKqe,KAAKre,KAAKgR,UAIxBd,EAAG1S,UAAUsP,IAAM,SAAc2D,GAC/B,IAAIC,EAxxCN,SAAqBD,GAGnB,IAFA,IAAIC,EAAI,IAAIvP,MAAMsP,EAAII,aAEbmJ,EAAM,EAAGA,EAAMtJ,EAAEjS,OAAQub,IAAO,CACvC,IAAI/X,EAAO+X,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtJ,EAAEsJ,IAAQvJ,EAAI0E,MAAMlT,GAAQ,GAAKgY,KAAWA,EAG9C,OAAOvJ,EA8wCC+R,CAAWhS,GACnB,GAAiB,IAAbC,EAAEjS,OAAc,OAAO,IAAIyR,EAAG,GAIlC,IADA,IAAI1H,EAAMxI,KACDqB,EAAI,EAAGA,EAAIqP,EAAEjS,QACP,IAATiS,EAAErP,GADsBA,IAAKmH,EAAMA,EAAI+Z,OAI7C,KAAMlhB,EAAIqP,EAAEjS,OACV,IAAK,IAAIuZ,EAAIxP,EAAI+Z,MAAOlhB,EAAIqP,EAAEjS,OAAQ4C,IAAK2W,EAAIA,EAAEuK,MAClC,IAAT7R,EAAErP,KAENmH,EAAMA,EAAI+D,IAAIyL,IAIlB,OAAOxP,GAIT0H,EAAG1S,UAAUklB,OAAS,SAAiB/R,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAGItP,EAHA2O,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GACjB2S,EAAa,WAAe,GAAK3S,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIqE,EAAQ,EAEZ,IAAKhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAAK,CAChC,IAAIuhB,EAAW5iB,KAAKmV,MAAM9T,GAAKshB,EAC3B1a,GAAsB,EAAhBjI,KAAKmV,MAAM9T,IAAUuhB,GAAa5S,EAC5ChQ,KAAKmV,MAAM9T,GAAK4G,EAAIoM,EACpBA,EAAQuO,IAAc,GAAK5S,EAGzBqE,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAIT,GAAU,IAANgiB,EAAS,CACX,IAAKpf,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAChCrB,KAAKmV,MAAM9T,EAAIof,GAAKzgB,KAAKmV,MAAM9T,GAGjC,IAAKA,EAAI,EAAGA,EAAIof,EAAGpf,IACjBrB,KAAKmV,MAAM9T,GAAK,EAGlBrB,KAAKvB,QAAUgiB,EAGjB,OAAOzgB,KAAKoW,SAGdlG,EAAG1S,UAAUqlB,MAAQ,SAAgBlS,GAGnC,OADAf,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAK0iB,OAAO/R,IAMrBT,EAAG1S,UAAU8T,OAAS,SAAiBX,EAAMmS,EAAMC,GAEjD,IAAIC,EADJpT,EAAuB,kBAATe,GAAqBA,GAAQ,GAGzCqS,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9S,EAAIW,EAAO,GACX8P,EAAInY,KAAKC,KAAKoI,EAAOX,GAAK,GAAIhQ,KAAKvB,QACnCwkB,EAAO,SAAc,WAAcjT,GAAMA,EACzCkT,EAAcH,EAMlB,GAJAC,GAAKvC,EACLuC,EAAI1a,KAAKoC,IAAI,EAAGsY,GAGZE,EAAa,CACf,IAAK,IAAI7hB,EAAI,EAAGA,EAAIof,EAAGpf,IACrB6hB,EAAY/N,MAAM9T,GAAKrB,KAAKmV,MAAM9T,GAEpC6hB,EAAYzkB,OAASgiB,EAGvB,GAAU,IAANA,QAEG,GAAIzgB,KAAKvB,OAASgiB,EAEvB,IADAzgB,KAAKvB,QAAUgiB,EACVpf,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAC3BrB,KAAKmV,MAAM9T,GAAKrB,KAAKmV,MAAM9T,EAAIof,QAGjCzgB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,EAGhB,IAAI4V,EAAQ,EACZ,IAAKhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,IAAgB,IAAVgT,GAAehT,GAAK2hB,GAAI3hB,IAAK,CAChE,IAAIqR,EAAuB,EAAhB1S,KAAKmV,MAAM9T,GACtBrB,KAAKmV,MAAM9T,GAAMgT,GAAU,GAAKrE,EAAO0C,IAAS1C,EAChDqE,EAAQ3B,EAAOuQ,EAajB,OATIC,GAAyB,IAAV7O,IACjB6O,EAAY/N,MAAM+N,EAAYzkB,UAAY4V,GAGxB,IAAhBrU,KAAKvB,SACPuB,KAAKmV,MAAM,GAAK,EAChBnV,KAAKvB,OAAS,GAGTuB,KAAKoW,SAGdlG,EAAG1S,UAAU2lB,MAAQ,SAAgBxS,EAAMmS,EAAMC,GAG/C,OADAnT,EAAyB,IAAlB5P,KAAKkV,UACLlV,KAAKsR,OAAOX,EAAMmS,EAAMC,IAIjC7S,EAAG1S,UAAU4lB,KAAO,SAAezS,GACjC,OAAO3Q,KAAKgR,QAAQ6R,MAAMlS,IAG5BT,EAAG1S,UAAU6lB,MAAQ,SAAgB1S,GACnC,OAAO3Q,KAAKgR,QAAQ0R,OAAO/R,IAI7BT,EAAG1S,UAAU8lB,KAAO,SAAe3S,GACjC,OAAO3Q,KAAKgR,QAAQmS,MAAMxS,IAG5BT,EAAG1S,UAAU+lB,MAAQ,SAAgB5S,GACnC,OAAO3Q,KAAKgR,QAAQM,OAAOX,IAI7BT,EAAG1S,UAAUob,MAAQ,SAAgBoB,GACnCpK,EAAsB,kBAARoK,GAAoBA,GAAO,GACzC,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,QAAIhQ,KAAKvB,QAAUgiB,OAGXzgB,KAAKmV,MAAMsL,GAELzI,IAIhB9H,EAAG1S,UAAUgmB,OAAS,SAAiB7S,GACrCf,EAAuB,kBAATe,GAAqBA,GAAQ,GAC3C,IAAIX,EAAIW,EAAO,GACX8P,GAAK9P,EAAOX,GAAK,GAIrB,GAFAJ,EAAyB,IAAlB5P,KAAKkV,SAAgB,2CAExBlV,KAAKvB,QAAUgiB,EACjB,OAAOzgB,KAQT,GALU,IAANgQ,GACFyQ,IAEFzgB,KAAKvB,OAAS6J,KAAKC,IAAIkY,EAAGzgB,KAAKvB,QAErB,IAANuR,EAAS,CACX,IAAIiT,EAAO,SAAc,WAAcjT,GAAMA,EAC7ChQ,KAAKmV,MAAMnV,KAAKvB,OAAS,IAAMwkB,EAGjC,OAAOjjB,KAAKoW,SAIdlG,EAAG1S,UAAUimB,MAAQ,SAAgB9S,GACnC,OAAO3Q,KAAKgR,QAAQwS,OAAO7S,IAI7BT,EAAG1S,UAAUkb,MAAQ,SAAgBjI,GAGnC,OAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAUzQ,KAAKqR,OAAOZ,GAGV,IAAlBzQ,KAAKkV,SACa,IAAhBlV,KAAKvB,SAAiC,EAAhBuB,KAAKmV,MAAM,IAAU1E,GAC7CzQ,KAAKmV,MAAM,GAAK1E,GAAuB,EAAhBzQ,KAAKmV,MAAM,IAClCnV,KAAKkV,SAAW,EACTlV,OAGTA,KAAKkV,SAAW,EAChBlV,KAAKqR,MAAMZ,GACXzQ,KAAKkV,SAAW,EACTlV,MAIFA,KAAKyW,OAAOhG,IAGrBP,EAAG1S,UAAUiZ,OAAS,SAAiBhG,GACrCzQ,KAAKmV,MAAM,IAAM1E,EAGjB,IAAK,IAAIpP,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,IAAM,SAAWA,IAC7DrB,KAAKmV,MAAM9T,IAAM,SACbA,IAAMrB,KAAKvB,OAAS,EACtBuB,KAAKmV,MAAM9T,EAAI,GAAK,EAEpBrB,KAAKmV,MAAM9T,EAAI,KAKnB,OAFArB,KAAKvB,OAAS6J,KAAKoC,IAAI1K,KAAKvB,OAAQ4C,EAAI,GAEjCrB,MAITkQ,EAAG1S,UAAU6T,MAAQ,SAAgBZ,GAGnC,GAFAb,EAAsB,kBAARa,GACdb,EAAOa,EAAM,UACTA,EAAM,EAAG,OAAOzQ,KAAK0Y,OAAOjI,GAEhC,GAAsB,IAAlBzQ,KAAKkV,SAIP,OAHAlV,KAAKkV,SAAW,EAChBlV,KAAK0Y,MAAMjI,GACXzQ,KAAKkV,SAAW,EACTlV,KAKT,GAFAA,KAAKmV,MAAM,IAAM1E,EAEG,IAAhBzQ,KAAKvB,QAAgBuB,KAAKmV,MAAM,GAAK,EACvCnV,KAAKmV,MAAM,IAAMnV,KAAKmV,MAAM,GAC5BnV,KAAKkV,SAAW,OAGhB,IAAK,IAAI7T,EAAI,EAAGA,EAAIrB,KAAKvB,QAAUuB,KAAKmV,MAAM9T,GAAK,EAAGA,IACpDrB,KAAKmV,MAAM9T,IAAM,SACjBrB,KAAKmV,MAAM9T,EAAI,IAAM,EAIzB,OAAOrB,KAAKoW,SAGdlG,EAAG1S,UAAUkmB,KAAO,SAAejT,GACjC,OAAOzQ,KAAKgR,QAAQ0H,MAAMjI,IAG5BP,EAAG1S,UAAUmmB,KAAO,SAAelT,GACjC,OAAOzQ,KAAKgR,QAAQK,MAAMZ,IAG5BP,EAAG1S,UAAUomB,KAAO,WAGlB,OAFA5jB,KAAKkV,SAAW,EAETlV,MAGTkQ,EAAG1S,UAAUgb,IAAM,WACjB,OAAOxY,KAAKgR,QAAQ4S,QAGtB1T,EAAG1S,UAAUqmB,aAAe,SAAuBpT,EAAKlE,EAAKuX,GAC3D,IACIziB,EAIAqP,EALAhQ,EAAM+P,EAAIhS,OAASqlB,EAGvB9jB,KAAK2W,QAAQjW,GAGb,IAAI2T,EAAQ,EACZ,IAAKhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CAC/BqP,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,EAClC,IAAIwB,GAAwB,EAAfpF,EAAI0E,MAAM9T,IAAUkL,EAEjC8H,IADA3D,GAAa,SAARmF,IACS,KAAQA,EAAQ,SAAa,GAC3C7V,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAE1B,KAAOrP,EAAIrB,KAAKvB,OAASqlB,EAAOziB,IAE9BgT,GADA3D,GAA6B,EAAxB1Q,KAAKmV,MAAM9T,EAAIyiB,IAAczP,IACrB,GACbrU,KAAKmV,MAAM9T,EAAIyiB,GAAa,SAAJpT,EAG1B,GAAc,IAAV2D,EAAa,OAAOrU,KAAKoW,QAK7B,IAFAxG,GAAkB,IAAXyE,GACPA,EAAQ,EACHhT,EAAI,EAAGA,EAAIrB,KAAKvB,OAAQ4C,IAE3BgT,GADA3D,IAAsB,EAAhB1Q,KAAKmV,MAAM9T,IAAUgT,IACd,GACbrU,KAAKmV,MAAM9T,GAAS,SAAJqP,EAIlB,OAFA1Q,KAAKkV,SAAW,EAETlV,KAAKoW,SAGdlG,EAAG1S,UAAUumB,SAAW,SAAmBtT,EAAKuT,GAC9C,IAAIF,GAAQ9jB,KAAKvB,OAASgS,EAAIhS,QAE1BuL,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAGJwT,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,GAGf,KADdqlB,EAAQ,GADM9jB,KAAKkY,WAAW+L,MAG5Bre,EAAIA,EAAEyd,MAAMS,GACZ9Z,EAAE0Y,OAAOoB,GACTG,EAA8B,EAAxBre,EAAEuP,MAAMvP,EAAEnH,OAAS,IAI3B,IACIuZ,EADAlS,EAAIkE,EAAEvL,OAASmH,EAAEnH,OAGrB,GAAa,QAATulB,EAAgB,EAClBhM,EAAI,IAAI9H,EAAG,OACTzR,OAASqH,EAAI,EACfkS,EAAE7C,MAAQ,IAAIhU,MAAM6W,EAAEvZ,QACtB,IAAK,IAAI4C,EAAI,EAAGA,EAAI2W,EAAEvZ,OAAQ4C,IAC5B2W,EAAE7C,MAAM9T,GAAK,EAIjB,IAAI6iB,EAAOla,EAAEgH,QAAQ6S,aAAaje,EAAG,EAAGE,GAClB,IAAlBoe,EAAKhP,WACPlL,EAAIka,EACAlM,IACFA,EAAE7C,MAAMrP,GAAK,IAIjB,IAAK,IAAIe,EAAIf,EAAI,EAAGe,GAAK,EAAGA,IAAK,CAC/B,IAAIsd,EAAmC,UAAL,EAAxBna,EAAEmL,MAAMvP,EAAEnH,OAASoI,KACE,EAA5BmD,EAAEmL,MAAMvP,EAAEnH,OAASoI,EAAI,IAO1B,IAHAsd,EAAK7b,KAAKC,IAAK4b,EAAKF,EAAO,EAAG,UAE9Bja,EAAE6Z,aAAaje,EAAGue,EAAItd,GACA,IAAfmD,EAAEkL,UACPiP,IACAna,EAAEkL,SAAW,EACblL,EAAE6Z,aAAaje,EAAG,EAAGiB,GAChBmD,EAAEwN,WACLxN,EAAEkL,UAAY,GAGd8C,IACFA,EAAE7C,MAAMtO,GAAKsd,GAajB,OAVInM,GACFA,EAAE5B,QAEJpM,EAAEoM,QAGW,QAAT4N,GAA4B,IAAVF,GACpB9Z,EAAEsH,OAAOwS,GAGJ,CACLM,IAAKpM,GAAK,KACV9G,IAAKlH,IAQTkG,EAAG1S,UAAU6mB,OAAS,SAAiB5T,EAAKuT,EAAMM,GAGhD,OAFA1U,GAAQa,EAAI+G,UAERxX,KAAKwX,SACA,CACL4M,IAAK,IAAIlU,EAAG,GACZgB,IAAK,IAAIhB,EAAG,IAKM,IAAlBlQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAKuT,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGH,QAATgL,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIgJ,KAAKzJ,IAIN,CACL2T,IAAKA,EACLlT,IAAKA,IAIa,IAAlBlR,KAAKkV,UAAmC,IAAjBzE,EAAIyE,UAC7B1M,EAAMxI,KAAKqkB,OAAO5T,EAAIuI,MAAOgL,GAEhB,QAATA,IACFI,EAAM5b,EAAI4b,IAAIpL,OAGT,CACLoL,IAAKA,EACLlT,IAAK1I,EAAI0I,MAI0B,KAAlClR,KAAKkV,SAAWzE,EAAIyE,WACvB1M,EAAMxI,KAAKgZ,MAAMqL,OAAO5T,EAAIuI,MAAOgL,GAEtB,QAATA,IACF9S,EAAM1I,EAAI0I,IAAI8H,MACVsL,GAA6B,IAAjBpT,EAAIgE,UAClBhE,EAAIiJ,KAAK1J,IAIN,CACL2T,IAAK5b,EAAI4b,IACTlT,IAAKA,IAOLT,EAAIhS,OAASuB,KAAKvB,QAAUuB,KAAK8V,IAAIrF,GAAO,EACvC,CACL2T,IAAK,IAAIlU,EAAG,GACZgB,IAAKlR,MAKU,IAAfyQ,EAAIhS,OACO,QAATulB,EACK,CACLI,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,MAII,QAAT8S,EACK,CACLI,IAAK,KACLlT,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7B,CACLiP,IAAKpkB,KAAKukB,KAAK9T,EAAI0E,MAAM,IACzBjE,IAAK,IAAIhB,EAAGlQ,KAAKyX,KAAKhH,EAAI0E,MAAM,MAI7BnV,KAAK+jB,SAAStT,EAAKuT,GAlF1B,IAAII,EAAKlT,EAAK1I,GAsFhB0H,EAAG1S,UAAU4mB,IAAM,SAAc3T,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAO2T,KAIxClU,EAAG1S,UAAU0T,IAAM,SAAcT,GAC/B,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAOS,KAGxChB,EAAG1S,UAAUgnB,KAAO,SAAe/T,GACjC,OAAOzQ,KAAKqkB,OAAO5T,EAAK,OAAO,GAAMS,KAIvChB,EAAG1S,UAAUinB,SAAW,SAAmBhU,GACzC,IAAIiU,EAAK1kB,KAAKqkB,OAAO5T,GAGrB,GAAIiU,EAAGxT,IAAIsG,SAAU,OAAOkN,EAAGN,IAE/B,IAAIlT,EAA0B,IAApBwT,EAAGN,IAAIlP,SAAiBwP,EAAGxT,IAAIiJ,KAAK1J,GAAOiU,EAAGxT,IAEpDyT,EAAOlU,EAAI8S,MAAM,GACjBqB,EAAKnU,EAAIU,MAAM,GACf2E,EAAM5E,EAAI4E,IAAI6O,GAGlB,OAAI7O,EAAM,GAAY,IAAP8O,GAAoB,IAAR9O,EAAkB4O,EAAGN,IAGrB,IAApBM,EAAGN,IAAIlP,SAAiBwP,EAAGN,IAAI/S,MAAM,GAAKqT,EAAGN,IAAI1L,MAAM,IAGhExI,EAAG1S,UAAUia,KAAO,SAAehH,GACjCb,EAAOa,GAAO,UAId,IAHA,IAAIoC,GAAK,GAAK,IAAMpC,EAEhBoU,EAAM,EACDxjB,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IACpCwjB,GAAOhS,EAAIgS,GAAuB,EAAhB7kB,KAAKmV,MAAM9T,KAAWoP,EAG1C,OAAOoU,GAIT3U,EAAG1S,UAAUka,MAAQ,SAAgBjH,GACnCb,EAAOa,GAAO,UAGd,IADA,IAAI4D,EAAQ,EACHhT,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAIqP,GAAqB,EAAhB1Q,KAAKmV,MAAM9T,IAAkB,SAARgT,EAC9BrU,KAAKmV,MAAM9T,GAAMqP,EAAID,EAAO,EAC5B4D,EAAQ3D,EAAID,EAGd,OAAOzQ,KAAKoW,SAGdlG,EAAG1S,UAAU+mB,KAAO,SAAe9T,GACjC,OAAOzQ,KAAKgR,QAAQ0G,MAAMjH,IAG5BP,EAAG1S,UAAUsnB,KAAO,SAAejS,GACjCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIvN,EAAIjK,KACJkK,EAAI2I,EAAE7B,QAGR/G,EADiB,IAAfA,EAAEiL,SACAjL,EAAEua,KAAK3R,GAEP5I,EAAE+G,QAaR,IATA,IAAI+T,EAAI,IAAI7U,EAAG,GACX8U,EAAI,IAAI9U,EAAG,GAGX+U,EAAI,IAAI/U,EAAG,GACXgV,EAAI,IAAIhV,EAAG,GAEXT,EAAI,EAEDxF,EAAEkb,UAAYjb,EAAEib,UACrBlb,EAAEqH,OAAO,GACTpH,EAAEoH,OAAO,KACP7B,EAMJ,IAHA,IAAI2V,EAAKlb,EAAE8G,QACPqU,EAAKpb,EAAE+G,SAEH/G,EAAEuN,UAAU,CAClB,IAAK,IAAInW,EAAI,EAAGikB,EAAK,EAAyB,KAArBrb,EAAEkL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA4I,EAAEqH,OAAOjQ,GACFA,KAAM,IACP0jB,EAAE3T,SAAW4T,EAAE5T,WACjB2T,EAAE7K,KAAKkL,GACPJ,EAAE7K,KAAKkL,IAGTN,EAAEzT,OAAO,GACT0T,EAAE1T,OAAO,GAIb,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArBrb,EAAEiL,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAqD,EAAEoH,OAAOzK,GACFA,KAAM,IACPoe,EAAE7T,SAAW8T,EAAE9T,WACjB6T,EAAE/K,KAAKkL,GACPF,EAAE/K,KAAKkL,IAGTJ,EAAE3T,OAAO,GACT4T,EAAE5T,OAAO,GAITrH,EAAE6L,IAAI5L,IAAM,GACdD,EAAEkQ,KAAKjQ,GACP6a,EAAE5K,KAAK8K,GACPD,EAAE7K,KAAK+K,KAEPhb,EAAEiQ,KAAKlQ,GACPgb,EAAE9K,KAAK4K,GACPG,EAAE/K,KAAK6K,IAIX,MAAO,CACLhb,EAAGib,EACHrf,EAAGsf,EACHM,IAAKtb,EAAEwY,OAAOjT,KAOlBS,EAAG1S,UAAUioB,OAAS,SAAiB5S,GACrCjD,EAAsB,IAAfiD,EAAEqC,UACTtF,GAAQiD,EAAE2E,UAEV,IAAIxN,EAAIhK,KACJ4F,EAAIiN,EAAE7B,QAGRhH,EADiB,IAAfA,EAAEkL,SACAlL,EAAEwa,KAAK3R,GAEP7I,EAAEgH,QAQR,IALA,IAuCIxI,EAvCAkd,EAAK,IAAIxV,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GAEZ0V,EAAQhgB,EAAEoL,QAEPhH,EAAE8H,KAAK,GAAK,GAAKlM,EAAEkM,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzQ,EAAI,EAAGikB,EAAK,EAAyB,KAArBtb,EAAEmL,MAAM,GAAKmQ,IAAajkB,EAAI,KAAMA,EAAGikB,IAAO,GACvE,GAAIjkB,EAAI,EAEN,IADA2I,EAAEsH,OAAOjQ,GACFA,KAAM,GACPqkB,EAAGtU,SACLsU,EAAGxL,KAAK0L,GAGVF,EAAGpU,OAAO,GAId,IAAK,IAAIzK,EAAI,EAAG0e,EAAK,EAAyB,KAArB3f,EAAEuP,MAAM,GAAKoQ,IAAa1e,EAAI,KAAMA,EAAG0e,IAAO,GACvE,GAAI1e,EAAI,EAEN,IADAjB,EAAE0L,OAAOzK,GACFA,KAAM,GACP8e,EAAGvU,SACLuU,EAAGzL,KAAK0L,GAGVD,EAAGrU,OAAO,GAIVtH,EAAE8L,IAAIlQ,IAAM,GACdoE,EAAEmQ,KAAKvU,GACP8f,EAAGvL,KAAKwL,KAER/f,EAAEuU,KAAKnQ,GACP2b,EAAGxL,KAAKuL,IAeZ,OATEld,EADgB,IAAdwB,EAAE8H,KAAK,GACH4T,EAEAC,GAGA7T,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKrH,GAGJrK,GAGT0H,EAAG1S,UAAUgoB,IAAM,SAAc/U,GAC/B,GAAIzQ,KAAKwX,SAAU,OAAO/G,EAAI+H,MAC9B,GAAI/H,EAAI+G,SAAU,OAAOxX,KAAKwY,MAE9B,IAAIxO,EAAIhK,KAAKgR,QACTpL,EAAI6K,EAAIO,QACZhH,EAAEkL,SAAW,EACbtP,EAAEsP,SAAW,EAGb,IAAK,IAAI4O,EAAQ,EAAG9Z,EAAEmb,UAAYvf,EAAEuf,SAAUrB,IAC5C9Z,EAAEsH,OAAO,GACT1L,EAAE0L,OAAO,GAGX,OAAG,CACD,KAAOtH,EAAEmb,UACPnb,EAAEsH,OAAO,GAEX,KAAO1L,EAAEuf,UACPvf,EAAE0L,OAAO,GAGX,IAAItB,EAAIhG,EAAE8L,IAAIlQ,GACd,GAAIoK,EAAI,EAAG,CAET,IAAImI,EAAInO,EACRA,EAAIpE,EACJA,EAAIuS,OACC,GAAU,IAANnI,GAAyB,IAAdpK,EAAEkM,KAAK,GAC3B,MAGF9H,EAAEmQ,KAAKvU,GAGT,OAAOA,EAAE8c,OAAOoB,IAIlB5T,EAAG1S,UAAUqoB,KAAO,SAAepV,GACjC,OAAOzQ,KAAK8kB,KAAKrU,GAAKzG,EAAEwa,KAAK/T,IAG/BP,EAAG1S,UAAU2nB,OAAS,WACpB,OAA+B,KAAP,EAAhBnlB,KAAKmV,MAAM,KAGrBjF,EAAG1S,UAAU4T,MAAQ,WACnB,OAA+B,KAAP,EAAhBpR,KAAKmV,MAAM,KAIrBjF,EAAG1S,UAAU2T,MAAQ,SAAgBV,GACnC,OAAOzQ,KAAKmV,MAAM,GAAK1E,GAIzBP,EAAG1S,UAAUsoB,MAAQ,SAAgB9L,GACnCpK,EAAsB,kBAARoK,GACd,IAAIhK,EAAIgK,EAAM,GACVyG,GAAKzG,EAAMhK,GAAK,GAChBgI,EAAI,GAAKhI,EAGb,GAAIhQ,KAAKvB,QAAUgiB,EAGjB,OAFAzgB,KAAK2W,QAAQ8J,EAAI,GACjBzgB,KAAKmV,MAAMsL,IAAMzI,EACVhY,KAKT,IADA,IAAIqU,EAAQ2D,EACH3W,EAAIof,EAAa,IAAVpM,GAAehT,EAAIrB,KAAKvB,OAAQ4C,IAAK,CACnD,IAAIqP,EAAoB,EAAhB1Q,KAAKmV,MAAM9T,GAEnBgT,GADA3D,GAAK2D,KACS,GACd3D,GAAK,SACL1Q,KAAKmV,MAAM9T,GAAKqP,EAMlB,OAJc,IAAV2D,IACFrU,KAAKmV,MAAM9T,GAAKgT,EAChBrU,KAAKvB,UAEAuB,MAGTkQ,EAAG1S,UAAUga,OAAS,WACpB,OAAuB,IAAhBxX,KAAKvB,QAAkC,IAAlBuB,KAAKmV,MAAM,IAGzCjF,EAAG1S,UAAUsU,KAAO,SAAerB,GACjC,IAOIjI,EAPA0M,EAAWzE,EAAM,EAErB,GAAsB,IAAlBzQ,KAAKkV,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBlV,KAAKkV,UAAkBA,EAAU,OAAO,EAK5C,GAHAlV,KAAKoW,QAGDpW,KAAKvB,OAAS,EAChB+J,EAAM,MACD,CACD0M,IACFzE,GAAOA,GAGTb,EAAOa,GAAO,SAAW,qBAEzB,IAAIC,EAAoB,EAAhB1Q,KAAKmV,MAAM,GACnB3M,EAAMkI,IAAMD,EAAM,EAAIC,EAAID,GAAO,EAAI,EAEvC,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAOT0H,EAAG1S,UAAUsY,IAAM,SAAcrF,GAC/B,GAAsB,IAAlBzQ,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAQ,EACvD,GAAsB,IAAlBlV,KAAKkV,UAAmC,IAAjBzE,EAAIyE,SAAgB,OAAO,EAEtD,IAAI1M,EAAMxI,KAAK+lB,KAAKtV,GACpB,OAAsB,IAAlBzQ,KAAKkV,SAA8B,GAAN1M,EAC1BA,GAIT0H,EAAG1S,UAAUuoB,KAAO,SAAetV,GAEjC,GAAIzQ,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAO,EACrC,GAAIuB,KAAKvB,OAASgS,EAAIhS,OAAQ,OAAQ,EAGtC,IADA,IAAI+J,EAAM,EACDnH,EAAIrB,KAAKvB,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CACzC,IAAI2I,EAAoB,EAAhBhK,KAAKmV,MAAM9T,GACfuE,EAAmB,EAAf6K,EAAI0E,MAAM9T,GAElB,GAAI2I,IAAMpE,EAAV,CACIoE,EAAIpE,EACN4C,GAAO,EACEwB,EAAIpE,IACb4C,EAAM,GAER,OAEF,OAAOA,GAGT0H,EAAG1S,UAAUwoB,IAAM,SAAcvV,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUyoB,GAAK,SAAaxV,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU0oB,KAAO,SAAezV,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU2oB,IAAM,SAAc1V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAU4oB,IAAM,SAAc3V,GAC/B,OAA2B,IAApBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAU6oB,GAAK,SAAa5V,GAC7B,OAA0B,IAAnBzQ,KAAK8V,IAAIrF,IAGlBP,EAAG1S,UAAU8oB,KAAO,SAAe7V,GACjC,OAAOzQ,KAAK8R,KAAKrB,IAAQ,GAG3BP,EAAG1S,UAAU+oB,IAAM,SAAc9V,GAC/B,OAAOzQ,KAAK8V,IAAIrF,IAAQ,GAG1BP,EAAG1S,UAAUgpB,IAAM,SAAc/V,GAC/B,OAA0B,IAAnBzQ,KAAK8R,KAAKrB,IAGnBP,EAAG1S,UAAUipB,GAAK,SAAahW,GAC7B,OAAyB,IAAlBzQ,KAAK8V,IAAIrF,IAOlBP,EAAGkF,IAAM,SAAc3E,GACrB,OAAO,IAAIiW,EAAIjW,IAGjBP,EAAG1S,UAAUmpB,MAAQ,SAAgBC,GAGnC,OAFAhX,GAAQ5P,KAAKoV,IAAK,yCAClBxF,EAAyB,IAAlB5P,KAAKkV,SAAgB,iCACrB0R,EAAIC,UAAU7mB,MAAM8mB,UAAUF,IAGvC1W,EAAG1S,UAAUupB,QAAU,WAErB,OADAnX,EAAO5P,KAAKoV,IAAK,wDACVpV,KAAKoV,IAAI4R,YAAYhnB,OAG9BkQ,EAAG1S,UAAUspB,UAAY,SAAoBF,GAE3C,OADA5mB,KAAKoV,IAAMwR,EACJ5mB,MAGTkQ,EAAG1S,UAAUypB,SAAW,SAAmBL,GAEzC,OADAhX,GAAQ5P,KAAKoV,IAAK,yCACXpV,KAAK8mB,UAAUF,IAGxB1W,EAAG1S,UAAU0pB,OAAS,SAAiBzW,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIgF,IAAIpa,KAAMyQ,IAG5BP,EAAG1S,UAAU2pB,QAAU,SAAkB1W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI8E,KAAKla,KAAMyQ,IAG7BP,EAAG1S,UAAU4pB,OAAS,SAAiB3W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAIjH,IAAInO,KAAMyQ,IAG5BP,EAAG1S,UAAU6pB,QAAU,SAAkB5W,GAEvC,OADAb,EAAO5P,KAAKoV,IAAK,uCACVpV,KAAKoV,IAAI+E,KAAKna,KAAMyQ,IAG7BP,EAAG1S,UAAU8pB,OAAS,SAAiB7W,GAErC,OADAb,EAAO5P,KAAKoV,IAAK,sCACVpV,KAAKoV,IAAImS,IAAIvnB,KAAMyQ,IAG5BP,EAAG1S,UAAUgqB,OAAS,SAAiB/W,GAGrC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAI7I,IAAIvM,KAAMyQ,IAG5BP,EAAG1S,UAAUkqB,QAAU,SAAkBjX,GAGvC,OAFAb,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIqS,SAASznB,KAAMyQ,GACjBzQ,KAAKoV,IAAIiJ,KAAKre,KAAMyQ,IAG7BP,EAAG1S,UAAUmqB,OAAS,WAGpB,OAFA/X,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAImN,IAAIviB,OAGtBkQ,EAAG1S,UAAUqqB,QAAU,WAGrB,OAFAjY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIoN,KAAKxiB,OAIvBkQ,EAAG1S,UAAUsqB,QAAU,WAGrB,OAFAlY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI2S,KAAK/nB,OAGvBkQ,EAAG1S,UAAUwqB,QAAU,WAGrB,OAFApY,EAAO5P,KAAKoV,IAAK,uCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAIyQ,KAAK7lB,OAIvBkQ,EAAG1S,UAAUyqB,OAAS,WAGpB,OAFArY,EAAO5P,KAAKoV,IAAK,sCACjBpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAI4D,IAAIhZ,OAGtBkQ,EAAG1S,UAAU0qB,OAAS,SAAiBzX,GAGrC,OAFAb,EAAO5P,KAAKoV,MAAQ3E,EAAI2E,IAAK,qBAC7BpV,KAAKoV,IAAIwS,SAAS5nB,MACXA,KAAKoV,IAAItI,IAAI9M,KAAMyQ,IAI5B,IAAI0X,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQhmB,EAAMqQ,GAErB7S,KAAKwC,KAAOA,EACZxC,KAAK6S,EAAI,IAAI3C,EAAG2C,EAAG,IACnB7S,KAAK6F,EAAI7F,KAAK6S,EAAEhC,YAChB7Q,KAAK+Q,EAAI,IAAIb,EAAG,GAAGwS,OAAO1iB,KAAK6F,GAAGsU,KAAKna,KAAK6S,GAE5C7S,KAAKyoB,IAAMzoB,KAAK0oB,OAiDlB,SAASC,IACPH,EAAOzoB,KACLC,KACA,OACA,2EA+DJ,SAAS4oB,IACPJ,EAAOzoB,KACLC,KACA,OACA,kEAIJ,SAAS6oB,IACPL,EAAOzoB,KACLC,KACA,OACA,yDAIJ,SAAS8oB,IAEPN,EAAOzoB,KACLC,KACA,QACA,uEA8CJ,SAAS0mB,EAAK5gB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIijB,EAAQ7Y,EAAG8Y,OAAOljB,GACtB9F,KAAK8F,EAAIijB,EAAMlW,EACf7S,KAAK+oB,MAAQA,OAEbnZ,EAAO9J,EAAEkgB,IAAI,GAAI,kCACjBhmB,KAAK8F,EAAIA,EACT9F,KAAK+oB,MAAQ,KAkOjB,SAASE,EAAMnjB,GACb4gB,EAAI3mB,KAAKC,KAAM8F,GAEf9F,KAAK8jB,MAAQ9jB,KAAK8F,EAAE+K,YAChB7Q,KAAK8jB,MAAQ,KAAO,IACtB9jB,KAAK8jB,OAAS,GAAM9jB,KAAK8jB,MAAQ,IAGnC9jB,KAAKgQ,EAAI,IAAIE,EAAG,GAAGwS,OAAO1iB,KAAK8jB,OAC/B9jB,KAAK4kB,GAAK5kB,KAAKkpB,KAAKlpB,KAAKgQ,EAAEuS,OAC3BviB,KAAKmpB,KAAOnpB,KAAKgQ,EAAEyV,OAAOzlB,KAAK8F,GAE/B9F,KAAKopB,KAAOppB,KAAKmpB,KAAK5c,IAAIvM,KAAKgQ,GAAGqB,MAAM,GAAG+S,IAAIpkB,KAAK8F,GACpD9F,KAAKopB,KAAOppB,KAAKopB,KAAK5E,KAAKxkB,KAAKgQ,GAChChQ,KAAKopB,KAAOppB,KAAKgQ,EAAE7B,IAAInO,KAAKopB,MA5a9BZ,EAAOhrB,UAAUkrB,KAAO,WACtB,IAAID,EAAM,IAAIvY,EAAG,MAEjB,OADAuY,EAAItT,MAAQ,IAAIhU,MAAMmH,KAAK6N,KAAKnW,KAAK6F,EAAI,KAClC4iB,GAGTD,EAAOhrB,UAAU6rB,QAAU,SAAkB5Y,GAG3C,IACI6Y,EADAtZ,EAAIS,EAGR,GACEzQ,KAAKupB,MAAMvZ,EAAGhQ,KAAKyoB,KAGnBa,GADAtZ,GADAA,EAAIhQ,KAAKwpB,MAAMxZ,IACTkK,KAAKla,KAAKyoB,MACP5X,kBACFyY,EAAOtpB,KAAK6F,GAErB,IAAIiQ,EAAMwT,EAAOtpB,KAAK6F,GAAK,EAAImK,EAAE+V,KAAK/lB,KAAK6S,GAgB3C,OAfY,IAARiD,GACF9F,EAAEmF,MAAM,GAAK,EACbnF,EAAEvR,OAAS,GACFqX,EAAM,EACf9F,EAAEmK,KAAKna,KAAK6S,QAEI1T,IAAZ6Q,EAAEoG,MAEJpG,EAAEoG,QAGFpG,EAAEyZ,SAICzZ,GAGTwY,EAAOhrB,UAAU+rB,MAAQ,SAAgBG,EAAOne,GAC9Cme,EAAMpY,OAAOtR,KAAK6F,EAAG,EAAG0F,IAG1Bid,EAAOhrB,UAAUgsB,MAAQ,SAAgB/Y,GACvC,OAAOA,EAAI4N,KAAKre,KAAK+Q,IASvBwB,EAASoW,EAAMH,GAEfG,EAAKnrB,UAAU+rB,MAAQ,SAAgBG,EAAOC,GAK5C,IAHA,IAAI1G,EAAO,QAEP2G,EAASthB,KAAKC,IAAImhB,EAAMjrB,OAAQ,GAC3B4C,EAAI,EAAGA,EAAIuoB,EAAQvoB,IAC1BsoB,EAAOxU,MAAM9T,GAAKqoB,EAAMvU,MAAM9T,GAIhC,GAFAsoB,EAAOlrB,OAASmrB,EAEZF,EAAMjrB,QAAU,EAGlB,OAFAirB,EAAMvU,MAAM,GAAK,OACjBuU,EAAMjrB,OAAS,GAKjB,IAAIorB,EAAOH,EAAMvU,MAAM,GAGvB,IAFAwU,EAAOxU,MAAMwU,EAAOlrB,UAAYorB,EAAO5G,EAElC5hB,EAAI,GAAIA,EAAIqoB,EAAMjrB,OAAQ4C,IAAK,CAClC,IAAIyoB,EAAwB,EAAjBJ,EAAMvU,MAAM9T,GACvBqoB,EAAMvU,MAAM9T,EAAI,KAAQyoB,EAAO7G,IAAS,EAAM4G,IAAS,GACvDA,EAAOC,EAETD,KAAU,GACVH,EAAMvU,MAAM9T,EAAI,IAAMwoB,EACT,IAATA,GAAcH,EAAMjrB,OAAS,GAC/BirB,EAAMjrB,QAAU,GAEhBirB,EAAMjrB,QAAU,GAIpBkqB,EAAKnrB,UAAUgsB,MAAQ,SAAgB/Y,GAErCA,EAAI0E,MAAM1E,EAAIhS,QAAU,EACxBgS,EAAI0E,MAAM1E,EAAIhS,OAAS,GAAK,EAC5BgS,EAAIhS,QAAU,EAId,IADA,IAAI0J,EAAK,EACA9G,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAIqP,EAAmB,EAAfD,EAAI0E,MAAM9T,GAClB8G,GAAU,IAAJuI,EACND,EAAI0E,MAAM9T,GAAU,SAAL8G,EACfA,EAAS,GAAJuI,GAAavI,EAAK,SAAa,GAUtC,OANkC,IAA9BsI,EAAI0E,MAAM1E,EAAIhS,OAAS,KACzBgS,EAAIhS,SAC8B,IAA9BgS,EAAI0E,MAAM1E,EAAIhS,OAAS,IACzBgS,EAAIhS,UAGDgS,GAST8B,EAASqW,EAAMJ,GAQfjW,EAASsW,EAAML,GASfjW,EAASuW,EAAQN,GAEjBM,EAAOtrB,UAAUgsB,MAAQ,SAAgB/Y,GAGvC,IADA,IAAI4D,EAAQ,EACHhT,EAAI,EAAGA,EAAIoP,EAAIhS,OAAQ4C,IAAK,CACnC,IAAI6G,EAA0B,IAAL,EAAfuI,EAAI0E,MAAM9T,IAAiBgT,EACjClM,EAAU,SAALD,EACTA,KAAQ,GAERuI,EAAI0E,MAAM9T,GAAK8G,EACfkM,EAAQnM,EAKV,OAHc,IAAVmM,IACF5D,EAAI0E,MAAM1E,EAAIhS,UAAY4V,GAErB5D,GAITP,EAAG8Y,OAAS,SAAgBxmB,GAE1B,GAAI2lB,EAAO3lB,GAAO,OAAO2lB,EAAO3lB,GAEhC,IAAIumB,EACJ,GAAa,SAATvmB,EACFumB,EAAQ,IAAIJ,OACP,GAAa,SAATnmB,EACTumB,EAAQ,IAAIH,OACP,GAAa,SAATpmB,EACTumB,EAAQ,IAAIF,MACP,IAAa,WAATrmB,EAGT,MAAM,IAAI/C,MAAM,iBAAmB+C,GAFnCumB,EAAQ,IAAID,EAMd,OAFAX,EAAO3lB,GAAQumB,EAERA,GAkBTrC,EAAIlpB,UAAUoqB,SAAW,SAAmB5d,GAC1C4F,EAAsB,IAAf5F,EAAEkL,SAAgB,iCACzBtF,EAAO5F,EAAEoL,IAAK,oCAGhBsR,EAAIlpB,UAAUiqB,SAAW,SAAmBzd,EAAGpE,GAC7CgK,EAAqC,KAA7B5F,EAAEkL,SAAWtP,EAAEsP,UAAiB,iCACxCtF,EAAO5F,EAAEoL,KAAOpL,EAAEoL,MAAQxP,EAAEwP,IAC1B,oCAGJsR,EAAIlpB,UAAU0rB,KAAO,SAAelf,GAClC,OAAIhK,KAAK+oB,MAAc/oB,KAAK+oB,MAAMM,QAAQrf,GAAG8c,UAAU9mB,MAChDgK,EAAEwa,KAAKxkB,KAAK8F,GAAGghB,UAAU9mB,OAGlC0mB,EAAIlpB,UAAUwb,IAAM,SAAchP,GAChC,OAAIA,EAAEwN,SACGxN,EAAEgH,QAGJhR,KAAK8F,EAAEqI,IAAInE,GAAG8c,UAAU9mB,OAGjC0mB,EAAIlpB,UAAU4c,IAAM,SAAcpQ,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEoQ,IAAIxU,GAIhB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU0c,KAAO,SAAelQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEkQ,KAAKtU,GAIjB,OAHI4C,EAAIsN,IAAI9V,KAAK8F,IAAM,GACrB0C,EAAI2R,KAAKna,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU2Q,IAAM,SAAcnE,EAAGpE,GACnC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmE,IAAIvI,GAIhB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,EAAIse,UAAU9mB,OAGvB0mB,EAAIlpB,UAAU2c,KAAO,SAAenQ,EAAGpE,GACrC5F,KAAKynB,SAASzd,EAAGpE,GAEjB,IAAI4C,EAAMwB,EAAEmQ,KAAKvU,GAIjB,OAHI4C,EAAIsJ,KAAK,GAAK,GAChBtJ,EAAI0R,KAAKla,KAAK8F,GAET0C,GAGTke,EAAIlpB,UAAU+pB,IAAM,SAAcvd,EAAGyG,GAEnC,OADAzQ,KAAK4nB,SAAS5d,GACPhK,KAAKkpB,KAAKlf,EAAEqZ,MAAM5S,KAG3BiW,EAAIlpB,UAAU6gB,KAAO,SAAerU,EAAGpE,GAErC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEqU,KAAKzY,KAG1B8gB,EAAIlpB,UAAU+O,IAAM,SAAcvC,EAAGpE,GAEnC,OADA5F,KAAKynB,SAASzd,EAAGpE,GACV5F,KAAKkpB,KAAKlf,EAAEuC,IAAI3G,KAGzB8gB,EAAIlpB,UAAUglB,KAAO,SAAexY,GAClC,OAAOhK,KAAKqe,KAAKrU,EAAGA,EAAEgH,UAGxB0V,EAAIlpB,UAAU+kB,IAAM,SAAcvY,GAChC,OAAOhK,KAAKuM,IAAIvC,EAAGA,IAGrB0c,EAAIlpB,UAAUuqB,KAAO,SAAe/d,GAClC,GAAIA,EAAEwN,SAAU,OAAOxN,EAAEgH,QAEzB,IAAI+Y,EAAO/pB,KAAK8F,EAAEqL,MAAM,GAIxB,GAHAvB,EAAOma,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAIjd,EAAM9M,KAAK8F,EAAEsU,IAAI,IAAIlK,EAAG,IAAIoB,OAAO,GACvC,OAAOtR,KAAK8M,IAAI9C,EAAG8C,GAQrB,IAFA,IAAIkL,EAAIhY,KAAK8F,EAAE6d,KAAK,GAChBlD,EAAI,GACAzI,EAAER,UAA2B,IAAfQ,EAAE7G,MAAM,IAC5BsP,IACAzI,EAAE1G,OAAO,GAEX1B,GAAQoI,EAAER,UAEV,IAAIwS,EAAM,IAAI9Z,EAAG,GAAGyW,MAAM3mB,MACtBiqB,EAAOD,EAAI/B,SAIXiC,EAAOlqB,KAAK8F,EAAE6d,KAAK,GAAGrS,OAAO,GAC7BL,EAAIjR,KAAK8F,EAAE+K,YAGf,IAFAI,EAAI,IAAIf,EAAG,EAAIe,EAAIA,GAAG0V,MAAM3mB,MAEW,IAAhCA,KAAK8M,IAAImE,EAAGiZ,GAAMpU,IAAImU,IAC3BhZ,EAAEkW,QAAQ8C,GAOZ,IAJA,IAAIhiB,EAAIjI,KAAK8M,IAAImE,EAAG+G,GAChBhI,EAAIhQ,KAAK8M,IAAI9C,EAAGgO,EAAE0L,KAAK,GAAGpS,OAAO,IACjC6G,EAAInY,KAAK8M,IAAI9C,EAAGgO,GAChBlS,EAAI2a,EACc,IAAftI,EAAErC,IAAIkU,IAAY,CAEvB,IADA,IAAIvB,EAAMtQ,EACD9W,EAAI,EAAoB,IAAjBonB,EAAI3S,IAAIkU,GAAY3oB,IAClConB,EAAMA,EAAId,SAEZ/X,EAAOvO,EAAIyE,GACX,IAAIF,EAAI5F,KAAK8M,IAAI7E,EAAG,IAAIiI,EAAG,GAAGwS,OAAO5c,EAAIzE,EAAI,IAE7C2O,EAAIA,EAAEwX,OAAO5hB,GACbqC,EAAIrC,EAAE+hB,SACNxP,EAAIA,EAAEqP,OAAOvf,GACbnC,EAAIzE,EAGN,OAAO2O,GAGT0W,EAAIlpB,UAAUqoB,KAAO,SAAe7b,GAClC,IAAImgB,EAAMngB,EAAEyb,OAAOzlB,KAAK8F,GACxB,OAAqB,IAAjBqkB,EAAIjV,UACNiV,EAAIjV,SAAW,EACRlV,KAAKkpB,KAAKiB,GAAKlC,UAEfjoB,KAAKkpB,KAAKiB,IAIrBzD,EAAIlpB,UAAUsP,IAAM,SAAc9C,EAAGyG,GACnC,GAAIA,EAAI+G,SAAU,OAAO,IAAItH,EAAG,GAAGyW,MAAM3mB,MACzC,GAAoB,IAAhByQ,EAAIqB,KAAK,GAAU,OAAO9H,EAAEgH,QAEhC,IACIoZ,EAAM,IAAIjpB,MAAM,IACpBipB,EAAI,GAAK,IAAIla,EAAG,GAAGyW,MAAM3mB,MACzBoqB,EAAI,GAAKpgB,EACT,IAAK,IAAI3I,EAAI,EAAGA,EAAI+oB,EAAI3rB,OAAQ4C,IAC9B+oB,EAAI/oB,GAAKrB,KAAKuM,IAAI6d,EAAI/oB,EAAI,GAAI2I,GAGhC,IAAIxB,EAAM4hB,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnlB,EAAQsL,EAAII,YAAc,GAK9B,IAJc,IAAV1L,IACFA,EAAQ,IAGL9D,EAAIoP,EAAIhS,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIqR,EAAOjC,EAAI0E,MAAM9T,GACZwF,EAAI1B,EAAQ,EAAG0B,GAAK,EAAGA,IAAK,CACnC,IAAImT,EAAOtH,GAAQ7L,EAAK,EACpB2B,IAAQ4hB,EAAI,KACd5hB,EAAMxI,KAAKuiB,IAAI/Z,IAGL,IAARwR,GAAyB,IAAZqQ,GAKjBA,IAAY,EACZA,GAAWrQ,GA9BE,MA+BbsQ,GACwC,IAANjpB,GAAiB,IAANwF,KAE7C2B,EAAMxI,KAAKuM,IAAI/D,EAAK4hB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnlB,EAAQ,GAGV,OAAOqD,GAGTke,EAAIlpB,UAAUqpB,UAAY,SAAoBpW,GAC5C,IAAIT,EAAIS,EAAI+T,KAAKxkB,KAAK8F,GAEtB,OAAOkK,IAAMS,EAAMT,EAAEgB,QAAUhB,GAGjC0W,EAAIlpB,UAAUwpB,YAAc,SAAsBvW,GAChD,IAAIjI,EAAMiI,EAAIO,QAEd,OADAxI,EAAI4M,IAAM,KACH5M,GAOT0H,EAAGqa,KAAO,SAAe9Z,GACvB,OAAO,IAAIwY,EAAKxY,IAmBlB8B,EAAS0W,EAAMvC,GAEfuC,EAAKzrB,UAAUqpB,UAAY,SAAoBpW,GAC7C,OAAOzQ,KAAKkpB,KAAKzY,EAAI4S,MAAMrjB,KAAK8jB,SAGlCmF,EAAKzrB,UAAUwpB,YAAc,SAAsBvW,GACjD,IAAIT,EAAIhQ,KAAKkpB,KAAKzY,EAAIlE,IAAIvM,KAAKmpB,OAE/B,OADAnZ,EAAEoF,IAAM,KACDpF,GAGTiZ,EAAKzrB,UAAU6gB,KAAO,SAAerU,EAAGpE,GACtC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAGlB,OAFAxN,EAAEmL,MAAM,GAAK,EACbnL,EAAEvL,OAAS,EACJuL,EAGT,IAAImO,EAAInO,EAAEqU,KAAKzY,GACXqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAQV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAU+O,IAAM,SAAcvC,EAAGpE,GACpC,GAAIoE,EAAEwN,UAAY5R,EAAE4R,SAAU,OAAO,IAAItH,EAAG,GAAG4W,UAAU9mB,MAEzD,IAAImY,EAAInO,EAAEuC,IAAI3G,GACVqC,EAAIkQ,EAAEsL,MAAMzjB,KAAK8jB,OAAOvX,IAAIvM,KAAKopB,MAAM5F,OAAOxjB,KAAK8jB,OAAOvX,IAAIvM,KAAK8F,GACnE0kB,EAAIrS,EAAEgC,KAAKlS,GAAGqJ,OAAOtR,KAAK8jB,OAC1Btb,EAAMgiB,EAOV,OANIA,EAAE1U,IAAI9V,KAAK8F,IAAM,EACnB0C,EAAMgiB,EAAErQ,KAAKna,KAAK8F,GACT0kB,EAAE1Y,KAAK,GAAK,IACrBtJ,EAAMgiB,EAAEtQ,KAAKla,KAAK8F,IAGb0C,EAAIse,UAAU9mB,OAGvBipB,EAAKzrB,UAAUqoB,KAAO,SAAe7b,GAGnC,OADUhK,KAAKkpB,KAAKlf,EAAEyb,OAAOzlB,KAAK8F,GAAGyG,IAAIvM,KAAK4kB,KACnCkC,UAAU9mB,OAn3GzB,CAq3GoC7C,EAAQ6C,Q,o5NCr3G5C,gBAAIkQ,EAAKlS,EAAQ,IAEbssD,EAAc,IADAtsD,EAAQ,KAEtBqsD,EAAa,IAAIn6C,EAAG,IACpB06C,EAAS,IAAI16C,EAAG,IAChBw6C,EAAM,IAAIx6C,EAAG,IACby6C,EAAQ,IAAIz6C,EAAG,GACfygG,EAAQ,IAAIzgG,EAAG,GACfiY,EAASnqB,EAAQ,IACjB2yC,EAAc3yC,EAAQ,IAG1B,SAAS4yG,EAAaC,EAAKj+F,GAMzB,OALAA,EAAMA,GAAO,OACR3U,EAAOmG,SAASysG,KACnBA,EAAM,IAAI5yG,EAAO4yG,EAAKj+F,IAExB5S,KAAK8wG,KAAO,IAAI5gG,EAAG2gG,GACZ7wG,KAGT,SAAS+wG,EAAclgE,EAAMj+B,GAM3B,OALAA,EAAMA,GAAO,OACR3U,EAAOmG,SAASysC,KACnBA,EAAO,IAAI5yC,EAAO4yC,EAAMj+B,IAE1B5S,KAAKgxG,MAAQ,IAAI9gG,EAAG2gC,GACb7wC,KAjBT7C,EAAOC,QAAUozG,EAoBjB,IAAIS,EAAa,GAsDjB,SAAST,EAAGznF,EAAOy3E,EAAW0Q,GAC5BlxG,KAAKmxG,aAAa3Q,GAClBxgG,KAAKoxG,QAAU,IAAIlhG,EAAG6Y,GACtB/oB,KAAKgpB,OAAS9Y,EAAGqa,KAAKvqB,KAAKoxG,SAC3BpxG,KAAKqxG,UAAYtoF,EAAMtqB,OACvBuB,KAAK8wG,UAAO3xG,EACZa,KAAKgxG,WAAQ7xG,EACba,KAAKsxG,gBAAanyG,EACd+xG,GACFlxG,KAAK4wG,aAAeA,EACpB5wG,KAAK+wG,cAAgBA,GAErB/wG,KAAKsxG,WAAa,EA4DtB,SAASC,EAAkBtmD,EAAIr4C,GAC7B,IAAI1T,EAAM,IAAIjB,EAAOgtD,EAAG56C,WACxB,OAAKuC,EAGI1T,EAAI0F,SAASgO,GAFb1T,EA5DXjC,OAAO4M,eAAe2mG,EAAGhzG,UAAW,cAAe,CACjDG,YAAY,EACZktB,IAAK,WAIH,MAH+B,kBAApB7qB,KAAKsxG,aACdtxG,KAAKsxG,WAxEX,SAAoBvoF,EAAOy3E,GACzB,IAAIz1C,EAAMy1C,EAAU57F,SAAS,OACzB4sG,EAAM,CAACzmD,EAAKhiC,EAAMnkB,SAAS,KAAKgG,KAAK,KACzC,GAAI4mG,KAAOP,EACT,OAAOA,EAAWO,GAEpB,IAyBI37E,EAzBA3F,EAAQ,EAEZ,GAAInH,EAAM5D,WACPgD,EAAOgiC,cACPhiC,EAAOiiC,WAAWrhC,KAClBuhC,EAAY/wB,KAAKxQ,GAclB,OAZAmH,GAAS,EAKPA,GAHU,OAAR66B,GAAwB,OAARA,EAGT,EAIA,EAEXkmD,EAAWO,GAAOthF,EACXA,EAOT,OALKo6B,EAAY/wB,KAAKxQ,EAAMzF,KAAK,MAE/B4M,GAAS,GAGH66B,GACN,IAAK,KACChiC,EAAM7X,IAAIm5C,GAAYv0C,IAAI80C,KAE5B16B,GAAS,GAEX,MACF,IAAK,MACH2F,EAAM9M,EAAM7X,IAAIw5C,IACR50C,IAAI60C,IAAU90B,EAAI/f,IAAI66F,KAE5BzgF,GAAS,GAEX,MACF,QACEA,GAAS,EAGb,OADA+gF,EAAWO,GAAOthF,EACXA,EAsBeuhF,CAAWzxG,KAAKoxG,QAASpxG,KAAK0xG,QAE3C1xG,KAAKsxG,cAGhBd,EAAGhzG,UAAUm0G,aAAe,WAK1B,OAJK3xG,KAAKgxG,QACRhxG,KAAKgxG,MAAQ,IAAI9gG,EAAGygC,EAAY3wC,KAAKqxG,aAEvCrxG,KAAK8wG,KAAO9wG,KAAK4xG,KAAKjrF,MAAM3mB,KAAKgpB,QAAQd,OAAOloB,KAAKgxG,OAAOjqF,UACrD/mB,KAAK6xG,gBAGdrB,EAAGhzG,UAAUs0G,cAAgB,SAAUC,GAGrC,IAAIC,GADJD,GADAA,EAAQ,IAAI7hG,EAAG6hG,IACDprF,MAAM3mB,KAAKgpB,SACNd,OAAOloB,KAAKgxG,OAAOjqF,UAClCxb,EAAM,IAAItN,EAAO+zG,EAAO3hG,WACxB0Y,EAAQ/oB,KAAKiyG,WACjB,GAAI1mG,EAAI9M,OAASsqB,EAAMtqB,OAAQ,CAC7B,IAAIyzG,EAAQ,IAAIj0G,EAAO8qB,EAAMtqB,OAAS8M,EAAI9M,QAC1CyzG,EAAMlzG,KAAK,GACXuM,EAAMtN,EAAOsC,OAAO,CAAC2xG,EAAO3mG,IAE9B,OAAOA,GAGTilG,EAAGhzG,UAAUq0G,aAAe,SAAsBj/F,GAChD,OAAO2+F,EAAkBvxG,KAAK8wG,KAAMl+F,IAGtC49F,EAAGhzG,UAAU20G,cAAgB,SAAuBv/F,GAClD,OAAO2+F,EAAkBvxG,KAAKgxG,MAAOp+F,IAGvC49F,EAAGhzG,UAAUy0G,SAAW,SAAUr/F,GAChC,OAAO2+F,EAAkBvxG,KAAKoxG,QAASx+F,IAGzC49F,EAAGhzG,UAAU40G,aAAe,SAAUx/F,GACpC,OAAO2+F,EAAkBvxG,KAAK4xG,KAAMh/F,IAGtC49F,EAAGhzG,UAAU2zG,aAAe,SAAUpmD,EAAKn4C,GAOzC,OANAA,EAAMA,GAAO,OACR3U,EAAOmG,SAAS2mD,KACnBA,EAAM,IAAI9sD,EAAO8sD,EAAKn4C,IAExB5S,KAAK0xG,MAAQ3mD,EACb/qD,KAAK4xG,KAAO,IAAI1hG,EAAG66C,GACZ/qD,Q,wCCzJT,IAAI/B,EAASD,EAAQ,IAAeC,OAChC0zD,EAAa3zD,EAAQ,IACrBgpC,EAAShpC,EAAQ,KACjBuU,EAAWvU,EAAQ,GACnBmyD,EAAOnyD,EAAQ,KACfq0G,EAASr0G,EAAQ,KAEjBs0G,EAAat0G,EAAQ,IAMzB,SAASipG,EAAMxlE,GACbuF,EAAOzU,SAASxyB,KAAKC,MAErB,IAAIyE,EAAO6tG,EAAW7wE,GACtB,IAAKh9B,EAAM,MAAM,IAAIhF,MAAM,0BAE3BO,KAAKuyG,UAAY9tG,EAAKuxB,KACtBh2B,KAAKi2B,MAAQ07B,EAAWltD,EAAKuxB,MAC7Bh2B,KAAKwyG,KAAO/tG,EAAK4qD,GACjBrvD,KAAKyyG,UAAYhuG,EAAK0rD,KAwBxB,SAASg3C,EAAQ1lE,GACfuF,EAAOzU,SAASxyB,KAAKC,MAErB,IAAIyE,EAAO6tG,EAAW7wE,GACtB,IAAKh9B,EAAM,MAAM,IAAIhF,MAAM,0BAE3BO,KAAKi2B,MAAQ07B,EAAWltD,EAAKuxB,MAC7Bh2B,KAAKwyG,KAAO/tG,EAAK4qD,GACjBrvD,KAAKyyG,UAAYhuG,EAAK0rD,KAwBxB,SAAS62C,EAAYvlE,GACnB,OAAO,IAAIwlE,EAAKxlE,GAGlB,SAASylE,EAAczlE,GACrB,OAAO,IAAI0lE,EAAO1lE,GA3EpBxkC,OAAOyzB,KAAK4hF,GAAY15E,SAAQ,SAAUv6B,GACxCi0G,EAAWj0G,GAAKgxD,GAAKpxD,EAAOS,KAAK4zG,EAAWj0G,GAAKgxD,GAAI,OACrDijD,EAAWj0G,EAAI4G,eAAiBqtG,EAAWj0G,MAc7CkU,EAAS00F,EAAMjgE,EAAOzU,UAEtB00E,EAAKzpG,UAAUivC,OAAS,SAAiBhoC,EAAMqd,EAAGuK,GAChDrsB,KAAKi2B,MAAMzK,OAAO/mB,GAClB4nB,KAGF46E,EAAKzpG,UAAUguB,OAAS,SAAiB/mB,EAAMmO,GAI7C,MAHoB,kBAATnO,IAAmBA,EAAOxG,EAAOS,KAAK+F,EAAMmO,IAEvD5S,KAAKi2B,MAAMzK,OAAO/mB,GACXzE,MAGTinG,EAAKzpG,UAAU2yD,KAAO,SAAqB9xD,EAAKuU,GAC9C5S,KAAKoF,MACL,IAAI4wB,EAAOh2B,KAAKi2B,MAAML,SAClB88E,EAAMviD,EAAKn6B,EAAM33B,EAAK2B,KAAKuyG,UAAWvyG,KAAKyyG,UAAWzyG,KAAKwyG,MAE/D,OAAO5/F,EAAM8/F,EAAI9tG,SAASgO,GAAO8/F,GAanCngG,EAAS40F,EAAQngE,EAAOzU,UAExB40E,EAAO3pG,UAAUivC,OAAS,SAAiBhoC,EAAMqd,EAAGuK,GAClDrsB,KAAKi2B,MAAMzK,OAAO/mB,GAClB4nB,KAGF86E,EAAO3pG,UAAUguB,OAAS,SAAiB/mB,EAAMmO,GAI/C,MAHoB,kBAATnO,IAAmBA,EAAOxG,EAAOS,KAAK+F,EAAMmO,IAEvD5S,KAAKi2B,MAAMzK,OAAO/mB,GACXzE,MAGTmnG,EAAO3pG,UAAU60G,OAAS,SAAuBh0G,EAAKq0G,EAAK9/F,GACtC,kBAAR8/F,IAAkBA,EAAMz0G,EAAOS,KAAKg0G,EAAK9/F,IAEpD5S,KAAKoF,MACL,IAAI4wB,EAAOh2B,KAAKi2B,MAAML,SACtB,OAAOy8E,EAAOK,EAAK18E,EAAM33B,EAAK2B,KAAKyyG,UAAWzyG,KAAKwyG,OAWrDr1G,EAAOC,QAAU,CACf6pG,KAAMD,EACNG,OAAQD,EACRF,WAAYA,EACZE,aAAcA,I,iBC1FhB9pG,EAAUD,EAAOC,QAAUY,EAAQ,KAC3BwrC,OAASpsC,EACjBA,EAAQk1B,SAAWl1B,EACnBA,EAAQm1B,SAAWv0B,EAAQ,IAC3BZ,EAAQg1B,OAASp0B,EAAQ,IACzBZ,EAAQ0tB,UAAY9sB,EAAQ,IAC5BZ,EAAQqsC,YAAczrC,EAAQ,KAC9BZ,EAAQmqC,SAAWvpC,EAAQ,IAC3BZ,EAAQwqG,SAAW5pG,EAAQ,M,8BCN3B,SAAS4uB,EAAQ2gB,EAAQs6D,GAAkB,IAAIn3E,EAAOzzB,OAAOyzB,KAAK6c,GAAS,GAAItwC,OAAO4vB,sBAAuB,CAAE,IAAIiX,EAAU7mC,OAAO4vB,sBAAsB0gB,GAAas6D,IAAgB/jE,EAAUA,EAAQQ,QAAO,SAAUwjE,GAAO,OAAO7qG,OAAOwyE,yBAAyBliC,EAAQu6D,GAAKnqG,eAAgB+yB,EAAKpvB,KAAKC,MAAMmvB,EAAMoT,GAAY,OAAOpT,EAI9U,SAASq3E,EAAgB5jG,EAAK9F,EAAKX,GAAiK,OAApJW,KAAO8F,EAAOlH,OAAO4M,eAAe1F,EAAK9F,EAAK,CAAEX,MAAOA,EAAOC,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBuG,EAAI9F,GAAOX,EAAgByG,EAI3M,SAAS6jG,EAAkBn9F,EAAQmgE,GAAS,IAAK,IAAI3pE,EAAI,EAAGA,EAAI2pE,EAAMvsE,OAAQ4C,IAAK,CAAE,IAAI4mG,EAAaj9B,EAAM3pE,GAAI4mG,EAAWtqG,WAAasqG,EAAWtqG,aAAc,EAAOsqG,EAAWpqG,cAAe,EAAU,UAAWoqG,IAAYA,EAAWrqG,UAAW,GAAMX,OAAO4M,eAAegB,EAAQo9F,EAAW5pG,IAAK4pG,IAI7S,IACIhqG,EADWD,EAAQ,GACDC,OAGlBwM,EADYzM,EAAQ,KACAyM,QAEpBy9F,EAASz9F,GAAWA,EAAQy9F,QAAU,UAM1C/qG,EAAOC,QAEP,WACE,SAASs8C,KArBX,SAAyBmsB,EAAUsiC,GAAe,KAAMtiC,aAAoBsiC,GAAgB,MAAM,IAAIrpG,UAAU,qCAsB5GspG,CAAgBpoG,KAAM05C,GAEtB15C,KAAK87C,KAAO,KACZ97C,KAAKukD,KAAO,KACZvkD,KAAKvB,OAAS,EAtBlB,IAAsB0pG,EAAaE,EAAYC,EAoM7C,OApMoBH,EAyBPzuD,EAzBoB2uD,EAyBR,CAAC,CACxBhqG,IAAK,OACLX,MAAO,SAAc80B,GACnB,IAAIoX,EAAQ,CACVnlC,KAAM+tB,EACN1I,KAAM,MAEJ9pB,KAAKvB,OAAS,EAAGuB,KAAKukD,KAAKz6B,KAAO8f,EAAW5pC,KAAK87C,KAAOlS,EAC7D5pC,KAAKukD,KAAO3a,IACV5pC,KAAKvB,SAER,CACDJ,IAAK,UACLX,MAAO,SAAiB80B,GACtB,IAAIoX,EAAQ,CACVnlC,KAAM+tB,EACN1I,KAAM9pB,KAAK87C,MAEO,IAAhB97C,KAAKvB,SAAcuB,KAAKukD,KAAO3a,GACnC5pC,KAAK87C,KAAOlS,IACV5pC,KAAKvB,SAER,CACDJ,IAAK,QACLX,MAAO,WACL,GAAoB,IAAhBsC,KAAKvB,OAAT,CACA,IAAI6M,EAAMtL,KAAK87C,KAAKr3C,KAGpB,OAFoB,IAAhBzE,KAAKvB,OAAcuB,KAAK87C,KAAO97C,KAAKukD,KAAO,KAAUvkD,KAAK87C,KAAO97C,KAAK87C,KAAKhyB,OAC7E9pB,KAAKvB,OACA6M,KAER,CACDjN,IAAK,QACLX,MAAO,WACLsC,KAAK87C,KAAO97C,KAAKukD,KAAO,KACxBvkD,KAAKvB,OAAS,IAEf,CACDJ,IAAK,OACLX,MAAO,SAAc+iB,GACnB,GAAoB,IAAhBzgB,KAAKvB,OAAc,MAAO,GAI9B,IAHA,IAAIoU,EAAI7S,KAAK87C,KACTxwC,EAAM,GAAKuH,EAAEpO,KAEVoO,EAAIA,EAAEiX,MACXxe,GAAOmV,EAAI5N,EAAEpO,KAGf,OAAO6G,IAER,CACDjN,IAAK,SACLX,MAAO,SAAgBmI,GACrB,GAAoB,IAAhB7F,KAAKvB,OAAc,OAAOR,EAAOU,MAAM,GAK3C,IAJA,IArEcR,EAAK0M,EAAQ9D,EAqEvBuE,EAAMrN,EAAOW,YAAYiH,IAAM,GAC/BgN,EAAI7S,KAAK87C,KACTz6C,EAAI,EAEDwR,GAzEO1U,EA0ED0U,EAAEpO,KA1EIoG,EA0EES,EA1EMvE,EA0ED1F,EAzE9BpD,EAAOT,UAAU8G,KAAKvE,KAAK5B,EAAK0M,EAAQ9D,GA0ElC1F,GAAKwR,EAAEpO,KAAKhG,OACZoU,EAAIA,EAAEiX,KAGR,OAAOxe,IAGR,CACDjN,IAAK,UACLX,MAAO,SAAiBmI,EAAGy+C,GACzB,IAAIh5C,EAcJ,OAZIzF,EAAI7F,KAAK87C,KAAKr3C,KAAKhG,QAErB6M,EAAMtL,KAAK87C,KAAKr3C,KAAKR,MAAM,EAAG4B,GAC9B7F,KAAK87C,KAAKr3C,KAAOzE,KAAK87C,KAAKr3C,KAAKR,MAAM4B,IAGtCyF,EAFSzF,IAAM7F,KAAK87C,KAAKr3C,KAAKhG,OAExBuB,KAAK8jB,QAGLwgC,EAAatkD,KAAKuoG,WAAW1iG,GAAK7F,KAAKwoG,WAAW3iG,GAGnDyF,IAER,CACDjN,IAAK,QACLX,MAAO,WACL,OAAOsC,KAAK87C,KAAKr3C,OAGlB,CACDpG,IAAK,aACLX,MAAO,SAAoBmI,GACzB,IAAIgN,EAAI7S,KAAK87C,KACT7zC,EAAI,EACJqD,EAAMuH,EAAEpO,KAGZ,IAFAoB,GAAKyF,EAAI7M,OAEFoU,EAAIA,EAAEiX,MAAM,CACjB,IAAIriB,EAAMoL,EAAEpO,KACRosB,EAAKhrB,EAAI4B,EAAIhJ,OAASgJ,EAAIhJ,OAASoH,EAIvC,GAHIgrB,IAAOppB,EAAIhJ,OAAQ6M,GAAO7D,EAAS6D,GAAO7D,EAAIxD,MAAM,EAAG4B,GAGjD,KAFVA,GAAKgrB,GAEQ,CACPA,IAAOppB,EAAIhJ,UACXwJ,EACE4K,EAAEiX,KAAM9pB,KAAK87C,KAAOjpC,EAAEiX,KAAU9pB,KAAK87C,KAAO97C,KAAKukD,KAAO,OAE5DvkD,KAAK87C,KAAOjpC,EACZA,EAAEpO,KAAOgD,EAAIxD,MAAM4sB,IAGrB,QAGA5oB,EAIJ,OADAjI,KAAKvB,QAAUwJ,EACRqD,IAGR,CACDjN,IAAK,aACLX,MAAO,SAAoBmI,GACzB,IAAIyF,EAAMrN,EAAOW,YAAYiH,GACzBgN,EAAI7S,KAAK87C,KACT7zC,EAAI,EAIR,IAHA4K,EAAEpO,KAAKH,KAAKgH,GACZzF,GAAKgN,EAAEpO,KAAKhG,OAELoU,EAAIA,EAAEiX,MAAM,CACjB,IAAI5qB,EAAM2T,EAAEpO,KACRosB,EAAKhrB,EAAI3G,EAAIT,OAASS,EAAIT,OAASoH,EAIvC,GAHA3G,EAAIoF,KAAKgH,EAAKA,EAAI7M,OAASoH,EAAG,EAAGgrB,GAGvB,KAFVhrB,GAAKgrB,GAEQ,CACPA,IAAO3xB,EAAIT,UACXwJ,EACE4K,EAAEiX,KAAM9pB,KAAK87C,KAAOjpC,EAAEiX,KAAU9pB,KAAK87C,KAAO97C,KAAKukD,KAAO,OAE5DvkD,KAAK87C,KAAOjpC,EACZA,EAAEpO,KAAOvF,EAAI+E,MAAM4sB,IAGrB,QAGA5oB,EAIJ,OADAjI,KAAKvB,QAAUwJ,EACRqD,IAGR,CACDjN,IAAK6pG,EACLxqG,MAAO,SAAeokB,EAAG4Q,GACvB,OAAOjoB,EAAQzK,KAnMrB,SAAuB6K,GAAU,IAAK,IAAIxJ,EAAI,EAAGA,EAAID,UAAU3C,OAAQ4C,IAAK,CAAE,IAAIwiC,EAAyB,MAAhBziC,UAAUC,GAAaD,UAAUC,GAAK,GAAQA,EAAI,EAAKurB,EAAQ3vB,OAAO4mC,IAAS,GAAMjL,SAAQ,SAAUv6B,GAAO0pG,EAAgBl9F,EAAQxM,EAAKwlC,EAAOxlC,OAAsBpB,OAAOwrG,0BAA6BxrG,OAAO0nE,iBAAiB95D,EAAQ5N,OAAOwrG,0BAA0B5kE,IAAmBjX,EAAQ3vB,OAAO4mC,IAASjL,SAAQ,SAAUv6B,GAAOpB,OAAO4M,eAAegB,EAAQxM,EAAKpB,OAAOwyE,yBAAyB5rC,EAAQxlC,OAAe,OAAOwM,EAmMlf69F,CAAc,GAAIh2E,EAAS,CAE9Ci2E,MAAO,EAEPC,eAAe,QA/L2CP,GAAYL,EAAkBG,EAAY3qG,UAAW6qG,GAAiBC,GAAaN,EAAkBG,EAAaG,GAoM3K5uD,EApLT,I,+BC5BA,YAEA,IAAImvD,EAEJ,SAASd,EAAgB5jG,EAAK9F,EAAKX,GAAiK,OAApJW,KAAO8F,EAAOlH,OAAO4M,eAAe1F,EAAK9F,EAAK,CAAEX,MAAOA,EAAOC,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBuG,EAAI9F,GAAOX,EAAgByG,EAE3M,IAAIojC,EAAWvpC,EAAQ,IAEnB8qG,EAAen/F,OAAO,eACtBo/F,EAAcp/F,OAAO,cACrBq/F,EAASr/F,OAAO,SAChBs/F,EAASt/F,OAAO,SAChBu/F,EAAev/F,OAAO,eACtBw/F,EAAiBx/F,OAAO,iBACxBy/F,EAAUz/F,OAAO,UAErB,SAAS0/F,EAAiB3rG,EAAO2uB,GAC/B,MAAO,CACL3uB,MAAOA,EACP2uB,KAAMA,GAIV,SAASi9E,EAAe3F,GACtB,IAAIv2E,EAAUu2E,EAAKmF,GAEnB,GAAgB,OAAZ17E,EAAkB,CACpB,IAAI3oB,EAAOk/F,EAAKyF,GAAS3iG,OAIZ,OAAThC,IACFk/F,EAAKuF,GAAgB,KACrBvF,EAAKmF,GAAgB,KACrBnF,EAAKoF,GAAe,KACpB37E,EAAQi8E,EAAiB5kG,GAAM,MAKrC,SAAS8kG,EAAW5F,GAGlBpkG,EAAQ0B,SAASqoG,EAAgB3F,GAgBnC,IAAI6F,EAAyBvsG,OAAO6yB,gBAAe,eAC/C25E,EAAuCxsG,OAAOumG,gBA4D/CuE,EA5D+Dc,EAAwB,CACpF7hE,aACF,OAAOhnC,KAAKopG,IAGdt/E,KAAM,WACJ,IAAI6f,EAAQ3pC,KAIRkwB,EAAQlwB,KAAKgpG,GAEjB,GAAc,OAAV94E,EACF,OAAO/C,QAAQE,OAAO6C,GAGxB,GAAIlwB,KAAKipG,GACP,OAAO97E,QAAQC,QAAQi8E,OAAiBlqG,GAAW,IAGrD,GAAIa,KAAKopG,GAASj2E,UAKhB,OAAO,IAAIhG,SAAQ,SAAUC,EAASC,GACpC9tB,EAAQ0B,UAAS,WACX0oC,EAAMq/D,GACR37E,EAAOsc,EAAMq/D,IAEb57E,EAAQi8E,OAAiBlqG,GAAW,UAU5C,IACIuqG,EADAC,EAAc3pG,KAAKkpG,GAGvB,GAAIS,EACFD,EAAU,IAAIv8E,QA1DpB,SAAqBw8E,EAAahG,GAChC,OAAO,SAAUv2E,EAASC,GACxBs8E,EAAYt3C,MAAK,WACXsxC,EAAKsF,GACP77E,EAAQi8E,OAAiBlqG,GAAW,IAItCwkG,EAAKwF,GAAgB/7E,EAASC,KAC7BA,IAiDqBu8E,CAAYD,EAAa3pG,WAC1C,CAGL,IAAIyE,EAAOzE,KAAKopG,GAAS3iG,OAEzB,GAAa,OAAThC,EACF,OAAO0oB,QAAQC,QAAQi8E,EAAiB5kG,GAAM,IAGhDilG,EAAU,IAAIv8E,QAAQntB,KAAKmpG,IAI7B,OADAnpG,KAAKkpG,GAAgBQ,EACdA,IAE+B//F,OAAOs0C,eAAe,WAC9D,OAAOj+C,QACL+nG,EAAgBc,EAAuB,UAAU,WACnD,IAAIjkD,EAAS5kD,KAKb,OAAO,IAAImtB,SAAQ,SAAUC,EAASC,GACpCu3B,EAAOwkD,GAASx8D,QAAQ,MAAM,SAAUzgB,GAClCA,EACFkB,EAAOlB,GAITiB,EAAQi8E,OAAiBlqG,GAAW,aAGtC0pG,GAAwBW,GAoE5BrsG,EAAOC,QAlEiC,SAA2C4pC,GACjF,IAAI6iE,EAEA5wE,EAAWh8B,OAAOC,OAAOusG,GAA4D1B,EAArB8B,EAAiB,GAAoCT,EAAS,CAChI1rG,MAAOspC,EACPppC,UAAU,IACRmqG,EAAgB8B,EAAgBf,EAAc,CAChDprG,MAAO,KACPE,UAAU,IACRmqG,EAAgB8B,EAAgBd,EAAa,CAC/CrrG,MAAO,KACPE,UAAU,IACRmqG,EAAgB8B,EAAgBb,EAAQ,CAC1CtrG,MAAO,KACPE,UAAU,IACRmqG,EAAgB8B,EAAgBZ,EAAQ,CAC1CvrG,MAAOspC,EAAO9T,eAAeuU,WAC7B7pC,UAAU,IACRmqG,EAAgB8B,EAAgBV,EAAgB,CAClDzrG,MAAO,SAAe0vB,EAASC,GAC7B,IAAI5oB,EAAOw0B,EAASmwE,GAAS3iG,OAEzBhC,GACFw0B,EAASiwE,GAAgB,KACzBjwE,EAAS6vE,GAAgB,KACzB7vE,EAAS8vE,GAAe,KACxB37E,EAAQi8E,EAAiB5kG,GAAM,MAE/Bw0B,EAAS6vE,GAAgB17E,EACzB6L,EAAS8vE,GAAe17E,IAG5BzvB,UAAU,IACRisG,IA8BJ,OA7BA5wE,EAASiwE,GAAgB,KACzB3hE,EAASP,GAAQ,SAAU7a,GACzB,GAAIA,GAAoB,+BAAbA,EAAInd,KAAuC,CACpD,IAAIqe,EAAS4L,EAAS8vE,GAWtB,OARe,OAAX17E,IACF4L,EAASiwE,GAAgB,KACzBjwE,EAAS6vE,GAAgB,KACzB7vE,EAAS8vE,GAAe,KACxB17E,EAAOlB,SAGT8M,EAAS+vE,GAAU78E,GAIrB,IAAIiB,EAAU6L,EAAS6vE,GAEP,OAAZ17E,IACF6L,EAASiwE,GAAgB,KACzBjwE,EAAS6vE,GAAgB,KACzB7vE,EAAS8vE,GAAe,KACxB37E,EAAQi8E,OAAiBlqG,GAAW,KAGtC85B,EAASgwE,IAAU,KAErBjiE,EAAOllC,GAAG,WAAYynG,EAAWn6E,KAAK,KAAM6J,IACrCA,K,+BC3MT97B,EAAOC,QAAU,WACf,MAAM,IAAIqC,MAAM,mD,6BCwBlBtC,EAAOC,QAAUqsC,EAEjB,IAAI3e,EAAY9sB,EAAQ,IAIxB,SAASyrC,EAAY/W,GACnB,KAAM1yB,gBAAgBypC,GAAc,OAAO,IAAIA,EAAY/W,GAC3D5H,EAAU/qB,KAAKC,KAAM0yB,GAJvB10B,EAAQ,EAARA,CAAoByrC,EAAa3e,GAOjC2e,EAAYjsC,UAAU0uB,WAAa,SAAU4gB,EAAO7tC,EAAUo0B,GAC5DA,EAAG,KAAMyZ,K,6BCjCX,IAAI/F,EAWJ,IAAI6S,EAAiB57C,EAAQ,IAAmB41B,MAC5Ck2E,EAAmBlwD,EAAekwD,iBAClC/qD,EAAuBnF,EAAemF,qBAE1C,SAAS/9C,EAAKmrB,GAEZ,GAAIA,EAAK,MAAMA,EAOjB,SAAS49E,EAAU/iE,EAAQuT,EAAShP,EAASrE,GAC3CA,EAvBF,SAAcA,GACZ,IAAIC,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACTD,EAAS3lC,WAAM,EAAQH,aAkBdY,CAAKklC,GAChB,IAAI8iE,GAAS,EACbhjE,EAAOllC,GAAG,SAAS,WACjBkoG,GAAS,UAEC7qG,IAAR4nC,IAAmBA,EAAM/oC,EAAQ,KACrC+oC,EAAIC,EAAQ,CACVrU,SAAU4nB,EACV38C,SAAU2tC,IACT,SAAUpf,GACX,GAAIA,EAAK,OAAO+a,EAAS/a,GACzB69E,GAAS,EACT9iE,OAEF,IAAI/T,GAAY,EAChB,OAAO,SAAUhH,GACf,IAAI69E,IACA72E,EAGJ,OAFAA,GAAY,EAvBhB,SAAmB6T,GACjB,OAAOA,EAAOc,WAAqC,oBAAjBd,EAAOe,MAwBnCC,CAAUhB,GAAgBA,EAAOe,QACP,oBAAnBf,EAAO4F,QAA+B5F,EAAO4F,eACxD1F,EAAS/a,GAAO,IAAI4yB,EAAqB,UAI7C,SAASh/C,EAAKy5B,GACZA,IAGF,SAASgU,EAAK9uC,EAAMqlC,GAClB,OAAOrlC,EAAK8uC,KAAKzJ,GAGnB,SAASkmE,EAAYC,GACnB,OAAKA,EAAQzrG,OAC8B,oBAAhCyrG,EAAQA,EAAQzrG,OAAS,GAA0BuC,EACvDkpG,EAAQ15E,MAFaxvB,EAgC9B7D,EAAOC,QA3BP,WACE,IAAK,IAAIm4B,EAAOn0B,UAAU3C,OAAQyrG,EAAU,IAAI/oG,MAAMo0B,GAAOgG,EAAO,EAAGA,EAAOhG,EAAMgG,IAClF2uE,EAAQ3uE,GAAQn6B,UAAUm6B,GAG5B,IAOIrL,EAPAgX,EAAW+iE,EAAYC,GAG3B,GAFI/oG,MAAM6B,QAAQknG,EAAQ,MAAKA,EAAUA,EAAQ,IAE7CA,EAAQzrG,OAAS,EACnB,MAAM,IAAIqrG,EAAiB,WAI7B,IAAIK,EAAWD,EAAQx1E,KAAI,SAAUsS,EAAQ3lC,GAC3C,IAAIk5C,EAAUl5C,EAAI6oG,EAAQzrG,OAAS,EAEnC,OAAOsrG,EAAU/iE,EAAQuT,EADXl5C,EAAI,GACyB,SAAU8qB,GAC9C+D,IAAOA,EAAQ/D,GAChBA,GAAKg+E,EAASvxE,QAAQ74B,GACtBw6C,IACJ4vD,EAASvxE,QAAQ74B,GACjBmnC,EAAShX,UAGb,OAAOg6E,EAAQE,OAAO58D,K,gBC5FxB,IAAIvvC,EAASD,EAAQ,IAAeC,OAChCqoG,EAAatoG,EAAQ,IACrBizC,EAAMjzC,EAAQ,IACd20G,EAAK30G,EAAQ,IAAYy0C,GACzBviC,EAAKlS,EAAQ,IACb8iC,EAAY9iC,EAAQ,IACpBw0C,EAASx0C,EAAQ,KAyErB,SAAS40G,EAAQ3oG,EAAG+N,EAAGge,EAAMoM,GAE3B,IADAn4B,EAAIhM,EAAOS,KAAKuL,EAAEoG,YACZ5R,OAASuZ,EAAEtU,aAAc,CAC7B,IAAImT,EAAQ5Y,EAAOU,MAAMqZ,EAAEtU,aAAeuG,EAAExL,QAC5CwL,EAAIhM,EAAOsC,OAAO,CAACsW,EAAO5M,IAE5B,IAAI4oG,EAAO78E,EAAKv3B,OACZq0G,EAkBN,SAAsBniG,EAAMqH,GAE1BrH,GADAA,EAAOoiG,EAASpiG,EAAMqH,IACV9G,IAAI8G,GAChB,IAAIzM,EAAMtN,EAAOS,KAAKiS,EAAKN,WAC3B,GAAI9E,EAAI9M,OAASuZ,EAAEtU,aAAc,CAC/B,IAAImT,EAAQ5Y,EAAOU,MAAMqZ,EAAEtU,aAAe6H,EAAI9M,QAC9C8M,EAAMtN,EAAOsC,OAAO,CAACsW,EAAOtL,IAE9B,OAAOA,EA1BKynG,CAAYh9E,EAAMhe,GAC1Bwa,EAAIv0B,EAAOU,MAAMk0G,GACrBrgF,EAAExzB,KAAK,GACP,IAAI+R,EAAI9S,EAAOU,MAAMk0G,GAKrB,OAJA9hG,EAAIu1F,EAAWlkE,EAAMrxB,GAAGya,OAAOgH,GAAGhH,OAAOvtB,EAAOS,KAAK,CAAC,KAAK8sB,OAAOvhB,GAAGuhB,OAAOsnF,GAAOl9E,SACnFpD,EAAI8zE,EAAWlkE,EAAMrxB,GAAGya,OAAOgH,GAAGoD,SAG3B,CAAE7kB,EAFTA,EAAIu1F,EAAWlkE,EAAMrxB,GAAGya,OAAOgH,GAAGhH,OAAOvtB,EAAOS,KAAK,CAAC,KAAK8sB,OAAOvhB,GAAGuhB,OAAOsnF,GAAOl9E,SAEpEpD,EADfA,EAAI8zE,EAAWlkE,EAAMrxB,GAAGya,OAAOgH,GAAGoD,UAIpC,SAASm9E,EAAUE,EAAOj7F,GACxB,IAAIrH,EAAO,IAAIT,EAAG+iG,GACdnvF,GAASmvF,EAAMx0G,QAAU,GAAKuZ,EAAEnH,YAEpC,OADIiT,EAAQ,GAAGnT,EAAKwS,MAAMW,GACnBnT,EAcT,SAASuiG,EAASl7F,EAAGm7F,EAAI/wE,GACvB,IAAIjqB,EACApH,EAEJ,EAAG,CAGD,IAFAoH,EAAIla,EAAOU,MAAM,GAEC,EAAXwZ,EAAE1Z,OAAauZ,EAAEnH,aACtBsiG,EAAG3gF,EAAI8zE,EAAWlkE,EAAM+wE,EAAGpiG,GAAGya,OAAO2nF,EAAG3gF,GAAGoD,SAC3Czd,EAAIla,EAAOsC,OAAO,CAAC4X,EAAGg7F,EAAG3gF,IAG3BzhB,EAAIgiG,EAAS56F,EAAGH,GAChBm7F,EAAGpiG,EAAIu1F,EAAWlkE,EAAM+wE,EAAGpiG,GAAGya,OAAO2nF,EAAG3gF,GAAGhH,OAAOvtB,EAAOS,KAAK,CAAC,KAAKk3B,SACpEu9E,EAAG3gF,EAAI8zE,EAAWlkE,EAAM+wE,EAAGpiG,GAAGya,OAAO2nF,EAAG3gF,GAAGoD,gBACtB,IAAd7kB,EAAE+E,IAAIkC,IAEf,OAAOjH,EAGT,SAASqiG,EAAO3jG,EAAGsB,EAAG8B,EAAGmF,GACvB,OAAOvI,EAAEkX,MAAMzW,EAAGqa,KAAK1X,IAAIqV,OAAOnX,GAAGgW,UAAU7V,IAAI8G,GAGrD7a,EAAOC,QAnIP,SAAe44B,EAAM33B,EAAKg1G,EAAUC,EAAUnyE,GAC5C,IAAI0P,EAAO/P,EAAUziC,GACrB,GAAIwyC,EAAK7S,MAAO,CAEd,GAAiB,UAAbs1E,GAAqC,cAAbA,EAA0B,MAAM,IAAI7zG,MAAM,0BACtE,OAmBJ,SAAiBu2B,EAAM6a,GACrB,IAAI0iE,EAAU/gE,EAAO3B,EAAK7S,MAAMpzB,KAAK,MACrC,IAAK2oG,EAAS,MAAM,IAAI9zG,MAAM,iBAAmBoxC,EAAK7S,MAAMpzB,KAAK,MAEjE,IAEIW,EAFQ,IAAIonG,EAAGY,GACHC,eAAe3iE,EAAKhO,YACtBstB,KAAKn6B,GAEnB,OAAO/3B,EAAOS,KAAK6M,EAAIkoG,SA3BdC,CAAO19E,EAAM6a,GACf,GAAkB,QAAdA,EAAKrsC,KAAgB,CAC9B,GAAiB,QAAb8uG,EAAoB,MAAM,IAAI7zG,MAAM,0BACxC,OA2BJ,SAAkBu2B,EAAM6a,EAAMzO,GAC5B,IAKIrxB,EALA9G,EAAI4mC,EAAKhP,OAAOkB,SAChBlwB,EAAIg+B,EAAKhP,OAAOhvB,EAChBmF,EAAI64B,EAAKhP,OAAO7pB,EAChBvI,EAAIohC,EAAKhP,OAAOpyB,EAChBO,EAAI,IAAIE,EAAG,GAEX0wC,EAAImyD,EAAS/8E,EAAMhe,GAAG9G,IAAI8G,GAC1ByI,GAAI,EACJ0yF,EAAKP,EAAO3oG,EAAG+N,EAAGge,EAAMoM,GAC5B,MAAa,IAAN3hB,GAELzQ,EAAIojG,EAAM3jG,EADVsB,EAAImiG,EAAQl7F,EAAGm7F,EAAI/wE,GACHvvB,EAAGmF,GAED,KADlByI,EAAI1P,EAAE8U,KAAK7N,GAAGqG,KAAKuiC,EAAExmC,IAAInQ,EAAEsC,IAAIyD,KAAKkB,IAAI8G,IAClClG,KAAK,KACT2O,GAAI,EACJzQ,EAAI,IAAIE,EAAG,IAGf,OAGF,SAAgBF,EAAGyQ,GACjBzQ,EAAIA,EAAEK,UACNoQ,EAAIA,EAAEpQ,UAGK,IAAPL,EAAE,KAAWA,EAAI,CAAC,GAAGzP,OAAOyP,IACrB,IAAPyQ,EAAE,KAAWA,EAAI,CAAC,GAAGlgB,OAAOkgB,IAEhC,IACIjY,EAAM,CAAC,GADCwH,EAAEvR,OAASgiB,EAAEhiB,OAAS,EACV,EAAMuR,EAAEvR,QAEhC,OADA+J,EAAMA,EAAIjI,OAAOyP,EAAG,CAAC,EAAMyQ,EAAEhiB,QAASgiB,GAC/BxiB,EAAOS,KAAK8J,GAdZirG,CAAMzjG,EAAGyQ,GA9CPkzF,CAAQ39E,EAAM6a,EAAMwiE,GAE3B,GAAiB,QAAbC,GAAmC,cAAbA,EAA0B,MAAM,IAAI7zG,MAAM,0BAEtEu2B,EAAO/3B,EAAOsC,OAAO,CAAC4gC,EAAKnL,IAG3B,IAFA,IAAIt1B,EAAMmwC,EAAKC,QAAQptC,aACnB2kD,EAAM,CAAC,EAAG,GACPryB,EAAKv3B,OAAS4pD,EAAI5pD,OAAS,EAAIiC,GAAK2nD,EAAI/mD,KAAK,KACpD+mD,EAAI/mD,KAAK,GAET,IADA,IAAID,GAAK,IACAA,EAAI20B,EAAKv3B,QAAQ4pD,EAAI/mD,KAAK00B,EAAK30B,IAGxC,OADU4vC,EAAIoX,EAAKxX,IAgHrB1zC,EAAOC,QAAQw1G,OAASA,EACxBz1G,EAAOC,QAAQ81G,QAAUA,G,yqCC5IzB,IAAIjjG,EAAQjS,EAAQ,GAChBkS,EAAKlS,EAAQ,IACbuU,EAAWvU,EAAQ,GACnB81B,EAAO91B,EAAQ,IAEf4R,EAASK,EAAML,OAEnB,SAASgkG,EAAW12E,GAClBpJ,EAAK/zB,KAAKC,KAAM,QAASk9B,GAEzBl9B,KAAKgK,EAAI,IAAIkG,EAAGgtB,EAAKlzB,EAAG,IAAI2c,MAAM3mB,KAAKoV,KACvCpV,KAAK4F,EAAI,IAAIsK,EAAGgtB,EAAKt3B,EAAG,IAAI+gB,MAAM3mB,KAAKoV,KACvCpV,KAAK6zG,KAAO7zG,KAAKo9B,IAAIpV,UAErBhoB,KAAK8zG,MAAqC,IAA7B9zG,KAAKgK,EAAE+c,UAAUjV,KAAK,GACnC9R,KAAK+zG,OAAmD,IAA1C/zG,KAAKgK,EAAE+c,UAAU5Y,IAAInO,KAAK6S,GAAGf,MAAM,GAGjD9R,KAAKg0G,KAAOh0G,KAAKi0G,iBAAiB/2E,GAClCl9B,KAAKk0G,YAAc,IAAI/yG,MAAM,GAC7BnB,KAAKm0G,YAAc,IAAIhzG,MAAM,GAoO/B,SAASizG,EAAMp2E,EAAO/zB,EAAGC,EAAGmqG,GAC1BvgF,EAAKiK,UAAUh+B,KAAKC,KAAMg+B,EAAO,UACvB,OAAN/zB,GAAoB,OAANC,GAChBlK,KAAKiK,EAAI,KACTjK,KAAKkK,EAAI,KACTlK,KAAKs0G,KAAM,IAEXt0G,KAAKiK,EAAI,IAAIiG,EAAGjG,EAAG,IACnBjK,KAAKkK,EAAI,IAAIgG,EAAGhG,EAAG,IAEfmqG,IACFr0G,KAAKiK,EAAEgd,SAASjnB,KAAKg+B,MAAM5oB,KAC3BpV,KAAKkK,EAAE+c,SAASjnB,KAAKg+B,MAAM5oB,MAExBpV,KAAKiK,EAAEmL,MACVpV,KAAKiK,EAAIjK,KAAKiK,EAAE0c,MAAM3mB,KAAKg+B,MAAM5oB,MAC9BpV,KAAKkK,EAAEkL,MACVpV,KAAKkK,EAAIlK,KAAKkK,EAAEyc,MAAM3mB,KAAKg+B,MAAM5oB,MACnCpV,KAAKs0G,KAAM,GA6Nf,SAASC,EAAOv2E,EAAO/zB,EAAGC,EAAG+G,GAC3B6iB,EAAKiK,UAAUh+B,KAAKC,KAAMg+B,EAAO,YACvB,OAAN/zB,GAAoB,OAANC,GAAoB,OAAN+G,GAC9BjR,KAAKiK,EAAIjK,KAAKg+B,MAAMhU,IACpBhqB,KAAKkK,EAAIlK,KAAKg+B,MAAMhU,IACpBhqB,KAAKiR,EAAI,IAAIf,EAAG,KAEhBlQ,KAAKiK,EAAI,IAAIiG,EAAGjG,EAAG,IACnBjK,KAAKkK,EAAI,IAAIgG,EAAGhG,EAAG,IACnBlK,KAAKiR,EAAI,IAAIf,EAAGe,EAAG,KAEhBjR,KAAKiK,EAAEmL,MACVpV,KAAKiK,EAAIjK,KAAKiK,EAAE0c,MAAM3mB,KAAKg+B,MAAM5oB,MAC9BpV,KAAKkK,EAAEkL,MACVpV,KAAKkK,EAAIlK,KAAKkK,EAAEyc,MAAM3mB,KAAKg+B,MAAM5oB,MAC9BpV,KAAKiR,EAAEmE,MACVpV,KAAKiR,EAAIjR,KAAKiR,EAAE0V,MAAM3mB,KAAKg+B,MAAM5oB,MAEnCpV,KAAKw0G,KAAOx0G,KAAKiR,IAAMjR,KAAKg+B,MAAMhU,IAnepCzX,EAASqhG,EAAY9/E,GACrB32B,EAAOC,QAAUw2G,EAEjBA,EAAWp2G,UAAUy2G,iBAAmB,SAA0B/2E,GAEhE,GAAKl9B,KAAK8zG,OAAU9zG,KAAKyP,GAAMzP,KAAK6F,GAAwB,IAAnB7F,KAAK6S,EAAE4E,KAAK,GAArD,CAIA,IAAI4oB,EACA4S,EACJ,GAAI/V,EAAKmD,KACPA,EAAO,IAAInwB,EAAGgtB,EAAKmD,KAAM,IAAI1Z,MAAM3mB,KAAKoV,SACnC,CACL,IAAIq/F,EAAQz0G,KAAK00G,cAAc10G,KAAK6S,GAGpCwtB,GADAA,EAAOo0E,EAAM,GAAG3+F,IAAI2+F,EAAM,IAAM,EAAIA,EAAM,GAAKA,EAAM,IACzC9tF,MAAM3mB,KAAKoV,KAEzB,GAAI8nB,EAAK+V,OACPA,EAAS,IAAI/iC,EAAGgtB,EAAK+V,OAAQ,QACxB,CAEL,IAAI0hE,EAAU30G,KAAK00G,cAAc10G,KAAK6F,GACsB,IAAxD7F,KAAKyP,EAAElD,IAAIooG,EAAQ,IAAI1qG,EAAE6L,IAAI9V,KAAKyP,EAAExF,EAAEud,OAAO6Y,IAC/C4S,EAAS0hE,EAAQ,IAEjB1hE,EAAS0hE,EAAQ,GACjB/kG,EAA2D,IAApD5P,KAAKyP,EAAElD,IAAI0mC,GAAQhpC,EAAE6L,IAAI9V,KAAKyP,EAAExF,EAAEud,OAAO6Y,MAiBpD,MAAO,CACLA,KAAMA,EACN4S,OAAQA,EACRC,MAdEhW,EAAKgW,MACChW,EAAKgW,MAAMxe,KAAI,SAASkgF,GAC9B,MAAO,CACL5qG,EAAG,IAAIkG,EAAG0kG,EAAI5qG,EAAG,IACjBpE,EAAG,IAAIsK,EAAG0kG,EAAIhvG,EAAG,QAIb5F,KAAK60G,cAAc5hE,MAU/B2gE,EAAWp2G,UAAUk3G,cAAgB,SAAuBjkG,GAI1D,IAAI2E,EAAM3E,IAAQzQ,KAAK6S,EAAI7S,KAAKoV,IAAMlF,EAAGqa,KAAK9Z,GAC1CojG,EAAO,IAAI3jG,EAAG,GAAGyW,MAAMvR,GAAK4S,UAC5B8sF,EAAQjB,EAAK5rF,SAEbxH,EAAI,IAAIvQ,EAAG,GAAGyW,MAAMvR,GAAK6S,SAASH,UAAUN,OAAOqsF,GAIvD,MAAO,CAFEiB,EAAM5tF,OAAOzG,GAAGsG,UAChB+tF,EAAM1tF,OAAO3G,GAAGsG,YAI3B6sF,EAAWp2G,UAAUq3G,cAAgB,SAAuB5hE,GA2B1D,IAzBA,IAYIz4B,EACA8B,EAEA3B,EACA8B,EAEA3B,EACA8B,EAEAm4F,EAEA/kG,EACA/F,EAxBA+qG,EAAWh1G,KAAK6F,EAAE0d,MAAMjb,KAAKsF,MAAM5N,KAAK6F,EAAEgL,YAAc,IAIxD2Z,EAAIyoB,EACJzgB,EAAIxyB,KAAK6F,EAAEmL,QACX0U,EAAK,IAAIxV,EAAG,GACZ+kG,EAAK,IAAI/kG,EAAG,GACZyV,EAAK,IAAIzV,EAAG,GACZglG,EAAK,IAAIhlG,EAAG,GAaZ7O,EAAI,EAGa,IAAdmpB,EAAE1Y,KAAK,IAAU,CACtB,IAAIkG,EAAIwa,EAAEpO,IAAIoG,GACdxa,EAAIwiB,EAAErkB,IAAI6J,EAAEzL,IAAIie,IAChBvgB,EAAI0b,EAAGxX,IAAI6J,EAAEzL,IAAImZ,IACjB,IAAIxb,EAAIgrG,EAAG/mG,IAAI6J,EAAEzL,IAAI0oG,IAErB,IAAKt6F,GAAM3K,EAAE8F,IAAIk/F,GAAY,EAC3Bx6F,EAAKu6F,EAAM/7F,MACXsD,EAAKoJ,EACL/K,EAAK3K,EAAEgJ,MACPyD,EAAKxS,OACA,GAAI0Q,GAAc,MAANtZ,EACjB,MAEF0zG,EAAQ/kG,EAERwiB,EAAIhI,EACJA,EAAIxa,EACJ2V,EAAKD,EACLA,EAAKzb,EACLirG,EAAKD,EACLA,EAAK/qG,EAEP4Q,EAAK9K,EAAEgJ,MACP4D,EAAK3S,EAEL,IAAIkrG,EAAOx6F,EAAG4H,MAAMnI,IAAIqC,EAAG8F,OAiB3B,OAhBWzH,EAAGyH,MAAMnI,IAAIwC,EAAG2F,OAClBzM,IAAIq/F,IAAS,IACpBr6F,EAAKN,EACLoC,EAAKN,GAIH3B,EAAGzF,WACLyF,EAAKA,EAAG3B,MACRyD,EAAKA,EAAGzD,OAEN8B,EAAG5F,WACL4F,EAAKA,EAAG9B,MACR4D,EAAKA,EAAG5D,OAGH,CACL,CAAEhP,EAAG2Q,EAAI/U,EAAG6W,GACZ,CAAEzS,EAAG8Q,EAAIlV,EAAGgX,KAIhBg3F,EAAWp2G,UAAU43G,WAAa,SAAoBrkG,GACpD,IAAImiC,EAAQlzC,KAAKg0G,KAAK9gE,MAClBmiE,EAAKniE,EAAM,GACXoiE,EAAKpiE,EAAM,GAEX1B,EAAK8jE,EAAG1vG,EAAE2G,IAAIwE,GAAG0T,SAASzkB,KAAK6F,GAC/B4rC,EAAK4jE,EAAGzvG,EAAEoT,MAAMzM,IAAIwE,GAAG0T,SAASzkB,KAAK6F,GAErC0vG,EAAK/jE,EAAGjlC,IAAI8oG,EAAGrrG,GACfwrG,EAAK/jE,EAAGllC,IAAI+oG,EAAGtrG,GACfyrG,EAAKjkE,EAAGjlC,IAAI8oG,EAAGzvG,GACf8vG,EAAKjkE,EAAGllC,IAAI+oG,EAAG1vG,GAKnB,MAAO,CAAE4L,GAFAT,EAAE5C,IAAIonG,GAAIpnG,IAAIqnG,GAEN/jG,GADRgkG,EAAGr7F,IAAIs7F,GAAI18F,QAItB46F,EAAWp2G,UAAUqiC,WAAa,SAAoB51B,EAAGsX,IACvDtX,EAAI,IAAIiG,EAAGjG,EAAG,KACPmL,MACLnL,EAAIA,EAAE0c,MAAM3mB,KAAKoV,MAEnB,IAAI8/F,EAAKjrG,EAAE0d,SAASH,OAAOvd,GAAGkd,QAAQld,EAAEud,OAAOxnB,KAAKgK,IAAImd,QAAQnnB,KAAK4F,GACjEsE,EAAIgrG,EAAGptF,UACX,GAA6C,IAAzC5d,EAAEyd,SAASP,OAAO8tF,GAAIp/F,IAAI9V,KAAKm9B,MACjC,MAAM,IAAI19B,MAAM,iBAIlB,IAAI2R,EAAQlH,EAAE6c,UAAU3V,QAIxB,OAHImQ,IAAQnQ,IAAUmQ,GAAOnQ,KAC3BlH,EAAIA,EAAE+d,UAEDjoB,KAAKk+B,MAAMj0B,EAAGC,IAGvB0pG,EAAWp2G,UAAU2gC,SAAW,SAAkBD,GAChD,GAAIA,EAAMo2E,IACR,OAAO,EAET,IAAIrqG,EAAIi0B,EAAMj0B,EACVC,EAAIg0B,EAAMh0B,EAEVyrG,EAAK31G,KAAKgK,EAAEwd,OAAOvd,GACnB2rG,EAAM3rG,EAAE0d,SAASH,OAAOvd,GAAGkd,QAAQwuF,GAAIxuF,QAAQnnB,KAAK4F,GACxD,OAA2C,IAApCsE,EAAEyd,SAASN,QAAQuuF,GAAK9jG,KAAK,IAGtC8hG,EAAWp2G,UAAUq4G,gBACjB,SAAyBh3E,EAAQQ,EAAQC,GAGvC,IAFA,IAAIw2E,EAAU91G,KAAKk0G,YACf6B,EAAU/1G,KAAKm0G,YACV9yG,EAAI,EAAGA,EAAIw9B,EAAOpgC,OAAQ4C,IAAK,CACtC,IAAIkoB,EAAQvpB,KAAKo1G,WAAW/1E,EAAOh+B,IAC/BwR,EAAIgsB,EAAOx9B,GACXg/B,EAAOxtB,EAAEytB,WAET/W,EAAM/X,GAAG0D,WACXqU,EAAM/X,GAAGsH,OACTjG,EAAIA,EAAEmG,KAAI,IAERuQ,EAAM9X,GAAGyD,WACXqU,EAAM9X,GAAGqH,OACTunB,EAAOA,EAAKrnB,KAAI,IAGlB88F,EAAY,EAAJz0G,GAASwR,EACjBijG,EAAY,EAAJz0G,EAAQ,GAAKg/B,EACrB01E,EAAY,EAAJ10G,GAASkoB,EAAM/X,GACvBukG,EAAY,EAAJ10G,EAAQ,GAAKkoB,EAAM9X,GAK7B,IAHA,IAAIjJ,EAAMxI,KAAKm/B,YAAY,EAAG22E,EAASC,EAAa,EAAJ10G,EAAOi+B,GAG9Cz4B,EAAI,EAAGA,EAAQ,EAAJxF,EAAOwF,IACzBivG,EAAQjvG,GAAK,KACbkvG,EAAQlvG,GAAK,KAEf,OAAO2B,GAwBb+J,EAAS6hG,EAAOtgF,EAAKiK,WAErB61E,EAAWp2G,UAAU0gC,MAAQ,SAAej0B,EAAGC,EAAGmqG,GAChD,OAAO,IAAID,EAAMp0G,KAAMiK,EAAGC,EAAGmqG,IAG/BT,EAAWp2G,UAAU6/B,cAAgB,SAAuBl5B,EAAKiR,GAC/D,OAAOg/F,EAAM4B,SAASh2G,KAAMmE,EAAKiR,IAGnCg/F,EAAM52G,UAAU8iC,SAAW,WACzB,GAAKtgC,KAAKg+B,MAAMg2E,KAAhB,CAGA,IAAIrhE,EAAM3yC,KAAKi+B,YACf,GAAI0U,GAAOA,EAAItS,KACb,OAAOsS,EAAItS,KAEb,IAAIA,EAAOrgC,KAAKg+B,MAAME,MAAMl+B,KAAKiK,EAAEud,OAAOxnB,KAAKg+B,MAAMg2E,KAAK3zE,MAAOrgC,KAAKkK,GACtE,GAAIyoC,EAAK,CACP,IAAI3U,EAAQh+B,KAAKg+B,MACbi4E,EAAU,SAASpjG,GACrB,OAAOmrB,EAAME,MAAMrrB,EAAE5I,EAAEud,OAAOwW,EAAMg2E,KAAK3zE,MAAOxtB,EAAE3I,IAEpDyoC,EAAItS,KAAOA,EACXA,EAAKpC,YAAc,CACjBoC,KAAM,KACNzvB,IAAK+hC,EAAI/hC,KAAO,CACdwZ,IAAKuoB,EAAI/hC,IAAIwZ,IACbyU,OAAQ8T,EAAI/hC,IAAIiuB,OAAOnK,IAAIuhF,IAE7B53E,QAASsU,EAAItU,SAAW,CACtBG,KAAMmU,EAAItU,QAAQG,KAClBK,OAAQ8T,EAAItU,QAAQQ,OAAOnK,IAAIuhF,KAIrC,OAAO51E,IAGT+zE,EAAM52G,UAAU4N,OAAS,WACvB,OAAKpL,KAAKi+B,YAGH,CAAEj+B,KAAKiK,EAAGjK,KAAKkK,EAAGlK,KAAKi+B,aAAe,CAC3CI,QAASr+B,KAAKi+B,YAAYI,SAAW,CACnCG,KAAMx+B,KAAKi+B,YAAYI,QAAQG,KAC/BK,OAAQ7+B,KAAKi+B,YAAYI,QAAQQ,OAAO56B,MAAM,IAEhD2M,IAAK5Q,KAAKi+B,YAAYrtB,KAAO,CAC3BwZ,IAAKpqB,KAAKi+B,YAAYrtB,IAAIwZ,IAC1ByU,OAAQ7+B,KAAKi+B,YAAYrtB,IAAIiuB,OAAO56B,MAAM,MATrC,CAAEjE,KAAKiK,EAAGjK,KAAKkK,IAc1BkqG,EAAM4B,SAAW,SAAkBh4E,EAAO75B,EAAKiR,GAC1B,kBAARjR,IACTA,EAAMszC,KAAKy+D,MAAM/xG,IACnB,IAAIqE,EAAMw1B,EAAME,MAAM/5B,EAAI,GAAIA,EAAI,GAAIiR,GACtC,IAAKjR,EAAI,GACP,OAAOqE,EAET,SAAS2tG,EAAUhyG,GACjB,OAAO65B,EAAME,MAAM/5B,EAAI,GAAIA,EAAI,GAAIiR,GAGrC,IAAIu9B,EAAMxuC,EAAI,GAYd,OAXAqE,EAAIy1B,YAAc,CAChBoC,KAAM,KACNhC,QAASsU,EAAItU,SAAW,CACtBG,KAAMmU,EAAItU,QAAQG,KAClBK,OAAQ,CAAEr2B,GAAMjI,OAAOoyC,EAAItU,QAAQQ,OAAOnK,IAAIyhF,KAEhDvlG,IAAK+hC,EAAI/hC,KAAO,CACdwZ,IAAKuoB,EAAI/hC,IAAIwZ,IACbyU,OAAQ,CAAEr2B,GAAMjI,OAAOoyC,EAAI/hC,IAAIiuB,OAAOnK,IAAIyhF,MAGvC3tG,GAGT4rG,EAAM52G,UAAUiN,QAAU,WACxB,OAAIzK,KAAK+yC,aACA,sBACF,gBAAkB/yC,KAAKiK,EAAE8c,UAAUniB,SAAS,GAAI,GACnD,OAAS5E,KAAKkK,EAAE6c,UAAUniB,SAAS,GAAI,GAAK,KAGlDwvG,EAAM52G,UAAUu1C,WAAa,WAC3B,OAAO/yC,KAAKs0G,KAGdF,EAAM52G,UAAU4c,IAAM,SAAavH,GAEjC,GAAI7S,KAAKs0G,IACP,OAAOzhG,EAGT,GAAIA,EAAEyhG,IACJ,OAAOt0G,KAGT,GAAIA,KAAKymB,GAAG5T,GACV,OAAO7S,KAAKwgC,MAGd,GAAIxgC,KAAKgZ,MAAMyN,GAAG5T,GAChB,OAAO7S,KAAKg+B,MAAME,MAAM,KAAM,MAGhC,GAAwB,IAApBl+B,KAAKiK,EAAE6L,IAAIjD,EAAE5I,GACf,OAAOjK,KAAKg+B,MAAME,MAAM,KAAM,MAEhC,IAAIj2B,EAAIjI,KAAKkK,EAAEkd,OAAOvU,EAAE3I,GACN,IAAdjC,EAAE6J,KAAK,KACT7J,EAAIA,EAAEuf,OAAOxnB,KAAKiK,EAAEmd,OAAOvU,EAAE5I,GAAG+d,YAClC,IAAIouF,EAAKnuG,EAAE0f,SAASN,QAAQrnB,KAAKiK,GAAGod,QAAQxU,EAAE5I,GAC1CosG,EAAKpuG,EAAEuf,OAAOxnB,KAAKiK,EAAEmd,OAAOgvF,IAAK/uF,QAAQrnB,KAAKkK,GAClD,OAAOlK,KAAKg+B,MAAME,MAAMk4E,EAAIC,IAG9BjC,EAAM52G,UAAUgjC,IAAM,WACpB,GAAIxgC,KAAKs0G,IACP,OAAOt0G,KAGT,IAAIs2G,EAAMt2G,KAAKkK,EAAEgd,OAAOlnB,KAAKkK,GAC7B,GAAoB,IAAhBosG,EAAIxkG,KAAK,GACX,OAAO9R,KAAKg+B,MAAME,MAAM,KAAM,MAEhC,IAAIl0B,EAAIhK,KAAKg+B,MAAMh0B,EAEf2b,EAAK3lB,KAAKiK,EAAE0d,SACZ4uF,EAAQD,EAAItuF,UACZ/f,EAAI0d,EAAGuB,OAAOvB,GAAIwB,QAAQxB,GAAIwB,QAAQnd,GAAGwd,OAAO+uF,GAEhDH,EAAKnuG,EAAE0f,SAASN,QAAQrnB,KAAKiK,EAAEid,OAAOlnB,KAAKiK,IAC3CosG,EAAKpuG,EAAEuf,OAAOxnB,KAAKiK,EAAEmd,OAAOgvF,IAAK/uF,QAAQrnB,KAAKkK,GAClD,OAAOlK,KAAKg+B,MAAME,MAAMk4E,EAAIC,IAG9BjC,EAAM52G,UAAUyiC,KAAO,WACrB,OAAOjgC,KAAKiK,EAAE8c,WAGhBqtF,EAAM52G,UAAU0iC,KAAO,WACrB,OAAOlgC,KAAKkK,EAAE6c,WAGhBqtF,EAAM52G,UAAU+O,IAAM,SAAawE,GAEjC,OADAA,EAAI,IAAIb,EAAGa,EAAG,IACV/Q,KAAK+yC,aACA/yC,KACAA,KAAKugC,YAAYxvB,GACjB/Q,KAAKg+B,MAAMI,aAAap+B,KAAM+Q,GAC9B/Q,KAAKg+B,MAAMg2E,KACXh0G,KAAKg+B,MAAM63E,gBAAgB,CAAE71G,MAAQ,CAAE+Q,IAEvC/Q,KAAKg+B,MAAMe,SAAS/+B,KAAM+Q,IAGrCqjG,EAAM52G,UAAUg5G,OAAS,SAAgBhlG,EAAIgkG,EAAI/jG,GAC/C,IAAIotB,EAAS,CAAE7+B,KAAMw1G,GACjBn2E,EAAS,CAAE7tB,EAAIC,GACnB,OAAIzR,KAAKg+B,MAAMg2E,KACNh0G,KAAKg+B,MAAM63E,gBAAgBh3E,EAAQQ,GAEnCr/B,KAAKg+B,MAAMmB,YAAY,EAAGN,EAAQQ,EAAQ,IAGrD+0E,EAAM52G,UAAUi5G,QAAU,SAAiBjlG,EAAIgkG,EAAI/jG,GACjD,IAAIotB,EAAS,CAAE7+B,KAAMw1G,GACjBn2E,EAAS,CAAE7tB,EAAIC,GACnB,OAAIzR,KAAKg+B,MAAMg2E,KACNh0G,KAAKg+B,MAAM63E,gBAAgBh3E,EAAQQ,GAAQ,GAE3Cr/B,KAAKg+B,MAAMmB,YAAY,EAAGN,EAAQQ,EAAQ,GAAG,IAGxD+0E,EAAM52G,UAAUipB,GAAK,SAAY5T,GAC/B,OAAO7S,OAAS6S,GACT7S,KAAKs0G,MAAQzhG,EAAEyhG,MACVt0G,KAAKs0G,KAA2B,IAApBt0G,KAAKiK,EAAE6L,IAAIjD,EAAE5I,IAAgC,IAApBjK,KAAKkK,EAAE4L,IAAIjD,EAAE3I,KAGhEkqG,EAAM52G,UAAUwb,IAAM,SAAa09F,GACjC,GAAI12G,KAAKs0G,IACP,OAAOt0G,KAET,IAAIwI,EAAMxI,KAAKg+B,MAAME,MAAMl+B,KAAKiK,EAAGjK,KAAKkK,EAAE+d,UAC1C,GAAIyuF,GAAe12G,KAAKi+B,YAAa,CACnC,IAAI0U,EAAM3yC,KAAKi+B,YACX04E,EAAS,SAAS9jG,GACpB,OAAOA,EAAEmG,OAEXxQ,EAAIy1B,YAAc,CAChBrtB,IAAK+hC,EAAI/hC,KAAO,CACdwZ,IAAKuoB,EAAI/hC,IAAIwZ,IACbyU,OAAQ8T,EAAI/hC,IAAIiuB,OAAOnK,IAAIiiF,IAE7Bt4E,QAASsU,EAAItU,SAAW,CACtBG,KAAMmU,EAAItU,QAAQG,KAClBK,OAAQ8T,EAAItU,QAAQQ,OAAOnK,IAAIiiF,KAIrC,OAAOnuG,GAGT4rG,EAAM52G,UAAUiiC,IAAM,WACpB,OAAIz/B,KAAKs0G,IACAt0G,KAAKg+B,MAAMW,OAAO,KAAM,KAAM,MAE7B3+B,KAAKg+B,MAAMW,OAAO3+B,KAAKiK,EAAGjK,KAAKkK,EAAGlK,KAAKg+B,MAAMhU,MAwBzDzX,EAASgiG,EAAQzgF,EAAKiK,WAEtB61E,EAAWp2G,UAAUmhC,OAAS,SAAgB10B,EAAGC,EAAG+G,GAClD,OAAO,IAAIsjG,EAAOv0G,KAAMiK,EAAGC,EAAG+G,IAGhCsjG,EAAO/2G,UAAUshC,IAAM,WACrB,GAAI9+B,KAAK+yC,aACP,OAAO/yC,KAAKg+B,MAAME,MAAM,KAAM,MAEhC,IAAI04E,EAAO52G,KAAKiR,EAAE+W,UACd6uF,EAAQD,EAAKjvF,SACbguF,EAAK31G,KAAKiK,EAAEud,OAAOqvF,GACnBC,EAAK92G,KAAKkK,EAAEsd,OAAOqvF,GAAOrvF,OAAOovF,GAErC,OAAO52G,KAAKg+B,MAAME,MAAMy3E,EAAImB,IAG9BvC,EAAO/2G,UAAUwb,IAAM,WACrB,OAAOhZ,KAAKg+B,MAAMW,OAAO3+B,KAAKiK,EAAGjK,KAAKkK,EAAE+d,SAAUjoB,KAAKiR,IAGzDsjG,EAAO/2G,UAAU4c,IAAM,SAAavH,GAElC,GAAI7S,KAAK+yC,aACP,OAAOlgC,EAGT,GAAIA,EAAEkgC,aACJ,OAAO/yC,KAGT,IAAI+2G,EAAMlkG,EAAE5B,EAAE0W,SACVqvF,EAAKh3G,KAAKiR,EAAE0W,SACZ5V,EAAK/R,KAAKiK,EAAEud,OAAOuvF,GACnB/kG,EAAKa,EAAE5I,EAAEud,OAAOwvF,GAChBt8E,EAAK16B,KAAKkK,EAAEsd,OAAOuvF,EAAIvvF,OAAO3U,EAAE5B,IAChC0pB,EAAK9nB,EAAE3I,EAAEsd,OAAOwvF,EAAGxvF,OAAOxnB,KAAKiR,IAE/B+R,EAAIjR,EAAGqV,OAAOpV,GACdhC,EAAI0qB,EAAGtT,OAAOuT,GAClB,GAAkB,IAAd3X,EAAElR,KAAK,GACT,OAAkB,IAAd9B,EAAE8B,KAAK,GACF9R,KAAKg+B,MAAMW,OAAO,KAAM,KAAM,MAE9B3+B,KAAKwgC,MAGhB,IAAIy2E,EAAKj0F,EAAE2E,SACPuvF,EAAKD,EAAGzvF,OAAOxE,GACfwP,EAAIzgB,EAAGyV,OAAOyvF,GAEdb,EAAKpmG,EAAE2X,SAASR,QAAQ+vF,GAAI7vF,QAAQmL,GAAGnL,QAAQmL,GAC/C6jF,EAAKrmG,EAAEwX,OAAOgL,EAAEnL,QAAQ+uF,IAAK/uF,QAAQqT,EAAGlT,OAAO0vF,IAC/CC,EAAKn3G,KAAKiR,EAAEuW,OAAO3U,EAAE5B,GAAGuW,OAAOxE,GAEnC,OAAOhjB,KAAKg+B,MAAMW,OAAOy3E,EAAIC,EAAIc,IAGnC5C,EAAO/2G,UAAUohC,SAAW,SAAkB/rB,GAE5C,GAAI7S,KAAK+yC,aACP,OAAOlgC,EAAE4sB,MAGX,GAAI5sB,EAAEkgC,aACJ,OAAO/yC,KAGT,IAAIg3G,EAAKh3G,KAAKiR,EAAE0W,SACZ5V,EAAK/R,KAAKiK,EACV+H,EAAKa,EAAE5I,EAAEud,OAAOwvF,GAChBt8E,EAAK16B,KAAKkK,EACVywB,EAAK9nB,EAAE3I,EAAEsd,OAAOwvF,GAAIxvF,OAAOxnB,KAAKiR,GAEhC+R,EAAIjR,EAAGqV,OAAOpV,GACdhC,EAAI0qB,EAAGtT,OAAOuT,GAClB,GAAkB,IAAd3X,EAAElR,KAAK,GACT,OAAkB,IAAd9B,EAAE8B,KAAK,GACF9R,KAAKg+B,MAAMW,OAAO,KAAM,KAAM,MAE9B3+B,KAAKwgC,MAGhB,IAAIy2E,EAAKj0F,EAAE2E,SACPuvF,EAAKD,EAAGzvF,OAAOxE,GACfwP,EAAIzgB,EAAGyV,OAAOyvF,GAEdb,EAAKpmG,EAAE2X,SAASR,QAAQ+vF,GAAI7vF,QAAQmL,GAAGnL,QAAQmL,GAC/C6jF,EAAKrmG,EAAEwX,OAAOgL,EAAEnL,QAAQ+uF,IAAK/uF,QAAQqT,EAAGlT,OAAO0vF,IAC/CC,EAAKn3G,KAAKiR,EAAEuW,OAAOxE,GAEvB,OAAOhjB,KAAKg+B,MAAMW,OAAOy3E,EAAIC,EAAIc,IAGnC5C,EAAO/2G,UAAU0hC,KAAO,SAAcpyB,GACpC,GAAY,IAARA,EACF,OAAO9M,KACT,GAAIA,KAAK+yC,aACP,OAAO/yC,KACT,IAAK8M,EACH,OAAO9M,KAAKwgC,MAEd,IAAIn/B,EACJ,GAAIrB,KAAKg+B,MAAM81E,OAAS9zG,KAAKg+B,MAAM+1E,OAAQ,CACzC,IAAI/jG,EAAIhQ,KACR,IAAKqB,EAAI,EAAGA,EAAIyL,EAAKzL,IACnB2O,EAAIA,EAAEwwB,MACR,OAAOxwB,EAKT,IAAIhG,EAAIhK,KAAKg+B,MAAMh0B,EACf6pG,EAAO7zG,KAAKg+B,MAAM61E,KAElBuD,EAAKp3G,KAAKiK,EACVotG,EAAKr3G,KAAKkK,EACVotG,EAAKt3G,KAAKiR,EACVsmG,EAAMD,EAAG3vF,SAASA,SAGlB6vF,EAAMH,EAAGnwF,OAAOmwF,GACpB,IAAKh2G,EAAI,EAAGA,EAAIyL,EAAKzL,IAAK,CACxB,IAAIo2G,EAAML,EAAGzvF,SACT+vF,EAAOF,EAAI7vF,SACXgwF,EAAOD,EAAK/vF,SACZ1f,EAAIwvG,EAAIvwF,OAAOuwF,GAAKtwF,QAAQswF,GAAKtwF,QAAQnd,EAAEwd,OAAO+vF,IAElDr9E,EAAKk9E,EAAG5vF,OAAOkwF,GACftB,EAAKnuG,EAAE0f,SAASN,QAAQ6S,EAAGhT,OAAOgT,IAClCC,EAAKD,EAAG7S,QAAQ+uF,GAChBwB,EAAM3vG,EAAEuf,OAAO2S,GACnBy9E,EAAMA,EAAIzwF,QAAQywF,GAAKvwF,QAAQswF,GAC/B,IAAIR,EAAKK,EAAIhwF,OAAO8vF,GAChBj2G,EAAI,EAAIyL,IACVyqG,EAAMA,EAAI/vF,OAAOmwF,IAEnBP,EAAKhB,EACLkB,EAAKH,EACLK,EAAMI,EAGR,OAAO53G,KAAKg+B,MAAMW,OAAOy4E,EAAII,EAAIhwF,OAAOqsF,GAAOyD,IAGjD/C,EAAO/2G,UAAUgjC,IAAM,WACrB,OAAIxgC,KAAK+yC,aACA/yC,KAELA,KAAKg+B,MAAM81E,MACN9zG,KAAK63G,WACL73G,KAAKg+B,MAAM+1E,OACX/zG,KAAK83G,YAEL93G,KAAK+3G,QAGhBxD,EAAO/2G,UAAUq6G,SAAW,WAC1B,IAAIzB,EACAC,EACAc,EAEJ,GAAIn3G,KAAKw0G,KAAM,CAMb,IAAIwD,EAAKh4G,KAAKiK,EAAE0d,SAEZswF,EAAKj4G,KAAKkK,EAAEyd,SAEZuwF,EAAOD,EAAGtwF,SAEVlH,EAAIzgB,KAAKiK,EAAEid,OAAO+wF,GAAItwF,SAASN,QAAQ2wF,GAAI3wF,QAAQ6wF,GACvDz3F,EAAIA,EAAE0G,QAAQ1G,GAEd,IAAI3a,EAAIkyG,EAAG9wF,OAAO8wF,GAAI7wF,QAAQ6wF,GAE1B7/F,EAAIrS,EAAE6hB,SAASN,QAAQ5G,GAAG4G,QAAQ5G,GAGlC03F,EAAQD,EAAK/wF,QAAQ+wF,GAEzBC,GADAA,EAAQA,EAAMhxF,QAAQgxF,IACRhxF,QAAQgxF,GAGtB/B,EAAKj+F,EAELk+F,EAAKvwG,EAAE0hB,OAAO/G,EAAE4G,QAAQlP,IAAIkP,QAAQ8wF,GAEpChB,EAAKn3G,KAAKkK,EAAEgd,OAAOlnB,KAAKkK,OACnB,CAML,IAAIF,EAAIhK,KAAKiK,EAAE0d,SAEX/hB,EAAI5F,KAAKkK,EAAEyd,SAEX1f,EAAIrC,EAAE+hB,SAENpU,EAAIvT,KAAKiK,EAAEid,OAAOthB,GAAG+hB,SAASN,QAAQrd,GAAGqd,QAAQpf,GACrDsL,EAAIA,EAAE4T,QAAQ5T,GAEd,IAAIzT,EAAIkK,EAAEkd,OAAOld,GAAGmd,QAAQnd,GAExBw6B,EAAI1kC,EAAE6nB,SAGNywF,EAAKnwG,EAAEkf,QAAQlf,GAEnBmwG,GADAA,EAAKA,EAAGjxF,QAAQixF,IACRjxF,QAAQixF,GAGhBhC,EAAK5xE,EAAEnd,QAAQ9T,GAAG8T,QAAQ9T,GAE1B8iG,EAAKv2G,EAAE0nB,OAAOjU,EAAE8T,QAAQ+uF,IAAK/uF,QAAQ+wF,GAGrCjB,GADAA,EAAKn3G,KAAKkK,EAAEsd,OAAOxnB,KAAKiR,IAChBkW,QAAQgwF,GAGlB,OAAOn3G,KAAKg+B,MAAMW,OAAOy3E,EAAIC,EAAIc,IAGnC5C,EAAO/2G,UAAUs6G,UAAY,WAC3B,IAAI1B,EACAC,EACAc,EAEJ,GAAIn3G,KAAKw0G,KAAM,CAMb,IAAIwD,EAAKh4G,KAAKiK,EAAE0d,SAEZswF,EAAKj4G,KAAKkK,EAAEyd,SAEZuwF,EAAOD,EAAGtwF,SAEVlH,EAAIzgB,KAAKiK,EAAEid,OAAO+wF,GAAItwF,SAASN,QAAQ2wF,GAAI3wF,QAAQ6wF,GACvDz3F,EAAIA,EAAE0G,QAAQ1G,GAEd,IAAI3a,EAAIkyG,EAAG9wF,OAAO8wF,GAAI7wF,QAAQ6wF,GAAI7wF,QAAQnnB,KAAKg+B,MAAMh0B,GAEjDmO,EAAIrS,EAAE6hB,SAASN,QAAQ5G,GAAG4G,QAAQ5G,GAEtC21F,EAAKj+F,EAEL,IAAIggG,EAAQD,EAAK/wF,QAAQ+wF,GAEzBC,GADAA,EAAQA,EAAMhxF,QAAQgxF,IACRhxF,QAAQgxF,GACtB9B,EAAKvwG,EAAE0hB,OAAO/G,EAAE4G,QAAQlP,IAAIkP,QAAQ8wF,GAEpChB,EAAKn3G,KAAKkK,EAAEgd,OAAOlnB,KAAKkK,OACnB,CAKL,IAAI0b,EAAQ5lB,KAAKiR,EAAE0W,SAEf0wF,EAAQr4G,KAAKkK,EAAEyd,SAEf0Y,EAAOrgC,KAAKiK,EAAEud,OAAO6wF,GAErBC,EAAQt4G,KAAKiK,EAAEmd,OAAOxB,GAAO4B,OAAOxnB,KAAKiK,EAAEid,OAAOtB,IACtD0yF,EAAQA,EAAMpxF,OAAOoxF,GAAOnxF,QAAQmxF,GAEpC,IAAIC,EAAQl4E,EAAKlZ,QAAQkZ,GAErBm4E,GADJD,EAAQA,EAAMpxF,QAAQoxF,IACJrxF,OAAOqxF,GACzBnC,EAAKkC,EAAM3wF,SAASN,QAAQmxF,GAE5BrB,EAAKn3G,KAAKkK,EAAEgd,OAAOlnB,KAAKiR,GAAG0W,SAASN,QAAQgxF,GAAOhxF,QAAQzB,GAE3D,IAAI6yF,EAAUJ,EAAM1wF,SAGpB8wF,GADAA,GADAA,EAAUA,EAAQtxF,QAAQsxF,IACRtxF,QAAQsxF,IACRtxF,QAAQsxF,GAC1BpC,EAAKiC,EAAM9wF,OAAO+wF,EAAMlxF,QAAQ+uF,IAAK/uF,QAAQoxF,GAG/C,OAAOz4G,KAAKg+B,MAAMW,OAAOy3E,EAAIC,EAAIc,IAGnC5C,EAAO/2G,UAAUu6G,KAAO,WACtB,IAAI/tG,EAAIhK,KAAKg+B,MAAMh0B,EAGfotG,EAAKp3G,KAAKiK,EACVotG,EAAKr3G,KAAKkK,EACVotG,EAAKt3G,KAAKiR,EACVsmG,EAAMD,EAAG3vF,SAASA,SAElB8vF,EAAML,EAAGzvF,SACT+wF,EAAMrB,EAAG1vF,SAET1f,EAAIwvG,EAAIvwF,OAAOuwF,GAAKtwF,QAAQswF,GAAKtwF,QAAQnd,EAAEwd,OAAO+vF,IAElDoB,EAAOvB,EAAGlwF,OAAOkwF,GAEjBl9E,GADJy+E,EAAOA,EAAKxxF,QAAQwxF,IACNnxF,OAAOkxF,GACjBtC,EAAKnuG,EAAE0f,SAASN,QAAQ6S,EAAGhT,OAAOgT,IAClCC,EAAKD,EAAG7S,QAAQ+uF,GAEhBwC,EAAOF,EAAI/wF,SAGfixF,GADAA,GADAA,EAAOA,EAAKzxF,QAAQyxF,IACRzxF,QAAQyxF,IACRzxF,QAAQyxF,GACpB,IAAIvC,EAAKpuG,EAAEuf,OAAO2S,GAAI9S,QAAQuxF,GAC1BzB,EAAKE,EAAGnwF,OAAOmwF,GAAI7vF,OAAO8vF,GAE9B,OAAOt3G,KAAKg+B,MAAMW,OAAOy3E,EAAIC,EAAIc,IAGnC5C,EAAO/2G,UAAUq7G,KAAO,WACtB,IAAK74G,KAAKg+B,MAAM81E,MACd,OAAO9zG,KAAKwgC,MAAMpmB,IAAIpa,MAMxB,IAAIg4G,EAAKh4G,KAAKiK,EAAE0d,SAEZswF,EAAKj4G,KAAKkK,EAAEyd,SAEZmxF,EAAK94G,KAAKiR,EAAE0W,SAEZuwF,EAAOD,EAAGtwF,SAEV7hB,EAAIkyG,EAAG9wF,OAAO8wF,GAAI7wF,QAAQ6wF,GAE1Be,EAAKjzG,EAAE6hB,SAEP7nB,EAAIE,KAAKiK,EAAEid,OAAO+wF,GAAItwF,SAASN,QAAQ2wF,GAAI3wF,QAAQ6wF,GAKnDn5B,GAFJj/E,GADAA,GADAA,EAAIA,EAAEqnB,QAAQrnB,IACRonB,OAAOpnB,GAAGqnB,QAAQrnB,IAClBunB,QAAQ0xF,IAEHpxF,SAEPxP,EAAI+/F,EAAK/wF,QAAQ+wF,GAGrB//F,GADAA,GADAA,EAAIA,EAAEgP,QAAQhP,IACRgP,QAAQhP,IACRgP,QAAQhP,GAEd,IAAIqS,EAAI1kB,EAAEqhB,QAAQrnB,GAAG6nB,SAASN,QAAQ0xF,GAAI1xF,QAAQ03D,GAAI13D,QAAQlP,GAE1D6gG,EAAOf,EAAGzwF,OAAOgD,GAErBwuF,GADAA,EAAOA,EAAK7xF,QAAQ6xF,IACR7xF,QAAQ6xF,GACpB,IAAI5C,EAAKp2G,KAAKiK,EAAEud,OAAOu3D,GAAI13D,QAAQ2xF,GAEnC5C,GADAA,EAAKA,EAAGjvF,QAAQivF,IACRjvF,QAAQivF,GAEhB,IAAIC,EAAKr2G,KAAKkK,EAAEsd,OAAOgD,EAAEhD,OAAOrP,EAAEkP,QAAQmD,IAAInD,QAAQvnB,EAAE0nB,OAAOu3D,KAG/Ds3B,GADAA,GADAA,EAAKA,EAAGlvF,QAAQkvF,IACRlvF,QAAQkvF,IACRlvF,QAAQkvF,GAEhB,IAAIc,EAAKn3G,KAAKiR,EAAEiW,OAAOpnB,GAAG6nB,SAASN,QAAQyxF,GAAIzxF,QAAQ03D,GAEvD,OAAO/+E,KAAKg+B,MAAMW,OAAOy3E,EAAIC,EAAIc,IAGnC5C,EAAO/2G,UAAU+O,IAAM,SAAawE,EAAGkoG,GAGrC,OAFAloG,EAAI,IAAIb,EAAGa,EAAGkoG,GAEPj5G,KAAKg+B,MAAMe,SAAS/+B,KAAM+Q,IAGnCwjG,EAAO/2G,UAAUipB,GAAK,SAAY5T,GAChC,GAAe,WAAXA,EAAErO,KACJ,OAAOxE,KAAKymB,GAAG5T,EAAE4sB,OAEnB,GAAIz/B,OAAS6S,EACX,OAAO,EAGT,IAAImkG,EAAKh3G,KAAKiR,EAAE0W,SACZovF,EAAMlkG,EAAE5B,EAAE0W,SACd,GAA2D,IAAvD3nB,KAAKiK,EAAEud,OAAOuvF,GAAK1vF,QAAQxU,EAAE5I,EAAEud,OAAOwvF,IAAKllG,KAAK,GAClD,OAAO,EAGT,IAAIonG,EAAKlC,EAAGxvF,OAAOxnB,KAAKiR,GACpBkoG,EAAMpC,EAAIvvF,OAAO3U,EAAE5B,GACvB,OAA8D,IAAvDjR,KAAKkK,EAAEsd,OAAO2xF,GAAK9xF,QAAQxU,EAAE3I,EAAEsd,OAAO0xF,IAAKpnG,KAAK,IAGzDyiG,EAAO/2G,UAAU47G,OAAS,SAAgBnvG,GACxC,IAAIovG,EAAKr5G,KAAKiR,EAAE0W,SACZtG,EAAKpX,EAAE0c,MAAM3mB,KAAKg+B,MAAM5oB,KAAKoS,OAAO6xF,GACxC,GAAuB,IAAnBr5G,KAAKiK,EAAE6L,IAAIuL,GACb,OAAO,EAIT,IAFA,IAAIi0C,EAAKrrD,EAAE+G,QACPmH,EAAInY,KAAKg+B,MAAMH,KAAKrW,OAAO6xF,KACtB,CAEP,GADA/jD,EAAGp7C,KAAKla,KAAKg+B,MAAMn4B,GACfyvD,EAAGx/C,IAAI9V,KAAKg+B,MAAMnrB,IAAM,EAC1B,OAAO,EAGT,GADAwO,EAAG8F,QAAQhP,GACY,IAAnBnY,KAAKiK,EAAE6L,IAAIuL,GACb,OAAO,IAIbkzF,EAAO/2G,UAAUiN,QAAU,WACzB,OAAIzK,KAAK+yC,aACA,uBACF,iBAAmB/yC,KAAKiK,EAAErF,SAAS,GAAI,GAC1C,OAAS5E,KAAKkK,EAAEtF,SAAS,GAAI,GAC7B,OAAS5E,KAAKiR,EAAErM,SAAS,GAAI,GAAK,KAGxC2vG,EAAO/2G,UAAUu1C,WAAa,WAE5B,OAA0B,IAAnB/yC,KAAKiR,EAAEa,KAAK,K,6BCt6BrB,IAAI5B,EAAKlS,EAAQ,IACbuU,EAAWvU,EAAQ,GACnB81B,EAAO91B,EAAQ,IAEfiS,EAAQjS,EAAQ,GAEpB,SAASs7G,EAAUp8E,GACjBpJ,EAAK/zB,KAAKC,KAAM,OAAQk9B,GAExBl9B,KAAKgK,EAAI,IAAIkG,EAAGgtB,EAAKlzB,EAAG,IAAI2c,MAAM3mB,KAAKoV,KACvCpV,KAAK4F,EAAI,IAAIsK,EAAGgtB,EAAKt3B,EAAG,IAAI+gB,MAAM3mB,KAAKoV,KACvCpV,KAAKu5G,GAAK,IAAIrpG,EAAG,GAAGyW,MAAM3mB,KAAKoV,KAAK4S,UACpChoB,KAAKo9B,IAAM,IAAIltB,EAAG,GAAGyW,MAAM3mB,KAAKoV,KAChCpV,KAAKw5G,IAAMx5G,KAAKu5G,GAAG/xF,OAAOxnB,KAAKgK,EAAEkd,OAAOlnB,KAAKo9B,MAc/C,SAASg3E,EAAMp2E,EAAO/zB,EAAGgH,GACvB6iB,EAAKiK,UAAUh+B,KAAKC,KAAMg+B,EAAO,cACvB,OAAN/zB,GAAoB,OAANgH,GAChBjR,KAAKiK,EAAIjK,KAAKg+B,MAAMhU,IACpBhqB,KAAKiR,EAAIjR,KAAKg+B,MAAMb,OAEpBn9B,KAAKiK,EAAI,IAAIiG,EAAGjG,EAAG,IACnBjK,KAAKiR,EAAI,IAAIf,EAAGe,EAAG,IACdjR,KAAKiK,EAAEmL,MACVpV,KAAKiK,EAAIjK,KAAKiK,EAAE0c,MAAM3mB,KAAKg+B,MAAM5oB,MAC9BpV,KAAKiR,EAAEmE,MACVpV,KAAKiR,EAAIjR,KAAKiR,EAAE0V,MAAM3mB,KAAKg+B,MAAM5oB,OAvBvC7C,EAAS+mG,EAAWxlF,GACpB32B,EAAOC,QAAUk8G,EAEjBA,EAAU97G,UAAU2gC,SAAW,SAAkBD,GAC/C,IAAIj0B,EAAIi0B,EAAM2G,YAAY56B,EACtB0b,EAAK1b,EAAE0d,SACPiuF,EAAMjwF,EAAG6B,OAAOvd,GAAGid,OAAOvB,EAAG6B,OAAOxnB,KAAKgK,IAAIkd,OAAOjd,GAGxD,OAA+B,IAFvB2rG,EAAI9tF,UAEHH,SAAS7R,IAAI8/F,IAiBxBrjG,EAAS6hG,EAAOtgF,EAAKiK,WAErBu7E,EAAU97G,UAAUoiC,YAAc,SAAqBn0B,EAAOmH,GAC5D,OAAO5S,KAAKk+B,MAAMjuB,EAAMI,QAAQ5E,EAAOmH,GAAM,IAG/C0mG,EAAU97G,UAAU0gC,MAAQ,SAAej0B,EAAGgH,GAC5C,OAAO,IAAImjG,EAAMp0G,KAAMiK,EAAGgH,IAG5BqoG,EAAU97G,UAAU6/B,cAAgB,SAAuBl5B,GACzD,OAAOiwG,EAAM4B,SAASh2G,KAAMmE,IAG9BiwG,EAAM52G,UAAU2iC,WAAa,aAI7Bi0E,EAAM52G,UAAUuiC,QAAU,WACxB,OAAO//B,KAAKigC,OAAO5vB,QAAQ,KAAMrQ,KAAKg+B,MAAMnrB,EAAEnP,eAGhD0wG,EAAM4B,SAAW,SAAkBh4E,EAAO75B,GACxC,OAAO,IAAIiwG,EAAMp2E,EAAO75B,EAAI,GAAIA,EAAI,IAAM65B,EAAMhU,MAGlDoqF,EAAM52G,UAAUiN,QAAU,WACxB,OAAIzK,KAAK+yC,aACA,sBACF,gBAAkB/yC,KAAKiK,EAAE8c,UAAUniB,SAAS,GAAI,GACnD,OAAS5E,KAAKiR,EAAE8V,UAAUniB,SAAS,GAAI,GAAK,KAGlDwvG,EAAM52G,UAAUu1C,WAAa,WAE3B,OAA0B,IAAnB/yC,KAAKiR,EAAEa,KAAK,IAGrBsiG,EAAM52G,UAAUgjC,IAAM,WAKpB,IAEI2yB,EAFInzD,KAAKiK,EAAEid,OAAOlnB,KAAKiR,GAEhB0W,SAIPg2C,EAFI39D,KAAKiK,EAAEmd,OAAOpnB,KAAKiR,GAEhB0W,SAEP1f,EAAIkrD,EAAG/rC,OAAOu2C,GAEdy4C,EAAKjjD,EAAG3rC,OAAOm2C,GAEfw5C,EAAKlvG,EAAEuf,OAAOm2C,EAAGz2C,OAAOlnB,KAAKg+B,MAAMw7E,IAAIhyF,OAAOvf,KAClD,OAAOjI,KAAKg+B,MAAME,MAAMk4E,EAAIe,IAG9B/C,EAAM52G,UAAU4c,IAAM,WACpB,MAAM,IAAI3a,MAAM,sCAGlB20G,EAAM52G,UAAUi8G,QAAU,SAAiB5mG,EAAGqR,GAK5C,IAAIla,EAAIhK,KAAKiK,EAAEid,OAAOlnB,KAAKiR,GAEvBrL,EAAI5F,KAAKiK,EAAEmd,OAAOpnB,KAAKiR,GAEvBhJ,EAAI4K,EAAE5I,EAAEid,OAAOrU,EAAE5B,GAIjBmiD,EAFIvgD,EAAE5I,EAAEmd,OAAOvU,EAAE5B,GAEVuW,OAAOxd,GAEdqpB,EAAKprB,EAAEuf,OAAO5hB,GAEdwwG,EAAKlyF,EAAKjT,EAAEuW,OAAO4rC,EAAGlsC,OAAOmM,GAAI1L,UAEjCwvF,EAAKjzF,EAAKja,EAAEud,OAAO4rC,EAAG/rC,QAAQgM,GAAI1L,UACtC,OAAO3nB,KAAKg+B,MAAME,MAAMk4E,EAAIe,IAG9B/C,EAAM52G,UAAU+O,IAAM,SAAawE,GAMjC,IALA,IAAIoH,EAAIpH,EAAEC,QACNhH,EAAIhK,KACJ4F,EAAI5F,KAAKg+B,MAAME,MAAM,KAAM,MAGtBvtB,EAAO,GAAkB,IAAdwH,EAAErG,KAAK,GAAUqG,EAAE7G,OAAO,GAC5CX,EAAKrP,KAAK6W,EAAEhH,MAAM,IAEpB,IAAK,IAAI9P,EAAIsP,EAAKlS,OAAS,EAAG4C,GAAK,EAAGA,IACpB,IAAZsP,EAAKtP,IAEP2I,EAAIA,EAAEyvG,QAAQ7zG,EARV5F,MAUJ4F,EAAIA,EAAE46B,QAGN56B,EAAIoE,EAAEyvG,QAAQ7zG,EAbV5F,MAeJgK,EAAIA,EAAEw2B,OAGV,OAAO56B,GAGTwuG,EAAM52G,UAAUg5G,OAAS,WACvB,MAAM,IAAI/2G,MAAM,sCAGlB20G,EAAM52G,UAAUk8G,QAAU,WACxB,MAAM,IAAIj6G,MAAM,sCAGlB20G,EAAM52G,UAAUipB,GAAK,SAAYsrF,GAC/B,OAAyC,IAAlC/xG,KAAKigC,OAAOnqB,IAAIi8F,EAAM9xE,SAG/Bm0E,EAAM52G,UAAUqnC,UAAY,WAG1B,OAFA7kC,KAAKiK,EAAIjK,KAAKiK,EAAEud,OAAOxnB,KAAKiR,EAAE+W,WAC9BhoB,KAAKiR,EAAIjR,KAAKg+B,MAAMhU,IACbhqB,MAGTo0G,EAAM52G,UAAUyiC,KAAO,WAIrB,OAFAjgC,KAAK6kC,YAEE7kC,KAAKiK,EAAE8c,Y,6BC9KhB,IAAI9W,EAAQjS,EAAQ,GAChBkS,EAAKlS,EAAQ,IACbuU,EAAWvU,EAAQ,GACnB81B,EAAO91B,EAAQ,IAEf4R,EAASK,EAAML,OAEnB,SAAS+pG,EAAaz8E,GAEpBl9B,KAAK45G,QAA2B,KAAP,EAAT18E,EAAKlzB,GACrBhK,KAAK65G,MAAQ75G,KAAK45G,UAA6B,KAAR,EAAT18E,EAAKlzB,GACnChK,KAAK+iB,SAAW/iB,KAAK65G,MAErB/lF,EAAK/zB,KAAKC,KAAM,UAAWk9B,GAE3Bl9B,KAAKgK,EAAI,IAAIkG,EAAGgtB,EAAKlzB,EAAG,IAAIwa,KAAKxkB,KAAKoV,IAAItP,GAC1C9F,KAAKgK,EAAIhK,KAAKgK,EAAE2c,MAAM3mB,KAAKoV,KAC3BpV,KAAKiI,EAAI,IAAIiI,EAAGgtB,EAAKj1B,EAAG,IAAI0e,MAAM3mB,KAAKoV,KACvCpV,KAAKyxC,GAAKzxC,KAAKiI,EAAE0f,SACjB3nB,KAAKuT,EAAI,IAAIrD,EAAGgtB,EAAK3pB,EAAG,IAAIoT,MAAM3mB,KAAKoV,KACvCpV,KAAK6pE,GAAK7pE,KAAKuT,EAAE2T,OAAOlnB,KAAKuT,GAE7B3D,GAAQ5P,KAAK45G,SAAwC,IAA7B55G,KAAKiI,EAAE8e,UAAUjV,KAAK,IAC9C9R,KAAK85G,KAAwB,KAAP,EAAT58E,EAAKj1B,GAwFpB,SAASmsG,EAAMp2E,EAAO/zB,EAAGC,EAAG+G,EAAGkH,GAC7B2b,EAAKiK,UAAUh+B,KAAKC,KAAMg+B,EAAO,cACvB,OAAN/zB,GAAoB,OAANC,GAAoB,OAAN+G,GAC9BjR,KAAKiK,EAAIjK,KAAKg+B,MAAMb,KACpBn9B,KAAKkK,EAAIlK,KAAKg+B,MAAMhU,IACpBhqB,KAAKiR,EAAIjR,KAAKg+B,MAAMhU,IACpBhqB,KAAKmY,EAAInY,KAAKg+B,MAAMb,KACpBn9B,KAAKw0G,MAAO,IAEZx0G,KAAKiK,EAAI,IAAIiG,EAAGjG,EAAG,IACnBjK,KAAKkK,EAAI,IAAIgG,EAAGhG,EAAG,IACnBlK,KAAKiR,EAAIA,EAAI,IAAIf,EAAGe,EAAG,IAAMjR,KAAKg+B,MAAMhU,IACxChqB,KAAKmY,EAAIA,GAAK,IAAIjI,EAAGiI,EAAG,IACnBnY,KAAKiK,EAAEmL,MACVpV,KAAKiK,EAAIjK,KAAKiK,EAAE0c,MAAM3mB,KAAKg+B,MAAM5oB,MAC9BpV,KAAKkK,EAAEkL,MACVpV,KAAKkK,EAAIlK,KAAKkK,EAAEyc,MAAM3mB,KAAKg+B,MAAM5oB,MAC9BpV,KAAKiR,EAAEmE,MACVpV,KAAKiR,EAAIjR,KAAKiR,EAAE0V,MAAM3mB,KAAKg+B,MAAM5oB,MAC/BpV,KAAKmY,IAAMnY,KAAKmY,EAAE/C,MACpBpV,KAAKmY,EAAInY,KAAKmY,EAAEwO,MAAM3mB,KAAKg+B,MAAM5oB,MACnCpV,KAAKw0G,KAAOx0G,KAAKiR,IAAMjR,KAAKg+B,MAAMhU,IAG9BhqB,KAAKg+B,MAAMjb,WAAa/iB,KAAKmY,IAC/BnY,KAAKmY,EAAInY,KAAKiK,EAAEud,OAAOxnB,KAAKkK,GACvBlK,KAAKw0G,OACRx0G,KAAKmY,EAAInY,KAAKmY,EAAEqP,OAAOxnB,KAAKiR,EAAE+W,cAjHtCzV,EAASonG,EAAc7lF,GACvB32B,EAAOC,QAAUu8G,EAEjBA,EAAan8G,UAAUu8G,MAAQ,SAAetpG,GAC5C,OAAIzQ,KAAK65G,MACAppG,EAAIwX,SAEJjoB,KAAKgK,EAAEwd,OAAO/W,IAGzBkpG,EAAan8G,UAAUw8G,MAAQ,SAAevpG,GAC5C,OAAIzQ,KAAK85G,KACArpG,EAEAzQ,KAAKiI,EAAEuf,OAAO/W,IAIzBkpG,EAAan8G,UAAUmhC,OAAS,SAAgB10B,EAAGC,EAAG+G,EAAGkH,GACvD,OAAOnY,KAAKk+B,MAAMj0B,EAAGC,EAAG+G,EAAGkH,IAG7BwhG,EAAan8G,UAAUqiC,WAAa,SAAoB51B,EAAGsX,IACzDtX,EAAI,IAAIiG,EAAGjG,EAAG,KACPmL,MACLnL,EAAIA,EAAE0c,MAAM3mB,KAAKoV,MAEnB,IAAIuQ,EAAK1b,EAAE0d,SACPiuF,EAAM51G,KAAKyxC,GAAGrqB,OAAOpnB,KAAKgK,EAAEwd,OAAO7B,IACnCs0F,EAAMj6G,KAAKgqB,IAAI5C,OAAOpnB,KAAKyxC,GAAGjqB,OAAOxnB,KAAKuT,GAAGiU,OAAO7B,IAEpDuvF,EAAKU,EAAIpuF,OAAOyyF,EAAIjyF,WACpB9d,EAAIgrG,EAAGptF,UACX,GAA6C,IAAzC5d,EAAEyd,SAASP,OAAO8tF,GAAIp/F,IAAI9V,KAAKm9B,MACjC,MAAM,IAAI19B,MAAM,iBAElB,IAAI2R,EAAQlH,EAAE6c,UAAU3V,QAIxB,OAHImQ,IAAQnQ,IAAUmQ,GAAOnQ,KAC3BlH,EAAIA,EAAE+d,UAEDjoB,KAAKk+B,MAAMj0B,EAAGC,IAGvByvG,EAAan8G,UAAU08G,WAAa,SAAoBhwG,EAAGqX,IACzDrX,EAAI,IAAIgG,EAAGhG,EAAG,KACPkL,MACLlL,EAAIA,EAAEyc,MAAM3mB,KAAKoV,MAGnB,IAAI8/F,EAAKhrG,EAAEyd,SACPsyF,EAAM/E,EAAG9tF,OAAOpnB,KAAKyxC,IACrBmkE,EAAMV,EAAG1tF,OAAOxnB,KAAKuT,GAAGiU,OAAOxnB,KAAKyxC,IAAIrqB,OAAOpnB,KAAKgK,GACpD2b,EAAKs0F,EAAIzyF,OAAOouF,EAAI5tF,WAExB,GAA0B,IAAtBrC,EAAG7P,IAAI9V,KAAKm9B,MAAa,CAC3B,GAAI5b,EACF,MAAM,IAAI9hB,MAAM,iBAEhB,OAAOO,KAAKk+B,MAAMl+B,KAAKm9B,KAAMjzB,GAGjC,IAAID,EAAI0b,EAAGmC,UACX,GAA6C,IAAzC7d,EAAE0d,SAASP,OAAOzB,GAAI7P,IAAI9V,KAAKm9B,MACjC,MAAM,IAAI19B,MAAM,iBAKlB,OAHIwK,EAAE8c,UAAU3V,UAAYmQ,IAC1BtX,EAAIA,EAAEge,UAEDjoB,KAAKk+B,MAAMj0B,EAAGC,IAGvByvG,EAAan8G,UAAU2gC,SAAW,SAAkBD,GAClD,GAAIA,EAAM6U,aACR,OAAO,EAGT7U,EAAM2G,YAEN,IAAIlf,EAAKuY,EAAMj0B,EAAE0d,SACbutF,EAAKh3E,EAAMh0B,EAAEyd,SACbsyF,EAAMt0F,EAAG6B,OAAOxnB,KAAKgK,GAAGkd,OAAOguF,GAC/BU,EAAM51G,KAAKyxC,GAAGjqB,OAAOxnB,KAAKgqB,IAAI9C,OAAOlnB,KAAKuT,EAAEiU,OAAO7B,GAAI6B,OAAO0tF,KAElE,OAAwB,IAAjB+E,EAAInkG,IAAI8/F,IAkCjBrjG,EAAS6hG,EAAOtgF,EAAKiK,WAErB47E,EAAan8G,UAAU6/B,cAAgB,SAAuBl5B,GAC5D,OAAOiwG,EAAM4B,SAASh2G,KAAMmE,IAG9Bw1G,EAAan8G,UAAU0gC,MAAQ,SAAej0B,EAAGC,EAAG+G,EAAGkH,GACrD,OAAO,IAAIi8F,EAAMp0G,KAAMiK,EAAGC,EAAG+G,EAAGkH,IAGlCi8F,EAAM4B,SAAW,SAAkBh4E,EAAO75B,GACxC,OAAO,IAAIiwG,EAAMp2E,EAAO75B,EAAI,GAAIA,EAAI,GAAIA,EAAI,KAG9CiwG,EAAM52G,UAAUiN,QAAU,WACxB,OAAIzK,KAAK+yC,aACA,sBACF,gBAAkB/yC,KAAKiK,EAAE8c,UAAUniB,SAAS,GAAI,GACnD,OAAS5E,KAAKkK,EAAE6c,UAAUniB,SAAS,GAAI,GACvC,OAAS5E,KAAKiR,EAAE8V,UAAUniB,SAAS,GAAI,GAAK,KAGlDwvG,EAAM52G,UAAUu1C,WAAa,WAE3B,OAA0B,IAAnB/yC,KAAKiK,EAAE6H,KAAK,KACO,IAAvB9R,KAAKkK,EAAE4L,IAAI9V,KAAKiR,IAChBjR,KAAKw0G,MAAqC,IAA7Bx0G,KAAKkK,EAAE4L,IAAI9V,KAAKg+B,MAAM/1B,KAGxCmsG,EAAM52G,UAAU28G,QAAU,WAMxB,IAAInwG,EAAIhK,KAAKiK,EAAE0d,SAEX/hB,EAAI5F,KAAKkK,EAAEyd,SAEX1f,EAAIjI,KAAKiR,EAAE0W,SACf1f,EAAIA,EAAEkf,QAAQlf,GAEd,IAAIsL,EAAIvT,KAAKg+B,MAAM+7E,MAAM/vG,GAErBlK,EAAIE,KAAKiK,EAAEid,OAAOlnB,KAAKkK,GAAGyd,SAASN,QAAQrd,GAAGqd,QAAQzhB,GAEtD6J,EAAI8D,EAAE2T,OAAOthB,GAEb4+B,EAAI/0B,EAAE2X,OAAOnf,GAEb+a,EAAIzP,EAAE6T,OAAOxhB,GAEbwwG,EAAKt2G,EAAE0nB,OAAOgd,GAEd6xE,EAAK5mG,EAAE+X,OAAOxE,GAEdo3F,EAAKt6G,EAAE0nB,OAAOxE,GAEdm0F,EAAK3yE,EAAEhd,OAAO/X,GAClB,OAAOzP,KAAKg+B,MAAME,MAAMk4E,EAAIC,EAAIc,EAAIiD,IAGtChG,EAAM52G,UAAU68G,SAAW,WAQzB,IAMIjE,EACAC,EACAc,EACAr3G,EACAkjB,EACAnc,EAXAjB,EAAI5F,KAAKiK,EAAEid,OAAOlnB,KAAKkK,GAAGyd,SAE1B1f,EAAIjI,KAAKiK,EAAE0d,SAEXpU,EAAIvT,KAAKkK,EAAEyd,SAQf,GAAI3nB,KAAKg+B,MAAM47E,QAAS,CAItB,IAAIp1E,GAFJ1kC,EAAIE,KAAKg+B,MAAM+7E,MAAM9xG,IAEXif,OAAO3T,GACbvT,KAAKw0G,MAEP4B,EAAKxwG,EAAEwhB,OAAOnf,GAAGmf,OAAO7T,GAAGiU,OAAOgd,EAAEpd,OAAOpnB,KAAKg+B,MAAMZ,MAEtDi5E,EAAK7xE,EAAEhd,OAAO1nB,EAAEsnB,OAAO7T,IAEvB4jG,EAAK3yE,EAAE7c,SAASP,OAAOod,GAAGpd,OAAOod,KAGjCxhB,EAAIhjB,KAAKiR,EAAE0W,SAEX9gB,EAAI29B,EAAEpd,OAAOpE,GAAGqE,QAAQrE,GAExBozF,EAAKxwG,EAAEwhB,OAAOnf,GAAGof,QAAQ9T,GAAGiU,OAAO3gB,GAEnCwvG,EAAK7xE,EAAEhd,OAAO1nB,EAAEsnB,OAAO7T,IAEvB4jG,EAAK3yE,EAAEhd,OAAO3gB,SAIhB/G,EAAImI,EAAEif,OAAO3T,GAEbyP,EAAIhjB,KAAKg+B,MAAMg8E,MAAMh6G,KAAKiR,GAAG0W,SAE7B9gB,EAAI/G,EAAEsnB,OAAOpE,GAAGoE,OAAOpE,GAEvBozF,EAAKp2G,KAAKg+B,MAAMg8E,MAAMp0G,EAAEyhB,QAAQvnB,IAAI0nB,OAAO3gB,GAE3CwvG,EAAKr2G,KAAKg+B,MAAMg8E,MAAMl6G,GAAG0nB,OAAOvf,EAAEof,QAAQ9T,IAE1C4jG,EAAKr3G,EAAE0nB,OAAO3gB,GAEhB,OAAO7G,KAAKg+B,MAAME,MAAMk4E,EAAIC,EAAIc,IAGlC/C,EAAM52G,UAAUgjC,IAAM,WACpB,OAAIxgC,KAAK+yC,aACA/yC,KAGLA,KAAKg+B,MAAMjb,SACN/iB,KAAKm6G,UAELn6G,KAAKq6G,YAGhBjG,EAAM52G,UAAU88G,QAAU,SAAiBznG,GAMzC,IAAI7I,EAAIhK,KAAKkK,EAAEkd,OAAOpnB,KAAKiK,GAAGud,OAAO3U,EAAE3I,EAAEkd,OAAOvU,EAAE5I,IAE9CrE,EAAI5F,KAAKkK,EAAEgd,OAAOlnB,KAAKiK,GAAGud,OAAO3U,EAAE3I,EAAEgd,OAAOrU,EAAE5I,IAE9ChC,EAAIjI,KAAKmY,EAAEqP,OAAOxnB,KAAKg+B,MAAM6rC,IAAIriD,OAAO3U,EAAEsF,GAE1C5E,EAAIvT,KAAKiR,EAAEuW,OAAO3U,EAAE5B,EAAEiW,OAAOrU,EAAE5B,IAE/BnR,EAAI8F,EAAEwhB,OAAOpd,GAEbw6B,EAAIjxB,EAAE6T,OAAOnf,GAEbwH,EAAI8D,EAAE2T,OAAOjf,GAEb+a,EAAIpd,EAAEshB,OAAOld,GAEbosG,EAAKt2G,EAAE0nB,OAAOgd,GAEd6xE,EAAK5mG,EAAE+X,OAAOxE,GAEdo3F,EAAKt6G,EAAE0nB,OAAOxE,GAEdm0F,EAAK3yE,EAAEhd,OAAO/X,GAClB,OAAOzP,KAAKg+B,MAAME,MAAMk4E,EAAIC,EAAIc,EAAIiD,IAGtChG,EAAM52G,UAAU+8G,SAAW,SAAkB1nG,GAO3C,IAgBIwjG,EACAc,EAjBAntG,EAAIhK,KAAKiR,EAAEuW,OAAO3U,EAAE5B,GAEpBrL,EAAIoE,EAAE2d,SAEN1f,EAAIjI,KAAKiK,EAAEud,OAAO3U,EAAE5I,GAEpBsJ,EAAIvT,KAAKkK,EAAEsd,OAAO3U,EAAE3I,GAEpBpK,EAAIE,KAAKg+B,MAAMzqB,EAAEiU,OAAOvf,GAAGuf,OAAOjU,GAElCixB,EAAI5+B,EAAEwhB,OAAOtnB,GAEb2P,EAAI7J,EAAEshB,OAAOpnB,GAEb2oB,EAAMzoB,KAAKiK,EAAEid,OAAOlnB,KAAKkK,GAAGsd,OAAO3U,EAAE5I,EAAEid,OAAOrU,EAAE3I,IAAImd,QAAQpf,GAAGof,QAAQ9T,GACvE6iG,EAAKpsG,EAAEwd,OAAOgd,GAAGhd,OAAOiB,GAc5B,OAXIzoB,KAAKg+B,MAAM47E,SAEbvD,EAAKrsG,EAAEwd,OAAO/X,GAAG+X,OAAOjU,EAAE6T,OAAOpnB,KAAKg+B,MAAM+7E,MAAM9xG,KAElDkvG,EAAK3yE,EAAEhd,OAAO/X,KAGd4mG,EAAKrsG,EAAEwd,OAAO/X,GAAG+X,OAAOjU,EAAE6T,OAAOnf,IAEjCkvG,EAAKn3G,KAAKg+B,MAAMg8E,MAAMx1E,GAAGhd,OAAO/X,IAE3BzP,KAAKg+B,MAAME,MAAMk4E,EAAIC,EAAIc,IAGlC/C,EAAM52G,UAAU4c,IAAM,SAAavH,GACjC,OAAI7S,KAAK+yC,aACAlgC,EACLA,EAAEkgC,aACG/yC,KAELA,KAAKg+B,MAAMjb,SACN/iB,KAAKs6G,QAAQznG,GAEb7S,KAAKu6G,SAAS1nG,IAGzBuhG,EAAM52G,UAAU+O,IAAM,SAAawE,GACjC,OAAI/Q,KAAKugC,YAAYxvB,GACZ/Q,KAAKg+B,MAAMI,aAAap+B,KAAM+Q,GAE9B/Q,KAAKg+B,MAAMe,SAAS/+B,KAAM+Q,IAGrCqjG,EAAM52G,UAAUg5G,OAAS,SAAgBhlG,EAAIqB,EAAGpB,GAC9C,OAAOzR,KAAKg+B,MAAMmB,YAAY,EAAG,CAAEn/B,KAAM6S,GAAK,CAAErB,EAAIC,GAAM,GAAG,IAG/D2iG,EAAM52G,UAAUi5G,QAAU,SAAiBjlG,EAAIqB,EAAGpB,GAChD,OAAOzR,KAAKg+B,MAAMmB,YAAY,EAAG,CAAEn/B,KAAM6S,GAAK,CAAErB,EAAIC,GAAM,GAAG,IAG/D2iG,EAAM52G,UAAUqnC,UAAY,WAC1B,GAAI7kC,KAAKw0G,KACP,OAAOx0G,KAGT,IAAIuzF,EAAKvzF,KAAKiR,EAAE+W,UAOhB,OANAhoB,KAAKiK,EAAIjK,KAAKiK,EAAEud,OAAO+rE,GACvBvzF,KAAKkK,EAAIlK,KAAKkK,EAAEsd,OAAO+rE,GACnBvzF,KAAKmY,IACPnY,KAAKmY,EAAInY,KAAKmY,EAAEqP,OAAO+rE,IACzBvzF,KAAKiR,EAAIjR,KAAKg+B,MAAMhU,IACpBhqB,KAAKw0G,MAAO,EACLx0G,MAGTo0G,EAAM52G,UAAUwb,IAAM,WACpB,OAAOhZ,KAAKg+B,MAAME,MAAMl+B,KAAKiK,EAAEge,SAC7BjoB,KAAKkK,EACLlK,KAAKiR,EACLjR,KAAKmY,GAAKnY,KAAKmY,EAAE8P,WAGrBmsF,EAAM52G,UAAUyiC,KAAO,WAErB,OADAjgC,KAAK6kC,YACE7kC,KAAKiK,EAAE8c,WAGhBqtF,EAAM52G,UAAU0iC,KAAO,WAErB,OADAlgC,KAAK6kC,YACE7kC,KAAKkK,EAAE6c,WAGhBqtF,EAAM52G,UAAUipB,GAAK,SAAYsrF,GAC/B,OAAO/xG,OAAS+xG,GACyB,IAAlC/xG,KAAKigC,OAAOnqB,IAAIi8F,EAAM9xE,SACY,IAAlCjgC,KAAKkgC,OAAOpqB,IAAIi8F,EAAM7xE,SAG/Bk0E,EAAM52G,UAAU47G,OAAS,SAAgBnvG,GACvC,IAAIoX,EAAKpX,EAAE0c,MAAM3mB,KAAKg+B,MAAM5oB,KAAKoS,OAAOxnB,KAAKiR,GAC7C,GAAuB,IAAnBjR,KAAKiK,EAAE6L,IAAIuL,GACb,OAAO,EAIT,IAFA,IAAIi0C,EAAKrrD,EAAE+G,QACPmH,EAAInY,KAAKg+B,MAAMH,KAAKrW,OAAOxnB,KAAKiR,KAC3B,CAEP,GADAqkD,EAAGp7C,KAAKla,KAAKg+B,MAAMn4B,GACfyvD,EAAGx/C,IAAI9V,KAAKg+B,MAAMnrB,IAAM,EAC1B,OAAO,EAGT,GADAwO,EAAG8F,QAAQhP,GACY,IAAnBnY,KAAKiK,EAAE6L,IAAIuL,GACb,OAAO,IAKb+yF,EAAM52G,UAAUshC,IAAMs1E,EAAM52G,UAAUqnC,UACtCuvE,EAAM52G,UAAUohC,SAAWw1E,EAAM52G,UAAU4c,K,6BChb3Chd,EAAQ+rC,KAAOnrC,EAAQ,KACvBZ,EAAQgsC,OAASprC,EAAQ,KACzBZ,EAAQisC,OAASrrC,EAAQ,KACzBZ,EAAQksC,OAAStrC,EAAQ,KACzBZ,EAAQmsC,OAASvrC,EAAQ,M,6BCJzB,IAAIiS,EAAQjS,EAAQ,GAChBm1C,EAASn1C,EAAQ,IACjBouD,EAAYpuD,EAAQ,KAEpBmV,EAASlD,EAAMkD,OACfC,EAAQnD,EAAMmD,MACdI,EAAUvD,EAAMuD,QAChBu4C,EAAOK,EAAUL,KACjB30B,EAAY+b,EAAO/b,UAEnBojF,EAAS,CACX,WAAY,WACZ,WAAY,YAGd,SAASC,IACP,KAAMz6G,gBAAgBy6G,GACpB,OAAO,IAAIA,EAEbrjF,EAAUr3B,KAAKC,MACfA,KAAKgjB,EAAI,CACP,WAAY,WAAY,WACxB,UAAY,YACdhjB,KAAKggD,EAAI,IAAI7+C,MAAM,IAGrB8O,EAAMsC,SAASkoG,EAAMrjF,GACrBj6B,EAAOC,QAAUq9G,EAEjBA,EAAKvlF,UAAY,IACjBulF,EAAKljF,QAAU,IACfkjF,EAAKjjF,aAAe,GACpBijF,EAAKhjF,UAAY,GAEjBgjF,EAAKj9G,UAAUouB,QAAU,SAAiB/b,EAAK1K,GAG7C,IAFA,IAAI66C,EAAIhgD,KAAKggD,EAEJ3+C,EAAI,EAAGA,EAAI,GAAIA,IACtB2+C,EAAE3+C,GAAKwO,EAAI1K,EAAQ9D,GAErB,KAAMA,EAAI2+C,EAAEvhD,OAAQ4C,IAClB2+C,EAAE3+C,GAAK8R,EAAO6sC,EAAE3+C,EAAI,GAAK2+C,EAAE3+C,EAAI,GAAK2+C,EAAE3+C,EAAI,IAAM2+C,EAAE3+C,EAAI,IAAK,GAE7D,IAAI2I,EAAIhK,KAAKgjB,EAAE,GACXpd,EAAI5F,KAAKgjB,EAAE,GACX/a,EAAIjI,KAAKgjB,EAAE,GACXzP,EAAIvT,KAAKgjB,EAAE,GACXljB,EAAIE,KAAKgjB,EAAE,GAEf,IAAK3hB,EAAI,EAAGA,EAAI2+C,EAAEvhD,OAAQ4C,IAAK,CAC7B,IAAIof,KAAOpf,EAAI,IACX8W,EAAI3E,EAAQL,EAAOnJ,EAAG,GAAI+hD,EAAKtrC,EAAG7a,EAAGqC,EAAGsL,GAAIzT,EAAGkgD,EAAE3+C,GAAIm5G,EAAO/5F,IAChE3gB,EAAIyT,EACJA,EAAItL,EACJA,EAAIkL,EAAOvN,EAAG,IACdA,EAAIoE,EACJA,EAAImO,EAGNnY,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIhZ,GAC7BhK,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIpd,GAC7B5F,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAI/a,GAC7BjI,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIzP,GAC7BvT,KAAKgjB,EAAE,GAAK5P,EAAMpT,KAAKgjB,EAAE,GAAIljB,IAG/B26G,EAAKj9G,UAAUq6B,QAAU,SAAgBjlB,GACvC,MAAY,QAARA,EACK3C,EAAM6C,QAAQ9S,KAAKgjB,EAAG,OAEtB/S,EAAMgD,QAAQjT,KAAKgjB,EAAG,S,6BCtEjC,IAAI/S,EAAQjS,EAAQ,GAChBsuD,EAAStuD,EAAQ,KAErB,SAAS08G,IACP,KAAM16G,gBAAgB06G,GACpB,OAAO,IAAIA,EAEbpuD,EAAOvsD,KAAKC,MACZA,KAAKgjB,EAAI,CACP,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,YAExC/S,EAAMsC,SAASmoG,EAAQpuD,GACvBnvD,EAAOC,QAAUs9G,EAEjBA,EAAOxlF,UAAY,IACnBwlF,EAAOnjF,QAAU,IACjBmjF,EAAOljF,aAAe,IACtBkjF,EAAOjjF,UAAY,GAEnBijF,EAAOl9G,UAAUq6B,QAAU,SAAgBjlB,GAEzC,MAAY,QAARA,EACK3C,EAAM6C,QAAQ9S,KAAKgjB,EAAE/e,MAAM,EAAG,GAAI,OAElCgM,EAAMgD,QAAQjT,KAAKgjB,EAAE/e,MAAM,EAAG,GAAI,S,6BCzB7C,IAAIgM,EAAQjS,EAAQ,GAEhBwuD,EAASxuD,EAAQ,KAErB,SAAS28G,IACP,KAAM36G,gBAAgB26G,GACpB,OAAO,IAAIA,EAEbnuD,EAAOzsD,KAAKC,MACZA,KAAKgjB,EAAI,CACP,WAAY,WACZ,WAAY,UACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,YAEhB/S,EAAMsC,SAASooG,EAAQnuD,GACvBrvD,EAAOC,QAAUu9G,EAEjBA,EAAOzlF,UAAY,KACnBylF,EAAOpjF,QAAU,IACjBojF,EAAOnjF,aAAe,IACtBmjF,EAAOljF,UAAY,IAEnBkjF,EAAOn9G,UAAUq6B,QAAU,SAAgBjlB,GACzC,MAAY,QAARA,EACK3C,EAAM6C,QAAQ9S,KAAKgjB,EAAE/e,MAAM,EAAG,IAAK,OAEnCgM,EAAMgD,QAAQjT,KAAKgjB,EAAE/e,MAAM,EAAG,IAAK,S,6BC/B9C,IAAIgM,EAAQjS,EAAQ,GAChBm1C,EAASn1C,EAAQ,IAEjBmV,EAASlD,EAAMkD,OACfC,EAAQnD,EAAMmD,MACdC,EAAUpD,EAAMoD,QAChBC,EAAUrD,EAAMqD,QAChB8jB,EAAY+b,EAAO/b,UAEvB,SAASjB,IACP,KAAMn2B,gBAAgBm2B,GACpB,OAAO,IAAIA,EAEbiB,EAAUr3B,KAAKC,MAEfA,KAAKgjB,EAAI,CAAE,WAAY,WAAY,WAAY,UAAY,YAC3DhjB,KAAK+S,OAAS,SA0DhB,SAASyxB,EAAE39B,EAAGoD,EAAGC,EAAG+G,GAClB,OAAIpK,GAAK,GACAoD,EAAIC,EAAI+G,EACRpK,GAAK,GACJoD,EAAIC,GAAQD,EAAKgH,EAClBpK,GAAK,IACJoD,GAAMC,GAAM+G,EACbpK,GAAK,GACJoD,EAAIgH,EAAM/G,GAAM+G,EAEjBhH,GAAKC,GAAM+G,GAGtB,SAAS8uC,EAAEl5C,GACT,OAAIA,GAAK,GACA,EACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,WAGX,SAASioF,EAAGjoF,GACV,OAAIA,GAAK,GACA,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,EA5FXoJ,EAAMsC,SAAS4jB,EAAWiB,GAC1Bh6B,EAAQk2C,UAAYnd,EAEpBA,EAAUjB,UAAY,IACtBiB,EAAUoB,QAAU,IACpBpB,EAAUqB,aAAe,IACzBrB,EAAUsB,UAAY,GAEtBtB,EAAU34B,UAAUouB,QAAU,SAAgB/b,EAAK1K,GAWjD,IAVA,IAAI4f,EAAI/kB,KAAKgjB,EAAE,GACXgC,EAAIhlB,KAAKgjB,EAAE,GACXiC,EAAIjlB,KAAKgjB,EAAE,GACXkC,EAAIllB,KAAKgjB,EAAE,GACXs3C,EAAIt6D,KAAKgjB,EAAE,GACXorE,EAAKrpE,EACLspE,EAAKrpE,EACL87B,EAAK77B,EACLqpE,EAAKppE,EACLqpE,EAAKj0B,EACAzzD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI0/C,EAAInzC,EACND,EACEG,EAAQyR,EAAGyf,EAAE39B,EAAGme,EAAGC,EAAGC,GAAIrV,EAAIG,EAAEnJ,GAAK1B,GAAQ46C,EAAEl5C,IAC/C4Z,EAAE5Z,IACJyzD,GACFv1C,EAAIu1C,EACJA,EAAIp1C,EACJA,EAAI/R,EAAO8R,EAAG,IACdA,EAAID,EACJA,EAAIuhC,EACJA,EAAInzC,EACFD,EACEG,EAAQ86E,EAAI5pD,EAAE,GAAK39B,EAAGwnF,EAAIvtC,EAAIwtC,GAAKz+E,EAAIg+E,EAAGhnF,GAAK1B,GAAQ2pF,EAAGjoF,IAC1DinF,EAAGjnF,IACL0nF,GACFH,EAAKG,EACLA,EAAKD,EACLA,EAAKn7E,EAAO2tC,EAAI,IAChBA,EAAKutC,EACLA,EAAK9nC,EAEPA,EAAIlzC,EAAQrT,KAAKgjB,EAAE,GAAIiC,EAAGqpE,GAC1BtuF,KAAKgjB,EAAE,GAAK3P,EAAQrT,KAAKgjB,EAAE,GAAIkC,EAAGqpE,GAClCvuF,KAAKgjB,EAAE,GAAK3P,EAAQrT,KAAKgjB,EAAE,GAAIs3C,EAAG8zB,GAClCpuF,KAAKgjB,EAAE,GAAK3P,EAAQrT,KAAKgjB,EAAE,GAAI+B,EAAGspE,GAClCruF,KAAKgjB,EAAE,GAAK3P,EAAQrT,KAAKgjB,EAAE,GAAIgC,EAAG87B,GAClC9gD,KAAKgjB,EAAE,GAAKujC,GAGdpwB,EAAU34B,UAAUq6B,QAAU,SAAgBjlB,GAC5C,MAAY,QAARA,EACK3C,EAAM6C,QAAQ9S,KAAKgjB,EAAG,UAEtB/S,EAAMgD,QAAQjT,KAAKgjB,EAAG,WA0CjC,IAAIhT,EAAI,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhD69E,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDptE,EAAI,CACN,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAGnDqtE,EAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,K,6BC9ItD,IAAI79E,EAAQjS,EAAQ,GAChB4R,EAAS5R,EAAQ,GAErB,SAASgnD,EAAKhvB,EAAM33B,EAAKuU,GACvB,KAAM5S,gBAAgBglD,GACpB,OAAO,IAAIA,EAAKhvB,EAAM33B,EAAKuU,GAC7B5S,KAAKi1B,KAAOe,EACZh2B,KAAKk1B,UAAYc,EAAKd,UAAY,EAClCl1B,KAAKu3B,QAAUvB,EAAKuB,QAAU,EAC9Bv3B,KAAK46G,MAAQ,KACb56G,KAAK66G,MAAQ,KAEb76G,KAAKqV,MAAMpF,EAAMI,QAAQhS,EAAKuU,IAEhCzV,EAAOC,QAAU4nD,EAEjBA,EAAKxnD,UAAU6X,MAAQ,SAAchX,GAE/BA,EAAII,OAASuB,KAAKk1B,YACpB72B,GAAM,IAAI2B,KAAKi1B,MAAOzJ,OAAOntB,GAAKu3B,UACpChmB,EAAOvR,EAAII,QAAUuB,KAAKk1B,WAG1B,IAAK,IAAI7zB,EAAIhD,EAAII,OAAQ4C,EAAIrB,KAAKk1B,UAAW7zB,IAC3ChD,EAAIiD,KAAK,GAEX,IAAKD,EAAI,EAAGA,EAAIhD,EAAII,OAAQ4C,IAC1BhD,EAAIgD,IAAM,GAIZ,IAHArB,KAAK46G,OAAQ,IAAI56G,KAAKi1B,MAAOzJ,OAAOntB,GAG/BgD,EAAI,EAAGA,EAAIhD,EAAII,OAAQ4C,IAC1BhD,EAAIgD,IAAM,IACZrB,KAAK66G,OAAQ,IAAI76G,KAAKi1B,MAAOzJ,OAAOntB,IAGtC2mD,EAAKxnD,UAAUguB,OAAS,SAAgB3b,EAAK+C,GAE3C,OADA5S,KAAK46G,MAAMpvF,OAAO3b,EAAK+C,GAChB5S,MAGTglD,EAAKxnD,UAAUo4B,OAAS,SAAgBhjB,GAEtC,OADA5S,KAAK66G,MAAMrvF,OAAOxrB,KAAK46G,MAAMhlF,UACtB51B,KAAK66G,MAAMjlF,OAAOhjB,K,cC7C3BzV,EAAOC,QAAU,CACfihC,QAAS,CACPG,KAAM,EACNK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINjuB,IAAK,CACHwZ,IAAK,EACLyU,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,wE,6BCrwBR,IAAI3uB,EAAK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","file":"static/js/2.a9f924b6.chunk.js","sourcesContent":["if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = require(\"regenerator-runtime\");\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\n\nvar e;e||(e=typeof Module !== 'undefined' ? Module : {});null;\ne.onRuntimeInitialized=function(){function a(h,l){this.Qa=h;this.db=l;this.Oa=1;this.kb=[]}function b(h,l){this.db=l;l=aa(h)+1;this.cb=da(l);if(null===this.cb)throw Error(\"Unable to allocate memory for the SQL string\");k(h,n,this.cb,l);this.ib=this.cb;this.Za=this.ob=null}function c(h){this.filename=\"dbfile_\"+(4294967295*Math.random()>>>0);if(null!=h){var l=this.filename,q=l?r(\"//\"+l):\"/\";l=ea(!0,!0);q=fa(q,(void 0!==l?l:438)&4095|32768,0);if(h){if(\"string\"===typeof h){for(var p=Array(h.length),z=\n0,N=h.length;zc;++c)f.parameters.push(d[\"viii\"[c]]);\nc=new WebAssembly.Function(f,a)}else{d=[1,0,1,96];f={i:127,j:126,f:125,d:124};d.push(3);for(c=0;3>c;++c)d.push(f[\"iii\"[c]]);d.push(0);d[1]=d.length-2;c=new Uint8Array([0,97,115,109,1,0,0,0].concat(d,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));c=new WebAssembly.Module(c);c=(new WebAssembly.Instance(c,{e:{f:a}})).exports.f}J.set(b,c)}Ja.set(a,b);a=b}return a}var Ka;e.wasmBinary&&(Ka=e.wasmBinary);var noExitRuntime=e.noExitRuntime||!0;\"object\"!==typeof WebAssembly&&F(\"no native wasm support detected\");\nfunction qa(a){var b=\"i32\";\"*\"===b.charAt(b.length-1)&&(b=\"i32\");switch(b){case \"i1\":y[a>>0]=0;break;case \"i8\":y[a>>0]=0;break;case \"i16\":La[a>>1]=0;break;case \"i32\":K[a>>2]=0;break;case \"i64\":L=[0,(M=0,1<=+Math.abs(M)?0>>0:~~+Math.ceil((M-+(~~M>>>0))/4294967296)>>>0:0)];K[a>>2]=L[0];K[a+4>>2]=L[1];break;case \"float\":Ma[a>>2]=0;break;case \"double\":Na[a>>3]=0;break;default:F(\"invalid type for setValue: \"+b)}}\nfunction v(a,b){b=b||\"i8\";\"*\"===b.charAt(b.length-1)&&(b=\"i32\");switch(b){case \"i1\":return y[a>>0];case \"i8\":return y[a>>0];case \"i16\":return La[a>>1];case \"i32\":return K[a>>2];case \"i64\":return K[a>>2];case \"float\":return Ma[a>>2];case \"double\":return Na[a>>3];default:F(\"invalid type for getValue: \"+b)}return null}var Oa,Pa=!1;function Qa(a){var b=e[\"_\"+a];b||F(\"Assertion failed: Cannot call unknown function \"+(a+\", make sure it is exported\"));return b}\nfunction Ra(a,b,c,d){var f={string:function(u){var C=0;if(null!==u&&void 0!==u&&0!==u){var I=(u.length<<2)+1;C=x(I);k(u,n,C,I)}return C},array:function(u){var C=x(u.length);y.set(u,C);return C}};a=Qa(a);var g=[],m=0;if(d)for(var t=0;t=d);)++c;if(16f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d}function A(a,b){return a?Va(n,a,b):\"\"}\nfunction k(a,b,c,d){if(!(0=m){var t=a.charCodeAt(++g);m=65536+((m&1023)<<10)|t&1023}if(127>=m){if(c>=d)break;b[c++]=m}else{if(2047>=m){if(c+1>=d)break;b[c++]=192|m>>6}else{if(65535>=m){if(c+2>=d)break;b[c++]=224|m>>12}else{if(c+3>=d)break;b[c++]=240|m>>18;b[c++]=128|m>>12&63}b[c++]=128|m>>6&63}b[c++]=128|m&63}}b[c]=0;return c-f}\nfunction aa(a){for(var b=0,c=0;c=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}function Wa(a){var b=aa(a)+1,c=da(b);c&&k(a,y,c,b);return c}var Xa,y,n,La,K,Ma,Na;\nfunction Ya(){var a=Oa.buffer;Xa=a;e.HEAP8=y=new Int8Array(a);e.HEAP16=La=new Int16Array(a);e.HEAP32=K=new Int32Array(a);e.HEAPU8=n=new Uint8Array(a);e.HEAPU16=new Uint16Array(a);e.HEAPU32=new Uint32Array(a);e.HEAPF32=Ma=new Float32Array(a);e.HEAPF64=Na=new Float64Array(a)}var J,Za=[],$a=[],ab=[];function bb(){var a=e.preRun.shift();Za.unshift(a)}var cb=0,db=null,eb=null;e.preloadedImages={};e.preloadedAudios={};\nfunction F(a){if(e.onAbort)e.onAbort(a);H(a);Pa=!0;throw new WebAssembly.RuntimeError(\"abort(\"+a+\"). Build with -s ASSERTIONS=1 for more info.\");}function fb(){return P.startsWith(\"data:application/octet-stream;base64,\")}var P;P=\"sql-wasm.wasm\";if(!fb()){var gb=P;P=e.locateFile?e.locateFile(gb,E):E+gb}function hb(){var a=P;try{if(a==P&&Ka)return new Uint8Array(Ka);if(Ea)return Ea(a);throw\"both async and sync fetching of the wasm failed\";}catch(b){F(b)}}\nfunction ib(){if(!Ka&&(ya||za)){if(\"function\"===typeof fetch&&!P.startsWith(\"file://\"))return fetch(P,{credentials:\"same-origin\"}).then(function(a){if(!a.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return a.arrayBuffer()}).catch(function(){return hb()});if(Da)return new Promise(function(a,b){Da(P,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return hb()})}var M,L;\nfunction jb(a){for(;0>2]=60*g;K[nb()>>2]=Number(b!=f);c=a(c);d=a(d);c=Wa(c);d=Wa(d);f>2]=c,K[ob()+4>>2]=d):(K[ob()>>2]=d,K[ob()+4>>2]=c)}var pb;\nfunction ub(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];\".\"===f?a.splice(d,1):\"..\"===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift(\"..\");return a}function r(a){var b=\"/\"===a.charAt(0),c=\"/\"===a.substr(-1);(a=ub(a.split(\"/\").filter(function(d){return!!d}),!b).join(\"/\"))||b||(a=\".\");a&&c&&(a+=\"/\");return(b?\"/\":\"\")+a}\nfunction vb(a){var b=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return\".\";b&&(b=b.substr(0,b.length-1));return a+b}function xb(a){if(\"/\"===a)return\"/\";a=r(a);a=a.replace(/\\/$/,\"\");var b=a.lastIndexOf(\"/\");return-1===b?a:a.substr(b+1)}\nfunction yb(){if(\"object\"===typeof crypto&&\"function\"===typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}if(Ba)try{var b=require(\"crypto\");return function(){return b.randomBytes(1)[0]}}catch(c){}return function(){F(\"randomDevice\")}}\nfunction zb(){for(var a=\"\",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:\"/\";if(\"string\"!==typeof b)throw new TypeError(\"Arguments to path.resolve must be strings\");if(!b)return\"\";a=b+\"/\"+a;b=\"/\"===b.charAt(0)}a=ub(a.split(\"/\").filter(function(d){return!!d}),!b).join(\"/\");return(b?\"/\":\"\")+a||\".\"}var Ab=[];function Bb(a,b){Ab[a]={input:[],output:[],bb:b};Cb(a,Db)}\nvar Db={open:function(a){var b=Ab[a.node.rdev];if(!b)throw new Q(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.bb.flush(a.tty)},flush:function(a){a.tty.bb.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.bb.zb)throw new Q(60);for(var f=0,g=0;g=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Na,a.Na=new Uint8Array(b),0=a.node.Ra)return 0;a=Math.min(a.node.Ra-f,d);if(8b)throw new Q(28);return b},rb:function(a,b,c){R.wb(a.node,b+c);a.node.Ra=Math.max(a.node.Ra,b+c)},gb:function(a,b,c,d,f,g){if(0!==b)throw new Q(28);if(32768!==(a.node.mode&61440))throw new Q(43);a=a.node.Na;if(g&\n2||a.buffer!==Xa){if(0>>0)%U.length}function Tb(a){var b=Sb(a.parent.id,a.name);if(U[b]===a)U[b]=a.ab;else for(b=U[b];b;){if(b.ab===a){b.ab=a.ab;break}b=b.ab}}\nfunction Lb(a,b){var c;if(c=(c=Ub(a,\"x\"))?c:a.La.lookup?0:2)throw new Q(c,a);for(c=U[Sb(a.id,b)];c;c=c.ab){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.La.lookup(a,b)}function Jb(a,b,c,d){a=new Vb(a,b,c,d);b=Sb(a.parent.id,a.name);a.ab=U[b];return U[b]=a}function S(a){return 16384===(a&61440)}var Wb={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090};function Xb(a){var b=[\"r\",\"w\",\"rw\"][a&3];a&512&&(b+=\"w\");return b}\nfunction Ub(a,b){if(Pb)return 0;if(!b.includes(\"r\")||a.mode&292){if(b.includes(\"w\")&&!(a.mode&146)||b.includes(\"x\")&&!(a.mode&73))return 2}else return 2;return 0}function Yb(a,b){try{return Lb(a,b),20}catch(c){}return Ub(a,\"wx\")}function Zb(a,b,c){try{var d=Lb(a,b)}catch(f){return f.Pa}if(a=Ub(a,\"wx\"))return a;if(c){if(!S(d.mode))return 54;if(d===d.parent||\"/\"===Rb(d))return 10}else if(S(d.mode))return 31;return 0}function $b(a){var b=4096;for(a=a||0;a<=b;a++)if(!T[a])return a;throw new Q(33);}\nfunction ac(a,b){bc||(bc=function(){},bc.prototype={});var c=new bc,d;for(d in a)c[d]=a[d];a=c;b=$b(b);a.fd=b;return T[b]=a}var Ib={open:function(a){a.Ma=Nb[a.node.rdev].Ma;a.Ma.open&&a.Ma.open(a)},Ya:function(){throw new Q(70);}};function Cb(a,b){Nb[a]={Ma:b}}\nfunction cc(a,b){var c=\"/\"===b,d=!b;if(c&&Mb)throw new Q(10);if(!c&&!d){var f=W(b,{xb:!1});b=f.path;f=f.node;if(f.$a)throw new Q(10);if(!S(f.mode))throw new Q(54);}b={type:a,Sb:{},Ab:b,Kb:[]};a=a.Va(b);a.Va=b;b.root=a;c?Mb=a:f&&(f.$a=b,f.Va&&f.Va.Kb.push(b))}function fa(a,b,c){var d=W(a,{parent:!0}).node;a=xb(a);if(!a||\".\"===a||\"..\"===a)throw new Q(28);var f=Yb(d,a);if(f)throw new Q(f);if(!d.La.fb)throw new Q(63);return d.La.fb(d,a,b,c)}\nfunction X(a,b){return fa(a,(void 0!==b?b:511)&1023|16384,0)}function dc(a,b,c){\"undefined\"===typeof c&&(c=b,b=438);fa(a,b|8192,c)}function ec(a,b){if(!zb(a))throw new Q(44);var c=W(b,{parent:!0}).node;if(!c)throw new Q(44);b=xb(b);var d=Yb(c,b);if(d)throw new Q(d);if(!c.La.symlink)throw new Q(63);c.La.symlink(c,b,a)}\nfunction ua(a){var b=W(a,{parent:!0}).node,c=xb(a),d=Lb(b,c),f=Zb(b,c,!1);if(f)throw new Q(f);if(!b.La.unlink)throw new Q(63);if(d.$a)throw new Q(10);try{V.willDeletePath&&V.willDeletePath(a)}catch(g){H(\"FS.trackingDelegate['willDeletePath']('\"+a+\"') threw an exception: \"+g.message)}b.La.unlink(b,c);Tb(d);try{if(V.onDeletePath)V.onDeletePath(a)}catch(g){H(\"FS.trackingDelegate['onDeletePath']('\"+a+\"') threw an exception: \"+g.message)}}\nfunction Qb(a){a=W(a).node;if(!a)throw new Q(44);if(!a.La.readlink)throw new Q(28);return zb(Rb(a.parent),a.La.readlink(a))}function fc(a,b){a=W(a,{Xa:!b}).node;if(!a)throw new Q(44);if(!a.La.Ta)throw new Q(63);return a.La.Ta(a)}function gc(a){return fc(a,!0)}function ha(a,b){a=\"string\"===typeof a?W(a,{Xa:!0}).node:a;if(!a.La.Sa)throw new Q(63);a.La.Sa(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})}\nfunction Ic(a){a=\"string\"===typeof a?W(a,{Xa:!0}).node:a;if(!a.La.Sa)throw new Q(63);a.La.Sa(a,{timestamp:Date.now()})}function Jc(a,b){if(0>b)throw new Q(28);a=\"string\"===typeof a?W(a,{Xa:!0}).node:a;if(!a.La.Sa)throw new Q(63);if(S(a.mode))throw new Q(31);if(32768!==(a.mode&61440))throw new Q(28);var c=Ub(a,\"w\");if(c)throw new Q(c);a.La.Sa(a,{size:b,timestamp:Date.now()})}\nfunction ia(a,b,c,d){if(\"\"===a)throw new Q(44);if(\"string\"===typeof b){var f=Wb[b];if(\"undefined\"===typeof f)throw Error(\"Unknown file open mode: \"+b);b=f}c=b&64?(\"undefined\"===typeof c?438:c)&4095|32768:0;if(\"object\"===typeof a)var g=a;else{a=r(a);try{g=W(a,{Xa:!(b&131072)}).node}catch(m){}}f=!1;if(b&64)if(g){if(b&128)throw new Q(20);}else g=fa(a,c,0),f=!0;if(!g)throw new Q(44);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!S(g.mode))throw new Q(54);if(!f&&(c=g?40960===(g.mode&61440)?32:S(g.mode)&&\n(\"r\"!==Xb(b)||b&512)?31:Ub(g,Xb(b)):44))throw new Q(c);b&512&&Jc(g,0);b&=-131713;d=ac({node:g,path:Rb(g),flags:b,seekable:!0,position:0,Ma:g.Ma,Pb:[],error:!1},d);d.Ma.open&&d.Ma.open(d);!e.logReadFiles||b&1||(Lc||(Lc={}),a in Lc||(Lc[a]=1,H(\"FS.trackingDelegate error on read file: \"+a)));try{V.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),V.onOpenFile(a,g))}catch(m){H(\"FS.trackingDelegate['onOpenFile']('\"+a+\"', flags) threw an exception: \"+m.message)}return d}\nfunction la(a){if(null===a.fd)throw new Q(8);a.nb&&(a.nb=null);try{a.Ma.close&&a.Ma.close(a)}catch(b){throw b;}finally{T[a.fd]=null}a.fd=null}function Mc(a,b,c){if(null===a.fd)throw new Q(8);if(!a.seekable||!a.Ma.Ya)throw new Q(70);if(0!=c&&1!=c&&2!=c)throw new Q(28);a.position=a.Ma.Ya(a,b,c);a.Pb=[]}\nfunction Nc(a,b,c,d,f){if(0>d||0>f)throw new Q(28);if(null===a.fd)throw new Q(8);if(1===(a.flags&2097155))throw new Q(8);if(S(a.node.mode))throw new Q(31);if(!a.Ma.read)throw new Q(28);var g=\"undefined\"!==typeof f;if(!g)f=a.position;else if(!a.seekable)throw new Q(70);b=a.Ma.read(a,b,c,d,f);g||(a.position+=b);return b}\nfunction ka(a,b,c,d,f,g){if(0>d||0>f)throw new Q(28);if(null===a.fd)throw new Q(8);if(0===(a.flags&2097155))throw new Q(8);if(S(a.node.mode))throw new Q(31);if(!a.Ma.write)throw new Q(28);a.seekable&&a.flags&1024&&Mc(a,0,2);var m=\"undefined\"!==typeof f;if(!m)f=a.position;else if(!a.seekable)throw new Q(70);b=a.Ma.write(a,b,c,d,f,g);m||(a.position+=b);try{if(a.path&&V.onWriteToFile)V.onWriteToFile(a.path)}catch(t){H(\"FS.trackingDelegate['onWriteToFile']('\"+a.path+\"') threw an exception: \"+t.message)}return b}\nfunction ta(a){var b={encoding:\"binary\"};b=b||{};b.flags=b.flags||0;b.encoding=b.encoding||\"binary\";if(\"utf8\"!==b.encoding&&\"binary\"!==b.encoding)throw Error('Invalid encoding type \"'+b.encoding+'\"');var c,d=ia(a,b.flags);a=fc(a).size;var f=new Uint8Array(a);Nc(d,f,0,a,0);\"utf8\"===b.encoding?c=Va(f,0):\"binary\"===b.encoding&&(c=f);la(d);return c}\nfunction Oc(){Q||(Q=function(a,b){this.node=b;this.Ob=function(c){this.Pa=c};this.Ob(a);this.message=\"FS error\"},Q.prototype=Error(),Q.prototype.constructor=Q,[44].forEach(function(a){Kb[a]=new Q(a);Kb[a].stack=\"\"}))}var Pc;function ea(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}\nfunction Qc(a,b,c){a=r(\"/dev/\"+a);var d=ea(!!b,!!c);Rc||(Rc=64);var f=Rc++<<8|0;Cb(f,{open:function(g){g.seekable=!1},close:function(){c&&c.buffer&&c.buffer.length&&c(10)},read:function(g,m,t,w){for(var u=0,C=0;C>2]=d.dev;K[c+4>>2]=0;K[c+8>>2]=d.ino;K[c+12>>2]=d.mode;K[c+16>>2]=d.nlink;K[c+20>>2]=d.uid;K[c+24>>2]=d.gid;K[c+28>>2]=d.rdev;K[c+32>>2]=0;L=[d.size>>>0,(M=d.size,1<=+Math.abs(M)?0>>0:~~+Math.ceil((M-+(~~M>>>0))/4294967296)>>>0:0)];K[c+40>>2]=L[0];K[c+44>>2]=L[1];K[c+48>>2]=4096;K[c+52>>2]=d.blocks;K[c+56>>2]=d.atime.getTime()/1E3|0;K[c+60>>2]=\n0;K[c+64>>2]=d.mtime.getTime()/1E3|0;K[c+68>>2]=0;K[c+72>>2]=d.ctime.getTime()/1E3|0;K[c+76>>2]=0;L=[d.ino>>>0,(M=d.ino,1<=+Math.abs(M)?0>>0:~~+Math.ceil((M-+(~~M>>>0))/4294967296)>>>0:0)];K[c+80>>2]=L[0];K[c+84>>2]=L[1];return 0}var Uc=void 0;function Vc(){Uc+=4;return K[Uc-4>>2]}function Z(a){a=T[a];if(!a)throw new Q(8);return a}var Wc;Wc=Ba?function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:function(){return performance.now()};\nvar Xc={};function Yc(){if(!Zc){var a={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:(\"object\"===typeof navigator&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",_:xa||\"./this.program\"},b;for(b in Xc)void 0===Xc[b]?delete a[b]:a[b]=Xc[b];var c=[];for(b in a)c.push(b+\"=\"+a[b]);Zc=c}return Zc}var Zc;\nfunction Vb(a,b,c,d){a||(a=this);this.parent=a;this.Va=a.Va;this.$a=null;this.id=Ob++;this.name=b;this.mode=c;this.La={};this.Ma={};this.rdev=d}Object.defineProperties(Vb.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}}});Oc();U=Array(4096);cc(R,\"/\");X(\"/tmp\");X(\"/home\");X(\"/home/web_user\");\n(function(){X(\"/dev\");Cb(259,{read:function(){return 0},write:function(b,c,d,f){return f}});dc(\"/dev/null\",259);Bb(1280,Eb);Bb(1536,Fb);dc(\"/dev/tty\",1280);dc(\"/dev/tty1\",1536);var a=yb();Qc(\"random\",a);Qc(\"urandom\",a);X(\"/dev/shm\");X(\"/dev/shm/tmp\")})();\n(function(){X(\"/proc\");var a=X(\"/proc/self\");X(\"/proc/self/fd\");cc({Va:function(){var b=Jb(a,\"fd\",16895,73);b.La={lookup:function(c,d){var f=T[+d];if(!f)throw new Q(8);c={parent:null,Va:{Ab:\"fake\"},La:{readlink:function(){return f.path}}};return c.parent=c}};return b}},\"/proc/self/fd\")})();function ma(a,b){var c=Array(aa(a)+1);a=k(a,c,0,c.length);b&&(c.length=a);return c}\nvar ad={a:function(a,b,c,d){F(\"Assertion failed: \"+A(a)+\", at: \"+[b?A(b):\"unknown filename\",c,d?A(d):\"unknown function\"])},s:function(a,b){pb||(pb=!0,lb());a=new Date(1E3*K[a>>2]);K[b>>2]=a.getSeconds();K[b+4>>2]=a.getMinutes();K[b+8>>2]=a.getHours();K[b+12>>2]=a.getDate();K[b+16>>2]=a.getMonth();K[b+20>>2]=a.getFullYear()-1900;K[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);K[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;K[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),\n6,1)).getTimezoneOffset();c=c.getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;K[b+32>>2]=a;a=K[ob()+(a?4:0)>>2];K[b+40>>2]=a;return b},y:function(a,b){try{a=A(a);if(b&-8)var c=-28;else{var d;(d=W(a,{Xa:!0}).node)?(a=\"\",b&4&&(a+=\"r\"),b&2&&(a+=\"w\"),b&1&&(a+=\"x\"),c=a&&Ub(d,a)?-2:0):c=-44}return c}catch(f){return\"undefined\"!==typeof Y&&f instanceof Q||F(f),-f.Pa}},i:function(a,b){try{return a=A(a),ha(a,b),0}catch(c){return\"undefined\"!==typeof Y&&c instanceof Q||F(c),-c.Pa}},z:function(a){try{return a=\nA(a),Ic(a),0}catch(b){return\"undefined\"!==typeof Y&&b instanceof Q||F(b),-b.Pa}},j:function(a,b){try{var c=T[a];if(!c)throw new Q(8);ha(c.node,b);return 0}catch(d){return\"undefined\"!==typeof Y&&d instanceof Q||F(d),-d.Pa}},A:function(a){try{var b=T[a];if(!b)throw new Q(8);Ic(b.node);return 0}catch(c){return\"undefined\"!==typeof Y&&c instanceof Q||F(c),-c.Pa}},b:function(a,b,c){Uc=c;try{var d=Z(a);switch(b){case 0:var f=Vc();return 0>f?-28:ia(d.path,d.flags,0,f).fd;case 1:case 2:return 0;case 3:return d.flags;\ncase 4:return f=Vc(),d.flags|=f,0;case 12:return f=Vc(),La[f+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return K[$c()>>2]=28,-1;default:return-28}}catch(g){return\"undefined\"!==typeof Y&&g instanceof Q||F(g),-g.Pa}},k:function(a,b){try{var c=Z(a);return Tc(fc,c.path,b)}catch(d){return\"undefined\"!==typeof Y&&d instanceof Q||F(d),-d.Pa}},E:function(a,b,c){try{var d=T[a];if(!d)throw new Q(8);if(0===(d.flags&2097155))throw new Q(28);Jc(d.node,c);return 0}catch(f){return\"undefined\"!==\ntypeof Y&&f instanceof Q||F(f),-f.Pa}},D:function(a,b){try{if(0===b)return-28;if(b=c)var d=-28;else{var f=Qb(a),g=Math.min(c,aa(f)),\nm=y[b+g];k(f,n,b,c+1);y[b+g]=m;d=g}return d}catch(t){return\"undefined\"!==typeof Y&&t instanceof Q||F(t),-t.Pa}},H:function(a){try{a=A(a);var b=W(a,{parent:!0}).node,c=xb(a),d=Lb(b,c),f=Zb(b,c,!0);if(f)throw new Q(f);if(!b.La.rmdir)throw new Q(63);if(d.$a)throw new Q(10);try{V.willDeletePath&&V.willDeletePath(a)}catch(g){H(\"FS.trackingDelegate['willDeletePath']('\"+a+\"') threw an exception: \"+g.message)}b.La.rmdir(b,c);Tb(d);try{if(V.onDeletePath)V.onDeletePath(a)}catch(g){H(\"FS.trackingDelegate['onDeletePath']('\"+\na+\"') threw an exception: \"+g.message)}return 0}catch(g){return\"undefined\"!==typeof Y&&g instanceof Q||F(g),-g.Pa}},e:function(a,b){try{return a=A(a),Tc(fc,a,b)}catch(c){return\"undefined\"!==typeof Y&&c instanceof Q||F(c),-c.Pa}},x:function(a){try{return a=A(a),ua(a),0}catch(b){return\"undefined\"!==typeof Y&&b instanceof Q||F(b),-b.Pa}},J:function(){return 2147483648},n:function(a,b,c){n.copyWithin(a,b,b+c)},c:function(a){var b=n.length;a>>>=0;if(2147483648=c;c*=2){var d=b*\n(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(a,d);0>>16);Ya();var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},r:function(a){for(var b=Wc();Wc()-b>2]=g;for(g=0;g>0]=d.charCodeAt(g);y[f>>0]=0;c+=d.length+1});return 0},q:function(a,b){var c=Yc();K[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});\nK[b>>2]=d;return 0},f:function(a){try{var b=Z(a);la(b);return 0}catch(c){return\"undefined\"!==typeof Y&&c instanceof Q||F(c),c.Pa}},o:function(a,b){try{var c=Z(a);y[b>>0]=c.tty?2:S(c.mode)?3:40960===(c.mode&61440)?7:4;return 0}catch(d){return\"undefined\"!==typeof Y&&d instanceof Q||F(d),d.Pa}},w:function(a,b,c,d){try{a:{for(var f=Z(a),g=a=0;g>2],t=Nc(f,y,K[b+8*g>>2],m,void 0);if(0>t){var w=-1;break a}a+=t;if(t>2]=w;return 0}catch(u){return\"undefined\"!==typeof Y&&\nu instanceof Q||F(u),u.Pa}},m:function(a,b,c,d,f){try{var g=Z(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Mc(g,a,d);L=[g.position>>>0,(M=g.position,1<=+Math.abs(M)?0>>0:~~+Math.ceil((M-+(~~M>>>0))/4294967296)>>>0:0)];K[f>>2]=L[0];K[f+4>>2]=L[1];g.nb&&0===a&&0===d&&(g.nb=null);return 0}catch(m){return\"undefined\"!==typeof Y&&m instanceof Q||F(m),m.Pa}},G:function(a){try{var b=Z(a);return b.Ma&&b.Ma.fsync?-b.Ma.fsync(b):\n0}catch(c){return\"undefined\"!==typeof Y&&c instanceof Q||F(c),c.Pa}},B:function(a,b,c,d){try{a:{for(var f=Z(a),g=a=0;g>2],K[b+(8*g+4)>>2],void 0);if(0>m){var t=-1;break a}a+=m}t=a}K[d>>2]=t;return 0}catch(w){return\"undefined\"!==typeof Y&&w instanceof Q||F(w),w.Pa}},g:function(a){var b=Date.now();K[a>>2]=b/1E3|0;K[a+4>>2]=b%1E3*1E3|0;return 0},K:function(a){var b=Date.now()/1E3|0;a&&(K[a>>2]=b);return b},C:function(a,b){if(b){var c=b+8;b=1E3*K[c>>2];b+=K[c+4>>2]/1E3}else b=\nDate.now();a=A(a);try{var d=W(a,{Xa:!0}).node;d.La.Sa(d,{timestamp:Math.max(b,b)});var f=0}catch(g){if(!(g instanceof Q)){b:{f=Error();if(!f.stack){try{throw Error();}catch(m){f=m}if(!f.stack){f=\"(no stack trace available)\";break b}}f=f.stack.toString()}e.extraStackTrace&&(f+=\"\\n\"+e.extraStackTrace());f=kb(f);throw g+\" : \"+f;}f=g.Pa;K[$c()>>2]=f;f=-1}return f}};\n(function(){function a(f){e.asm=f.exports;Oa=e.asm.L;Ya();J=e.asm.Ca;$a.unshift(e.asm.M);cb--;e.monitorRunDependencies&&e.monitorRunDependencies(cb);0==cb&&(null!==db&&(clearInterval(db),db=null),eb&&(f=eb,eb=null,f()))}function b(f){a(f.instance)}function c(f){return ib().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(f,function(g){H(\"failed to asynchronously prepare wasm: \"+g);F(g)})}var d={a:ad};cb++;e.monitorRunDependencies&&e.monitorRunDependencies(cb);\nif(e.instantiateWasm)try{return e.instantiateWasm(d,a)}catch(f){return H(\"Module.instantiateWasm callback failed with error: \"+f),!1}(function(){return Ka||\"function\"!==typeof WebAssembly.instantiateStreaming||fb()||P.startsWith(\"file://\")||\"function\"!==typeof fetch?c(b):fetch(P,{credentials:\"same-origin\"}).then(function(f){return WebAssembly.instantiateStreaming(f,d).then(b,function(g){H(\"wasm streaming compile failed: \"+g);H(\"falling back to ArrayBuffer instantiation\");return c(b)})})})();return{}})();\ne.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.M).apply(null,arguments)};e._sqlite3_free=function(){return(e._sqlite3_free=e.asm.N).apply(null,arguments)};var $c=e.___errno_location=function(){return($c=e.___errno_location=e.asm.O).apply(null,arguments)};e._sqlite3_step=function(){return(e._sqlite3_step=e.asm.P).apply(null,arguments)};e._sqlite3_finalize=function(){return(e._sqlite3_finalize=e.asm.Q).apply(null,arguments)};\ne._sqlite3_prepare_v2=function(){return(e._sqlite3_prepare_v2=e.asm.R).apply(null,arguments)};e._sqlite3_reset=function(){return(e._sqlite3_reset=e.asm.S).apply(null,arguments)};e._sqlite3_clear_bindings=function(){return(e._sqlite3_clear_bindings=e.asm.T).apply(null,arguments)};e._sqlite3_value_blob=function(){return(e._sqlite3_value_blob=e.asm.U).apply(null,arguments)};e._sqlite3_value_text=function(){return(e._sqlite3_value_text=e.asm.V).apply(null,arguments)};\ne._sqlite3_value_bytes=function(){return(e._sqlite3_value_bytes=e.asm.W).apply(null,arguments)};e._sqlite3_value_double=function(){return(e._sqlite3_value_double=e.asm.X).apply(null,arguments)};e._sqlite3_value_int=function(){return(e._sqlite3_value_int=e.asm.Y).apply(null,arguments)};e._sqlite3_value_type=function(){return(e._sqlite3_value_type=e.asm.Z).apply(null,arguments)};e._sqlite3_result_blob=function(){return(e._sqlite3_result_blob=e.asm._).apply(null,arguments)};\ne._sqlite3_result_double=function(){return(e._sqlite3_result_double=e.asm.$).apply(null,arguments)};e._sqlite3_result_error=function(){return(e._sqlite3_result_error=e.asm.aa).apply(null,arguments)};e._sqlite3_result_int=function(){return(e._sqlite3_result_int=e.asm.ba).apply(null,arguments)};e._sqlite3_result_int64=function(){return(e._sqlite3_result_int64=e.asm.ca).apply(null,arguments)};e._sqlite3_result_null=function(){return(e._sqlite3_result_null=e.asm.da).apply(null,arguments)};\ne._sqlite3_result_text=function(){return(e._sqlite3_result_text=e.asm.ea).apply(null,arguments)};e._sqlite3_column_count=function(){return(e._sqlite3_column_count=e.asm.fa).apply(null,arguments)};e._sqlite3_data_count=function(){return(e._sqlite3_data_count=e.asm.ga).apply(null,arguments)};e._sqlite3_column_blob=function(){return(e._sqlite3_column_blob=e.asm.ha).apply(null,arguments)};e._sqlite3_column_bytes=function(){return(e._sqlite3_column_bytes=e.asm.ia).apply(null,arguments)};\ne._sqlite3_column_double=function(){return(e._sqlite3_column_double=e.asm.ja).apply(null,arguments)};e._sqlite3_column_text=function(){return(e._sqlite3_column_text=e.asm.ka).apply(null,arguments)};e._sqlite3_column_type=function(){return(e._sqlite3_column_type=e.asm.la).apply(null,arguments)};e._sqlite3_column_name=function(){return(e._sqlite3_column_name=e.asm.ma).apply(null,arguments)};e._sqlite3_bind_blob=function(){return(e._sqlite3_bind_blob=e.asm.na).apply(null,arguments)};\ne._sqlite3_bind_double=function(){return(e._sqlite3_bind_double=e.asm.oa).apply(null,arguments)};e._sqlite3_bind_int=function(){return(e._sqlite3_bind_int=e.asm.pa).apply(null,arguments)};e._sqlite3_bind_text=function(){return(e._sqlite3_bind_text=e.asm.qa).apply(null,arguments)};e._sqlite3_bind_parameter_index=function(){return(e._sqlite3_bind_parameter_index=e.asm.ra).apply(null,arguments)};e._sqlite3_sql=function(){return(e._sqlite3_sql=e.asm.sa).apply(null,arguments)};\ne._sqlite3_normalized_sql=function(){return(e._sqlite3_normalized_sql=e.asm.ta).apply(null,arguments)};e._sqlite3_errmsg=function(){return(e._sqlite3_errmsg=e.asm.ua).apply(null,arguments)};e._sqlite3_exec=function(){return(e._sqlite3_exec=e.asm.va).apply(null,arguments)};e._sqlite3_changes=function(){return(e._sqlite3_changes=e.asm.wa).apply(null,arguments)};e._sqlite3_close_v2=function(){return(e._sqlite3_close_v2=e.asm.xa).apply(null,arguments)};\ne._sqlite3_create_function_v2=function(){return(e._sqlite3_create_function_v2=e.asm.ya).apply(null,arguments)};e._sqlite3_open=function(){return(e._sqlite3_open=e.asm.za).apply(null,arguments)};var da=e._malloc=function(){return(da=e._malloc=e.asm.Aa).apply(null,arguments)},oa=e._free=function(){return(oa=e._free=e.asm.Ba).apply(null,arguments)};e._RegisterExtensionFunctions=function(){return(e._RegisterExtensionFunctions=e.asm.Da).apply(null,arguments)};\nvar ob=e.__get_tzname=function(){return(ob=e.__get_tzname=e.asm.Ea).apply(null,arguments)},nb=e.__get_daylight=function(){return(nb=e.__get_daylight=e.asm.Fa).apply(null,arguments)},mb=e.__get_timezone=function(){return(mb=e.__get_timezone=e.asm.Ga).apply(null,arguments)},pa=e.stackSave=function(){return(pa=e.stackSave=e.asm.Ha).apply(null,arguments)},ra=e.stackRestore=function(){return(ra=e.stackRestore=e.asm.Ia).apply(null,arguments)},x=e.stackAlloc=function(){return(x=e.stackAlloc=e.asm.Ja).apply(null,\narguments)},Hb=e._memalign=function(){return(Hb=e._memalign=e.asm.Ka).apply(null,arguments)};e.cwrap=function(a,b,c,d){c=c||[];var f=c.every(function(g){return\"number\"===g});return\"string\"!==b&&f&&!d?Qa(a):function(){return Ra(a,b,c,arguments)}};e.UTF8ToString=A;e.stackSave=pa;e.stackRestore=ra;e.stackAlloc=x;var bd;eb=function cd(){bd||dd();bd||(eb=cd)};\nfunction dd(){function a(){if(!bd&&(bd=!0,e.calledRun=!0,!Pa)){e.noFSInit||Pc||(Pc=!0,Oc(),e.stdin=e.stdin,e.stdout=e.stdout,e.stderr=e.stderr,e.stdin?Qc(\"stdin\",e.stdin):ec(\"/dev/tty\",\"/dev/stdin\"),e.stdout?Qc(\"stdout\",null,e.stdout):ec(\"/dev/tty\",\"/dev/stdout\"),e.stderr?Qc(\"stderr\",null,e.stderr):ec(\"/dev/tty1\",\"/dev/stderr\"),ia(\"/dev/stdin\",0),ia(\"/dev/stdout\",1),ia(\"/dev/stderr\",1));Pb=!1;jb($a);if(e.onRuntimeInitialized)e.onRuntimeInitialized();if(e.postRun)for(\"function\"==typeof e.postRun&&\n(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();ab.unshift(b)}jb(ab)}}if(!(0b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a